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

Леон

  • Захожу иногда
  • 333
  • 5 / 0
Пишу простой php скрипт, нужно подключиться к двум базам, они обе на разных хостингах, получить данные и записать в 3-ю отдельную базу. У меня почти все работает, скрипт подключается к обеем базам, но если выполняю запрос он идет в последнюю подключенную базу. Вот пример чтобы было нагляднее:

Код
//ДБ1
$db1 = mysql_connect("194.194.196.129","soc","SOC201",true);
mysql_select_db("baza1" ,$db1);
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
mysql_query("SET SESSION collation_connection = 'utf8_general_ci'");

//ДБ2
$db2= mysql_connect("185.185.205.9","soc","SOC201",true);
mysql_select_db("baza2" ,$db2);
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
mysql_query("SET SESSION collation_connection = 'utf8_general_ci'");

Обе базы с сайтов на Joomla, у них одинаковые таблицы и многое другое.
Далее я выполняю любой запрос и он пойдет в $db2:

Код
$sql = mysql_query ("SELECT name, email, phone, message, created_at FROM contacts WHERE id = '1'");
$myrow = mysql_fetch_array($sql);
echo $myrow["name"];

Код выведет поле значение 'name' из таблицы 'contacts' из базы $db2. Подскажите как нужно переписать код чтобы я мог обратить этот код к $db1 или $db2? Или может нужно подругому переписать подключение к базам?

Просто у меня дальше будет код, он взял первую стркоу (с id=1), проверил наличие похожей стоки во второй базе и если его там нет записал туда и так он будет перебирать все строки. Каждй раз делать дисконенкт первой базы и подключение второй на каждом запросе это будет явно неверным решением.
« Последнее редактирование: 21.07.2017, 16:07:27 от Леон »
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

Леон

  • Захожу иногда
  • 333
  • 5 / 0
https://docs.joomla.org/Connecting_to_an_external_database
Тут я думаю такое не подойдет, это будет что-то отдельной админки (без joomla). Будет такой мини сервис по работе с заявками из форм обратной связи. Он будет собирать данные с нескольких сайтов (сайты на joomla) и выводить в красивой таблице сразу все обращения, где оператор будет присваивать им статусы и как-то обрабатывать.

Выше чуть неправильно объяснил, будет еще БД3 в которую будут этим скриптом копироваться записи которых там еще нет.

Или может у меня вообще вся затея провальная и делать нужно было не так)
Ваш способ думаю подойдет, если моя БД3 будет тоже от Joomla сайта. Но не хотелось из-за такой небольшой функции использовать cms. Там по сути будет просто страница, на которой будет таблица с заявками и дополнительное поле со статусом, "в работе", "выполнена" и т.д.
« Последнее редактирование: 21.07.2017, 16:36:07 от Леон »
*

Леон

  • Захожу иногда
  • 333
  • 5 / 0
Типа вот что будет на странице:

Код
<body>
<table border="1">
<tr>
<th>ФИО</th>
<th>Email</th>
<th>Телефон</th>
<th>Сообщение</th>
<th>Дата начала</th>
<th>Статус</th>
</tr>

<?php
for($i=0; $i<$id_max; $i++) {
$sql = mysql_query ("SELECT name, email, phone, message, created_at FROM contacts WHERE id = '$i'");
$myrow = mysql_fetch_array($sql);
if ($myrow["name"] != '') {
?>

<tr>
<td><?php echo $myrow["name"];?></td>
<td><?php echo $myrow["email"];?></td>
<td><?php echo $myrow["phone"];?></td>
<td><?php echo $myrow["message"];?></td>
<td><?php echo $myrow["created_at"];?></td>
<td><?php echo '';?></td>
</tr>
<?php
}}
?>
</table>
</body>

Скрипт пробежится по таблице и выведет в HTML таблице данные) ***код?)
Но до этого мне бы из разных баз в одну эту слить все данные.


Пробовал с этой строкой играть, ничего не вышло, вот что пробовал:
$sql = mysql_query ("SELECT name, email, phone, message, created_at FROM $db1.contacts WHERE id = '$i'");
$sql = mysql_query ("SELECT name, email, phone, message, created_at FROM contacts.$db1 WHERE id = '$i'");
Ну и в таком духе пытался обратить этот запрос к нужной мне базе. Идут ошибки синтаксиса)
« Последнее редактирование: 21.07.2017, 16:51:10 от Леон »
*

dmitry_stas

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

Леон

  • Захожу иногда
  • 333
  • 5 / 0
