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

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Задача:
При наведении на фото менять его на второе по порядку в карточке товара.

Реализация:

Код: php
<?php
$jshopConfig = JSFactory::getConfig();
$db = JFactory::getDBO();
$Query = "SELECT image_name FROM #__jshopping_products_images WHERE product_id = {$product->product_id} LIMIT 2";
$db->setQuery($Query);
$prodimg = $db->loadObjectList();
if (count($prodimg)){
foreach($prodimg as $primg) {
print "<a title='{$product->name}' class='screenshot lightbox' href='{$product->product_link}'>";
print "<img src='{$jshopConfig->image_product_live_path}/thumb_{$primg->image_name}'/></a>";

}
}
else {
print "<a href='{$product->product_link}'><img src='{$jshopConfig->image_product_live_path}/noimage.gif'/></a>";
}
?>
Код: javascript
<script>
jQuery(document).ready(function(){
   jQuery("div.three_img").each(function(index){jQuery(this).find("a.screenshot img:first").css("display","block");});
   jQuery("div.three_img").hover(
   function()
   {
      jQuery(this).find("a.screenshot img:last").css("display","block");
      jQuery(this).find("a.screenshot img:first").css("display","none");
   },
   function()
   {
   jQuery(this).find("a.screenshot img:first").css("display","block");
      jQuery(this).find("a.screenshot img:last").css("display","none");
   });
});
</script>

Проблема:
Оно меня с ума сводит. Я не понимаю каким образом из трех-четырех фоток выбираются изображения. То нормально, по порядку, а то в разнобой. Особенно если надумать поменять фотографии в карточке товара.
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Не будь паразитом, сделай что-нибудь самостоятельно!
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Задача:
При наведении на фото менять его на второе по порядку в карточке товара.

Проблема:
Оно меня с ума сводит.

 ;D ;D ;D


так а проблема в javascript? или все таки в MySQL?
« Последнее редактирование: 24.04.2015, 23:13:47 от dmitry_stas »
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Проблема не в скрипте, проблема в выборке. В самом списке два рисунка получается, и отображаются они как и положено - сначала первый в очереди, при наведении - второй. Но вот в саму выборку попадают они по совершенно непонятному принципу.

Кстати, аналогичная проблема была и в одном модуле от смартаддонз для показа товаров - там рисунок брался не первый по порядку, а почему-то последний. Но не всегда.

Там я убрала их функцию вывода и заменила на что-то свое. Вот только не помню на что
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
т.е. порядок выборки меняется каждый раз? а если добавить в запрос
Код: sql
ORDER BY ordering ASC
?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Если пишу
Код: sql
$Query = "SELECT image_name FROM #__jshopping_products_images WHERE product_id = {$product->product_id} LIMIT 2 ORDER BY ordering ASC";

получаю 1064-ю
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Код: sql
ORDER BY ordering ASC LIMIT 2
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Святой! Святой! /*падает на колени и прикидывает, какого бестолкового новичка можно по-быстрому принести в жертву*/

Работает  ;D


Получается, порядок имеет значение... /*Ушла читать по БД MySQL*/
« Последнее редактирование: 25.04.2015, 08:11:51 от Taatshi »
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
А вот ходят слухи... Что в Joomla, начиная с 2.5 вроде, существует механизм, с помощью которого можно составлять запросы в произвольном порядке. Примерно так
Код: php
$db = JFactory::getDBO();		
$Query = $db->getQuery(true);
$Query->select('image_name');
$Query->from('#__jshopping_products_images');
$Query->where('product_id = '. $pid);
$Query->order('ASC');
$Query->limit('2');
$db->setQuery($Query);

но что-то он у меня не запустился...
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Святой! Святой! /*падает на колени и прикидывает, какого бестолкового новичка можно по-быстрому принести в жертву*/

не надо  ;D и так обижаются :)

но что-то он у меня не запустился...

$Query->order('ordering ASC');
$Query->limit('2');
$db->setQuery($Query, $offset = 0, $limit = 2);
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Дык... некому ж будет обижаться  ;)

Код: php
$jshopConfig = JSFactory::getConfig();
$db = JFactory::getDBO();

