| [ Index ] |
PHP Cross Reference of Joomla 2.5.4 DE |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * @package Joomla.Site 4 * @subpackage mod_languages 5 * @copyright Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved. 6 * @license GNU General Public License version 2 or later; see LICENSE.txt 7 */ 8 9 // no direct access 10 defined('_JEXEC') or die; 11 12 jimport('joomla.utilities.utility'); 13 14 JLoader::register('MenusHelper', JPATH_ADMINISTRATOR . '/components/com_menus/helpers/menus.php'); 15 16 abstract class modLanguagesHelper 17 { 18 public static function getList(&$params) 19 { 20 $user = JFactory::getUser(); 21 $lang = JFactory::getLanguage(); 22 $app = JFactory::getApplication(); 23 $menu = $app->getMenu(); 24 25 // Get menu home items 26 $homes = array(); 27 foreach($menu->getMenu() as $item) { 28 if ($item->home) { 29 $homes[$item->language] = $item; 30 } 31 } 32 33 // Load associations 34 if ($app->get('menu_associations', 0)) { 35 $active = $menu->getActive(); 36 if ($active) { 37 $associations = MenusHelper::getAssociations($active->id); 38 } 39 } 40 41 $levels = $user->getAuthorisedViewLevels(); 42 $languages = JLanguageHelper::getLanguages(); 43 44 // Filter allowed languages 45 foreach($languages as $i => &$language) { 46 47 // Do not display language without frontend UI 48 if (!JLanguage::exists($language->lang_code)) { 49 unset($languages[$i]); 50 } 51 // Do not display language without specific home menu 52 elseif (!isset($homes[$language->lang_code])) { 53 unset($languages[$i]); 54 } 55 // Do not display language without authorized access level 56 elseif (isset($language->access) && $language->access && !in_array($language->access, $levels)) { 57 unset($languages[$i]); 58 } 59 else { 60 $language->active = $language->lang_code == $lang->getTag(); 61 if ($app->getLanguageFilter()) { 62 if (isset($associations[$language->lang_code]) && $menu->getItem($associations[$language->lang_code])) { 63 $itemid = $associations[$language->lang_code]; 64 if ($app->getCfg('sef')=='1') { 65 $language->link = JRoute::_('index.php?lang='.$language->sef.'&Itemid='.$itemid); 66 } 67 else { 68 $language->link = 'index.php?lang='.$language->sef.'&Itemid='.$itemid; 69 } 70 } 71 else { 72 if ($app->getCfg('sef')=='1') { 73 $itemid = isset($homes[$language->lang_code]) ? $homes[$language->lang_code]->id : $homes['*']->id; 74 $language->link = JRoute::_('index.php?lang='.$language->sef.'&Itemid='.$itemid); 75 } 76 else { 77 $language->link = 'index.php?lang='.$language->sef; 78 } 79 } 80 } 81 else { 82 $language->link = JRoute::_('&Itemid='.$homes['*']->id); 83 } 84 } 85 } 86 return $languages; 87 } 88 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Tue Apr 3 11:40:28 2012 | Cross-referenced by PHPXref 0.7.1 |