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