Новости Joomla

Компонент Joomla 6: Генератор LLMs.txt.

Компонент Joomla 6: Генератор LLMs.txt.

Компонент Joomla 6: Генератор LLMs.txt.

Ещё один генератор ИИ-файлов llms.txt и llms-full.txt.

Основные особенности/возможности компонента:

  • Генерация по стандарту: Автоматическое создание файла-визитки llms.txt и расширенной версии llms-full.txt с аннотированным списком материалов.
  • Интеллектуальная работа с контентом: Компонент использует мета-описания (Meta Description) из статей и пунктов меню, превращая SEO-настройки сайта в качественный контекст для нейросетей.
  • Просмотреть результат генерации файлов можно сразу в рабочей области компонента. После внесения корректив (через Настройки компонента. При отладке лучше открыть три вкладки в браузере: Настройка — Геренация/Превью — Список Материалов/Категории/Меню.) — проводим перегенерацию, смотрим результат до полной «победы».
  • Автоматизация и безопасность: Синхронизация с sitemap.xml, группировка по категориям и автоматическое создание резервных копий (.bak) при каждой генерации.
  • Гибкое управление: Возможность исключения определенных категорий и/или статей и/или пунктов меню, а также простая настройка через стандартную админпанель Joomla.
  • Подробное руководство/справка: Пошаговая инструкция для пользователя в Настройках компонента для редакторов с базовым знанием администрирования Joomla.

👉 Важно учесть.
1️⃣ Компонент Генератор LLMs.txt изначально составляет базовый список ссылок на основе sitemap.xml и сверяется с ним на предмет: запрета индексации url в robots.txt, тегов noinex/nofollow. Это экономит время на проверку «закрыть от индексации», поскольку компонент генерации Sitemap.xml уже реализовал эту задачу. Посему, формирование ссылок для ИИ имеет комплексный подход, составление грамотного/валидного/релевантного sitemap.xml никто не отменял.

2️⃣ Тексты-описания ссылок формируются из Meta Description com_content (только компонент Материалы) и выбранных пользователем Меню сайта. Важно, чтобы Meta Description были уникальными и релевантными, соответствовали базовому seo. Составленные «на отшибись» Description для ИИ — «не катит» (впрочем, для поисковых систем они тоже «не канали»).

Разработчик - участник нашего сообщества Александр Кузнецов (@newvksan).

Страница расширения

@joomlafeed

#joomla #ии #ai

👩‍💻 WT LLMs для Joomla: llms.txt, llms.json для AI-агентов.

👩‍💻 WT LLMs для Joomla: llms.txt, llms.json для AI-агентов.

Это Joomla-компонент для публикации AI-ready карты сайта и автоматической генерации файлов llms.txt, llms-full.txt и llms.json по концепции llmstxt.org.  Также о концепции llms.txt говорит Google в своей справке Lighthouse. Решение помогает LLM-моделям, AI-агентам, GEO/AI SEO-процессам и внутренним автоматизациям получать структурированные данные о сайте без ручной сборки JSON и Markdown.

С помощью WT LLMs можно:
- создать структурированное описание сайта для AI-агентов;
- управлять профилем сайта, картой интентов и каноническими страницами для этих интентов из админки Joomla;
- генерировать llms.txt и llms.json;
- использовать REST API для автоматического заполнения данных;
- отдавать публичную schema-инструкцию для AI-агентов;

В комплект компонента входит плагин markdown-версии страниц Joomla. Системный плагин Joomla, который добавляет альтернативное Markdown-представление страниц сайта. Он позволяет отдавать содержимое страницы в более чистом текстовом формате, удобном для AI-агентов, LLM, поисковых систем и технических интеграций.
Плагин добавляет в ссылки на AI-файлы.

Пакет подходит для сайтов на Joomla 5+, которым важно сделать контент понятнее для LLM, AI-поиска, ассистентов и будущих систем машинного чтения.

Видео:
- ВК Видео
- RuTube
- YouTube

Ссылки:
Страница расширения
GitHub

@joomlafeed

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

kit2m2

  • Живу я здесь
  • 3374
  • 276 / 0
  • Беру сайты на полное сопровождение
Предыдущий программист написал код прямо в контроллере и view.

Можно как-то перенести этот код в плагин? Речь идет о контроллере orders.php (админки). Кнопки то я уже из view перенес, функции из плагина не могу разобраться как вызвать.

Мне не нужно готовое решение, просто объясните принцип, кто знает как...
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

sivers

  • Живу я здесь
  • 2618
  • 363 / 0
В контроллере добавьте вызов обработчика события:
Код
$app = JFactory::getApplication();
$app->triggerEvent('onBeforeOrderSave', array($cid, $post));
onBeforeOrderSave - произвольное имя события. В массиве - произвольный набор передаваемых даннных. В плагине обработчик для примера выше будет выглядеть так:
Код
public function onBeforeOrderSave($cid, $post){
}
Таким образом можно функции из контроллера вынести в плагин. В нужных местах вызываете плагин с передачей параметров (если надо) и получаете ответ от плагина.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

