Новости Joomla

👩‍💻 Компонент "CS Афиши" для Joomla.

👩‍💻 Компонент "CS Афиши" для Joomla.

Расширение "CS Афиши" позволяет выводить список мероприятий, фильтровать их по датам, поиск по заголовкам и описанию.

В состав пакета расширений входят:
- Компонент "CS Афиши"
- Модуль "Календарь событий"
- Модуль "Предстоящие события"
- Библиотека "ImgResize"

Расширение "CS Афиши" позволяет выводить список мероприятий, фильтровать их по датам, поиск по заголовкам и описанию.

Модуль "Календарь событий" отображает предстоящие и прошедшие мероприятие на календаре, с отображением мероприятий на конкретную дату во всплывающем окне.

Модуль "Предстоящие события" показывает список предстоящий событий по порядку их наступления.

P.S. Расширение платное, но плата символическая, чисто для отработки приема платежей. Ключи без ограничения по времени, купившие сейчас - смогут обновляться без ограничений.

Разработчик - участник нашего сообщества Дмитрий Денисов (@codersite).

Страница расширения
Демо

Яндекс выпустил инструмент Видимость сайта в Алисе AI.

Яндекс выпустил инструмент Видимость сайта в Алисе AI.

С тех пор, как в поисковиках появились нейроответы ИИ, трафик на сайты стал гораздо меньше, так как пользователь стал получать информацию непосредственно на странице поисковика без перехода на сайт. Но при генерации ответа ИИ указывает источники - ссылки на сайты, информация которых была использована для генерации ответа.

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

С помощью инструмента Видимость сайта в Алисе AI в Яндекс Вебмастере вы можете:
- узнать долю упоминаний сайта среди источников в ответах Алисы AI в Поиске и отследить динамику изменений;
- посмотреть примеры запросов, по которым страницы сайта показываются в ответах Алисы AI;
- посмотреть примеры сайтов той же тематики, которые часто упоминаются в генеративной выдаче.
Данные отображаются за последние 3 месяца и обновляются каждую неделю.

Статистика собирается только по тем запросам, по которым ваш сайт уже находится достаточно высоко в поисковой выдаче. Это позволяет анализировать видимость именно в той нише, где вы заинтересованы в продвижении, и избегать «размытия» по малозначимым для вас запросам.

Кроме того, такой подход обусловлен работой Алисы AI: она строит ответ с опорой на самые релевантные, информативные и качественные страницы, которые обычно занимают высокие позиции в Поиске.

Чтобы увидеть статистику вашего сайта в меню Яндекс.Вебмастера перейдите в раздел "Эффективность" и далее в "Показы сайта в Алисе AI".

В начале февраля 2026г. был вебинар с Михаилом Сливинским - амбассадором Поиска Яндекса, и в рамках вебинара была озвучена просьба сделать такой инструмент. Скорее всего разработка на тот момент уже велась, потому что от просьбы до релиза прошло около 2-х месяцев. В любом случае хорошо, что такая статистика появилась.

Показы сайта в Алисе AI в вашем Яндекс,Вебмастере.

@joomlafeed

👩‍💻 ИИ-админ для Joomla ближе, чем вы думаете: Joomla MCP.

👩‍💻 ИИ-админ для Joomla ближе, чем вы думаете: Joomla MCP.

В февральском номере Joomla Community Magazine в статье Evolving Joomla - Joomla CMS MCP Server: Opening the Door to AI-Powered Administration рассказывается о работе команды разработчиков над внедрением в ядро Joomla MCP-сервера.

Что такое MCP-сервер?
Последние годы всех захватывает бум ИИ-технологий. Появились ИИ-агенты - программы, устанавливаемые на сервер или компьютер, которые получают от вас запрос или задачу в человеческом виде и могут выполнять действия с файлами, ходить по сайтам, создавать сайты, программировать и т.д. Люди используют ИИ-агентов в самых разных ситуациях: от написания и проверки кода (даже там, где язык программирования не знаете совсем) до планирования путешествий и бронирования гостиницы.

ИИ-агенты могут использовать различные программные инструменты по протоколу Model Context Protocol (MCP). Для этого разработчик программы должен внедрить MCP в свой продукт или сервис. Так, например, ваш ИИ-агент может ходить по сайтам через браузер и собирать нужную информацию, управляя браузером через MCP-сервер. Или использовать функционал IDE PHP Storm для написания кода, сбора и отладки ошибок, использовать поиск PHP Storm по кодовой базе, а не простой текстовый поиск по файлам. MCP предоставляет набор функций для полноценного управления программным обеспечением.

В случае с Joomla, сервер MCP может предоставить администраторам следующие возможности:
- Автоматическое создание категорий, материалов и меню на основе карты сайта или PDF-файла.
- Создавайть SEO-оптимизированные заголовки и метаописания в пакетном режиме.
- Обновлять расширения на нескольких сайтах одновременно
- Создание посадочные страницы.

Важно отметить, что сервер MCP не задумывался как функция, доступная только «супер-администраторам». Цель инициативы — создать решение, которое будет простым в настройке, маломощным и доступным для широкого круга пользователей.

В процессе разработки точка входа Joomla (аналогично Site, Administrator, Api, Cli), которая будет работать с Streamable HTTP, необходимым для MCP. Аутентификация пока что предполагается на токенах, но затем планируется создание универсального OAuth-сервера для Joomla.
Фактические возможности MCP — инструменты, ресурсы и подсказки — реализованы в виде плагинов для обеспечения расширяемости. Таким образом ожидаем, что и сторонние разработчики смогут создавать MCP-плагины для внедрения поддержки своих расширений Joomla для работы с ИИ.