$pid = $product->product_id;
$Query = $db->getQuery(true);
$Query->select('image_name');
$Query->from('#__jshopping_products_images');
$Query->where('product_id = '.$pid);
$Query->order('ASC');
$db->setQuery($Query, $offset = 0, $limit = 2);
$prodimg = $db->loadObjectList();

1064  :(
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Все, все, понятно...

пропустила

Код: php
$Query->order('ordering ASC');

УРА)
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

samogon13

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
 :Dв какой файлик добавлять код
« Последнее редактирование: 24.06.2015, 00:53:03 от samogon13 »
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
/templates/вашшаблон/html/com_jshopping/list_products/product.php
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

Bozhkov2

  • Захожу иногда
  • 427
  • 12 / 0
Здравствуйте. А можно как-то пронумеровать фото (определить второе)? Мне для второй фотки нужно класс прицепить, чтоб в CSS не писать стили для :last-child
*

kit2m2

  • Живу я здесь
  • 3374
  • 276 / 0
  • Беру сайты на полное сопровождение
Можно так:
Код
<?php
$jshopConfig = JSFactory::getConfig();
$db = JFactory::getDBO();
$Query = "SELECT image_name FROM #__jshopping_products_images WHERE product_id = {$product->product_id} LIMIT 2";
$db->setQuery($Query);
$prodimg = $db->loadObjectList();
if (count($prodimg)){
$i = 1;
foreach($prodimg as $primg) {
print "<a title='".$product->name."' class='screenshot-".$i++." lightbox' href='".$product->product_link."'>";
print "<img src='".$jshopConfig->image_product_live_path."/thumb_".$primg->image_name."'/></a>";
}
}
else {
print "<a href='".$product->product_link."'><img src='".$jshopConfig->image_product_live_path."/noimage.gif'/></a>";
}
?>
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

Bozhkov2

  • Захожу иногда
  • 427
  • 12 / 0
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
а зачем еще один запрос? они ж и так уже есть в выборке. я честно говоря не понял что нужно получить
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Bozhkov2

  • Захожу иногда
  • 427
  • 12 / 0
я честно говоря не понял что нужно получить
Нужно к второму фото добавить класс.Для этого нужно как-то его обозначить для if. Я предыдущий совет использовал так
Код
<?php if(i++ == 2) echo "class" ?> 
У вас есть более рациональное решение?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Код
foreach($images as $key=>$image) {
    if ($key == 1) { // 1 - это второе изображение, потому что отсчет идет с 0
    }
}
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Bozhkov2

  • Захожу иногда
  • 427
  • 12 / 0
foreach($images as $key=>$image) {
Я пробовал foreach($prodimg as $k=> $primg) до того как задать вопрос. Не работает так.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
не вижу ни одной причины чтобы это не работало )) ну разве что вы делаете цикл в цикле и у вас где то $k уже выше используется, и все ломает. но честно говоря не особо есть разница foreach или for, я написал именно про выборку изображений, повторный запрос которого нужно избежать (ну если он конечно повторный, а то может это просто для примера). а какой там именно цикл будет - не очень важно. мне foreach просто более лаконичным кажется, но можно и for легко
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Bozhkov2

  • Захожу иногда
  • 427
  • 12 / 0
не вижу ни одной причины чтобы это не работало )) ну разве что вы делаете цикл в цикле и у вас где то $k уже выше используется, и все ломает.
Нет этого. Для изображений один foreach.
но честно говоря не особо есть разница foreach или for
А пи чем тут for? О нем вообще нигде речь не шла, чего вы его упомянули?
повторный запрос которого нужно избежать[/quote]
Вот мой код, который решил мою задачу
Код
<?php if (count($prodimg)) {?>
<?php $i = 1; foreach($prodimg as $primg) {?>
<div class="uk-background-cover uk-position-cover"<?php if( $i++ == 2) print ' hidden id="second-img_'.$product->product_id.'"' ?> data-src="<?php print $jshopConfig->image_product_live_path."/".$size.$primg->image_name ?>" data-uk-img></div>
<?php }?>
<?php } else {?>
<div class="uk-background-cover uk-position-cover uk-transition-opaque uk-transition-scale-up" data-src="/components/com_jshopping/templates/balou_uikit3/images/noimage.gif" data-uk-img></div>
<?php }?>
И я только что обнаружил другую проблему, изображения выводятся в обратном порядке (сначала второе, потом первое).
*

