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

Erkin

  • Новичок
  • 1
  • 0 / 0
Привет всем! А как сделать чтоб второй категории не было видно пока не выбириш пунк из первой категории?
« Последнее редактирование: 04.11.2012, 17:56:11 от Erkin »
*

max_1985

  • Давно я тут
  • 611
  • 56 / 0
ADS_2.6.1 Связные поля выбора категории и под категории.
Подчеркиваю, у меня по задаче только родительские категории и под категории, если у Вас 3-4-5 и т. д. вложенные под категории нужно вводить еще <select>`ы и модифицировать скрипт динамического селектбокса.

Изменяем шаблон добавления объявления:
в файле \components\com_adsmanager\views\edit\tmpl\default.php функция function updateFields() примерно 208 строка, между, ну например <!-- titel --> и  <!-- form --> вставляем скрипт

Код
  <!--/*my script*/-->
  <script>
  function dynamicSelect(id1, id2) {

// Сперва необходимо проверить поддержку W3C DOM в браузере

if (document.getElementById && document.getElementsByTagName) {

// Определение переменных, ссылающихся на списки

var sel1 = document.getElementById(id1);
var sel2 = document.getElementById(id2);

// Клонирование динамического списка

var clone = sel2.cloneNode(true);

// Определение переменных для клонированных элементов списка

var clonedOptions = clone.getElementsByTagName("option");

// Вызов функции собирающей вызываемый список

refreshDynamicSelectOptions(sel1, sel2, clonedOptions);

// При изменении выбранного элемента в первом списке:
// вызов функции пересобирающей вызываемый список

sel1.onchange = function() {
refreshDynamicSelectOptions(sel1, sel2, clonedOptions);
}
}
}

// Функция для сборки динамического списка

function refreshDynamicSelectOptions(sel1, sel2, clonedOptions) {

// Удаление всех элементов динамического списка

while (sel2.options.length) {
sel2.remove(0);
}
var pattern1 = /( |^)(select)( |$)/;
var pattern2 = new RegExp("( |^)(" + sel1.options[sel1.selectedIndex].value + ")( |$)");

// Перебор клонированных элементов списка

for (var i = 0; i < clonedOptions.length; i++) {

// Если название класса клонированного option эквивалентно "select"
// либо эквивалентно значению option первого списка

if (clonedOptions[i].className.match(pattern1) ||
clonedOptions[i].className.match(pattern2)) {

// его нужно клонировать в динамически создаваемый список

sel2.appendChild(clonedOptions[i].cloneNode(true));
}
}
}

// Вызов скрипта при загрузке страницы

window.onload = function() {
dynamicSelect("parentcats", "subcats");
}
  </script>
  <!--/*end my script*/-->

идем в файл \components\com_adsmanager\views\edit\view.html.php и меняем функции (не забывайте старые версии файлов сохранить, что бы откатиться можно было)

Код
	function selectCategories($id, $level, $children,&$catid,$root_allowed,$link,$current_cat_only =0) {
if (@$children[$id]) {
foreach ($children[$id] as $row) {
if (($root_allowed == 1)||(!@$children[$row->id])) {
if ($current_cat_only == 0)
{?>
<option class="<?php echo 'cat'.$row->parent;?>" value="<?php echo JRoute::_("$link&catid=".$row->id); ?>" <?php if ($row->id == $catid) { echo "selected='selected'"; } ?>>
<?php echo $level.$row->name; ?>
</option>
<?php
}
else if ($row->id == $catid)
{
echo $level.$row->name;
}
}
$this->selectCategories($row->id, /*убрано что бы не дублировать родительские категории $level.$row->name." >> "*/"", $children,$catid,$root_allowed,$link,$current_cat_only);
}
}
}

function displaySingleCatChooser($ad_id,$conf,$option,$cats,$catid,$itemid)
{

if (($ad_id != "")&&
  file_exists( JPATH_BASE . "/components/com_paidsystem/api.paidsystem.php"))
{
$display_current_cat_only = 1;
$this->selectCategories(0,"",$cats,$catid,$conf->root_allowed,""/*$link*/,$display_current_cat_only);
}
else
{
?>
<script language="JavaScript" type="text/JavaScript">
<!--
function jumpmenu(target,obj,restore){
  eval(target+".location='"+obj.options[obj.selectedIndex].value+"'");
  obj.options[obj.selectedIndex].innerHTML="<?php echo JText::_('ADSMANAGER_WAIT');?>";
}
//-->
</script>

<?php
/*my*/
$parcat=-1;
if ($catid <> 0){
$keys=array_keys($cats);
$count = count($keys);
for ($i = 0; $i < $count; $i++) {
foreach ($cats[$keys[$i]] as $row){
if ($row->id==$catid) $parcat=$row->parent;
}
}

}
?>
<select name="ParentCats" id="parentcats">
<?php
echo "<option class='select' value='select' selected=selected>".JText::_('ADSMANAGER_SELECT_CATEGORY')."</option>";
foreach ($cats[0] as $row) {
$selected='';
if ($row->id == $parcat) $selected= "selected='selected'";
echo '<option value="cat'.$row->id.'" '.$selected.'>'.$row->name.'</option>';
}
?>
  </select>

<select id='subcats' class='adsmanager_required' name='category_choose' onchange="jumpmenu('parent',this)">
<?php

if ((@$ad_id)&&($ad_id != ""))
$link = "index.php?option=com_adsmanager&Itemid=$itemid&task=write&id=$ad_id";
else
$link = "index.php?option=com_adsmanager&Itemid=$itemid&task=write";
/*if ($catid == 0)*/ /* не нужно т.к. при смене род.категории требуется повторно выбрать и под категорию*/
echo "<option class='select' value='select' selected=selected>".JText::_('ADSMANAGER_SELECT_CATEGORY')."</option>";
if (function_exists("selectPaidCategories"))
selectPaidCategories(0,"",$cats,$catid,$conf->root_allowed,$link,0);
else
$this->selectCategories(0,"",$cats,$catid,$conf->root_allowed,$link,0);
?>
</select>
<?php
}
}

Вроде все! Спасибо автору статьи http://www.my-article.net/get/html/select/динамические-выпадающие-списки , тут можно подробнее почитать о технике
сделал все как написано. все получилось, спасибо!
но есть небольшая проблема в IE9 выбрать категорию можно, а под категории вообще не подгружаются
в IE8 IE9 выбрать категорию можно, выбрать под категорию можно, но под категория после загрузки страницы исчезает.
Как исправить в ads 2.6.5
*

webday

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
с вложенностью более 2-х. категорий получилось у кого-то сделать? ?
« Последнее редактирование: 09.11.2012, 22:06:00 от webday »
*

seva3401

  • Осваиваюсь на форуме
  • 34
  • 1 / 1
сделал все как написано. все получилось, спасибо!
но есть небольшая проблема в IE9 выбрать категорию можно, а под категории вообще не подгружаются
в IE8 IE9 выбрать категорию можно, выбрать под категорию можно, но под категория после загрузки страницы исчезает.
Как исправить в ads 2.6.5

а у меня вот проблема почему то...сделал всё как указано, но при добавлении объявления никаких изменений не произошло. обновлял страницу - толку нет. всё так же. сайт telefon.tomsk.ru
помогите, кто знает как решить, пожалуйста, очень бы хотелось заменить стандартный вид добавления...заранее спасибо!
*

max_1985

  • Давно я тут
  • 611
  • 56 / 0
а у меня вот проблема почему то...сделал всё как указано, но при добавлении объявления никаких изменений не произошло. обновлял страницу - толку нет. всё так же. сайт telefon.tomsk.ru
помогите, кто знает как решить, пожалуйста, очень бы хотелось заменить стандартный вид добавления...заранее спасибо!
В админке Количество категорий должно равняться 1
*

seva3401

  • Осваиваюсь на форуме
  • 34
  • 1 / 1
В админке Количество категорий должно равняться 1
а остальное как? т.е. примерно так:?

Категория 1
 - категория 01
 - - подкатегория 01
 - - подкатегория 02
 - - подкатегория 03
 - категория 02
 - - подкатегория 04
 - - подкатегория 05
 - - подкатегория 06
 - категория 03
 - - подкатегория 07
 - - подкатегория 08
 - - подкатегория 09
 - категория 04

а не так как у меня сейчас на сайте:
Категория 1
- подкатегория 1
- подкатегория 2
Категория 2
- подкатегория 3
- подкатегория 4

ага?
*

lovivolnu

  • Захожу иногда
  • 323
  • 8 / 0
делал для адс 2.7
вроде всё сделал правильно.категории и под категории в разных селекторах, но пишет вот такую матюхню
"Warning: Missing argument 6 for AdsmanagerViewEdit::displaySingleCatChooser(), called in ........components/com_adsmanager/views/edit/tmpl/default.php on line 334 and defined in ........components/com_adsmanager/views/edit/view.html.php on line 308
*

GlooM

  • Давно я тут
  • 558
  • 91 / 0
  • AdsManager
lovivolnu, просто в function displaySingleCatChooser($ad_id,$conf,$option,$cats,$catid,$Itemid) уберите $Itemid (и запятую перед ней), ну и в $link тоже сотрите все упоминания )))
*

srg

  • Захожу иногда
  • 209
  • 41 / 1
делал для адс 2.7
вроде всё сделал правильно.категории и под категории в разных селекторах, но пишет вот такую матюхню
"Warning: Missing argument 6 for AdsmanagerViewEdit::displaySingleCatChooser(), called in ........components/com_adsmanager/views/edit/tmpl/default.php on line 334 and defined in ........components/com_adsmanager/views/edit/view.html.php on line 308

в ADS 2.7 сделали (или начали делать) последовательный вывод селектов для вложеных категорий при добавлении объявления, правда у них работает только под ФФ, т.к. лишние option они скрывают как display:hidden, а оно не работает кроме как для ФФ. Пришлось поковырять, что бы для всех браузеров работало.

[вложение удалено Администратором]
*

max_1985

  • Давно я тут
  • 611
  • 56 / 0
Пришлось поковырять, что бы для всех браузеров работало.
Расскажите что делать?
*

srg

  • Захожу иногда
  • 209
  • 41 / 1
Расскажите что делать?
работаем с components\com_adsmanager\views\edit\view.html.php версия ADS 2,7
Еще раз подчеркну эту функцию, видимо, разработчики только доделывают, по этому сохраните свой файл перед заменой на этот (для отката если что).
Функцию autocomplit уже оценили? она видно в админке включается
if ($conf->autocomplete) {тут вызывается}
а вот функция сплитования категорий по селектам в админке не включается (видимо появиться к следующему релизу в 2,7,5 или 2,8 )
if (@$toto == 1){ тут вызывается} // строка 374 в моем файле
по этому пришлось жестко включать её
if (@$toto == 1 || 1){}
после включения все заработает, НО только в ФФ, другие браузеры не понимают скрытия <option> для селектов, в аттаче файл с доделанным скриптом там <option> удаляются и восстанавливаются, по этому все работает. Тестировалось в IE, Opera, FF, а так же тестировал с деревом категорий в 3-и уровня. НО такой момент, дерево должно быть РОВНЫМ, т.е. если 3 уровня, то в каждой ветке должно быть 3 уровня.
Код
cat1 
   cat11
      cat111
cat2
   cat22

работать не будет т.к. юзер выбрав cat2 затем cat22, и упрется в 3ий селект, а он пустой. Селектов 3 т.к. по подсчету скрипта 3 уровня есть в одной из веток.

cat1
   cat11
      cat111
cat2
   cat22
      cat222
а так работать будет норм
Ну этот нюанс, думаю, сами разработчики устранят потом, мне не нужно, у самого 2 уровня только по всему дереву...

Хак тут http://pozitiv-studio.ru/view.html.zip
*

grinat

  • Захожу иногда
  • 356
  • 34 / 2
Интересно сделано. По моему в таких случаях проще перевести все дерево категорий в json, и затем просто циклично по нему проходиться и создавать ветки с select, по крайней мере я так сделал. В этом случае никаких ограничений нет, и решение 100% кроссбраузерное.
*

vitamax

  • Осваиваюсь на форуме
  • 46
  • 2 / 0
работаем с components\com_adsmanager\views\edit\view.html.php версия ADS 2,7
Еще раз подчеркну эту функцию, видимо, разработчики только доделывают, по этому сохраните свой файл перед заменой на этот (для отката если что).
Функцию autocomplit уже оценили? она видно в админке включается
if ($conf->autocomplete) {тут вызывается}
а вот функция сплитования категорий по селектам в админке не включается (видимо появиться к следующему релизу в 2,7,5 или 2,8 )
if (@$toto == 1){ тут вызывается} // строка 374 в моем файле
по этому пришлось жестко включать её
if (@$toto == 1 || 1){}
после включения все заработает, НО только в ФФ, другие браузеры не понимают скрытия <option> для селектов, в аттаче файл с доделанным скриптом там <option> удаляются и восстанавливаются, по этому все работает. Тестировалось в IE, Opera, FF, а так же тестировал с деревом категорий в 3-и уровня. НО такой момент, дерево должно быть РОВНЫМ, т.е. если 3 уровня, то в каждой ветке должно быть 3 уровня.
Код
cat1 
   cat11
      cat111
cat2
   cat22

работать не будет т.к. юзер выбрав cat2 затем cat22, и упрется в 3ий селект, а он пустой. Селектов 3 т.к. по подсчету скрипта 3 уровня есть в одной из веток.

cat1
   cat11
      cat111
cat2
   cat22
      cat222
а так работать будет норм
Ну этот нюанс, думаю, сами разработчики устранят потом, мне не нужно, у самого 2 уровня только по всему дереву...

Хак тут http://pozitiv-studio.ru/view.html.zip

как всё же решить проблему с разной длиной веток?
*

vitamax

  • Осваиваюсь на форуме
  • 46
  • 2 / 0
может в 2.8 эту проблему решили? кто смотрел уже?
*

vitamax

  • Осваиваюсь на форуме
  • 46
  • 2 / 0
Люди, есть же реализация. Нужно только как-то отловить глубину ветки с категорией. Кто уже сталкивался с такой проблемой?
*

ruslanshvedov91

  • Новичок
  • 7
  • 0 / 0
Спасибо за файл view. Помогло с разбивкой на категории, подкатегории и подподкатегории при создании объявления. Можно ли такое провернуть в кратком поиске? Имею в виду - создать дополнительное поле подкатегорий и подподкатегорий?

В 2.8 эта проблема решена.

К сведению, если у кого такое будет. Установил версию 2.8 (с русским переводом), в которой краткий поиск барахлит: какие бы значения не были выставлены в нём - выдаёт в результате все объявления. Проблему решил установкой другой версии (с иностранным языком, но перевод всё равно есть (лично у меня, от AdsManager 2.7).
« Последнее редактирование: 15.04.2013, 22:33:52 от ruslanshvedov91 »
*

adjuster

  • Давно я тут
  • 786
  • 55 / 2
Спасибо за файл view. Помогло с разбивкой на категории, подкатегории и подподкатегории при создании объявления. Можно ли такое провернуть в кратком поиске? Имею в виду - создать дополнительное поле подкатегорий и подподкатегорий?

В 2.8 эта проблема решена.

К сведению, если у кого такое будет. Установил версию 2.8 (с русским переводом), в которой краткий поиск барахлит: какие бы значения не были выставлены в нём - выдаёт в результате все объявления. Проблему решил установкой другой версии (с иностранным языком, но перевод всё равно есть (лично у меня, от AdsManager 2.7).
Так и есть.
Устанавливать нужно 2.8 с офф сайта.
Перевод здесь присутсвует (ищите темку). Перевод ставится отдельно.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Выбор марки>модели автомобиля

Автор THE KILLERS

Ответов: 16
Просмотров: 6592
Последний ответ 06.05.2025, 22:24:58
от Matzzz
Слетают категории объявления

Автор guardnext

Ответов: 1
Просмотров: 6078
Последний ответ 09.07.2019, 10:10:59
от guardnext
Изменить категории в AdsManager 3.1.5

Автор Doc

Ответов: 2
Просмотров: 11837
Последний ответ 17.03.2019, 21:17:30
от Doc
Как сделать сортировку объявдений в AdsManager

Автор Olegarh

Ответов: 9
Просмотров: 16451
Последний ответ 03.06.2018, 22:59:57
от Sabotage
AdsManager - как сделать несколько адресов?

Автор Ksenia2009

Ответов: 0
Просмотров: 12122
Последний ответ 21.04.2018, 15:13:44
от Ksenia2009