Форум русской поддержки Joomla!® CMS
06.12.2016, 04:50:36 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1] 2  Все   Вниз
  Добавить закладку  |  Печать  
Автор

Breadcrumbs и другие компоненты с категориями

 (Прочитано 1228 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Андрей Нестеров
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Пол: Мужской
Сообщений: 120



« : 23.01.2014, 19:00:05 »

Доброго) Проблема заключается в следующем. Опишу на реальном примере.

Есть компонент All Video Share, там создана категория (например, Видеоролики), в нее добавлены видеоматериалы со своими названиями.
Данный компонент я привязываю к пункту меню (также называется Видеоролики), тип пункта меню - All Video Share/Category Layout/категория Видеоролики.

В хлебных крошках такая картина: Главная -> Видеоролики (пункт меню) -> Видеоролики (категория All Video Share) -> Название видеоматериала

Есть ли возможность убрать один из пунктов Видеоролики (желательно второй)? Smiley

Записан
Shustry
Moderator
*****

Репутация: +727/-3
Offline Offline

Пол: Мужской
Сообщений: 6667


Рисую дизайны


« Ответ #1 : 23.01.2014, 23:03:43 »

Возможно всё. http://joomlaforum.ru/index.php/topic,203653.0/
Записан
Андрей Нестеров
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Пол: Мужской
Сообщений: 120



« Ответ #2 : 24.01.2014, 12:59:59 »

Shustry, у меня в шаблоне уже есть файл, отвечающий за вывод "хлебокрошек" Smiley:

Код:
?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;

// 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').'"></i></span></li>';
}
?>
<?php for ($i = 0; $i < $count; $i ++) :
// 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>

Какие изменения необходимо внести в него, чтобы иметь возможность убирать категории?
Записан
Андрей Нестеров
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Пол: Мужской
Сообщений: 120



« Ответ #3 : 25.01.2014, 17:42:06 »

Shustry, подскажите, пожалуйста, куда в моем шаблоне вывода breadcrumbs необходимо прописать условие, позволяющее убирать категории... Smiley
Записан
Shustry
Moderator
*****

Репутация: +727/-3
Offline Offline

Пол: Мужской
Сообщений: 6667


Рисую дизайны


« Ответ #4 : 25.01.2014, 20:08:27 »

После строк:
Код
// 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));
}
После строки:
Код
<?php for ($i = 0; $i < $count; $i ++) :
Вставляем:
Код
if ($list[$i]->vars[view] !== 'category') {
На 64-й строке есть:
Код
endfor; ?>
Вставляем ПЕРЕД этим:
Код
}

Всё. В теории должно работать. На практике не могу проверить, т.к. у вас специфичный шаблон, с использованием фреймворка, бутстрапа и т.д.
Записан
Андрей Нестеров
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Пол: Мужской
Сообщений: 120



« Ответ #5 : 25.01.2014, 21:04:44 »

Цитировать
Всё. В теории должно работать. На практике не могу проверить, т.к. у вас специфичный шаблон, с использованием фреймворка, бутстрапа и т.д.

Работает! Спасибо огромное!

Еще один момент: можете на примере написать, как запретить показ всех ссылок на определённый компонент?
Записан
Shustry
Moderator
*****

Репутация: +727/-3
Offline Offline

Пол: Мужской
Сообщений: 6667


Рисую дизайны


« Ответ #6 : 25.01.2014, 22:13:41 »

Пожалуйста. Нужно дописать ещё одно условие:
Вместо…

