Новости 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 Гость просматривают эту тему.
  • 13 Ответов
  • 3342 Просмотров
*

mijsvit

  • Захожу иногда
  • 137
  • 7 / 0
Нужно получить в модуле алиас текущего раздела/категории. Существует глобальная переменная или массив, позволяющая их вывести (чтобы не делать новый запрос)?
Также интересует механизм запросов - нужно сделать свою выборку с базы и получить массив через mysql_fetch_array. Какой функцией оптимальнее задавать запросы в Joomla 1.5?
Спасибо.
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Вот просто выборка данных:
Код: php
$db = & JFactory::getDBO();
$db->setQuery('select * from #__sections');
$rows = $db->loadObjectList();

Вот тебе одиночное значение:
Код: php
$db = & JFactory::getDBO();
$db->setQuery('select alias from #__sections where id = ' . $id);
$alias = $db->loadResult();
*

mijsvit

  • Захожу иногда
  • 137
  • 7 / 0
Спасибо, с запросом разобрался!
Касательно $id - эта переменная только для примера? У меня в модуле она пуста.
Нужно хоть один глобальный идентификатор текущей категории
« Последнее редактирование: 18.05.2009, 23:44:09 от mijsvit »
*

maximator666

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
аналогичный вопрос. Модифицию модуль newsflash, он упорно не желает выводить свой заголовок.
Решил взять заголовок категории. Вот запрос который там есть:

Код
$query = 'SELECT a.*,' .
' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END as slug,'.
' CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END as catslug'.
' FROM #__content AS a' .
' INNER JOIN #__categories AS cc ON cc.id = a.catid' .
' INNER JOIN #__sections AS s ON s.id = a.sectionid' .
' WHERE a.state = 1 ' .
($noauth ? ' AND a.access <= ' .(int) $aid. ' AND cc.access <= ' .(int) $aid. ' AND s.access <= ' .(int) $aid : '').
' AND (a.publish_up = '.$db->Quote($nullDate).' OR a.publish_up <= '.$db->Quote($now).' ) ' .
' AND (a.publish_down = '.$db->Quote($nullDate).' OR a.publish_down >= '.$db->Quote($now).' )' .
' AND cc.id = '. (int) $catid .
' AND cc.section = s.id' .
' AND cc.published = 1' .
' AND s.published = 1' .
' ORDER BY a.ordering';
$db->setQuery($query, 0, $items);
$rows = $db->loadObjectList();

return $rows;


Какой запрос мне нужно дописать чтобы получить название текущей категории?
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
таблица категорий в этом запросе уже подключена, связь (AND cc.id = '. (int) $catid .) на месте, так что просто брать cc.title и выводить
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

maximator666

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
так, но на выходе у нас $rows. как с него тогда правильно вытянуть cc.title ?
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
так, но на выходе у нас $rows. как с него тогда правильно вытянуть cc.title ?
foreach ($rows as $row) {
echo 
$row->cat_title;
}

но обязательно в самом селекте делайте алиас для заголовка категории (у меня в примере cat_title, ибо у нас в нескольких таблицах получается поле title)
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

maximator666

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
что-то не так.. переменная пустая. мож неправильно алиас прицепил?! скиньте плиз строку с кодом
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
скиньте плиз строку с кодом
не уж, это вы показывайте ваш код :)
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

maximator666

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
я толком синтаксиса не знаю) экспериментирую:) потомувидимои не получается. подскажите плз как правильно алиас прицепить) напишите плз)
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
SELECT id AS catid - это алиас данного поля (когда в выбираемых таблицах встречается несколько одинаковых названий)
INNER JOIN #__categories AS cc ON cc.id = a.catid - это подключение с левой стороны дополнительной таблицы к запросу
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

maximator666

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Добавил - вообще вся инфа модуля не выводится. Видимо снова я чёт не то прописал в запрос crazy! Вот что вышло :

Код
$query = 'SELECT a.*,' .
' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END as slug,'.
' CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END as catslug'.
                       
' FROM #__content AS a' .
' INNER JOIN #__categories AS cc ON cc.id = a.catid' .
                        ' INNER JOIN #__categories AS cc ON cc.title = a.cattitle' .
                        ' INNER JOIN #__sections AS s ON s.id = a.sectionid' .


' WHERE a.state = 1 ' .
($noauth ? ' AND a.access <= ' .(int) $aid. ' AND cc.access <= ' .(int) $aid. ' AND s.access <= ' .(int) $aid : '').
' AND (a.publish_up = '.$db->Quote($nullDate).' OR a.publish_up <= '.$db->Quote($now).' ) ' .
' AND (a.publish_down = '.$db->Quote($nullDate).' OR a.publish_down >= '.$db->Quote($now).' )' .
' AND cc.id = '. (int) $catid .
                        ' AND cc.title = '. $cattitle .
' AND cc.section = s.id' .
' AND cc.published = 1' .
' AND s.published = 1' .
' ORDER BY a.ordering';
$db->setQuery($query, 0, $items);
$rows = $db->loadObjectList();

return $rows;

Ух и поддастал я уже наверное:)
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
1 - два раза подключена таблица категорий (убери одну строку)
INNER JOIN #__categories AS cc ON cc.id = a.catid
2 - в SELECT нет выборки данных из других таблиц, отличных от content (которая с алиасом A)
Код: php
$query = 'SELECT a.*, cc.title AS cattitle, ' .
' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END as slug,'.
' CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END as catslug'.
' FROM #__content AS a' .
' INNER JOIN #__categories AS cc ON cc.id = a.catid' .
                        ' INNER JOIN #__sections AS s ON s.id = a.sectionid' .
' WHERE a.state = 1 ' .
($noauth ? ' AND a.access <= ' .(int) $aid. ' AND cc.access <= ' .(int) $aid. ' AND s.access <= ' .(int) $aid : '').
' AND (a.publish_up = '.$db->Quote($nullDate).' OR a.publish_up <= '.$db->Quote($now).' ) ' .
' AND (a.publish_down = '.$db->Quote($nullDate).' OR a.publish_down >= '.$db->Quote($now).' )' .
' AND cc.id = '. (int) $catid .
                        ' AND cc.title = '. $cattitle .
' AND cc.section = s.id' .
' AND cc.published = 1' .
' AND s.published = 1' .
' ORDER BY a.ordering';
$db->setQuery($query, 0, $items);
$rows = $db->loadObjectList();

return $rows;
вот как то так
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

maximator666

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
супер.спасибо) :D
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Параметры материала вызвать в модуле.

Автор SnowB

Ответов: 1
Просмотров: 2018
Последний ответ 07.07.2011, 19:56:32
от Виталик
[Решено] Как в модуле узнать его заголовок.

Автор Виталик

Ответов: 0
Просмотров: 1867
Последний ответ 08.01.2011, 18:47:32
от Виталик
Установить hook на запросы к БД

Автор enshtein

Ответов: 21
Просмотров: 4989
Последний ответ 03.09.2009, 13:32:03
от Physicist
Секция <head> в модуле

Автор salikoff

Ответов: 10
Просмотров: 2833
Последний ответ 08.05.2009, 01:35:46
от userxp
По содержимому или META статьи в одном модуле -> отобразить статью с теми же META или содержимым в д

Автор Sergei_Shablovsky

Ответов: 0
Просмотров: 1718
Последний ответ 09.02.2009, 09:07:43
от Sergei_Shablovsky