Новости Joomla

Process Forge — фреймворк для создания AI-процессов.

Process Forge — фреймворк для создания AI-процессов.

На новогодних каникулах 2026 в одном из чатов Joomla-сообщества коллега по цеху поделился промптом для ИИ-агента и результатом этого промпта. За неделю до этого он впервые попробовал Gemini CLI. Я до этого ИИ пользовался только в веб версиях и в целом меня это устраивало. Увидев простыню текста, запрос в CLI и простыню ответа первое, что меня охватило: "Я НЕ ХОЧУ вот это всё изучать! Опять что-то новое, надоело...".

Потом были стадии проб и ошибок, попыток использовать готовые пакеты community skills с гитхаба с ролевым внушением "ты супер-пупер мега-бэкенд-Joomla разработчик с 40-летним опытом, сделай мне красиво". Где-то в середине этого полугодия я стал формализовать свои процессы (а это не только разработка, но и SEO, аналитика, бизнес-аналитика, проработка и выстраивание процессов и т.д., но в итоге это, как правило, или связано с или ведёт к сайту на Joomla). Формализация привела к моему пониманию некоторых базисов, которые общие для всех процессов. Об этом чуть ниже.

Теперь я хочу представить на суд уважаемой публике свои наработки по фреймворку для создания формализованных процессов работы для ИИ-агентов - Process Forge.

- Читать статью на Хабре
- Process Forge (GitHub)

@joomlafeed

Компонент 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

0 Пользователей и 1 Гость просматривают эту тему.
  • 9 Ответов
  • 3612 Просмотров
*

saidrustam

  • Захожу иногда
  • 100
  • 7 / 0
