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

SimonovSergey

  • Захожу иногда
  • 55
  • 0 / 0
Я не разобрался и поэтому пришлось сделать следующее:
Код
<?php 
$db = JFactory::getDBO();
$query = 'SELECT * FROM #__calculator_ WHERE Works = "4" ';
$db->setQuery($query);
$data_array = $db->loadObjectList();
$obliz = array() ;
?>
<select name = "cspisok">
<option>Выберите из списка</option>
<script>
var cform1 = document.forms.ccalculator; var SpisokStrana1 = cform1.elements.stranaspisok;
"<?php foreach($data_array as $tovar):?>"

if (SpisokStrana1.value == "<?php echo $tovar->proizvoditel; ?>") {
"<?php $obliz[]= $tovar->name; ?>"
alert("<?php echo $tovar->name; ?>");
}
"<?php endforeach;?>"

</script>
                <?php print_r($obliz);?>
<?php foreach($obliz as $tovar):?>
<option><?php echo $tovar; ?></option>
<?php endforeach;?>
</select>
но почему alert выскакивает один раз, как положено, а в массив заносятся все значения (три)? можно поместить HTML в js?
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Как HTML поместить внутрь js?
« Ответ #1 : 13.11.2014, 19:33:59 »
А теперь нажмите ctrl-u и посмотрите что вы там напортачили..

Вопрос на мой взгляд некорректен. Javascript сам по себе не является документом чтобы туда еще чего-то можно было помещать..
« Последнее редактирование: 13.11.2014, 19:44:20 от zomby6888 »
интернет-блог: http://websiteprog.ru
*

SimonovSergey

  • Захожу иногда
  • 55
  • 0 / 0
Re: Как HTML поместить внутрь js?
« Ответ #2 : 13.11.2014, 19:44:41 »
А теперь нажмите ctrl-u и посмотрите что вы там напортачили..
array - пишет три значения
alert - выскакивает один раз, почему они же в одном цикле?
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Как HTML поместить внутрь js?
« Ответ #3 : 13.11.2014, 19:48:34 »
если вы внимательно изучите исходный код страницы то вы поймете почему ибо там будет что-то вроде того:
Код: javascript
if (SpisokStrana1.value == 'значение1') {
   alert("...");
}
if (SpisokStrana1.value == 'значение2') {
   alert("...");
}
if (SpisokStrana1.value == 'значение3') {
   alert("...");
}
интернет-блог: http://websiteprog.ru
*

SimonovSergey

  • Захожу иногда
  • 55
  • 0 / 0
Re: Как HTML поместить внутрь js?
« Ответ #4 : 13.11.2014, 20:28:23 »
с alert мне все понятно, стоит if отсекает ненужные значения. Мне не понятно почему if не отсекает ненужные значения и все они записываются в массив... помогите разобраться...
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Как HTML поместить внутрь js?
« Ответ #5 : 13.11.2014, 21:03:00 »
потому что это условие выполняется в javascript-е а в массив вы записываете через php! Первый исполняется в браузере пользователя, второй на стороне сервера и никак они эти два кода между собой не связаны..

php код формирует HTML с javscript кодом который будет исполнен в браузере пользователя так понятнее?  Вам бы теорию почитать прежде чем кодить..
« Последнее редактирование: 13.11.2014, 21:10:58 от zomby6888 »
интернет-блог: http://websiteprog.ru
*

SimonovSergey

  • Захожу иногда
  • 55
  • 0 / 0
Re: Как HTML поместить внутрь js?
« Ответ #6 : 13.11.2014, 21:10:52 »
потому что это условие выполняется в javascript-е а в массив вы записываете через php! Первый исполняется в браузере пользователя, второй на стороне сервера и никак они эти два кода между собой не связаны..
и что же делать?
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Как HTML поместить внутрь js?
« Ответ #7 : 13.11.2014, 21:13:50 »
и что же делать?

А вы не написали что вы хотите сделать.. судя по вашему коду тройной alert. тогда можете написать так:
Код: javascript
alert('гип-гип-ура!');
alert('гип-гип-ура!');
alert('гип-гип-ура!');
интернет-блог: http://websiteprog.ru
*

SimonovSergey

  • Захожу иногда
  • 55
  • 0 / 0
Re: Как HTML поместить внутрь js?
« Ответ #8 : 13.11.2014, 21:35:31 »
есть два выпадающих списка которые формируются из БД, если в первом списке меняется значение, то во втором получаем список только из тех элементов  в которых присутствует выбранное значение из первого списка.
Как я планировал:
Сформировать первый список при помощи php
Далее onchange определяю когда меняется первый список, получаю его значение
И далее зная это значение отсеиваю второй список
Код
<form name="ccalculator">
<?php
$db = JFactory::getDBO();
$query = 'SELECT * FROM #__calculator_ WHERE Works = "4" ';
$db->setQuery($query);
$data_array = $db->loadObjectList();
$aux_res = array() ;
                $result_res = array() ;
                foreach($data_array as $tovar) {
                        $aux_res[] = $tovar->proizvoditel ;                     
                }
                $aux_res = array_unique($aux_res) ;
                print_r($aux_res);
?>
<select name = "stranaspisok">
<option>Выберите из списка</option>
<?php foreach($aux_res as $tovar):?>
<option><?php echo $tovar; ?></option>
<?php endforeach;?>
</select>