Код
if ($list[$i]->vars[view] !== 'category') {

Нужно:

Код
if (($list[$i]->vars[view] != 'category') || ($list[$i]->vars[option] != 'com_search')) {

, где search — компонент поиска для примера. Корректно, кстати так !=, а не так !==. Это не совсем одно и то же.
Записан
Андрей Нестеров
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Пол: Мужской
Сообщений: 120



« Ответ #7 : 25.01.2014, 23:58:10 »

Блин, здорово! Работает!

Но это оказалось не совсем то, что я себе представлял)

Shustry, подскажите, как правильно прописать "убирание" отдельной категории? Это как-то по Id делается?
Записан
Shustry
Moderator
*****

Репутация: +727/-3
Offline Offline

Пол: Мужской
Сообщений: 6667


Рисую дизайны


« Ответ #8 : 26.01.2014, 00:05:56 »

Вставьте там где-нибудь перед первым циклом:

Код
var_dump ($list);

Получится много «страшного» кода, вот мне он нужен. Скопируйте сюда. Я не помню наизусть структуру массива.
Записан
Андрей Нестеров
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Пол: Мужской
Сообщений: 120



« Ответ #9 : 26.01.2014, 00:21:44 »

Цитировать
Получится много «страшного» кода

Код:
array(4) { [0]=> object(stdClass)#404 (2) { ["name"]=> string(14) "Главная" ["link"]=> string(1) "/" }
[1]=> object(stdClass)#401 (2) { ["name"]=> string(22) "Видеоролики" ["link"]=> string(17) "/videoroliki.html" }
[2]=> object(stdClass)#335 (2) { ["name"]=> string(40) "Песни Афганской войны" ["link"]=> string(39) "/videoroliki/pesni-afganskoj-vojny.html" }
[3]=> object(stdClass)#400 (2) { ["name"]=> string(40) "Песни Афганской войны" ["link"]=> string(77)
"/videoroliki/pesni-afganskoj-vojny/category/latest/pesni-afganskoj-vojny.html" } }
Записан
Shustry
Moderator
*****

Репутация: +727/-3
Offline Offline

Пол: Мужской
Сообщений: 6667


Рисую дизайны


« Ответ #10 : 26.01.2014, 00:40:09 »

Поправка. Сразу ПОСЛЕ этих строк:

Код
$app = JFactory::getApplication('site');
$router = $app->getRouter();
foreach ($list as $item) {
$item->vars = $router->parse(JURI::getInstance($item->link));
}

нужно вставить.
Записан
Андрей Нестеров
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Пол: Мужской
Сообщений: 120



« Ответ #11 : 26.01.2014, 00:44:58 »

Код:
array(5) { [0]=> object(stdClass)#324 (3) { ["name"]=> string(14) "Главная" ["link"]=> string(1) "/" ["vars"]=> array(5)
{ ["Itemid"]=> string(3) "435" ["option"]=> string(11) "com_content" ["view"]=> string(8) "featured" ["orderby"]=> string(6)
"latest" ["slg"]=> string(34) "valerij:petryaev-po-dorogam-krutym" } } [1]=> object(stdClass)#362 (3) { ["name"]=> string(22)
"Видеоролики" ["link"]=> string(17) "/videoroliki.html" ["vars"]=> array(6) { ["format"]=> string(4) "html" ["Itemid"]=> string(4)
"1289" ["option"]=> string(17) "com_allvideoshare" ["view"]=> string(5) "video" ["orderby"]=> string(6) "latest" ["slg"]=> string(1)
"0" } } [2]=> object(stdClass)#424 (3) { ["name"]=> string(40) "Песни Афганской войны" ["link"]=> string(39)
"/videoroliki/pesni-afganskoj-vojny.html" ["vars"]=> array(6) { ["format"]=> string(4) "html" ["Itemid"]=> string(4)
"1331" ["option"]=> string(17) "com_allvideoshare" ["view"]=> string(8) "category" ["orderby"]=> string(6) "latest" ["slg"]=> string(21)
"pesni-afganskoj-vojny" } } [3]=> object(stdClass)#363 (3) { ["name"]=> string(40) "Песни Афганской войны" ["link"]=> string(77)
"/videoroliki/pesni-afganskoj-vojny/category/latest/pesni-afganskoj-vojny.html" ["vars"]=> array(6) { ["format"]=> string(4)
"html" ["Itemid"]=> string(4) "1331" ["option"]=> string(17) "com_allvideoshare" ["view"]=> string(8) "category" ["orderby"]=> string(6)
"latest" ["slg"]=> string(21) "pesni:afganskoj-vojny" } } [4]=> object(stdClass)#359 (3) { ["name"]=> string(64)
"Валерий Петряев - По дорогам крутым" ["link"]=> string(87) "/videoroliki/pesni-afganskoj-vojny/video/latest/valerij-petryaev-po-dorogam-krutym.html" ["vars"]=> array(6)
{ ["format"]=> string(4) "html" ["Itemid"]=> string(4) "1331" ["option"]=> string(17) "com_allvideoshare" ["view"]=> string(5)
"video" ["orderby"]=> string(6) "latest" ["slg"]=> string(34) "valerij:petryaev-po-dorogam-krutym" } } }
Записан
Shustry
Moderator
*****

