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

Glog

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
Подскажите как правильно выводить данные из формы Subform form field type

я вывожу так,
Код
echo $param->fieldname->fieldname1->example_text ;
echo $param->fieldname->fieldname1->example_textarea;

пробовал в цикле
Код
<?php foreach ($params as $item) : ?>
  <a href="<?php echo $item->fieldname1->example_textarea; ?>"><?php echo $item->fieldname1->example_text ;?></a>
 
<?php endforeach; ?>

 но когда добавляю еще одну форму  то
Код
fieldname1
меняется на
Код
fieldname0
и в следующей формы
Код
fieldname2
и тд.
как правильно выводить все значения с формы в цикле?
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
так?

Код: php
<?php foreach ($params as $i => $item) :
  $property = 'fieldname' . $i;
?>
  <a href="<?php echo $item->{$property}->example_textarea; ?>"><?php echo $item->{$property}->example_text ;?></a>
<?php endforeach; ?>
*

Glog

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
так?

Код: php
<?php foreach ($params as $i => $item) :
  $property = 'fieldname' . $i;
?>
  <a href="<?php echo $item->{$property}->example_textarea; ?>"><?php echo $item->{$property}->example_text ;?></a>
<?php endforeach; ?>

не выводит ничего..

я еще пробовал такой вариант, выдает только  00000
Код
<?php for($i=1; $i <=10; $i++)
 echo $param->fieldname->fieldname+$i->example_textarea;?>

а так сервер возвращает ошибку HTTP ERROR 500
Код
<?php for($i=1; $i <=10; $i++)
 echo $param->fieldname->'fieldname'.$i->example_textarea; ?>


*

Glog

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
получилось таким способом
Код
  <?php for($i=0; $i <=10; $i++){
$key = 'fieldname'.$i;
echo '<a href="'.$param->fieldname->$key->example_textarea.'">'.$param->fieldname->$key->example_text.'</a><br/>';

}   ?>
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Ну как я им предлагал, только без {}. Странно, что не сработало с {}. Можно ещё так попробовать
Код: php
$param->fieldname->{'fieldname' . $i}

https://stackoverflow.com/questions/1147937/php-curly-brace-syntax-for-member-variable/1147942#1147942
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
называется, встретились два мастера запутывания кода :)
нагляднее всего вот так будет, имхо:

Код
foreach ($params[fieldname] as $i) : // разбираем объект с клонированными элементами
$param1=$i->example_text;
$param2=$i->example_textarea;
endforeach;
*

Glog

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
Ну как я им предлагал, только без {}. Странно, что не сработало с {}. Можно ещё так попробовать
Код: php
$param->fieldname->{'fieldname' . $i}

https://stackoverflow.com/questions/1147937/php-curly-brace-syntax-for-member-variable/1147942#1147942

Спасибо за помощь!)
*

Glog

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
называется, встретились два мастера запутывания кода :)
нагляднее всего вот так будет, имхо:

Код
foreach ($params[fieldname] as $i) : // разбираем объект с клонированными элементами
$param1=$i->example_text;
$param2=$i->example_textarea;
endforeach;

Спасибо так действительно удобнее)

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

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Объект в цикл да вы суровы =) с ограничением
Код: php
$array = (array)$params->fieldname;
$i = 1;
foreach ($array as $key => $object) {
if ($i == 10) {
break;
}
$i++;
}
« Последнее редактирование: 31.05.2017, 23:32:55 от Septdir »
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
инициализируете счетчик до объявления цикла
внутри цикла его увеличиваете и проверяете на достижение нужного значения и делаете выход через break;
Код
$count=0;
foreach ($params[fieldname] as $i) : // разбираем объект с клонированными элементами
$param1=$i->example_text;
$param2=$i->example_textarea;
        $count++;
        if ($count==10) break;
endforeach;
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Код: php
$x = 10; // максимальное кол-во выводимых ссылок, вместо жесткого значения можно подставлять значение параметра из вашего расширения
foreach ($params[fieldname] as $i) : // разбираем объект с клонированными элементами
if (!$x) break;
$param1=$i->example_text;
$param2=$i->example_textarea;
$x--;
endforeach;

ну и ессно, как предложил Septdir, объект в массив запихнуть, но если ограничится десятком итераций, то можно и с объектом, а то возможно он еще настолько тяжел окажется, что больше времени на его перевод в массив уйдет, нежели на его перебор целиком
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Septdir, я так понимаю, что это синоним ВСЕГДА? :)
Код
if ($i = 10) {
Упс, и ведь не первый раз.
Кстати говоря насколько я помню subform после сохранения в json массив загоняет. И массив там изначально.  Хотя я уже давно его не юзал.
« Последнее редактирование: 31.05.2017, 23:35:32 от Septdir »
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

Glog

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
Код: php
$x = 10; // максимальное кол-во выводимых ссылок, вместо жесткого значения можно подставлять значение параметра из вашего расширения
foreach ($params[fieldname] as $i) : // разбираем объект с клонированными элементами
if (!$x) break;
$param1=$i->example_text;
$param2=$i->example_textarea;
$x--;
endforeach;

ну и ессно, как предложил Septdir, объект в массив запихнуть, но если ограничится десятком итераций, то можно и с объектом, а то возможно он еще настолько тяжел окажется, что больше времени на его перевод в массив уйдет, нежели на его перебор целиком

Спасибо!
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
А чего все выдумывают? Есть же лаконичное решение :)

Код: php
<?php foreach ($params as $i => $param) : ?>
  <a href="<?php echo $param->{'fieldname' . $i}->example_textarea; ?>"><?php echo $param->{'fieldname' . $i}->example_text ;?></a>
<?php endforeach; ?>
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
а если внутри $params 20000 записей - все 20000 перебираться будут?
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Ну если у тебя предполагается такое большое количество полей, то такое не в Subform делается.
*

Glog

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
Ну если у тебя предполагается такое большое количество полей, то такое не в Subform делается.

Да действительно, Subform немного не подходит,
что вы посоветуете использовать вместо Subform?

*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Да действительно, Subform немного не подходит,
что вы посоветуете использовать вместо Subform?


Это смотря какая задача. Вполне вероятно что вам вообще лучше простенький компонент сделать, хоть и на фронт будет через модуль выводиться.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

Glog

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
Сейчас задача такая, ввод информации в поля из excel документа (загрузкой документа или копи паст ) есть какие то идеи как это реализовать?. Subform 100% не подходит, изначально не знал что будет такая задача.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вывести дату завершения публикации модуля publish_down

Автор theflame

Ответов: 7
Просмотров: 5029
Последний ответ 06.10.2017, 12:46:30
от NewUsers
Получить данные из поля " file", и передать в файл обработчик

Автор Glog

Ответов: 5
Просмотров: 2045
Последний ответ 01.08.2017, 13:55:40
от Glog
Зависимость модуля от компонента и страницы

Автор Тренд

Ответов: 34
Просмотров: 3960
Последний ответ 16.06.2017, 19:48:39
от dmitry_stas
Вывести вместо id название

Автор web3.0

Ответов: 7
Просмотров: 1365
Последний ответ 25.04.2017, 14:28:52
от web3.0
Ошибка при создании модуля

Автор White_Tiger

Ответов: 7
Просмотров: 2288
Последний ответ 01.02.2016, 14:33:46
от robert