kit2m2

  • Живу я здесь
  • 3374
  • 276 / 0
  • Беру сайты на полное сопровождение
Спасибо за ответ. А нельзя как-то обойти вообще редактирование контроллера? Использовать уже имеющие триггеры?
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Использовать уже имеющие триггеры?
функции из плагина не могу разобраться как вызвать
Методы класса контроллера и не получится использовать. А в плагине метод класса получает такое же имя, как указано в trigger
*

sivers

  • Живу я здесь
  • 2618
  • 363 / 0
А нельзя как-то обойти вообще редактирование контроллера?
Код
// Вызываем com_finder для получения его результатов
$cpath = JPATH_SITE.'/components/com_finder';
if(!class_exists('FinderController')) require($cpath.'/controller.php');
if(!class_exists('JHtmlQuery')) require($cpath.'/helpers/html/query.php');
if(!class_exists('JHtmlFilter')) require($cpath.'/helpers/html/filter.php');
$config = array('base_path' => $cpath);
$ctrl = new FinderController($config);
$model = $ctrl->getModel('Search', 'FinderModel');
$view =& $ctrl->getView('search', 'html');
$view->addTemplatePath($cpath.'/views/search/tmpl');
$input->set('view', 'search');
$ctrl->display();

Это рабочий пример вызова компонента "умный поиск" из любого места. Позволяет выполнять методы контроллера, представления и модели. Подкорректируйте под свой компонент и уберите лишнее (модели и представления) - должно работать.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

kit2m2

  • Живу я здесь
  • 3374
  • 276 / 0
  • Беру сайты на полное сопровождение
Немного не понял, причем здесь вызов компонента, если речь идет о компоненте JoomShopping, его контроллере (orders.php) и его плагине (группы: jshoppingadmin)
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

sivers

  • Живу я здесь
  • 2618
  • 363 / 0
Немного не понял, причем здесь вызов компонента, если речь идет о компоненте JoomShopping
У меня пример записан для com_finder. Переделайте для com_joomshopping (или как он у вас называется?) и вызывайте его контроллер. По идее, должно хватить такого кода:
Код
$cpath = JPATH_SITE.'/components/com_joomshopping';
if(!class_exists('JoomShoppingController')) require($cpath.'/controller.php');
$config = array('base_path' => $cpath);
$ctrl = new JoomShoppingController($config);
$ctrl->имя_метода_контроллера();
Имена каталога компонента и его класса контроллера посмотрите в компоненте - мне не на чем. Вставить это все можно и в плагин.
А. Еще, если это из админской части компонента, то JPATH_ADMINISTRATOR вместо JPATH_SITE.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

kit2m2

  • Живу я здесь
  • 3374
  • 276 / 0
  • Беру сайты на полное сопровождение
То есть на странице будут работать два контроллера, точнее будет загружаться методы стандартного контроллера + дополнительный метод из другого?

Верно ли я Вас понял?
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Можно как-то перенести этот код в плагин? Речь идет о контроллере orders.php (админки).
контроллере (orders.php) и его плагине (группы: jshoppingadmin)
Вижу только
Код
 JPluginHelper::importPlugin('jshoppingorder');
Может поэтому и не работает, что не тот тип плагина
*

kit2m2

  • Живу я здесь
  • 3374
  • 276 / 0
  • Беру сайты на полное сопровождение
Может поэтому и не работает, что не тот тип плагина
Группа jshoppingadmin выше чем группа jshoppingorder. Она работает везде в админке. Кнопки же выводятся...
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

sivers

  • Живу я здесь
  • 2618
  • 363 / 0
Верно ли я Вас понял?
Все верно. Обычно такой необходимости не возникает, но вот когда начинаете делать какие-то костыли, то может понадобиться. Если никакой другой (более штатный) способ не подойдет.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

kit2m2

  • Живу я здесь
  • 3374
  • 276 / 0
  • Беру сайты на полное сопровождение
Если никакой другой (более штатный) способ не подойдет.

Спасибо, за совет, буду пробовать. А есть другие способы?
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

sivers

  • Живу я здесь
  • 2618
  • 363 / 0
А есть другие способы?
Сказал бы, если б знал. Но с жумшопингом не знаком. @draff выше намекал, что у этого компонента свои плагины есть и какие-то из них могут подойти для вашей задачи.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

ProtectYourSite

  • Живу я здесь
  • 2383
  • 141 / 4
  • Безопасность вебсайтов
Наверно только системным плагином.
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Группа jshoppingadmin выше чем группа jshoppingorder. Она работает везде в админке. Кнопки же выводятся..
Можете проверить, добавив в контроллер и вызов плагинов jshoppingadmin
*

kit2m2

  • Живу я здесь
  • 3374
  • 276 / 0
  • Беру сайты на полное сопровождение
Можете проверить, добавив в контроллер и вызов плагинов jshoppingadmin

