[ Index ] |
PHP Cross Reference of Joomla 4.2.2 documentation |
[Summary view] [Print] [Text view]
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 }
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 |