Репутация: +727/-3
Offline Offline

Пол: Мужской
Сообщений: 6667


Рисую дизайны


« Ответ #12 : 26.01.2014, 00:56:26 »



Здесь Itemid вероятно id категории. Точно ручаться не могу, т.к. с этим компонентом не работал, а он может тупо не юзать в формирование угла id категории. Смущает число 1331. Что, реально более 1300 категорий на сайте? В любом случае, запретить показ этой ссылки в том же условии так:

Код
if ($list[$i]->vars[Itemid] != '1331') {
Записан
Андрей Нестеров
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Пол: Мужской
Сообщений: 120



« Ответ #13 : 26.01.2014, 01:13:14 »

Цитировать
Смущает число 1331. Что, реально более 1300 категорий на сайте?

Нет, конечно не столько) Но условие срабатывает. Правда, результат такой же, как если бы я задавал "убирание" всего компонента.

Не получается оставить только одну категорию "Песни Афганской войны" (в конкретном примере). Наверное, что-то не так делаю.
Записан
Shustry
Moderator
*****

Репутация: +727/-3
Offline Offline

Пол: Мужской
Сообщений: 6667


Рисую дизайны


« Ответ #14 : 26.01.2014, 01:28:17 »

Ну в массиве vars есть всё для составления различных условий. Дальше думаю методом научного тыка справитесь.
Записан
Андрей Нестеров
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Пол: Мужской
Сообщений: 120



« Ответ #15 : 26.01.2014, 12:29:16 »

Цитировать
Ну в массиве vars есть всё для составления различных условий.

Это точно. Но я в этом практически не разбираюсь.

В моем примере не понятно, почему ссылки [2],[3] и [4] имеют один Itemid (возможно, так и надо). Соответственно, при этом условии