так в mysql_query тоже ж надо указывать второй параметр-идентификатор соединения. без его указания будет использован последний, что у вас и происходит.
Вот вот, я чуть выше про это упомянул, а как правильно то его указать)
*

flyingspook

  • Живу я здесь
  • 3590
  • 247 / 9
Код: php
<?
 
    /*
    *   The sample code below makes 2 database connections and the reference to each database connection is stored in separate variables.
    *   Whenever you connect multiple databases you have to specify the link in mysql_query function to tell PHP to run the query
    *   on the specified database.
    */
 
    $link1=mysql_connect("localhost","root","");
    mysql_select_db("qlets");
 
 
    $link2=mysql_connect("localhost","root","",true);
    mysql_select_db("sargodhabiz",$link2);
 
    $result1=mysql_query("select * from portfolio",$link1);
    show_data($result1);
 
    $result2=mysql_query("select * from categories",$link2);
    show_data($result2);
 
    mysql_close($link1);
    mysql_close($link2);
 
 
    function show_data($result){
        $x=mysql_num_fields($result);
        echo "<table border=\"1\">";
        while($row=mysql_fetch_array($result)){
            echo "<tr>";            
            for($i=0;$i<$x;$i++){
                echo "<td>".$row[$i]."</td>";
            }
            echo "</tr>";
        }
        echo "</table>";
    }
 ?>
вот простой пример подключения к 2 бд, так не заработает
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Вот вот, я чуть выше про это упомянул, а как правильно то его указать)

ну как в mysql_select_db указали, так и в mysql_query указывайте :)

второй параметр-идентификатор соединения

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

Леон

  • Захожу иногда
  • 333
  • 5 / 0
вот простой пример подключения к 2 бд, так не заработает
Спасибо, воспользовался вашим кодом все пошло, были вместо русских символов вопросы, добавил после подключения к базам еще mysql_query("SET NAMES utf8"); и все норм, работает как нужно.

Спойлер
[свернуть]
« Последнее редактирование: 21.07.2017, 19:31:33 от Леон »
*

dmitry_stas

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

step-di

  • Захожу иногда
  • 91
  • 5 / 0
Я соорудил системный плагин, в который положил часто используемые мною функции.
Среди них функция с именем sql для выполнения SQL команд с возможностью подключения к различным базам данных
в теле функции соорудил подключение к базам данных согласно настройкам из компонента com_mightysites (использую один движок Joomla и большое количество баз данных под отдельные сайты)

например, в коде пишу:
if ($items = sql ("select * from #__content where state=1"))
foreach ($items as $row) { .... }
код выполняет запрос в текущую базу данных, если второй параметр в функции не задан

или, например:
$title = sql ("select title from #__content where id={$id}", 'nameotherbd');
код выполняет запрос в базу данных с именем nameotherbd

если мне нужно что-то обновить, вставить или удалить, то пишу соответственно:
sql ("update .....", 'nameotherbd');
sql ("insert .....", 'nameotherbd');
sql ("delete .....", 'nameotherbd');

если нужно считать данные из нескольких баз,
то отдельно считываю информацию из каждой базы  затем создаю временную таблицу с именем
$newdb = '#__tbl'.rand(5, 15);

через команду
sql ("CREATE TEMPORARY TABLE {$newdb} LIKE #__baza");
у этой таблицы создаются поля такие же как у таблицы #__baza
таблицу #__baza я спроектировал с такими полями какие мне нужны

наполняю ее полученной и обработанной инфой из других баз
sql ("insert {$newdb} .....");

затем вывожу как мне надо сгруппировав и отсортировав
sql ("select * from {$newdb} where ... group by ... order by ... ");

и удаляю временную таблицу
sql ("DROP TABLE {$newdb}");

« Последнее редактирование: 09.08.2017, 18:01:36 от step-di »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Сайт медленно работает, прошу советов

Автор Леон

Ответов: 14
Просмотров: 2305
Последний ответ 08.08.2017, 14:34:50
от flyingspook
Плагин для снятия копирайта с JoomShopping

Автор NightGuard

Ответов: 49
Просмотров: 14346
Последний ответ 05.11.2015, 22:48:46
от voland
Мегафон модем - ошибка DNS

Автор Леон

Ответов: 15
Просмотров: 12579
Последний ответ 08.10.2015, 09:35:35
от KKAAZZOO
Новая идея для гумно-бизнеса

Автор ecolora

Ответов: 7
Просмотров: 2247
Последний ответ 17.06.2015, 13:41:42
от wishlight
Перевод часов - неправильное время на сайт

Автор Maxum

Ответов: 29
Просмотров: 6446
Последний ответ 25.01.2015, 15:52:58
от AlekVolsk