english/components/com_weblinks/router.php
/**
 * Build the route for the com_weblinks component
 *
 * @param	array	An array of URL arguments
 *
 * @return	array	The URL arguments to use to assemble the subsequent URL.
 */
Build the route for the com_weblinks component
@param       array   An array of URL arguments

@return      array   The URL arguments to use to assemble the subsequent URL.
Build the route for the com_weblinks component @param array An array of URL arguments @return array The URL arguments to use to assemble the subsequent URL .
function WeblinksBuildRoute(&$query)
{
	$segments = array();
	$app		= JFactory::getApplication();
	$menu		= $app->getMenu();
	$params		= JComponentHelper::getParams('com_weblinks');
	$advanced	= $params->get('sef_advanced_link', 0);
	if (empty($query['Itemid'])) {
		$menuItem = $menu->getActive();
	}
	else {
		$menuItem = $menu->getItem($query['Itemid']);
	}
	$mView	= (empty($menuItem->query['view'])) ? null : $menuItem->query['view'];
	$mCatid	= (empty($menuItem->query['catid'])) ? null : $menuItem->query['catid'];
	$mId	= (empty($menuItem->query['id'])) ? null : $menuItem->query['id'];
	if (isset($query['view'])) {
		$view = $query['view'];
		if (empty($query['Itemid'])) {
			$segments[] = $query['view'];
		}
		unset($query['view']);
	}
		if (isset($query['view']) && ($mView == $query['view']) and (isset($query['id'])) and ($mId == intval($query['id']))) {
		unset($query['view']);
		unset($query['catid']);
		unset($query['id']);
		return $segments;
	}
	if (isset($view) and ($view == 'category' or $view == 'weblink' )) {
		if ($mId != intval($query['id']) || $mView != $view) {
			if ($view == 'weblink' && isset($query['catid'])) {
				$catid = $query['catid'];
			}
			else if (isset($query['id'])) {
				$catid = $query['id'];
			}
			$menuCatid = $mId;
			$categories = JCategories::getInstance('Weblinks');
			$category = $categories->get($catid);
			if ($category) {
				$path = $category->getPath();
				$path = array_reverse($path);
				$array = array();
				foreach($path as $id)
				{
					if ((int) $id == (int)$menuCatid) {
						break;
					}
					if ($advanced) {
						list($tmp, $id) = explode(':', $id, 2);
					}
					$array[] = $id;
				}
				$segments = array_merge($segments, array_reverse($array));
			}
			if ($view == 'weblink') {
				if ($advanced) {
					list($tmp, $id) = explode(':', $query['id'], 2);
				}
				else {
					$id = $query['id'];
				}
				$segments[] = $id;
			}
		}
		unset($query['id']);
		unset($query['catid']);
	}
	if (isset($query['layout'])) {
		if (!empty($query['Itemid']) && isset($menuItem->query['layout'])) {
			if ($query['layout'] == $menuItem->query['layout']) {
				unset($query['layout']);
			}
		}
		else {
			if ($query['layout'] == 'default') {
				unset($query['layout']);
			}
		}
	};
	return $segments;
}
function WeblinksBuildRoute ( & $ query ) { $ segments = array ( ) ; $ app = JFactory :: getApplication ( ) ; $ menu = $ app -> getMenu ( ) ; $ params = JComponentHelper :: getParams ( 'com_weblinks' ) ; $ advanced = $ params -> get ( 'sef_advanced_link' , 0 ) ; if ( empty ( $ query [ 'Itemid' ] ) ) { $ menuItem = $ menu -> getActive ( ) ; } else { $ menuItem = $ menu -> getItem ( $ query [ 'Itemid' ] ) ; } $ mView = ( empty ( $ menuItem -> query [ 'view' ] ) ) ? null : $ menuItem -> query [ 'view' ] ; $ mCatid = ( empty ( $ menuItem -> query [ 'catid' ] ) ) ? null : $ menuItem -> query [ 'catid' ] ; $ mId = ( empty ( $ menuItem -> query [ 'id' ] ) ) ? null : $ menuItem -> query [ 'id' ] ; if ( isset ( $ query [ 'view' ] ) ) { $ view = $ query [ 'view' ] ; if ( empty ( $ query [ 'Itemid' ] ) ) { $ segments [ ] = $ query [ 'view' ] ; } unset ( $ query [ 'view' ] ) ; } if ( isset ( $ query [ 'view' ] ) && ( $ mView == $ query [ 'view' ] ) and ( isset ( $ query [ 'id' ] ) ) and ( $ mId == intval ( $ query [ 'id' ] ) ) ) { unset ( $ query [ 'view' ] ) ; unset ( $ query [ 'catid' ] ) ; unset ( $ query [ 'id' ] ) ; return $ segments ; } if ( isset ( $ view ) and ( $ view == 'category' or $ view == 'weblink' ) ) { if ( $ mId != intval ( $ query [ 'id' ] ) || $ mView != $ view ) { if ( $ view == 'weblink' && isset ( $ query [ 'catid' ] ) ) { $ catid = $ query [ 'catid' ] ; } else if ( isset ( $ query [ 'id' ] ) ) { $ catid = $ query [ 'id' ] ; } $ menuCatid = $ mId ; $ categories = JCategories :: getInstance ( 'Weblinks' ) ; $ category = $ categories -> get ( $ catid ) ; if ( $ category ) { $ path = $ category -> getPath ( ) ; $ path = array_reverse ( $ path ) ; $ array = array ( ) ; foreach ( $ path as $ id ) { if ( ( int ) $ id == ( int ) $ menuCatid ) { break ; } if ( $ advanced ) { list ( $ tmp , $ id ) = explode ( ':' , $ id , 2 ) ; } $ array [ ] = $ id ; } $ segments = array_merge ( $ segments , array_reverse ( $ array ) ) ; } if ( $ view == 'weblink' ) { if ( $ advanced ) { list ( $ tmp , $ id ) = explode ( ':' , $ query [ 'id' ] , 2 ) ; } else { $ id = $ query [ 'id' ] ; } $ segments [ ] = $ id ; } } unset ( $ query [ 'id' ] ) ; unset ( $ query [ 'catid' ] ) ; } if ( isset ( $ query [ 'layout' ] ) ) { if ( ! empty ( $ query [ 'Itemid' ] ) && isset ( $ menuItem -> query [ 'layout' ] ) ) { if ( $ query [ 'layout' ] == $ menuItem -> query [ 'layout' ] ) { unset ( $ query [ 'layout' ] ) ; } } else { if ( $ query [ 'layout' ] == 'default' ) { unset ( $ query [ 'layout' ] ) ; } } } ; return $ segments ; }
Build the route for the com_weblinks component
 @param       array   An array of URL arguments
Build the route for the com_weblinks component @param array An array of URL arguments
// get a menu item based on Itemid or currently active // we need a menu item.  Either the one specified in the query, or the current active one if none specified // are we dealing with an weblink that is attached to a menu item?
 //TODO Throw error that the category either not exists or is unpublished