本文整理汇总了PHP中JApplicationCms::getLanguageFilter方法的典型用法代码示例。如果您正苦于以下问题:PHP JApplicationCms::getLanguageFilter方法的具体用法?PHP JApplicationCms::getLanguageFilter怎么用?PHP JApplicationCms::getLanguageFilter使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类JApplicationCms
的用法示例。
在下文中一共展示了JApplicationCms::getLanguageFilter方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getDefault
/**
* Get menu item by id
*
* @param string $language The language code.
*
* @return mixed The item object or null when not found for given language
*
* @since 1.6
*/
public function getDefault($language = '*')
{
if (array_key_exists($language, $this->_default) && $this->app->isSite() && $this->app->getLanguageFilter()) {
return $this->_items[$this->_default[$language]];
}
if (array_key_exists('*', $this->_default)) {
return $this->_items[$this->_default['*']];
}
return null;
}
示例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
//.........这里部分代码省略.........
示例3: parseSefRoute
/**
* Convert a sef route to an internal URI
*
* @param JRouterSite &$router Router object
* @param JUri &$uri URI object to process
*
* @return void
*
* @since 4.0
*/
public function parseSefRoute(&$router, &$uri)
{
$route = $uri->getPath();
// If the URL is empty, we handle this in the non-SEF parse URL
if (empty($route)) {
return;
}
// Parse the application route
$segments = explode('/', $route);
if (count($segments) > 1 && $segments[0] == 'component') {
$uri->setVar('option', 'com_' . $segments[1]);
$uri->setVar('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 = trim(substr($route, strlen($found->route)), '/');
}
if ($found) {
$uri->setVar('Itemid', $found->id);
$uri->setVar('option', $found->component);
}
}
// Set the active menu item
if ($uri->getVar('Itemid')) {
$this->menu->setActive($uri->getVar('Itemid'));
}
// Parse the component route
if (!empty($route) && $uri->getVar('option')) {
$segments = explode('/', $route);
if (count($segments)) {
// Handle component route
$component = preg_replace('/[^A-Z0-9_\\.-]/i', '', $uri->getVar('option'));
$crouter = $this->getComponentRouter($component);
$uri->setQuery(array_merge($uri->getQuery(true), $crouter->parse($segments)));
}
$route = implode('/', $segments);
}
$uri->setPath($route);
}