get('site', 'en-GB'); $default_sef = $lang_codes[$default_lang] -> sef; $menu = $app -> getMenu(); $active = $menu -> getActive(); $uri = &JFactory::getURI(); if ($app -> get('menu_associations', 0)) { if ($active) { $associations = MenusHelper::getAssociations($active -> id); } } foreach ($languages as $i => &$language) { // Do not display language without frontend UI if (!JLanguage::exists($language -> lang_code)) { unset($languages[$i]); } if ($app -> getLanguageFilter()) { $language -> active = $language -> lang_code == $lang -> getTag(); // Likan. /* * I think this doesn't work on products because there is no association on each product. */ if (isset($associations[$language -> lang_code]) && $menu -> getItem($associations[$language -> lang_code])) { $itemid = $associations[$language -> lang_code]; if ($app -> getCfg('sef') == '1') { $language -> link = JRoute::_('index.php?lang=' . $language -> sef . '&Itemid=' . $itemid); } else { $language -> link = 'index.php?lang=' . $language -> sef . '&Itemid=' . $itemid; } } else { //sef case if ($app -> getCfg('sef') == '1') { //$uri->setVar('lang',$language->sef); $router = JApplication::getRouter(); $tmpuri = clone($uri); $router -> parse($tmpuri); $vars = $router -> getVars(); //workaround to fix index language $vars['lang'] = $language -> sef; // Likan $lkplugin = JPluginHelper::getPlugin('system', 'likan_hikashop_multilang'); $lkparams = new JRegistry; $lkparams->loadString($lkplugin->params); if ($language -> sef == "en") $localizedParamID2 = 'englishCatMenuID'; else $localizedParamID2 = 'spanishCatMenuID'; $localizedItemid2 = $lkparams->get($localizedParamID2); $vars['Itemid'] = $localizedItemid2; if (!empty($vars['cid']) && !empty($vars['option']) && $vars['option'] == 'com_hikashop') { // Likan if ($language -> sef == "en") { $database = &JFactory::getDBO(); $query = "SELECT value" . " FROM #__falang_content" . " WHERE language_id = 1" . " AND reference_table = " . $database -> Quote('hikashop_product') . " AND reference_field = " . $database -> Quote('product_name') . " AND reference_id = " . $vars['cid']; $database -> setQuery($query); $lkname = $database -> loadResult(); //dump($dashedName); } if ($lkname == ""){ $db = JFactory::getDBO(); $db->setQuery('SELECT * FROM #__hikashop_product WHERE product_id='.$vars['cid']); $product = $db->loadObject(); $lkname = $product -> product_name; } $lkname = preg_replace("/[^A-Za-z0-9 ]/", "", $lkname); $dashedName = explode(" ", $lkname); $pNameURL = strtolower(implode("-", $dashedName)); $vars['name'] = $pNameURL; // Likan for HS products URL translations //dump($vars, "vars" ); } //case of category article if (!empty($vars['view']) && $vars['view'] == 'article' && !empty($vars['option']) && $vars['option'] == 'com_content') { JModel::addIncludePath(JPATH_SITE . '/components/com_content/models', 'ContentModel'); $model = &JModel::getInstance('Article', 'ContentModel', array('ignore_request' => true)); $appParams = JFactory::getApplication() -> getParams(); $model -> setState('params', $appParams); //in sef some link have this url //index.php/component/content/article?id=39 //id is not in vars but in $tmpuri if (empty($vars['id'])) { $tmpid = $tmpuri -> getVar('id'); if (!empty($tmpid)) { $vars['id'] = $tmpuri -> getVar('id'); } else { continue; } } $item = &$model -> getItem($vars['id']); //get alias of content item without the id , so i don't have the translation $db = JFactory::getDbo(); $query = $db -> getQuery(true); $query -> select('alias') -> from('#__content') -> where('id = ' . (int)$item -> id); $db -> setQuery($query); $alias = $db -> loadResult(); $vars['id'] = $item -> id . ':' . $alias; $vars['catid'] = $item -> catid . ':' . $item -> category_alias; } $url = 'index.php?' . JURI::buildQuery($vars); $language -> link = JRoute::_($url); } //default case else { //we can't remove default language in the link $uri -> setVar('lang', $language -> sef); $language -> link = 'index.php?' . $uri -> getQuery(); } } } else { $language -> link = 'index.php'; } } return $languages; } public static function isFalangDriverActive() { $db = JFactory::getDBO(); if (!is_a($db, "JFalangDatabase")) { return false; } return true; } }