<?php
$db = JFactory::getDBO();
$query = 'SELECT * FROM #__calculator_ WHERE Works = "4" ';
$db->setQuery($query);
$data_array = $db->loadObjectList();
$obliz = array() ;
?>
<select name = "cspisok">
<option>Выберите из списка</option>
<script>
var cform1 = document.forms.ccalculator; var SpisokStrana1 = cform1.elements.stranaspisok;
SpisokStrana1.onchange = strana1;
function strana1(){
"<?php foreach($data_array as $tovar):?>"

if (SpisokStrana1.value == "<?php echo $tovar->proizvoditel; ?>") {
"<?php $obliz[]= $tovar->name; ?>"
alert("<?php echo $tovar->name; ?>");

}
"<?php endforeach;?>"
}
</script>
                <?php print_r($obliz);?>
<?php foreach($obliz as $tovar):?>
<option><?php echo $tovar; ?></option>
<?php endforeach;?>
</select>
но второй список не получается просеивать...
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Как HTML поместить внутрь js?
« Ответ #9 : 13.11.2014, 21:48:23 »
Зачем у вас два раз один и тот-же запрос выполняется? Динамические списки обычно делаются с использованием AJAX
интернет-блог: http://websiteprog.ru
*

SimonovSergey

  • Захожу иногда
  • 55
  • 0 / 0
Re: Как HTML поместить внутрь js?
« Ответ #10 : 13.11.2014, 22:20:28 »
Зачем у вас два раз один и тот-же запрос выполняется? Динамические списки обычно делаются с использованием AJAX

Знаю, думал может по проще можно...(((
*

SimonovSergey

  • Захожу иногда
  • 55
  • 0 / 0
Re: Как HTML поместить внутрь js?
« Ответ #11 : 13.11.2014, 23:49:51 »
Вот как сделал используя только js и php, обошелся без AJAX, напишу подробнее, может кому пригодится:
Код
<?php
//Делаем запрос к базе данных, выбираем все поля таблицы __calculator_ у которых значение Works равно 4
$db = JFactory::getDBO();
$query = 'SELECT * FROM #__calculator_ WHERE Works = "4" ';
$db->setQuery($query);
$data_array = $db->loadObjectList();
//Создаем дополнительные массивы, они понадобятся чтобы убрать повторения
$aux_res = array() ;
                $result_res = array() ;
            //Записываем в дополнительный массив элементы первого списка
                foreach($data_array as $tovar) {
                        $aux_res[] = $tovar->proizvoditel ;                     
                }
            //Удаляем повторы
                $aux_res = array_unique($aux_res) ;
               
?>
<!--Создаем первый список-->
<select name = "stranaspisok">
<option>Выберите из списка</option>
<!--Записываем наш массив в выпадающий список, первый список готов-->
<?php foreach($aux_res as $tovar):?>
<option><?php echo $tovar; ?></option>
<?php endforeach;?>
</select>
Код
<!--Делаем запрос к базе данных, выбираем все поля таблицы __calculator_ у которых значение Works равно 4 -->
<?php
$query = 'SELECT * FROM #__calculator_ WHERE Works = "4" ';
$db->setQuery($query);
$data_array = $db->loadObjectList();
?>
<!--Создаем второй список-->
<select name = "cspisok">
<option>Выберите из списка</option>
</select>
Код
<!--Скрипт для динамического изменения второго списка-->		
<script>
//Создаем переменные, SpisokStrana в ней содержится элемент первого списка, cSpisok в ней содержится элемент второго списка
var cform = document.forms.ccalculator; var SpisokStrana = cform.elements.stranaspisok;
var cSpisok = cform.elements.cspisok;
//Если первый список изменяется, то запуская функцию strana
SpisokStrana.onchange = strana;

function strana(){
//Позиционируем второй список на пункте Выберите из списка
cSpisok.value = "Выберите из списка";
//Очищаем от всех элементов наш список, так как значение первого списка поменялось и нам необходимо получить новые значения во втором списке
while (cSpisok.options.length) {
    cSpisok.options[0] = null;
    }
    //Создаем первый элемент списка Выберите из списка
    var item = document.createElement("OPTION");
            item.value = '1';
            item.text = 'Выберите из списка';
            cSpisok.options.add(item);
        //При помощи цикла заполняем список нужными нам элементами из БД
"<?php foreach($data_array as $tovar):?>"
if (SpisokStrana.value == "<?php echo $tovar->proizvoditel; ?>") {
var item = document.createElement("OPTION");
item.value = '1';
            item.text = '<?php echo $tovar->name; ?>';
            cSpisok.options.add(item);
}
"<?php endforeach;?>"
}

</script>
*

Joker_V

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: Как HTML поместить внутрь js?
« Ответ #12 : 02.07.2015, 22:47:15 »
Я бы с помощью AJAX делал бы. Динамическое обновление эфективнее. Зачем так много информации грузить в HTML? Чем больше загрузите тем медленее страница. Обробатуем по js onChange. Создаем функцию что делает AJAX запрос на сервер по выбранному элементу со списка. Получаем ответ в json, обновляем данные в новом списке по полученным данным. Да в принципе и все. На сервере нужно лишь сделать запрос к бд и получить информацию и распечатать (echo) переменную encodejson после чего прервать выполнение exit.
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Как HTML поместить внутрь js?
« Ответ #13 : 02.07.2015, 23:41:23 »
Это если списки большие, если там по 3-4 строчки то можно и без AJAX. И не обязательно в HTML грузить. Можно в js объекте хранить. Но в большинстве случаев так и надо делать (через AJAX всмысле)
« Последнее редактирование: 02.07.2015, 23:45:47 от zomby6888 »
интернет-блог: http://websiteprog.ru
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Векторы указания версий IE в HTML-коде

Автор userxp

Ответов: 0
Просмотров: 1907
Последний ответ 27.05.2009, 19:24:02
от userxp