本文整理汇总了PHP中JMenu::setActive方法的典型用法代码示例。如果您正苦于以下问题:PHP JMenu::setActive方法的具体用法?PHP JMenu::setActive怎么用?PHP JMenu::setActive使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类JMenu
的用法示例。
在下文中一共展示了JMenu::setActive方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: parseRawRoute
/**
* Convert a raw route to an internal URI
*
* @param JRouterSite &$router Router object
* @param JUri &$uri URI object to process
*
* @return void
*
* @since 4.0
*/
public function parseRawRoute(&$router, &$uri)
{
if ($uri->getVar('Itemid')) {
$item = $this->menu->getItem($uri->getVar('Itemid'));
} else {
$item = $this->menu->getDefault($this->app->getLanguage()->getTag());
}
if (is_object($item)) {
// Set the active menu item
$this->menu->setActive($item->id);
$uri->setVar('Itemid', $item->id);
$uri->setQuery(array_merge($item->query, $uri->getQuery(true)));
}
}
示例2: parseSefRoute
/**
* Function to convert a sef route to an internal URI
*
* @param JUri &$uri The sef URI
*
* @return string Internal URI
*
* @since 3.2
* @deprecated 4.0 Attach your logic as rule to the main parse stage
*/
protected function parseSefRoute(&$uri)
{
$route = $uri->getPath();
// Remove the suffix
if ($this->app->get('sef_suffix')) {
if ($suffix = pathinfo($route, PATHINFO_EXTENSION)) {
$route = str_replace('.' . $suffix, '', $route);
}
}
// Get the variables from the uri
$vars = $uri->getQuery(true);
// Handle an empty URL (special case)
if (empty($route)) {
// If route is empty AND option is set in the query, assume it's non-sef url, and parse apropriately
if (isset($vars['option']) || isset($vars['Itemid'])) {
return $this->parseRawRoute($uri);
}
$item = $this->menu->getDefault($this->app->getLanguage()->getTag());
// If user not allowed to see default menu item then avoid notices
if (is_object($item)) {
// Set the information in the request
$vars = $item->query;
// Get the itemid
$vars['Itemid'] = $item->id;
// Set the active menu item
$this->menu->setActive($vars['Itemid']);
$this->setVars($vars);
}
return $vars;
}
// Parse the application route
$segments = explode('/', $route);
if (count($segments) > 1 && $segments[0] == 'component') {
$vars['option'] = 'com_' . $segments[1];
$vars['Itemid'] = null;
$route = implode('/', array_slice($segments, 2));
} else {
// Get menu items.
$items = $this->menu->getMenu();
$found = false;
$route_lowercase = JString::strtolower($route);
$lang_tag = $this->app->getLanguage()->getTag();
// Iterate through all items and check route matches.
foreach ($items as $item) {
if ($item->route && JString::strpos($route_lowercase . '/', $item->route . '/') === 0 && $item->type != 'menulink') {
// Usual method for non-multilingual site.
if (!$this->app->getLanguageFilter()) {
// Exact route match. We can break iteration because exact item was found.
if ($item->route == $route_lowercase) {
$found = $item;
break;
}
// Partial route match. Item with highest level takes priority.
if (!$found || $found->level < $item->level) {
$found = $item;
}
} elseif ($item->language == '*' || $item->language == $lang_tag) {
// Exact route match.
if ($item->route == $route_lowercase) {
$found = $item;
// Break iteration only if language is matched.
if ($item->language == $lang_tag) {
break;
}
}
// Partial route match. Item with highest level or same language takes priority.
if (!$found || $found->level < $item->level || $item->language == $lang_tag) {
$found = $item;
}
}
}
}
if (!$found) {
$found = $this->menu->getDefault($lang_tag);
} else {
$route = substr($route, strlen($found->route));
if ($route) {
$route = substr($route, 1);
}
}
if ($found) {
$vars['Itemid'] = $found->id;
$vars['option'] = $found->component;
}
}
// Set the active menu item
if (isset($vars['Itemid'])) {
$this->menu->setActive($vars['Itemid']);
}
// Set the variables
//.........这里部分代码省略.........