[ Index ]

PHP Cross Reference of Joomla 4.2.2 documentation

title

Body

[close]

/administrator/components/com_finder/src/Field/ -> ContenttypesField.php (source)

   1  <?php
   2  
   3  /**
   4   * @package     Joomla.Administrator
   5   * @subpackage  com_finder
   6   *
   7   * @copyright   (C) 2016 Open Source Matters, Inc. <https://www.joomla.org>
   8   * @license     GNU General Public License version 2 or later; see LICENSE.txt
   9   */
  10  
  11  namespace Joomla\Component\Finder\Administrator\Field;
  12  
  13  use Joomla\CMS\Factory;
  14  use Joomla\CMS\Form\Field\ListField;
  15  use Joomla\CMS\HTML\HTMLHelper;
  16  use Joomla\CMS\Language\Text;
  17  use Joomla\Component\Finder\Administrator\Helper\LanguageHelper;
  18  use Joomla\Utilities\ArrayHelper;
  19  
  20  // phpcs:disable PSR1.Files.SideEffects
  21  \defined('_JEXEC') or die;
  22  // phpcs:enable PSR1.Files.SideEffects
  23  
  24  /**
  25   * Content Types Filter field for the Finder package.
  26   *
  27   * @since  3.6.0
  28   */
  29  class ContenttypesField extends ListField
  30  {
  31      /**
  32       * The form field type.
  33       *
  34       * @var    string
  35       * @since  3.6.0
  36       */
  37      protected $type = 'ContentTypes';
  38  
  39      /**
  40       * Method to get the field options.
  41       *
  42       * @return  array  The field option objects.
  43       *
  44       * @since   3.6.0
  45       */
  46      public function getOptions()
  47      {
  48          $lang    = Factory::getLanguage();
  49          $options = array();
  50  
  51          $db    = $this->getDatabase();
  52          $query = $db->getQuery(true)
  53              ->select($db->quoteName('id', 'value'))
  54              ->select($db->quoteName('title', 'text'))
  55              ->from($db->quoteName('#__finder_types'));
  56  
  57          // Get the options.
  58          $db->setQuery($query);
  59  
  60          try {
  61              $contentTypes = $db->loadObjectList();
  62          } catch (\RuntimeException $e) {
  63              Factory::getApplication()->enqueueMessage($e->getMessage(), 'error');
  64          }
  65  
  66          // Translate.
  67          foreach ($contentTypes as $contentType) {
  68              $key = LanguageHelper::branchSingular($contentType->text);
  69              $contentType->translatedText = $lang->hasKey($key) ? Text::_($key) : $contentType->text;
  70          }
  71  
  72          // Order by title.
  73          $contentTypes = ArrayHelper::sortObjects($contentTypes, 'translatedText', 1, true, true);
  74  
  75          // Convert the values to options.
  76          foreach ($contentTypes as $contentType) {
  77              $options[] = HTMLHelper::_('select.option', $contentType->value, $contentType->translatedText);
  78          }
  79  
  80          // Merge any additional options in the XML definition.
  81          $options = array_merge(parent::getOptions(), $options);
  82  
  83          return $options;
  84      }
  85  }


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