- Форум
- Уроки Joomla
- Ошибки и решение проблем.
- Вопрос по активной ссылке в меню
Вопрос по активной ссылке в меню


на главной странице ссылки в меню выглядят следующим образом:
Т.е. пункт меню "Главная" находится в активном состоянии - подсвечен.
К примеру, перейдем в раздел "Биографии". Меню становится таким:
Т.е. в активное состояние переходит пункт меню "Биографии".
Дальше, к примеру, в данном разделе перейдем в какой-нибудь материал.
В результате, казалось бы, в активном состоянии должен был остаться
пункт меню "Биографии", НО у меня это не так - активным вновь становится
пункт меню "Главная".
Посмотрел на других сайтах - такого нигде не наблюдается.
В чем может быть проблема?
Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.


Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.


Пункт меню "Биографии" и так имеет тип "Блок категории".
Отключил ЧПУ, посмотрел на ссылки:
- обычной ссылке armymusic.ru/biografii.html соответствует armymusic.ru/index.php?option=com_content&view=category&layout=blog&id=121&Itemid=1389
- обычной ссылке armymusic.ru/biografii/136-petryaev-valerij.html соответствует armymusic.ru/index.php?option=com_content&view=article&id=136:petryaev-valerij&catid=121&Itemid=1389
Я, конечно, не спец, но вроде как ID пункта меню добавляется ко всем страницам категории.
Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.


Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.