в коде есть SQL выборка, и отправка уделомлении на email указанный в обявлении(в этом таблице). А хотелось бы чтобы он брал email из таблицы users при условии(#__adsmanager_ads.id == users.id)
как это оформить? можеть спомощью UNION, но я не силен в sql, помогите ребята

function manage_expiration($option,$plugins){
...
$database->setQuery( "SELECT id,email,ad_headline,userid FROM #__adsmanager_ads WHERE DATE_SUB(expiration_date, INTERVAL ".$conf->recall_time." DAY) < CURDATE() AND recall_mail_sent = 0");
...
sendEmail($ad,$conf,$option);
*

saidrustam

  • Захожу иногда
  • 100
  • 7 / 0
Вопрос решен, выкладываю решение проблем:

$database->setQuery( "SELECT a.id,j.email,a.ad_headline FROM #__adsmanager_ads AS a, jos_users AS j WHERE DATE_SUB(expiration_date, INTERVAL ".$conf->recall_time." DAY) < CURDATE() AND recall_mail_sent = 0 AND a.userid = j.id");
*

Doc

  • Захожу иногда
  • 456
  • 17 / 0
А в 2.6 никто не знает как такое можно сделать ?
А то если поле Емаил не заполнено, то он не отправляет уведомление в версии 2.6.2
Нашел похожий код в administrator/components/com_adsmanager/models/content.php
Там есть аж несколько штук похожих строк, а вот какая точно и там ли это нужно делать

Может кто знает ?
*

Alex89

  • Давно я тут
  • 555
  • 198 / 1
  • Joomlaman :)
не проще сделать поле Email обязательным для заполнения?
Увеличить посещаемость сайта помогут здесь - http://tinyurl.com/kpaprwy
Если помог, ткните "крестик" в репу!
*

Doc

  • Захожу иногда
  • 456
  • 17 / 0
Я лично не люблю вести переписку, так как это бестолковое занятие, все кто что то писал, то не один еще ничего не купил
Так сидят в офисах заняться нечем, вот и ведут переписку, а те кто хочет что то купить, то всегда звонят
Поэтому не хочу делать обязательное поле для емаил, да еще если делаешь формой, то шаблон перекашивает при отправке
По этой причине у себя в объявлениях емаил не указываю и не делаю его обязательным, раньше вообще выключал это поле, но потом решил, что может кто захочет по переписываться и оставит свой емаил


Сейчас код из второго сообщения вставил в файл туда, где указал путь в своем сообщение и все теперь работает и берет емаил из регистрации пользователя
Для тех кто не включает уведомление на емаил, то их наверное и так все устроит, так как это нужно только для уведомлений
*

beicik

  • Захожу иногда
  • 60
  • 8 / 0
Вопрос решен, выкладываю решение проблем:

$database->setQuery( "SELECT a.id,j.email,a.ad_headline FROM #__adsmanager_ads AS a, jos_users AS j WHERE DATE_SUB(expiration_date, INTERVAL ".$conf->recall_time." DAY) < CURDATE() AND recall_mail_sent = 0 AND a.userid = j.id");

а можно поподробнее как это сделать?
*

Doc

  • Захожу иногда
  • 456
  • 17 / 0
beicik, какая у вас версия ?
Если 2.5, то в файле components/com_adsmanager/adsmanager.php
Находим этот код
Код
$database->setQuery( "SELECT id,email,ad_headline,userid FROM #__adsmanager_ads WHERE DATE_SUB(expiration_date, INTERVAL ".$conf->recall_time." DAY) < CURDATE() AND recall_mail_sent = 0");
И меняем на этот
Код
$database->setQuery( "SELECT a.id,j.email,a.ad_headline FROM #__adsmanager_ads AS a, jos_users AS j WHERE DATE_SUB(expiration_date, INTERVAL ".$conf->recall_time." DAY) < CURDATE() AND recall_mail_sent = 0 AND a.userid = j.id");
И все

Если версия 2.6
То ищите код в administrator/components/com_adsmanager/models/content.php
Там он почти такой же
*

beicik

  • Захожу иногда
  • 60
  • 8 / 0
beicik, какая у вас версия ?
Если 2.5, то в файле components/com_adsmanager/adsmanager.php
Находим этот код
Код
$database->setQuery( "SELECT id,email,ad_headline,userid FROM #__adsmanager_ads WHERE DATE_SUB(expiration_date, INTERVAL ".$conf->recall_time." DAY) < CURDATE() AND recall_mail_sent = 0");
И меняем на этот
Код
$database->setQuery( "SELECT a.id,j.email,a.ad_headline FROM #__adsmanager_ads AS a, jos_users AS j WHERE DATE_SUB(expiration_date, INTERVAL ".$conf->recall_time." DAY) < CURDATE() AND recall_mail_sent = 0 AND a.userid = j.id");
И все

Если версия 2.6
То ищите код в administrator/components/com_adsmanager/models/content.php
Там он почти такой же
Спасибо
*

Doc

  • Захожу иногда
  • 456
  • 17 / 0
А кто подскажет как решить это в AdsManager 2.8.2
Там код отличается
Вот код из 2.8.2
Код
$this->_db->setQuery( "SELECT * FROM #__adsmanager_ads WHERE expiration_date IS NOT NULL AND DATE_SUB(expiration_date, INTERVAL ".$conf->recall_time." DAY) <= CURDATE() AND recall_mail_sent = 0 AND published = 1");
Нужно заменить на этот
Код
$this->_db->setQuery( "SELECT a.id,j.email,a.ad_headline FROM #__adsmanager_ads AS a, jos_users AS j WHERE DATE_SUB(expiration_date, INTERVAL ".$conf->recall_time." DAY) < CURDATE() AND recall_mail_sent = 0 AND a.userid = j.id");

Может кто подскажет ?
Думал сделать так
Код
$this->_db->setQuery( "SELECT * FROM #__adsmanager_ads WHERE expiration_date IS NOT NULL AND DATE_SUB(expiration_date, INTERVAL ".$conf->recall_time." DAY) <= CURDATE() AND recall_mail_sent = 0 AND a.userid = j.id AND published = 1");
Только не знаю на сколько это правильно будет и будет ли вообще работать
Или можно смело менять код и все будет нормуль ?
*

Doc

  • Захожу иногда
  • 456
  • 17 / 0
Попробовал поставил старый код, не работает...
Как же такое можно сделать в 2.8, все перепробовал и нечего не вышло ?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как сделать сортировку объявдений в AdsManager

Автор Olegarh

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

Автор Ksenia2009

Ответов: 0
Просмотров: 12132
Последний ответ 21.04.2018, 15:13:44
от Ksenia2009
Как сделать drop down меню на странице объявлений Contents List в AdsManager?

Автор fadsergc

Ответов: 0
Просмотров: 1887
Последний ответ 13.03.2017, 01:25:00
от fadsergc
новая функция AdsManager 2.6.5 - продление срока объявления

Автор aaalexusss

Ответов: 102
Просмотров: 28720
Последний ответ 28.09.2016, 11:15:21
от moonaway
Как сделать меню категорий сквозным?

Автор kozhenevsky

Ответов: 1
Просмотров: 1835
Последний ответ 30.08.2016, 07:23:44
от biper