@joomlafeed

0 Пользователей и 1 Гость просматривают эту тему.
  • 36 Ответов
  • 3826 Просмотров
*

Андрей Нестеров

  • Захожу иногда
  • 207
  • 6 / 0
Доброго) Проблема заключается в следующем. Опишу на реальном примере.

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

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

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

*

Shustry

  • Moderator
  • 6434
  • 745 / 3
*

Андрей Нестеров

  • Захожу иногда
  • 207
  • 6 / 0
Shustry, у меня в шаблоне уже есть файл, отвечающий за вывод "хлебокрошек" ^-^:

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

Какие изменения необходимо внести в него, чтобы иметь возможность убирать категории?
*

Андрей Нестеров

  • Захожу иногда
  • 207
  • 6 / 0
Shustry, подскажите, пожалуйста, куда в моем шаблоне вывода breadcrumbs необходимо прописать условие, позволяющее убирать категории... ^-^
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
После строк:
Код: php
// no direct access
defined('_JEXEC') or die;
Вставляем:
Код: php
$app = JFactory::getApplication('site');
$router = $app->getRouter();
foreach ($list as $item) {
$item->vars = $router->parse(JURI::getInstance($item->link));
}
После строки:
Код: php
<?php for ($i = 0; $i < $count; $i ++) :
Вставляем:
Код: php
if ($list[$i]->vars[view] !== 'category') {
На 64-й строке есть:
Код: php
endfor; ?>
Вставляем ПЕРЕД этим:
Код: php
}

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

Андрей Нестеров

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

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

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

Shustry

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

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

Нужно:

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

, где search — компонент поиска для примера. Корректно, кстати так !=, а не так !==. Это не совсем одно и то же.
*

Андрей Нестеров

  • Захожу иногда
  • 207
  • 6 / 0
Блин, здорово! Работает!

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

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

Shustry

  • Moderator
  • 6434
  • 745 / 3
Вставьте там где-нибудь перед первым циклом:

Код: php
var_dump ($list);

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

Андрей Нестеров

  • Захожу иногда
  • 207
  • 6 / 0
Цитировать
Получится много «страшного» кода

Код
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
  • 6434
  • 745 / 3
Поправка. Сразу ПОСЛЕ этих строк:

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

нужно вставить.
*

Андрей Нестеров

  • Захожу иногда
  • 207
  • 6 / 0
Код
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
  • 6434
  • 745 / 3


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

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

Андрей Нестеров

  • Захожу иногда
  • 207
  • 6 / 0
Цитировать
Смущает число 1331. Что, реально более 1300 категорий на сайте?

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

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

Shustry

  • Moderator
  • 6434
  • 745 / 3
Ну в массиве vars есть всё для составления различных условий. Дальше думаю методом научного тыка справитесь.
*

Андрей Нестеров

  • Захожу иногда
  • 207
  • 6 / 0
Цитировать
Ну в массиве vars есть всё для составления различных условий.

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

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

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

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

Shustry

  • Moderator
  • 6434
  • 745 / 3
Параметр [slg] у всех разный.
*

Андрей Нестеров

  • Захожу иногда
  • 207
  • 6 / 0
Цитировать
Параметр [slg] у всех разный.

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

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

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

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

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

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

Shustry

  • Moderator
  • 6434
  • 745 / 3
Хз даже. Визуально оба условия верны. Не знаю даже чем помочь. Попробуйте длину переменных померить, возможно тупо опечатка.
*

Андрей Нестеров

  • Захожу иногда
  • 207
  • 6 / 0
Код: php
if (($list[$i]->vars[slg] != 'pesni-vov')) {
if (($list[$i]->vars[slg] != 'pesni-afganskoj-vojny')) {
}
}

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

Shustry

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

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

Андрей Нестеров

  • Захожу иногда
  • 207
  • 6 / 0
Цитировать
А так не работает? :

Код

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

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

Shustry

  • Moderator
  • 6434
  • 745 / 3
Пожалуйста. Больше практикуйте и всё получится. Удачи вам.
*

Андрей Нестеров

  • Захожу иногда
  • 207
  • 6 / 0
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>

Как и куда мне здесь надо вставить условия "убирания" категорий, чтобы все работало, как и раньше  ^-^
*

Shustry

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

Андрей Нестеров

  • Захожу иногда
  • 207
  • 6 / 0
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
  • 6434
  • 745 / 3
Вместо

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

надо

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

Мы же теперь наоборот, убираем лишние элементы, а не выводим остальные.
*

Андрей Нестеров

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

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

Shustry

  • Moderator
  • 6434
  • 745 / 3
var_dump ($list) используете так же точно. Посмотрите, там должны быть id категорий. Тогда их можно использовать в условии.
*

Андрей Нестеров

  • Захожу иногда
  • 207
  • 6 / 0
Shustry, пробовал вставлять в разные места, но "страшного кода" не выдает...куда правильно его вставить?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как на списке тегов отобразить другие теги материалов?

Автор Karyuudo

Ответов: 3
Просмотров: 1382
Последний ответ 29.12.2016, 11:33:07
от maxis
Поле перекрывает другие элементы

Автор Solc

Ответов: 1
Просмотров: 1065
Последний ответ 01.12.2016, 11:18:05
от darkghost
Микроразметка breadcrumbs для Joomla 3

Автор Bozhkov2

Ответов: 8
Просмотров: 8008
Последний ответ 08.09.2014, 20:12:07
от Bozhkov2