/** * Get routed links for tags */ static function getTagRoute($id, $Itemid = 0) { static $component_default_menuitem_id = null; // Calculate later only if needed static $current_language = null; if ($current_language === null) { $current_language = JFactory::getLanguage()->getTag(); // Current language tag for J2.5+ but not for J1.5 } static $use_language = null; if ($use_language === null) { $use_language = FLEXI_J16GE && JLanguageMultilang::isEnabled(); if ($use_language) { self::_buildLanguageLookup(); } } // Get default menu item for 'tags' view static $_tags_default_menuitem_id = null; if ($_tags_default_menuitem_id === null) { $params = JComponentHelper::getParams('com_flexicontent'); $_tags_default_menuitem_id = $params->get('tags_view_default_menu_itemid', false); } // ********************* // Get data of given TAG // data like: language // ********************* // Get language, IN FUTURE tags will have language because we will use J3+ tags $language = '*'; // ********************************************************** // Create the needles for table lookup in descending priority // ********************************************************** $needles = array(); $needles['tags'] = array( (int) $id ); // *************** // Create the link // *************** $link = 'index.php?option=com_flexicontent&view=tags&id='.$id; // Other data to pass to _findTag() $data = array(); // use SEF language code as so configured $data['language'] = '*'; // Default to ALL if ($use_language && $language && $language != "*") { if(isset(self::$lang_lookup[$language])) { if ( self::$add_url_lang && isset(self::$interface_langs[$language]) ) { $link .= '&lang='.self::$lang_lookup[$language]; } $data['language'] = $language; } } // USE the itemid provided, if we were given one it means it is "appropriate and relevant" if ($Itemid) { $link .= '&Itemid='.$Itemid; } // Try to find the most appropriate/relevant menu item, using the priority set via needles array else if ($menuitem = FlexicontentHelperRoute::_findTag($needles, $data)) { $link .= '&Itemid='.$menuitem->id; } // Fallback to default menu item for the view else if ($_tags_default_menuitem_id) { $link .= '&Itemid='.$_tags_default_menuitem_id; } // Try to use component's default menu item, this is according to COMPONENT CONFIGURATION and includes ACTIVE menu item if appropriate else { if ($component_default_menuitem_id === null) $component_default_menuitem_id = FlexicontentHelperRoute::_setDefaultMenuitemId(); if ($component_default_menuitem_id) $link .= '&Itemid='.$component_default_menuitem_id; } return $link; }
/** * Get routed links for tags */ static function getTagRoute($id, $_Itemid = 0) { $Itemid = $_Itemid == -1 ? 0 : $_Itemid; // -1 indicates to return the found menu Itemid instead of the produced link static $component_default_menuitem_id = null; // Calculate later only if needed static $current_language = null; if ($current_language === null) { $current_language = JFactory::getLanguage()->getTag(); // Current language tag for J2.5+ but not for J1.5 } static $use_language = null; if ($use_language === null) { $use_language = JLanguageMultilang::isEnabled(); if ($use_language) { self::_buildLanguageLookup(); } } // Get default menu item for 'tags' view static $_tags_default_menuitem_id = null; if ($_tags_default_menuitem_id === null) { $params = JComponentHelper::getParams('com_flexicontent'); $_tags_default_menuitem_id = $params->get('tags_view_default_menu_itemid', false); } // ********************* // Get data of given TAG // data like: language // ********************* // Get language, IN FUTURE tags will have language because we will use J3+ tags $language = '*'; // ********************************************************** // Create the needles for table lookup in descending priority // ********************************************************** $needles = array(); $needles['tags'] = array((int) $id); // *************** // Create the link // *************** $link = 'index.php?option=com_flexicontent&view=tags&id=' . $id; // Other data to pass to _findTag() $data = array(); // use SEF language code as so configured $data['language'] = '*'; // Default to ALL if ($use_language && $language && $language != "*") { if (isset(self::$lang_lookup[$language])) { if (self::$add_url_lang && isset(self::$interface_langs[$language])) { $link .= '&lang=' . self::$lang_lookup[$language]; } $data['language'] = $language; } } // USE the itemid provided, if we were given one it means it is "appropriate and relevant" if ($Itemid) { $link .= '&Itemid=' . $Itemid; } else { if ($menuitem = FlexicontentHelperRoute::_findTag($needles, $data)) { $Itemid = $menuitem->id; $link .= '&Itemid=' . $Itemid; } else { if ($_tags_default_menuitem_id) { $Itemid = $_tags_default_menuitem_id; $link .= '&Itemid=' . $Itemid; } else { if ($component_default_menuitem_id === null) { $component_default_menuitem_id = FlexicontentHelperRoute::_setDefaultMenuitemId(); } $Itemid = (int) $component_default_menuitem_id; // if false (aka not set) then it will be typecasted to ZERO if ($Itemid) { $link .= '&Itemid=' . $Itemid; } } } } // Return menu Itemid or the produced link return $_Itemid == -1 ? $Itemid : $link; }