Shustry, доброго времени суток! 1,5 года назад Вы мне с этим вопросом помогли, может и сейчас получится)
В общем, после обновления Joomla до версии 3.4.1 все вышеописанные изменения, которые я вносил, перестали работать.
Для наглядности выкладываю файл templates/jsn_neon_free/html/mod_breadcrumbs/default.php, который переопределял вывод хлебных крошек:
<?php
/**
* @version $Id: default.php 20196 2011-01-09 02:40:25Z ian $
* @package Joomla.Site
* @subpackage mod_breadcrumbs
* @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;
$app = JFactory::getApplication('site');
$router = $app->getRouter();
foreach ($list as $item) {
$item->vars = $router->parse(JURI::getInstance($item->link));
}
// 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();
$jsnUtils = JSNTplUtils::getInstance();
?>
<div id="jsn-pos-breadcrumbs" class="<?php echo $moduleclass_sfx; ?>">
<?php if ($jsnUtils->isJoomla3()): ?>
<?php JHtml::_('bootstrap.tooltip'); ?>
<ul class="breadcrumb <?php echo $moduleclass_sfx; ?>">
<?php if ($params->get('showHere', 1))
{
echo '<li class="active"><span class="divider"><i class="icon-location" class="hasTooltip" title="' .JText::_('MOD_BREADCRUMBS_HERE').'">'.JText::_('MOD_BREADCRUMBS_HERE').'</i></span></li>';
}
?>
<?php for ($i = 0; $i < $count; $i ++) :
if (($list[$i]->vars[slg] != 'pesni-velikoj-otechestvennoj-vojny')) {
if (($list[$i]->vars[slg] != 'pesni-afganskoj-vojny')) {
if (($list[$i]->vars[slg] != 'pesni-chechenskoj-vojny')) {
if (($list[$i]->vars[slg] != 'pesni-pro-vdv')) {
if (($list[$i]->vars[slg] != 'pesni-pro-voenno-morskoj-flot')) {
if (($list[$i]->vars[slg] != 'pesni-pro-vv-i-spetsnaz')) {
if (($list[$i]->vars[slg] != 'pesni-pro-pogranichnye-vojska')) {
if (($list[$i]->vars[slg] != 'pesni-pro-morskuyu-pekhotu')) {
if (($list[$i]->vars[slg] != 'kursantskie-pesni')) {
if (($list[$i]->vars[slg] != 'dembelskie-pesni')) {
if (($list[$i]->vars[slg] != 'armejskie-pesni-pod-gitaru')) {
// Workaround for duplicate Home when using multilanguage
if ($i == 1 && !empty($list[$i]->link) && !empty($list[$i - 1]->link) && $list[$i]->link == $list[$i - 1]->link)
{
continue;
}
// If not the last item in the breadcrumbs add the separator
echo '<li>';
if ($i < $count - 1)
{
if (!empty($list[$i]->link)) {
echo '<a href="'.$list[$i]->link.'" class="pathway">'.$list[$i]->name.'</a>';
} else {
echo '<span>';
echo $list[$i]->name;
echo '</span>';
}
if ($i < $count - 2)
{
echo '<span class="divider"></span>';
}
} elseif ($params->get('showLast', 1)) { // when $i == $count -1 and 'showLast' is true
if($i > 0){
echo '<span class="divider"></span>';
}
echo '<span>';
echo $list[$i]->name;
echo '</span>';
}
echo '</li>';
}
}
}
}
}
}
}
}
}
}
}
endfor; ?>
</ul>
<?php else: ?>
<span class="breadcrumbs pathway clearafter">
<?php if ($params->get('showHere', 1))
{
echo '<span class="showHere">' .JText::_('MOD_BREADCRUMBS_HERE').'</span>';
}
?>
<?php for ($i = 0; $i < $count; $i ++) :
// If not the last item in the breadcrumbs add the separator
if ($i < $count-1) {
if(!empty($list[$i]->link)) {
echo '<a href="'.$list[$i]->link.'"'.($i==0?' class="first">':'>').$list[$i]->name.'</a>';
} else {
echo '<span>'.$list[$i]->name.'</span>';
}
} else if ($params->get('showLast', 1)) { // when $i == $count -1 and 'showLast' is true
echo '<span class="current">'.$list[$i]->name.'</span>';
}
endfor; ?>
</span>
<?php endif; ?>
</div>
После обновления Joomla до версии 3.4.1 стандартный файл default.php выглядит так (заметно изменился, на мой взгляд):
<?php
/**
* @package Joomla.Site
* @subpackage mod_breadcrumbs
*
* @copyright Copyright (C) 2005 - 2015 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('_JEXEC') or die;
JHtml::_('bootstrap.tooltip');
?>
<ul class="breadcrumb<?php echo $moduleclass_sfx; ?>">
<?php
if ($params->get('showHere', 1))
{
echo '<li class="active">' . JText::_('MOD_BREADCRUMBS_HERE'). ' </li>';
}
else
{
echo '<li class="active"><span class="divider icon-location"></span></li>';
}
// Get rid of duplicated entries on trail including home page when using multilanguage
for ($i = 0; $i < $count; $i++)
{
if ($i == 1 && !empty($list[$i]->link) && !empty($list[$i - 1]->link) && $list[$i]->link == $list[$i - 1]->link)
{
unset($list[$i]);
}
}
// Find last and penultimate items in breadcrumbs list
end($list);
$last_item_key = key($list);
prev($list);
$penult_item_key = key($list);
// Make a link if not the last item in the breadcrumbs
$show_last = $params->get('showLast', 1);
// Generate the trail
foreach ($list as $key => $item) :
if ($key != $last_item_key)
{
// Render all but last item - along with separator
echo '<li>';
if (!empty($item->link))
{
echo '<a href="' . $item->link . '" class="pathway">' . $item->name . '</a>';
}
else
{
echo '<span>' . $item->name . '</span>';
}
if (($key != $penult_item_key) || $show_last)
{
echo '<span class="divider">' . $separator . '</span>';
}
echo '</li>';
}
elseif ($show_last)
{
// Render last item if reqd.
echo '<li class="active">';
echo '<span>' . $item->name . '</span>';
echo '</li>';
}
endforeach; ?>
</ul>
Как и куда мне здесь надо вставить условия "убирания" категорий, чтобы все работало, как и раньше