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

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Всё! Не трогайте этот параметр!

Теперь в helper.php в после

Код: php
if (!$params->get('image'))
{
    $item->introtext = preg_replace('/<img[^>]*>/', '', $item->introtext);
}

добавьте

Код: php
preg_match('/(img|src)=("|\')[^"\'>]+/i', $item->introtext, $matches);
print_r($matches);

Что выдает?
*

Grigory S.

  • Давно я тут
  • 658
  • 70 / 0
  • (с)
Всё! Не трогайте этот параметр!

Теперь в helper.php в после

Код: php
if (!$params->get('image'))
{
    $item->introtext = preg_replace('/<img[^>]*>/', '', $item->introtext);
}

добавьте

Код: php
preg_match('/(img|src)=("|\')[^"\'>]+/i', $item->introtext, $matches);
print_r($matches);

Что выдает?


Код
Array ( [0] => src="/images/sampledata/fruitshop/apple.jpg [1] => src [2] => " ) 
Не задав правильный вопрос, невозможно получить правильный ответ.
Для "спасибок" существует кнопочка "+".
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Ну вот, наконец-то! Картинка хранится в $matches[0] - можете её изменять. Сделайте в helper.php отдельную функцию и в ней манипулируйте.
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Ох сколько понаписывали!
Авто вот это: $images = json_decode($item->images);
выводится если изображение вставленно тут:
Спойлер
[свернуть]
если вставлен в вступительный текст или в полный то только регулярками..
в регулярках я не силен.. попробуйте так:

preg_match_all( '|src=\"(.*?)\"|is', $item->introtext, $result );
print_r( $result[1] );
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Ну вот, наконец-то! Картинка хранится в $matches[0] - можете её изменять. Сделайте в helper.php отдельную функцию и в ней манипулируйте.
А как же обновления?)
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Код: php
$images = json_decode($item->images);
По идее да, просто ТС писал, что у него не выводится. Если этот код работает, то лучше его конечно использовать ;)

Цитировать
А как же обновления?)
Это все надо в своем модуле делать ::) Этот можно взять за основу.
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Это все надо в своем модуле делать ::) Этот можно взять за основу.
ну с этого надо было начинать ))))
*

Grigory S.

  • Давно я тут
  • 658
  • 70 / 0
  • (с)
Спасибо за ответы, разжевали :) php весчь :) Только ещё подскажите как регулярку допилить чтобы получить url вида /images/sampledata/fruitshop/apple.jpg, а не как сейчас src="/images/sampledata/fruitshop/apple.jpg :)
Не задав правильный вопрос, невозможно получить правильный ответ.
Для "спасибок" существует кнопочка "+".
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Спасибо за ответы, разжевали :) php весчь :) Только ещё подскажите как регулярку допилить чтобы получить url вида /images/sampledata/fruitshop/apple.jpg, а не как сейчас src="/images/sampledata/fruitshop/apple.jpg :)
Код: php
$images = json_decode($item->images);
print_r($images);

Этот код по идее тоже должен сработать. Проверьте.
*

Grigory S.

  • Давно я тут
  • 658
  • 70 / 0
  • (с)
Код: php
$images = json_decode($item->images);
print_r($images);

Этот код по идее тоже должен сработать. Проверьте.

Этот выдает
Код
stdClass Object ( [image_intro] => [float_intro] => [image_intro_alt] => [image_intro_caption] => [image_fulltext] => [float_fulltext] => [image_fulltext_alt] => [image_fulltext_caption] => )
Не задав правильный вопрос, невозможно получить правильный ответ.
Для "спасибок" существует кнопочка "+".
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Код: php
$images = json_decode($item->images);
print_r($images);

Этот код по идее тоже должен сработать. Проверьте.
Дима этот код не сработает! человек вставил картинку не в  "Изображение для вступительного текста материала", а в вступительный текст материала!
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Дима этот код не сработает! человек вставил картинку не в  "Изображение для вступительного текста материала", а в вступительный текст материала!
Если так, то да - не сработает.
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Спасибо за ответы, разжевали :) php весчь :) Только ещё подскажите как регулярку допилить чтобы получить url вида /images/sampledata/fruitshop/apple.jpg, а не как сейчас src="/images/sampledata/fruitshop/apple.jpg :)
перечитайте это сообщение http://joomlaforum.ru/index.php/topic,280253.msg1393312.html#msg1393312
*

Grigory S.

  • Давно я тут
  • 658
  • 70 / 0
  • (с)
перечитайте это сообщение http://joomlaforum.ru/index.php/topic,280253.msg1393312.html#msg1393312
Извиняюсь, Просмотрел :(
Теперь выводится как нужно url :)

Еще раз спасибо всем кто помог!
Не задав правильный вопрос, невозможно получить правильный ответ.
Для "спасибок" существует кнопочка "+".
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Извиняюсь, Просмотрел :(
Теперь выводится как нужно url :)

Еще раз спасибо всем кто помог!
ниче сейчас начнется самое интересное ) мне интересно как вы будете делать crop и выводить сразу его в нужном размере )
*

Grigory S.

  • Давно я тут
  • 658
  • 70 / 0
  • (с)