kit2m2

  • Живу я здесь
  • 3374
  • 276 / 0
  • Беру сайты на полное сопровождение
Просто сделайте так:
Код
<?php
$jshopConfig = JSFactory::getConfig();
$db = JFactory::getDBO();
$Query = "SELECT image_name FROM #__jshopping_products_images WHERE product_id = {$product->product_id} LIMIT 2";
$db->setQuery($Query);
$prodimg = $db->loadObjectList();
if (count($prodimg)){
$i = 1;
foreach($prodimg as $primg) {
print "<a title='".$product->name."' class='screenshot lightbox' href='".$product->product_link."'>";
print "<img id='img-".$i++."_".$product->product_id."' src='".$jshopConfig->image_product_live_path."/thumb_".$primg->image_name."'/></a>";
}
}
else {
print "<a href='".$product->product_link."'><img src='".$jshopConfig->image_product_live_path."/noimage.gif'/></a>";
}
?>

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

Bozhkov2

  • Захожу иногда
  • 427
  • 12 / 0
Просто сделайте так:
Код
<img id='img-".$i++."_".$product->product_id."'
Я не могу так сделать. Мне нужно вписать во вторую картинку "hidden"
*

Bozhkov2

  • Захожу иногда
  • 427
  • 12 / 0
А с порядком вывода непонятки. Тут выше уже такое описывали. Я перезалил в товар фотки, — "прошло".
P.S. Не, не прошло. Первая стала первой, а место второй - третья  *ОХ-Х-Х*
« Последнее редактирование: 12.01.2020, 21:01:42 от Bozhkov2 »
*

kit2m2

  • Живу я здесь
  • 3374
  • 276 / 0
  • Беру сайты на полное сопровождение
Я не могу так сделать. Мне нужно вписать во вторую картинку "hidden"
А так нельзя сделать?
Код
$img_hidden = "";
if($i++ == 2){
   $img_hidden = "hidden";
}

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

kit2m2

  • Живу я здесь
  • 3374
  • 276 / 0
  • Беру сайты на полное сопровождение
Ну или CSS-стилями прописать?

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

Bozhkov2

  • Захожу иногда
  • 427
  • 12 / 0
А так нельзя сделать?
Код
$img_hidden = "";
if($i++ == 2){
   $img_hidden = "hidden";
}

И вставить переменную куда нужно
Спасибо, что пытаетесь помочь. Суть я понял. Но вписать это без ошибок не могу  :(.
Что не так?
Код
<?php $i = 1; $img_hidden = ""; if($i++ == 2){ $img_hidden = "hidden";
} foreach($prodimg as $primg) {?>
Для первой картинки i == 2, для второй  i == 3.
Ну или CSS-стилями прописать?
Нет, мне нужно сделать на uikit3 при помощи его возможностей без доп CSS.
*

kit2m2

  • Живу я здесь
  • 3374
  • 276 / 0
  • Беру сайты на полное сопровождение
Это условие нужно в цикле прописать, а не до него
Код
if($i++ == 2){
   $img_hidden = "hidden";
}
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вывод товаров из всех подкатегорий на странице категории

Автор Faina

Ответов: 355
Просмотров: 83111
Последний ответ 11.10.2025, 08:48:34
от kit2m2
[Решено] Вывод 3-х первых картинок в списке товаров категории

Автор rudoy24

Ответов: 30
Просмотров: 15231
Последний ответ 19.07.2024, 11:41:28
от juleczka
Определить расширение. pop_description для списка товаров

Автор Alex_gs

Ответов: 3
Просмотров: 3584
Последний ответ 24.09.2023, 12:18:34
от kit2m2
[Решено] Увеличение выбора покупаемых товаров + -

Автор Aspik

Ответов: 216
Просмотров: 58408
Последний ответ 02.08.2023, 21:31:25
от kit2m2
Шаблон фильтрации товаров

Автор Prevergenec

Ответов: 1
Просмотров: 3458
Последний ответ 23.01.2023, 18:13:43
от kit2m2