[ Index ] |
PHP Cross Reference of Joomla 4.2.2 documentation |
[Summary view] [Print] [Text view]
1 <?php 2 3 /** 4 * Joomla! Content Management System 5 * 6 * @copyright (C) 2015 Open Source Matters, Inc. <https://www.joomla.org> 7 * @license GNU General Public License version 2 or later; see LICENSE.txt 8 */ 9 10 namespace Joomla\CMS\Form\Field; 11 12 use Joomla\CMS\Factory; 13 14 // phpcs:disable PSR1.Files.SideEffects 15 \defined('JPATH_PLATFORM') or die; 16 // phpcs:enable PSR1.Files.SideEffects 17 18 /** 19 * Provides a list of published content languages with home pages 20 * 21 * @see \Joomla\CMS\Form\Field\LanguageField for a select list of application languages. 22 * @since 3.5 23 */ 24 class FrontendlanguageField extends ListField 25 { 26 /** 27 * The form field type. 28 * 29 * @var string 30 * @since 3.5 31 */ 32 public $type = 'Frontend_Language'; 33 34 /** 35 * Method to get the field options for frontend published content languages with homes. 36 * 37 * @return array The options the field is going to show. 38 * 39 * @since 3.5 40 */ 41 protected function getOptions() 42 { 43 // Get the database object and a new query object. 44 $db = $this->getDatabase(); 45 $query = $db->getQuery(true); 46 47 $query->select('a.lang_code AS value, a.title AS text') 48 ->from($db->quoteName('#__languages') . ' AS a') 49 ->where('a.published = 1') 50 ->order('a.title'); 51 52 // Select the language home pages. 53 $query->select('l.home, l.language') 54 ->innerJoin($db->quoteName('#__menu') . ' AS l ON l.language=a.lang_code AND l.home=1 AND l.published=1 AND l.language <> ' . $db->quote('*')) 55 ->innerJoin($db->quoteName('#__extensions') . ' AS e ON e.element = a.lang_code') 56 ->where('e.client_id = 0') 57 ->where('e.enabled = 1') 58 ->where('e.state = 0'); 59 60 $db->setQuery($query); 61 62 try { 63 $languages = $db->loadObjectList(); 64 } catch (\RuntimeException $e) { 65 $languages = array(); 66 67 if (Factory::getUser()->authorise('core.admin')) { 68 Factory::getApplication()->enqueueMessage($e->getMessage(), 'error'); 69 } 70 } 71 72 // Merge any additional options in the XML definition. 73 return array_merge(parent::getOptions(), $languages); 74 } 75 }
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 |