$langOption = JFModuleHTML::makeOption($href, $language->title_native, $disabled . " style='padding-left:22px;background-image: url(\"" . JURI::base(true) . $langImg . "\");background-repeat: no-repeat;background-position:center left;opacity:0.5;' class='opaque'"); } else { $disabled = ""; $noscriptString .= '<a href="' . $href . '"><span lang="' . $languageCode . '" xml:lang="' . $languageCode . '">' . $language->title_native . '</span></a> '; $langOption = JFModuleHTML::makeOption($href, $language->title_native, $disabled . " style='padding-left:22px;background-image: url(\"" . JURI::base(true) . $langImg . "\");background-repeat: no-repeat;background-position:center left;'"); } $langOption->iso = $language->iso; $langOptions[] = $langOption; } if (count($langOptions) >= 1) { $outString = '<div id="jflanguageselection">'; $outString .= '<label for="jflanguageselection" class="jflanguageselection">' . JText::_('JFMSELECT') . '</label>'; if ($activeLangImg != null) { $outString .= '<img src="' . JURI::base(true) . $activeLangImg['img'] . '" alt="' . $activeLangImg['name'] . '" title="' . $activeLangImg['name'] . '" border="0" class="langImg"/>'; } $langlist = JFModuleHTML::selectList($langOptions, 'lang', ' class="jflanguageselection" onfocus="jfselectlang=this.selectedIndex;" onchange="if(this.options[this.selectedIndex].disabled){this.selectedIndex=jfselectlang;} else {document.location.replace(this.value);}"', 'value', 'text', $activehref); $outString .= '' . $langlist . ''; $outString .= '</div>' . "\n"; if ($noscriptString != '') { $outString .= '<noscript>' . $noscriptString . '</noscript>'; } } elseif (count($langOptions) == 0) { $outString = '<div id="jflanguageselection">'; $outString .= '</div>'; } echo $outString; } if ($inc_jf_css && JFile::exists(JPATH_ROOT . DS . 'modules' . DS . 'mod_jflanguageselection' . DS . 'tmpl' . DS . 'mod_jflanguageselection.css')) { $document = JFactory::getDocument(); $document->addStyleSheet(JURI::base(true) . '/modules/mod_jflanguageselection/tmpl/mod_jflanguageselection.css'); }
// no direct access defined('_JEXEC') or die('Restricted access'); $outString = '<div id="jflanguageselection">'; $outString .= '<ul class="jflanguageselection">'; foreach ($langActive as $language) { $langActive = ''; if ($language->get('id') == $curLanguage->get('id')) { if (!$show_active) { continue; // Not showing the active language } else { $langActive = ' id="active_language"'; } } $href = JFModuleHTML::_createHRef($language, $params); $langImg = JFModuleHTML::getLanguageImageSource($language); if (isset($language->disabled) && $language->disabled) { if (file_exists(JPATH_ROOT . $langImg)) { $outString .= '<li' . $langActive . ' style="opacity:0.5" class="opaque"><img src="' . JURI::base(true) . $langImg . '" alt="' . $language->title_native . '" title="' . $language->title_native . '" /></li>'; } else { $outString .= '<li' . $langActive . ' style="opacity:0.5" class="opaque" >' . $language->title_native . '</li>'; } } else { if (file_exists(JPATH_ROOT . $langImg)) { $outString .= '<li' . $langActive . '><a href="' . $href . '"><img src="' . JURI::base(true) . $langImg . '" alt="' . $language->title_native . '" title="' . $language->title_native . '" /></a></li>'; } else { $outString .= '<li' . $langActive . '><a href="' . $href . '">' . $language->title_native . '</a></li>'; } } } $outString .= '</ul></div>';
} if ($language->code == $curLanguage->getTag()) { $activehref = $href; } if (isset($language->disabled) && $language->disabled) { $disabled = " disabled='disabled'"; } else { $disabled = ""; } $langOption = JFModuleHTML::makeOption($href, $language->name, $disabled); $langOptions[] = $langOption; $href = JFModuleHTML::_createHRef($language, $params); $noscriptString .= '<a href="' . $href . '"><span lang="' . $language->getLanguageCode() . '" xml:lang="' . $language->getLanguageCode() . '">' . $language->name . '</span></a> '; } if (count($langOptions) > 1) { $langlist = JFModuleHTML::selectList($langOptions, 'lang', ' class="jflanguageselection" size="1" onchange="document.location.replace(this.value);"', 'value', 'text', $activehref); $outString = '<div id="jflanguageselection">'; $outString .= '<label for="jflanguageselection" class="jflanguageselection">' . JText::_("JFMSELECT") . '</label>'; $outString .= $langlist; $outString .= '</div>'; if ($noscriptString != '') { $outString .= '<noscript>' . $noscriptString . '</noscript>'; } } elseif (count($langOptions) == 1) { $outString = '<div id="jflanguageselection"><ul class="jflanguageselection"><li id="active_language"><a href="' . $langOptions[0]->value . '"><span lang="' . $langOptions[0]->value . '" xml:lang="' . $langOptions[0]->value . '">' . $langOptions[0]->text . '</a></li></ul></div>'; } echo $outString; } if ($inc_jf_css && JFile::exists(JPATH_ROOT . DS . 'modules' . DS . 'mod_jflanguageselection' . DS . 'tmpl' . DS . 'mod_jflanguageselection.css')) { $document =& JFactory::getDocument(); $document->addStyleSheet(JURI::base(true) . '/modules/mod_jflanguageselection/tmpl/mod_jflanguageselection.css');
*/ // no direct access defined('_JEXEC') or die('Restricted access'); $outString = '<div id="jflanguageselection">'; $outString .= '<ul class="jflanguageselection">'; foreach ($langActive as $language) { $langActive = ''; if ($language->code == $curLanguage->getTag()) { if (!$show_active) { continue; // Not showing the active language } else { $langActive = ' id="active_language"'; } } $href = JFModuleHTML::_createHRef($language, $params); if (isset($language->disabled) && $language->disabled) { $outString .= '<li' . $langActive . ' style="opacity:0.5" class="opaque">'; } else { $outString .= '<li' . $langActive . '>'; } if ($type == 'namesplusimages') { if (isset($language->image) && $language->image != "") { $langImg = '/images/' . $language->image; } else { $langImg = '/components/com_joomfish/images/flags/' . $language->getLanguageCode() . ".gif"; } $outString .= '<img src="' . JURI::base(true) . $langImg . '" alt="' . $language->name . '" title="' . $language->name . '" border="0" class="langImg"/>'; } if (isset($language->disabled) && $language->disabled) { $outString .= '<span lang="' . $language->getLanguageCode() . '" xml:lang="' . $language->getLanguageCode() . '" >' . $language->name . '</span>';
function getJFMenu($lang, $getOriginals = true, $currentLangMenuItems = false) { static $instance; if (!isset($instance)) { $instance = array(); if (!$currentLangMenuItems) { JError::raiseWarning('SOME_ERROR_CODE', "Error translating Menus - missing currentLangMenuItems"); return false; } $db = JFactory::getDBO(); $sql = 'SELECT m.*, c.`option` as component' . ' FROM #__menu AS m' . ' LEFT JOIN #__components AS c ON m.componentid = c.id' . ' WHERE m.published = 1 ' . ' ORDER BY m.sublevel, m.parent, m.ordering'; $db->setQuery($sql); // get untranslated menus first // run through the translation code so that we get the correct reftablearray $registry = JFactory::getConfig(); $defLang = $registry->getValue("config.defaultlang"); // done as array of one item so that joomla core menu code will work with it if (!($menu = $db->loadObjectList('id', true, $defLang))) { JError::raiseWarning('SOME_ERROR_CODE', "Error loading Menus: " . $db->getErrorMsg()); return false; } $tempmenu = JSite::getMenu(); $activemenu = $tempmenu->getActive(); if ($activemenu && isset($activemenu->id) && $activemenu->id > 0 && array_key_exists($activemenu->id, $menu)) { $newmenu = array(); $newmenu[$activemenu->id] = $menu[$activemenu->id]; while ($activemenu->parent != 0 && array_key_exists($activemenu->parent, $menu)) { $activemenu = $menu[$activemenu->parent]; $newmenu[$activemenu->id] = $activemenu; } $menu = $newmenu; } $instance["raw"] = array("rows" => $menu, "tableArray" => $db->_getRefTables(), "originals" => $currentLangMenuItems); JFModuleHTML::_setupMenuRoutes($instance["raw"]["rows"]); // This is really annoying in PHP5 - an array of stdclass objects is copied as an array of references // I tried doing this as a stdclass and cloning but it didn't seek to work. $instance["raw"] = serialize($instance["raw"]); $defLang = $registry->getValue("config.jflang"); $instance[$defLang] = unserialize($instance["raw"]); } if (!isset($instance[$lang])) { $instance[$lang] = unserialize($instance["raw"]); // Do not cache here since it can affect SEF components JoomFish::translateList($instance[$lang]["rows"], $lang, $instance[$lang]["tableArray"]); JFModuleHTML::_setupMenuRoutes($instance[$lang]["rows"]); } if ($getOriginals) { return $instance[$lang]["originals"]; } else { return $instance[$lang]["rows"]; } }