Source for file helper.php

Documentation is available at helper.php

  1. <?php
  2. /**
  3.  * @package     Joomla.Site
  4.  * @subpackage  mod_languages
  5.  *
  6.  * @copyright   Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
  7.  * @license     GNU General Public License version 2 or later; see LICENSE.txt
  8.  */
  9.  
  10. defined('_JEXEC'or die;
  11.  
  12. JLoader::register('MenusHelper'JPATH_ADMINISTRATOR '/components/com_menus/helpers/menus.php');
  13.  
  14. /**
  15.  * Helper for mod_languages
  16.  *
  17.  * @package     Joomla.Site
  18.  * @subpackage  mod_languages
  19.  */
  20. abstract class ModLanguagesHelper
  21. {
  22.     public static function getList(&$params)
  23.     {
  24.         $user    JFactory::getUser();
  25.         $lang     JFactory::getLanguage();
  26.         $app    JFactory::getApplication();
  27.         $menu     $app->getMenu();
  28.  
  29.         // Get menu home items
  30.         $homes array();
  31.  
  32.         foreach ($menu->getMenu(as $item)
  33.         {
  34.             if ($item->home)
  35.             {
  36.                 $homes[$item->language$item;
  37.             }
  38.         }
  39.  
  40.         // Load associations
  41.         $assoc JLanguageAssociations::isEnabled();
  42.         if ($assoc)
  43.         {
  44.             $active $menu->getActive();
  45.             if ($active)
  46.             {
  47.                 $associations MenusHelper::getAssociations($active->id);
  48.             }
  49.             // load component associations
  50.             $option $app->input->get('option');
  51.             $eName JString::ucfirst(JString::str_ireplace('com_'''$option));
  52.             $cName JString::ucfirst($eName.'HelperAssociation');
  53.             JLoader::register($cNameJPath::clean(JPATH_COMPONENT_SITE '/helpers/association.php'));
  54.  
  55.             if (class_exists($cName&& is_callable(array($cName'getAssociations')))
  56.             {
  57.                 $cassociations call_user_func(array($cName'getAssociations'));
  58.             }
  59.         }
  60.  
  61.         $levels        $user->getAuthorisedViewLevels();
  62.         $languages    JLanguageHelper::getLanguages();
  63.  
  64.         // Filter allowed languages
  65.         foreach ($languages as $i => &$language{
  66.  
  67.             // Do not display language without frontend UI
  68.             if (!JLanguage::exists($language->lang_code))
  69.             {
  70.                 unset($languages[$i]);
  71.             }
  72.             // Do not display language without specific home menu
  73.             elseif (!isset($homes[$language->lang_code]))
  74.             {
  75.                 unset($languages[$i]);
  76.             }
  77.             // Do not display language without authorized access level
  78.             elseif (isset($language->access&& $language->access && !in_array($language->access$levels))
  79.             {
  80.                 unset($languages[$i]);
  81.             }
  82.             else {
  83.                 $language->active $language->lang_code == $lang->getTag();
  84.                 if (JLanguageMultilang::isEnabled())
  85.                 {
  86.                     if (isset($cassociations[$language->lang_code]))
  87.                     {
  88.                         $language->link JRoute::_($cassociations[$language->lang_code].'&lang='.$language->sef);
  89.                     }
  90.                     elseif (isset($associations[$language->lang_code]&& $menu->getItem($associations[$language->lang_code]))
  91.                     {
  92.                         $itemid $associations[$language->lang_code];
  93.                         if ($app->getCfg('sef'== '1')
  94.                         {
  95.                             $language->link JRoute::_('index.php?lang='.$language->sef.'&Itemid='.$itemid);
  96.                         }
  97.                         else {
  98.                             $language->link 'index.php?lang='.$language->sef.'&amp;Itemid='.$itemid;
  99.                         }
  100.                     }
  101.                     else {
  102.                         if ($app->getCfg('sef'== '1')
  103.                         {
  104.                             $itemid = isset($homes[$language->lang_code]$homes[$language->lang_code]->id $homes['*']->id;
  105.                             $language->link JRoute::_('index.php?lang='.$language->sef.'&Itemid='.$itemid);
  106.                         }
  107.                         else {
  108.                             $language->link 'index.php?lang='.$language->sef;
  109.                         }
  110.                     }
  111.                 }
  112.                 else {
  113.                     $language->link JRoute::_('&Itemid='.$homes['*']->id);
  114.                 }
  115.             }
  116.         }
  117.         return $languages;
  118.     }
  119. }

Documentation generated on Tue, 19 Nov 2013 15:04:21 +0100 by phpDocumentor 1.4.3