ниче сейчас начнется самое интересное ) мне интересно как вы будете делать crop и выводить сразу его в нужном размере )
Утро вечера мудренее :) Завтрашний день будет убит именно на это :)
Не задав правильный вопрос, невозможно получить правильный ответ.
Для "спасибок" существует кнопочка "+".
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Утро вечера мудренее :) Завтрашний день будет убит именно на это :)
Лучше сделайте другой модуль на основе этого. А то действительно при обновлении все слетит.
*

Grigory S.

  • Давно я тут
  • 658
  • 70 / 0
  • (с)
Лучше сделайте другой модуль на основе этого. А то действительно при обновлении все слетит.
Можно попробовать) Жалко в Вашем блоге нет статей про создание модулей ) Но зато много чего вкусного )
Не задав правильный вопрос, невозможно получить правильный ответ.
Для "спасибок" существует кнопочка "+".
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Утро вечера мудренее :) Завтрашний день будет убит именно на это :)
я бы вам со старта советовал пихать изображение туда куда я показал на картинке, и написать плагин который будет следить за сохранением материала, и брать из того поля картинку, после этого он её будет кропать..
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Можно попробовать) Жалко в Вашем блоге нет статей про создание модулей ) Но зато много чего вкусного )
Вообщето есть ) у меня даже сервис есть что бы сгенерить каркас модуля... и не только
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
я бы вам со старта советовал пихать изображение туда куда я показал на картинке, и написать плагин который будет следить за сохранением материала, и брать из того поля картинку, после этого он её будет кропать..
Понравился скрипт с Хабра http://habrahabr.ru/company/mailru/blog/201010/
*

Grigory S.

  • Давно я тут
  • 658
  • 70 / 0
  • (с)
Жалко что JImage кропает без масштабирования...собственно вот что вышло, без плагинов пока)
Код: php
			preg_match( '|src=\"(.*?)\"|is', $item->introtext, $images_array );
$imgsrc = $images_array[1];
if ($imgsrc){
$h = 100;
$w = 100;
$path_parts = pathinfo($imgsrc);
   $file_thumb = $path_parts['dirname'].'/'.$path_parts['filename'].'_'.$h.'_'.$w.'.'.$path_parts['extension'];
if (!file_exists($file_thumb) || filemtime($file_thumb) <= filemtime($imgsrc)){
$image = new JImage($imgsrc);
$new_image = $image->crop($w, $h, true, JImage::SCALE_FILL );
$properties = $image->getImageFileProperties($imgsrc);
switch ($properties->mime){
case 'image/jpeg':
$type = IMAGETYPE_JPEG;
break;
case 'image/png':
$type = IMAGETYPE_PNG;
break;
case 'image/gif':
$type = IMAGETYPE_GIF;
break;
}
$new_image->toFile($file_thumb, $type);
   }
$item->image_crop = '<img src="'.$file_thumb.'" />';
}
« Последнее редактирование: 24.09.2015, 08:46:10 от kamaz6141 »
Не задав правильный вопрос, невозможно получить правильный ответ.
Для "спасибок" существует кнопочка "+".
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
cropResize() используйте..
и да вы понимаете что такой код это не гуд? ибо этот код будет для каждого зашедшего на сайт будет это выполняться.. думаю будут огромные проблемы с производительностью..
*

Grigory S.

  • Давно я тут
  • 658
  • 70 / 0
  • (с)
cropResize() используйте..
и да вы понимаете что такой код это не гуд? ибо этот код будет для каждого зашедшего на сайт будет это выполняться.. думаю будут огромные проблемы с производительностью..
Ну что код не гуд я уверен, как никак опыта работы с php очень мало) Я экспериментирую, так сказать)
И какими путями идти? а точнее куда копать, чтобы код выполнялся один раз при кропе? :(
Не задав правильный вопрос, невозможно получить правильный ответ.
Для "спасибок" существует кнопочка "+".
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Ну что код не гуд я уверен, как никак опыта работы с php очень мало) Я экспериментирую, так сказать)
И какими путями идти? а точнее куда копать, чтобы код выполнялся один раз при кропе? :(
Вариант 1: ставите изображение в поле "Изображение для вступительного текста материала" то что под редактором, пишите плагин который срабатывает  на событие при сохранении  материала, а дальше получаем изображение из этого поля (это лучший вариант)
Вариант 2: по вашему коду сохранять кропнутое изображение в определенную папку, а дальше перез вашим кодом проверять или на сервере существует такой файл... если нет то кропаем, если есть то выводим существующий!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Подключение сторонних библиотек в модуле J4

Автор denism300

Ответов: 6
Просмотров: 1172
Последний ответ 30.12.2022, 19:58:09
от denism300
Рекурсия в модуле

Автор alpha_ru

Ответов: 19
Просмотров: 2291
Последний ответ 20.07.2017, 19:25:11
от passer
sql запрос для вывода правильной даты

Автор Frics

Ответов: 4
Просмотров: 1902
Последний ответ 04.07.2017, 14:17:22
от SeBun
Кнопка в редактор и парсинг вывода - это два расширения писать?

Автор AntonOdn

Ответов: 2
Просмотров: 1420
Последний ответ 22.09.2016, 07:36:34
от AntonOdn
Дополнительное поле в модуле

Автор paskal

Ответов: 21
Просмотров: 3050
Последний ответ 27.08.2016, 00:59:55
от robert