Что проверить? Плагины группы jshoppingadmin работают во всей админке JoomShopping. Спасибо, конечно, но тема как перенести код из контролера в плагин, а не наоборот, как туда что-то добавить.

Сменил группу плагина на jshoppingorder, абсолютно ничего не изменилось
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

kit2m2

  • Живу я здесь
  • 3374
  • 276 / 0
  • Беру сайты на полное сопровождение
То есть на странице будут работать два контроллера, точнее будет загружаться методы стандартного контроллера + дополнительный метод из другого?

Верно ли я Вас понял?

Что-то не получается или мы друг друга неправильно поняли... @sivers - это способ подмены одного контроллера другим?
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

sivers

  • Живу я здесь
  • 2618
  • 363 / 0
это способ подмены одного контроллера другим?
нет же. это способ заставить отработать контроллер (вид/модель) на странице чужого компонента. не вместо, а вместе с ним. например, чтоб сделать на странице 2 списка (листинга) объектов, принадлежащих разным компонентом. Иногда заказчики и такое хотят.
У вас не получилось подключить контроллер вообще или не удается вызвать какой-то из его методов? Как объявлен метод? public?
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

kit2m2

  • Живу я здесь
  • 3374
  • 276 / 0
  • Беру сайты на полное сопровождение
Пишет что не находит класс контроллера
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

sivers

  • Живу я здесь
  • 2618
  • 363 / 0
Пишет что не находит класс контроллера
Ок, напишите как именно подключаете и откуда скачать JoomShopping - посмотреть.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

kit2m2

  • Живу я здесь
  • 3374
  • 276 / 0
  • Беру сайты на полное сопровождение
Код
$cpath = JPATH_ADMINISTRATOR.'/components/com_joomshopping/controllers';
if(!class_exists('JshoppingControllerOrders')) require_once($cpath.'/orders.php');
$config = array('base_path' => $cpath);
$ctrl = new JshoppingControllerOrdersEx($config);

Компонент

Могу скинуть один контроллер
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

sivers

  • Живу я здесь
  • 2618
  • 363 / 0
Пути надо было б поправить и имя класса
Код
$cpath = JPATH_ADMINISTRATOR.'/components/com_jshopping/controllers';
if(!class_exists('JshoppingControllerOrders')) require_once($cpath.'/orders.php');
$config = array('base_path' => $cpath);
$ctrl = new JshoppingControllerOrders($config);
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

sivers

  • Живу я здесь
  • 2618
  • 363 / 0
А дальше надо смотреть. Например, если используются какие-то гет/пост/реквест параметры, то перед созданием объекта контроллера эти параметры можно вписать в $_GET/$_POST/$_REQUEST, чтоб он их прочитал. Но это если нужны.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

kit2m2

  • Живу я здесь
  • 3374
  • 276 / 0
  • Беру сайты на полное сопровождение
Так получается, что названия контроллера должны быть одинаковыми и имя класса тоже?
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

sivers

  • Живу я здесь
  • 2618
  • 363 / 0
Так получается, что названия контроллера должны быть одинаковыми и имя класса тоже?

Нет, не совсем. Вам сперва надо знать какой именно контроллер вам нужен. Т.е. его класс. Если есть только объект и вы точно не знаете его класс, то можно посмотреть через print_r() или get_class() (напр. get_class($this); ).
Далее ищите в каком файле папки /controllers/ этот класс определен.
затем (это уже касательно кода) делаете проверку на предмет того, что класс уже подгружен и подключаете файл, только если класс еще не подгружался (т.е. не существует):
Код
if(!class_exists('JshoppingControllerOrders')) require_once($cpath.'/orders.php');
Ну и далее естественно, что создаете объект именно с тем классом, который проверяли:
Код
$ctrl = new JshoppingControllerOrders($config);
Если у вас в одном файле объявлено несколько классов, то проверяйте тот, который вам нужнее. И для него же new. Но в дистрибутиве в orders.php объявлен только один класс.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

kit2m2

  • Живу я здесь
  • 3374
  • 276 / 0
  • Беру сайты на полное сопровождение
Наверно не смогу разобраться самостоятельно (не достаточно знаний). Поможете (не бесплатно)?

Есть код который нужно перенести (из контроллера в плагин), есть заготовка плагина...
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

sivers

  • Живу я здесь
  • 2618
  • 363 / 0
Могу попробовать
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Есть код который нужно перенести (из контроллера в плагин), есть заготовка плагина..
Можно и мне, чисто для интереса.
*

kit2m2

  • Живу я здесь
  • 3374
  • 276 / 0
  • Беру сайты на полное сопровождение
Могу попробовать
Скайп StudioDK-WEB

Контроллер подключился
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

kit2m2

  • Живу я здесь
  • 3374
  • 276 / 0
  • Беру сайты на полное сопровождение
Короче пошли другим путем... Так тоже было бы реально, но тогда нужно было бы подключать и view и model (в моем случае...)

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

Все работает, уже проверено.
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться