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

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
Товарищи, в настройках каждой категории мы можем добавить изображение для этой категории.
И в шаблоне, например блога категории, вывод этого изображения делается вот так:

Код
<?php if ($this->params->get('show_description_image') && $this->category->getParams()->get('image')) : ?>
<img src="<?php echo $this->category->getParams()->get('image'); ?>" alt="<?php echo htmlspecialchars($this->category->getParams()->get('image_alt'), ENT_COMPAT, 'UTF-8'); ?>"/>
<?php endif; ?>

Как то же самое сделать внутри index.php шаблона?

Определять, что  в данный момент отображается категория, я умею:
Код
function showPage($x = array()){ return array_intersect_assoc($x,  $_REQUEST) == $x; }
if (showPage(array('option' => 'com_content', 'view' => 'category'))) { ... }

Но как добраться до остальных параметров категории я пока не знаю.
Заранее спасибо всем, кто может объяснить, как это делается.
« Последнее редактирование: 12.07.2024, 16:11:42 от goga_pgasovav »
*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
Немного продвинулся в этой задаче:

Код
<?php if (showPage(array('option' => 'com_content', 'view' => 'category'))) {

$cat_id = $app->input->getInt('id', 0);
$db = JFactory::getDbo();
$query = $db
    ->getQuery(true)
    ->select($db->quoteName('params'))
    ->from($db->quoteName('#__categories'))
    ->where($db->quoteName('id'). ' = ' .$cat_id);
$db->setQuery($query);
$params = $db->loadObjectList();
var_dump($params);
} ?>

В var_dump() получаю такой объект:

Код
object(stdClass)#878 (1) {
  ["params"]=>
  string(108) "{"category_layout":"","image":"images\/backgrounds\/Bildschirmfoto_2024-06-06_um_191317.png","image_alt":""}"
}

А что делать дальше не знаю   !!!???!!!

*

fbr

  • Завсегдатай
  • 1689
  • 211 / 7
попробуйте так:
$params = json_decode($params);
$my_img = $params->image;
*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
попробуйте так:
$params = json_decode($params);
$my_img = $params->image;
Спасибо! Пробовал json_decode, ничего не выводит.

Попробовал ещё explode, предварительно заменив LoadObject на LoadResult в getDbo() запросе.
Код
$param = explode(',', $params);
echo $param[1];

Получаю опять строку:
Код
"image":"images\/backgrounds\/Bildschirmfoto_2024-06-06_um_191317.png"
  :dry:
*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
В итоге домучал до вот такого, на мой взгляд совсем некрасивого, решения:

Код
//get category image
if (showPage(array('option' => 'com_content', 'view' => 'category'))) {
$cat_id = $app->input->getInt('id', 0);
$db = JFactory::getDbo();
$query = $db
    ->getQuery(true)
    ->select($db->quoteName('params'))
    ->from($db->quoteName('#__categories'))
    ->where($db->quoteName('id'). ' = ' .$cat_id);
$db->setQuery($query);
$params = $db->loadResult();
$param = explode(',', $params);
$bckgrnd = str_replace(str_split('\\"'), '', explode(':', $param[1])[1]);
}

Таким образом я получаю из параметра image путь к изображению категории.
Естественно можно получить другой параметр, указав его номер вместо первого '[1]'.

Далее, в нужном месте выводим это изображение в виде фона.
В моём случае я этот фон вешаю на wrapper верхнего уровня, т.е. <body>.

Код
<body<?php if ($bckgrnd != null) { echo ' style="background-image: url('.$bckgrnd.');"'; } ?>>

Возможно кто-то знает, как сделать оптимальнее, и без getDbo(), буду признателен.
*

fbr

  • Завсегдатай
  • 1689
  • 211 / 7
у меня работает вот так
Код
<?php function showPage($x = array()){ 
return array_intersect_assoc($x,  $_REQUEST) == $x;
}
if (showPage(array('option' => 'com_content', 'view' => 'category'))) {

$cat_id = $app->input->getInt('id', 0);
$db = JFactory::getDbo();
$query = $db
    ->getQuery(true)
    ->select($db->quoteName('params'))
    ->from($db->quoteName('#__categories'))
    ->where($db->quoteName('id'). ' = ' .$cat_id);
$db->setQuery($query);
//$_params = $db->loadObjectList();
$_params = $db->loadResult();
var_dump($_params);
$dfd = json_decode($_params);
$myimg = $dfd->image;
echo '<p>' . $myimg . '</p>';
} ?>
*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
Спасибо! Так действительно оптимальнее, хотя я думал как-то обойтись без getDbo().
Итоговый вариант:

Код
function showPage($x = array()){ return array_intersect_assoc($x,  $_REQUEST) == $x; }
if (showPage(array('option' => 'com_content', 'view' => 'category'))) {
    $cat_id = $app->input->getInt('id', 0);
    $db = JFactory::getDbo();
    $query = $db
        ->getQuery(true)
        ->select($db->quoteName('params'))
        ->from($db->quoteName('#__categories'))
        ->where($db->quoteName('id'). ' = ' .$cat_id);
    $db->setQuery($query);
    $params = json_decode($db->loadResult());
    $bckgrnd = str_replace(str_split('\\"'), '', $params->image);
}

str_replace и str_split выполняются для того, чтобы привести в порядок url изображения
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] Вывод значений из custom fields материала в модуле по имени поля

Автор goga_pgasovav

Ответов: 3
Просмотров: 5834
Последний ответ 30.12.2024, 13:22:11
от goga_pgasovav
sp easy image gallery размножает фотки

Автор yalo

Ответов: 0
Просмотров: 1114
Последний ответ 09.12.2024, 23:10:08
от yalo
[Решено] Перестали работать переходы по меню сайта

Автор AlexP750

Ответов: 12
Просмотров: 3754
Последний ответ 06.02.2024, 12:42:26
от AlexP750
Блог | Тайтл, description подкатегории

Автор darkghost

Ответов: 0
Просмотров: 1211
Последний ответ 02.02.2024, 22:25:53
от darkghost
Получить ошибку

Автор KevinSimon

Ответов: 0
Просмотров: 1341
Последний ответ 22.09.2023, 15:20:21
от KevinSimon