[ Index ]

PHP Cross Reference of Joomla 4.2.2 documentation

title

Body

[close]

/administrator/components/com_associations/layouts/joomla/searchtools/ -> default.php (source)

   1  <?php
   2  
   3  /**
   4   * @package     Joomla.Administrator
   5   * @subpackage  com_associations
   6   *
   7   * @copyright   (C) 2018 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  use Joomla\CMS\Layout\LayoutHelper;
  17  
  18  $data = $displayData;
  19  
  20  // Receive overridable options
  21  $data['options'] = !empty($data['options']) ? $data['options'] : array();
  22  
  23  $noResultsText     = '';
  24  $hideActiveFilters = false;
  25  $showFilterButton  = false;
  26  $showSelector      = false;
  27  $selectorFieldName = $data['options']['selectorFieldName'] ?? 'client_id';
  28  
  29  // If a filter form exists.
  30  if (isset($data['view']->filterForm) && !empty($data['view']->filterForm)) {
  31      // Checks if a selector (e.g. client_id) exists.
  32      if ($selectorField = $data['view']->filterForm->getField($selectorFieldName)) {
  33          $showSelector = $selectorField->getAttribute('filtermode', '') === 'selector' ? true : $showSelector;
  34  
  35          // Checks if a selector should be shown in the current layout.
  36          if (isset($data['view']->layout)) {
  37              $showSelector = $selectorField->getAttribute('layout', 'default') != $data['view']->layout ? false : $showSelector;
  38          }
  39  
  40          // Unset the selector field from active filters group.
  41          unset($data['view']->activeFilters[$selectorFieldName]);
  42      }
  43  
  44      // Checks if the filters button should exist.
  45      $filters = $data['view']->filterForm->getGroup('filter');
  46      $showFilterButton = isset($filters['filter_search']) && count($filters) === 1 ? false : true;
  47  
  48      // Checks if it should show the be hidden.
  49      $hideActiveFilters = empty($data['view']->activeFilters);
  50  
  51      // Check if the no results message should appear.
  52      if (isset($data['view']->total) && (int) $data['view']->total === 0) {
  53          $noResults = $data['view']->filterForm->getFieldAttribute('search', 'noresults', '', 'filter');
  54          if (!empty($noResults)) {
  55              $noResultsText = Text::_($noResults);
  56          }
  57      }
  58  }
  59  
  60  // Set some basic options.
  61  $customOptions = array(
  62      'filtersHidden'       => isset($data['options']['filtersHidden']) && $data['options']['filtersHidden'] ? $data['options']['filtersHidden'] : $hideActiveFilters,
  63      'filterButton'        => isset($data['options']['filterButton']) && $data['options']['filterButton'] ? $data['options']['filterButton'] : $showFilterButton,
  64      'defaultLimit'        => $data['options']['defaultLimit'] ?? Factory::getApplication()->get('list_limit', 20),
  65      'searchFieldSelector' => '#filter_search',
  66      'selectorFieldName'   => $selectorFieldName,
  67      'showSelector'        => $showSelector,
  68      'orderFieldSelector'  => '#list_fullordering',
  69      'showNoResults'       => !empty($noResultsText),
  70      'noResultsText'       => !empty($noResultsText) ? $noResultsText : '',
  71      'formSelector'        => !empty($data['options']['formSelector']) ? $data['options']['formSelector'] : '#adminForm',
  72  );
  73  
  74  // Merge custom options in the options array.
  75  $data['options'] = array_merge($customOptions, $data['options']);
  76  
  77  // Add class to hide the active filters if needed.
  78  $filtersActiveClass = $hideActiveFilters ? '' : ' js-stools-container-filters-visible';
  79  
  80  // Load search tools
  81  HTMLHelper::_('searchtools.form', $data['options']['formSelector'], $data['options']);
  82  ?>
  83  <div class="js-stools" role="search">
  84      <?php // Add the itemtype and language selectors before the form filters. Do not display in modal. ?>
  85      <?php $app = Factory::getApplication(); ?>
  86      <?php if ($app->input->get('forcedItemType', '', 'string') == '') : ?>
  87          <?php $itemTypeField = $data['view']->filterForm->getField('itemtype'); ?>
  88          <div class="js-stools-container-selector">
  89              <div class="js-stools-field-selector js-stools-itemtype">
  90                  <div class="visually-hidden"><?php echo $itemTypeField->label; ?></div>
  91                  <?php echo $itemTypeField->input; ?>
  92              </div>
  93          </div>
  94      <?php endif; ?>
  95      <?php if ($app->input->get('forcedLanguage', '', 'cmd') == '') : ?>
  96          <?php $languageField = $data['view']->filterForm->getField('language'); ?>
  97          <div class="js-stools-container-selector">
  98              <div class="js-stools-field-selector js-stools-language">
  99                  <div class="visually-hidden"><?php echo $languageField->label; ?></div>
 100                  <?php echo $languageField->input; ?>
 101              </div>
 102          </div>
 103      <?php endif; ?>
 104      <?php if ($data['options']['showSelector']) : ?>
 105      <div class="js-stools-container-selector">
 106          <?php echo LayoutHelper::render('joomla.searchtools.default.selector', $data); ?>
 107      </div>
 108      <?php endif; ?>
 109      <div class="js-stools-container-bar ms-auto">
 110          <div class="btn-toolbar">
 111              <?php echo $this->sublayout('bar', $data); ?>
 112              <?php echo $this->sublayout('list', $data); ?>
 113          </div>
 114      </div>
 115      <!-- Filters div -->
 116      <div class="js-stools-container-filters clearfix<?php echo $filtersActiveClass; ?>">
 117          <?php if ($data['options']['filterButton']) : ?>
 118              <?php echo $this->sublayout('filters', $data); ?>
 119          <?php endif; ?>
 120      </div>
 121  </div>
 122  <?php if ($data['options']['showNoResults']) : ?>
 123      <?php echo $this->sublayout('noitems', $data); ?>
 124  <?php endif; ?>


Generated: Wed Sep 7 05:41:13 2022 Chilli.vc Blog - For Webmaster,Blog-Writer,System Admin and Domainer