default.php
4.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
<?php
/**
* @package Joomla.Site
* @subpackage Layout
*
* @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('JPATH_BASE') or die;
$data = $displayData;
// Receive overridable options
$data['options'] = !empty($data['options']) ? $data['options'] : array();
$noResultsText = '';
$hideActiveFilters = false;
$showFilterButton = false;
$showSelector = false;
$selectorFieldName = isset($data['options']['selectorFieldName']) ? $data['options']['selectorFieldName'] : 'client_id';
// If a filter form exists.
if (isset($data['view']->filterForm) && !empty($data['view']->filterForm))
{
// Checks if a selector (e.g. client_id) exists.
if ($selectorField = $data['view']->filterForm->getField($selectorFieldName))
{
$showSelector = $selectorField->getAttribute('filtermode', '') == 'selector' ? true : $showSelector;
// Checks if a selector should be shown in the current layout.
if (isset($data['view']->layout))
{
$showSelector = $selectorField->getAttribute('layout', 'default') != $data['view']->layout ? false : $showSelector;
}
// Unset the selector field from active filters group.
unset($data['view']->activeFilters[$selectorFieldName]);
}
// Checks if the filters button should exist.
$filters = $data['view']->filterForm->getGroup('filter');
$showFilterButton = isset($filters['filter_search']) && count($filters) === 1 ? false : true;
// Checks if it should show the be hidden.
$hideActiveFilters = empty($data['view']->activeFilters);
// Check if the no results message should appear.
if (isset($data['view']->total) && (int) $data['view']->total === 0)
{
$noResults = $data['view']->filterForm->getFieldAttribute('search', 'noresults', '', 'filter');
if (!empty($noResults))
{
$noResultsText = JText::_($noResults);
}
}
}
// Set some basic options.
$customOptions = array(
'filtersHidden' => isset($data['options']['filtersHidden']) && $data['options']['filtersHidden'] ? $data['options']['filtersHidden'] : $hideActiveFilters,
'filterButton' => isset($data['options']['filterButton']) && $data['options']['filterButton'] ? $data['options']['filterButton'] : $showFilterButton,
'defaultLimit' => isset($data['options']['defaultLimit']) ? $data['options']['defaultLimit'] : JFactory::getApplication()->get('list_limit', 20),
'searchFieldSelector' => '#filter_search',
'selectorFieldName' => $selectorFieldName,
'showSelector' => $showSelector,
'orderFieldSelector' => '#list_fullordering',
'showNoResults' => !empty($noResultsText) ? true : false,
'noResultsText' => !empty($noResultsText) ? $noResultsText : '',
'formSelector' => !empty($data['options']['formSelector']) ? $data['options']['formSelector'] : '#adminForm',
);
// Merge custom options in the options array.
$data['options'] = array_merge($customOptions, $data['options']);
// Add class to hide the active filters if needed.
$filtersActiveClass = $hideActiveFilters ? '' : ' js-stools-container-filters-visible';
// Load search tools
JHtml::_('searchtools.form', $data['options']['formSelector'], $data['options']);
?>
<div class="js-stools clearfix">
<div class="clearfix">
<?php if ($data['options']['showSelector']) : ?>
<div class="js-stools-container-selector">
<?php echo JLayoutHelper::render('joomla.searchtools.default.selector', $data); ?>
</div>
<?php endif; ?>
<div class="js-stools-container-bar">
<?php echo $this->sublayout('bar', $data); ?>
</div>
<div class="js-stools-container-list hidden-phone hidden-tablet">
<?php echo $this->sublayout('list', $data); ?>
</div>
</div>
<!-- Filters div -->
<?php if ($data['options']['filterButton']) : ?>
<div class="js-stools-container-filters hidden-phone clearfix<?php echo $filtersActiveClass; ?>">
<?php echo $this->sublayout('filters', $data); ?>
</div>
<?php endif; ?>
</div>
<?php if ($data['options']['showNoResults']) : ?>
<?php echo $this->sublayout('noitems', $data); ?>
<?php endif; ?>