<?php
/**
* @version $Id: default.php 20196 2011-01-09 02:40:25Z ian $
* @package Joomla.Site
* @subpackage mod_menu
* @copyright Copyright (C) 2005 - 2011 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
// No direct access.
defined('_JEXEC') or die;
// Load template framework
if (!defined('JSN_PATH_TPLFRAMEWORK')) {
require_once JPATH_ROOT . '/plugins/system/jsntplframework/jsntplframework.defines.php';
require_once JPATH_ROOT . '/plugins/system/jsntplframework/libraries/joomlashine/loader.php';
}
$app = JFactory::getApplication();
$template = $app->getTemplate();
$jsn_utils = JSNTplUtils::getInstance();
// Note. It is important to remove spaces between elements.
?>
<ul class="<?php echo $class_sfx;?>"<?php
$tag = '';
if ($params->get('tag_id')!=NULL) {
$tag = $params->get('tag_id').'';
echo ' id="'.$tag.'"';
}
?>>
<?php
$count = 1;
$menuCount = count($list);
$varLastItem = 0;
$flag = false;
$flag_last = false;
foreach ($list as $i => &$item) :
$class = '';
if ($item->id == $active_id) {
$class .= 'current ';
}
if (in_array($item->id, $path)) {
$class .= 'active ';
}
if ($item->deeper) {
$class .= 'parent ';
}
if( ($count == 1) || ($flag == true) ) {
$class .= 'first ';
}
if($count == $menuCount || $item->shallower || $jsn_utils->isLastMenu($item)) {
$class .= 'last ';
}
// Icon menu
if ($item->anchor_css) {
$class .= $item->anchor_css.' ';
}
if (!empty($class)) {
$class = ' class="'.trim($class).'"';
}
echo '<li '.$class.'>';
$flag = false;
$item->title = html_entity_decode($item->title);
// Render the menu item.
switch ($item->type) {
case 'separator':
case 'component':
require JModuleHelper::getLayoutPath('mod_menu', 'default_'.$item->type);
break;
default:
require JModuleHelper::getLayoutPath('mod_menu', 'default_url');
break;
}
// The next item is deeper.
if ($item->deeper) {
$flag_last = true;
if ($item->level==1) {
echo '<ul>';
$level_1_id = $item->id;
}
else echo '<ul>';
$flag = true;
}
// The next item is shallower.
else if ($item->shallower) {
echo '</li>';
echo str_repeat('</ul></li>', $item->level_diff);
}
// The next item is on the same level.
else {
echo '</li>';
}
$count ++;
endforeach;
?></ul>
И вот ссылка на демо шаблона http://demo.joomlashine.com/joomla-templates/jsn_neon/pro/index.php ,
там вроде такой проблемы не наблюдается.
Где я мог накосячить?
Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.


1) Пункт меню подсвечивает класс active
2) Он формируется в этом файле в следующем кусочке кода:
if (in_array($item->id, $path)) {
$class .= 'active ';
}
4) Массив $path выводится откуда-то из фреймворка:
require_once JPATH_ROOT . '/plugins/system/jsntplframework/jsntplframework.defines.php';
require_once JPATH_ROOT . '/plugins/system/jsntplframework/libraries/joomlashine/loader.php';
Больше ничего не скажу, не хватает данных.
Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.


<?php
/**
* @version $Id$
* @package JSNExtension
* @subpackage TPLFramework
* @author JoomlaShine Team <support@joomlashine.com>
* @copyright Copyright (C) 2012 JoomlaShine.com. All Rights Reserved.
* @license GNU/GPL v2 or later http://www.gnu.org/licenses/gpl-2.0.html
*
* Websites: http://www.joomlashine.com
* Technical Support: Feedback - http://www.joomlashine.com/contact-us/get-support.html
*/
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
// Define base constants for the framework
define('JSN_PATH_TPLFRAMEWORK', dirname(__FILE__));
define('JSN_PATH_TPLFRAMEWORK_LIBRARIES', JSN_PATH_TPLFRAMEWORK . '/libraries/joomlashine');
define('JSN_TPLFRAMEWORK_ID', 'tpl_framework');
define('JSN_TPLFRAMEWORK_VERSION', '2.1.4');
define('JSN_TPLFRAMEWORK_CHECK_UPDATE_PERIOD', 86400);
// Define remote URL for communicating with JoomlaShine server
define('JSN_TPLFRAMEWORK_LIGHTCART_URL', 'http://www.joomlashine.com/index.php?option=com_lightcart');
define('JSN_TPLFRAMEWORK_VERSIONING_URL', 'http://www.joomlashine.com/versioning/product_version.php');
define('JSN_TPLFRAMEWORK_UPGRADE_DETAILS', 'http://www.joomlashine.com/versioning/product_upgrade.php');
Файл loader.php
<?php
/**
* @version $Id$
* @package JSNExtension
* @subpackage TPLFramework
* @author JoomlaShine Team <support@joomlashine.com>
* @copyright Copyright (C) 2012 JoomlaShine.com. All Rights Reserved.
* @license GNU/GPL v2 or later http://www.gnu.org/licenses/gpl-2.0.html
*
* Websites: http://www.joomlashine.com
* Technical Support: Feedback - http://www.joomlashine.com/contact-us/get-support.html
*/
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
/**
* Autoload class file of JSN Template Framework.
*
* @param string $className Name of class needs to be loaded.
*
* @return boolean
*/
function jsn_template_framework_class_loader($className)
{
if (strpos($className, 'JSNTpl') === 0)
{
$path = strtolower(preg_replace('/([A-Z])/', '/\\1', substr($className, 6)));
$fullPath = JSN_PATH_TPLFRAMEWORK_LIBRARIES . '/' . $path;
// Load alternative class for backward compatible with old template version
$app = JFactory::getApplication();
$tpl = $app->getTemplate();
if ($app->isSite() AND substr($tpl, 0, 4) == 'jsn_' AND ! JSNTplVersion::isCompatible($tpl, JSNTplHelper::getTemplateVersion($tpl)))
{
if (is_file("{$fullPath}_v1.php") AND is_readable("{$fullPath}_v1.php"))
{
$fullPath .= '_v1';
}
}
if (is_file("{$fullPath}.php") AND is_readable("{$fullPath}.php"))
{
return include_once "{$fullPath}.php";
}
return false;
}
}
// Register jsn_template_framework_class_loader for autoloading
spl_autoload_register('jsn_template_framework_class_loader');
// Preload some required classes
require_once JSN_PATH_TPLFRAMEWORK_LIBRARIES . '/helper.php';
require_once JSN_PATH_TPLFRAMEWORK_LIBRARIES . '/version.php';
Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.


$path = strtolower(preg_replace('/([A-Z])/', '/\\1', substr($className, 6)));
Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.


- plugins\system\jsntplframework\libraries\joomlashine\form\field.php
https://yadi.sk/d/ZMMJpgJqcEuAR
- plugins\system\jsntplframework\libraries\joomlashine\template\helper.php
https://yadi.sk/d/Mg0JfwcRcEuFY
- plugins\system\jsntplframework\libraries\joomlashine\template\helper_v1.php
https://yadi.sk/d/VtGW-xuxcEuJT
Параллельно я создал тему на этом форуме http://joomlaforum.ru/index.php/topic,302728.0.html .
Пока советы с него мне не помогли, может Вас на что-то натолкнут.
Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.


Если я Вам предоставлю доступ к тестовому сайту, Вы можете посмотреть решение моей проблемы?
Заранее спасибо!
Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.


Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.


Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.


Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.
- Форум
- Уроки Joomla
- Ошибки и решение проблем.
- Вопрос по активной ссылке в меню