Exemple #1
0
	/**
	 * 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;
 }