Код:
if ($list[$i]->vars[Itemid] != '1331') {

убираются все 3 ссылки. Какими параметрами они отличаются?
Записан
Shustry
Moderator
*****

Репутация: +727/-3
Offline Offline

Пол: Мужской
Сообщений: 6667


Рисую дизайны


« Ответ #16 : 26.01.2014, 12:38:45 »

Параметр [slg] у всех разный.
Записан
Андрей Нестеров
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Пол: Мужской
Сообщений: 120



« Ответ #17 : 26.01.2014, 14:57:11 »

Цитировать
Параметр [slg] у всех разный.

Здорово. Если задаю такое условие,

Код
if ($list[$i]->vars[slg] != 'pesni-afganskoj-vojny') {

то все отрабатывает так, как мне и надо!

А вот если для двух ссылок сразу,

Код
if (($list[$i]->vars[slg] != 'pesni-afganskoj-vojny') || ($list[$i]->vars[slg] != 'pesni-chechenskoj-vojny')) {

то ни для одной не срабатывает. В чем ошибка?
Записан
Shustry
Moderator
*****

Репутация: +727/-3
Offline Offline

Пол: Мужской
Сообщений: 6667


Рисую дизайны


« Ответ #18 : 26.01.2014, 22:38:17 »

Хз даже. Визуально оба условия верны. Не знаю даже чем помочь. Попробуйте длину переменных померить, возможно тупо опечатка.
Записан
Андрей Нестеров
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Пол: Мужской
Сообщений: 120



« Ответ #19 : 26.01.2014, 22:50:02 »

Код
if (($list[$i]->vars[slg] != 'pesni-vov')) {
if (($list[$i]->vars[slg] != 'pesni-afganskoj-vojny')) {
}
}

Работает вот такой код. Насколько его можно использовать?)
Записан
Shustry
Moderator
*****

Репутация: +727/-3
Offline Offline

Пол: Мужской
Сообщений: 6667


Рисую дизайны


« Ответ #20 : 26.01.2014, 22:55:59 »

Да можно использовать в принципе. Я то не программер, изящества кода не могу заценить. Грубых ошибок точно нет. А так не работает? :

Код
if (($list[$i]->vars[slg] != 'pesni-vov') or ($list[$i]->vars[slg] != 'pesni-afganskoj-vojny')) {
Записан
Андрей Нестеров
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Пол: Мужской
Сообщений: 120



« Ответ #21 : 26.01.2014, 23:16:18 »

Цитировать
А так не работает? :

Код

if (($list[$i]->vars[slg] != 'pesni-vov') or ($list[$i]->vars[slg] != 'pesni-afganskoj-vojny')) {

Неа, не работает! Но так всё равно огромное спасибо за оказанную помощь!
Записан
Shustry
Moderator
*****

Репутация: +727/-3
Offline Offline

Пол: Мужской
Сообщений: 6667


Рисую дизайны


« Ответ #22 : 26.01.2014, 23:24:28 »

Пожалуйста. Больше практикуйте и всё получится. Удачи вам.
Записан
Андрей Нестеров
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Пол: Мужской
Сообщений: 120



« Ответ #23 : 19.06.2015, 12:06:33 »

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'). '&#160;</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>

Как и куда мне здесь надо вставить условия "убирания" категорий, чтобы все работало, как и раньше  Smiley
Записан
Shustry
Moderator
*****

Репутация: +727/-3
Offline Offline

Пол: Мужской
Сообщений: 6667


Рисую дизайны


« Ответ #24 : 19.06.2015, 21:27:47 »

Здесь ненужные элементы убираются этим блоком:
Код
if ($i == 1 && !empty($list[$i]->link) && !empty($list[$i - 1]->link) && $list[$i]->link == $list[$i - 1]->link)
{
unset($list[$i]);
}
Сделовательно вам нужно точно так же, до или после этого условия, запилить своё:
Код
if (($list[$i]->vars[slg] != 'pesni-vov') or ($list[$i]->vars[slg] != 'pesni-afganskoj-vojny')) {
unset($list[$i]);
}
Записан
Андрей Нестеров
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Пол: Мужской
Сообщений: 120



« Ответ #25 : 22.06.2015, 00:06:14 »

Shustry, если я правильно понял, то вот так?

Код:
// 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]);
}
if (($list[$i]->vars[slg] != 'pesni-afganskoj-vojny'))
{
unset($list[$i]);
}
}

Не работает, вообще хлебные крошки пропали, осталась надпись Вы здесь:...
Записан
Shustry
Moderator
*****

Репутация: +727/-3
Offline Offline

Пол: Мужской
Сообщений: 6667


Рисую дизайны


« Ответ #26 : 22.06.2015, 00:22:50 »

Вместо

Код
		if (($list[$i]->vars[slg] != 'pesni-afganskoj-vojny')) 
{
unset($list[$i]);
}
 

надо

Код
		if (($list[$i]->vars[slg] == 'pesni-afganskoj-vojny')) 
{
unset($list[$i]);
}

Мы же теперь наоборот, убираем лишние элементы, а не выводим остальные.
Записан
Андрей Нестеров
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Пол: Мужской
Сообщений: 120



« Ответ #27 : 22.06.2015, 23:21:01 »

Такой вариант хлебные крошки сохраняет, но ненужную категорию не убирает. Как-то можно еще попробовать запилить это условие?

И как в нынешнем варианте модуля использовать var_dump ($list), чтобы посмотреть структуру массива?
Записан
Shustry
Moderator
*****

Репутация: +727/-3
Offline Offline

Пол: Мужской
Сообщений: 6667


Рисую дизайны


« Ответ #28 : 23.06.2015, 01:13:23 »

var_dump ($list) используете так же точно. Посмотрите, там должны быть id категорий. Тогда их можно использовать в условии.
Записан
Андрей Нестеров
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Пол: Мужской
Сообщений: 120



« Ответ #29 : 23.06.2015, 11:30:06 »

Shustry, пробовал вставлять в разные места, но "страшного кода" не выдает...куда правильно его вставить?
Записан
Страниц: [1] 2  Все   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet