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

lsk

  • Захожу иногда
  • 362
  • 13 / 5
Поиск по id.
« : 29.08.2008, 20:41:48 »
Классный компонент,но достают проблемы с поиском. Подскажите, как организовать поиск по id объявления.
*

wafee

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
Re: Поиск по id.
« Ответ #1 : 16.03.2009, 19:12:54 »
тоже интересует, как сделать поиск по id объявления.
*

DK-Scorp

  • Захожу иногда
  • 235
  • 6 / 0
  • Всегда готов! К чему только....? ХЗ.....
Re: Поиск по id.
« Ответ #2 : 21.01.2010, 23:18:33 »
Да, тоже очень интересует данный вопрос, как реализовать поиск по ID ?
*

Dimm555

  • Захожу иногда
  • 103
  • 6 / 0
Re: Поиск по id.
« Ответ #3 : 22.01.2010, 08:18:37 »
А нужен поиск на сайте или в админке?
*

DK-Scorp

  • Захожу иногда
  • 235
  • 6 / 0
  • Всегда готов! К чему только....? ХЗ.....
Re: Поиск по id.
« Ответ #4 : 22.01.2010, 08:52:24 »
в идеале конечно и там и там ^-^
*

DK-Scorp

  • Захожу иногда
  • 235
  • 6 / 0
  • Всегда готов! К чему только....? ХЗ.....
Re: Поиск по id.
« Ответ #5 : 23.01.2010, 22:36:30 »
Dimm555, ты как-то решал этот вопрос?
Может есть у кого решение - поиск по id?
*

soldat

  • Захожу иногда
  • 80
  • 3 / 0
Re: Поиск по id.
« Ответ #6 : 22.03.2010, 09:17:03 »
Тоже бы хотел такое реализовать
*

sattan

  • Осваиваюсь на форуме
  • 29
  • 1 / 0
Re: Поиск по id.
« Ответ #7 : 05.04.2012, 16:18:46 »
Я в php и msql новичок так, что не судите строго...

Реализовал поиск объявлений по id в Joomla 1.5 & AdsManager 265 так:
Взял оформление полного объявления (http/components/com_adsmanager/views/details/tmpl/default.php) и на его основе к каждому значению (Заголовок, описание, цена, телефон и т.д) прописал запрос к базе и сохранил что получилось в модуль. Вот код:

Код
<link href="components/com_adsmanager/css/adsmanager.css" rel="stylesheet" type="text/css" />
 <?php
mysql_select_db("gbua_?") or die("Не найдена база данных");
$query = "SELECT * FROM jos_adsmanager_ads WHERE UPPER(id) LIKE '".strtoupper($_POST['keyword'])."'";
$result = mysql_query($query) or die("Неверный запрос к базе");
if (mysql_num_rows($result)!=0) { ?>
<div style="padding-top:14px; padding-left:14px; padding-right:14px"><div class=" adsmanager_ads" align="left">
<div class="adsmanager_top_ads">
<h2 class="adsmanager_ads_title">
<?php
while ($line1 = mysql_fetch_array($result, MYSQL_NUM)) {
print "$line1[9]";  }?></h2>
<div><table width="100%" border="0">
  <tr>
    <td width="45%" align="left" valign="middle"></td>

    <td width="45%" align="right" valign="middle"><strong style="color:#FFF">Код обьявления:</strong>
</td>
    <td width="10%" align="center"><strong><?php
mysql_select_db("gbua_?") or die("Не найдена база данных");
$query = "SELECT * FROM jos_adsmanager_ads WHERE UPPER(id) LIKE '".strtoupper($_POST['keyword'])."'";
$result = mysql_query($query) or die("Неверный запрос к базе");
if (mysql_num_rows($result)!=0) { while ($line1 = mysql_fetch_array($result, MYSQL_NUM)) {
print "$line1[0]";  }}?></strong></td>
  </tr>
</table></div>
  </div>
<div class="adsmanager_ads_main">
<div class="adsmanager_ads_body">

<div class="adsmanager_ads_desc" ><?php
mysql_select_db("gbua_?") or die("Не найдена база данных");
$query = "SELECT * FROM jos_adsmanager_ads WHERE UPPER(id) LIKE '".strtoupper($_POST['keyword'])."'";
$result = mysql_query($query) or die("Неверный запрос к базе");
if (mysql_num_rows($result)!=0) { while ($line1 = mysql_fetch_array($result, MYSQL_NUM)) {
print "$line1[10]";  }}?></div>


<div class="adsmanager_ads_contact">
              <center><strong>Дополнительная информация:</strong></center><br>
Цена: (грн.) <?php
mysql_select_db("gbua_?") or die("Не найдена база данных");
$query = "SELECT * FROM jos_adsmanager_ads WHERE UPPER(id) LIKE '".strtoupper($_POST['keyword'])."'";
$result = mysql_query($query) or die("Неверный запрос к базе");
if (mysql_num_rows($result)!=0) { while ($line1 = mysql_fetch_array($result, MYSQL_NUM)) {
print "$line1[12]";  }}?>.00<br>
<? /*Район: <?php
mysql_select_db("gbua_?") or die("Не найдена база данных");
$query = "SELECT * FROM jos_adsmanager_ads WHERE UPPER(id) LIKE '".strtoupper($_POST['keyword'])."'";
$result = mysql_query($query) or die("Неверный запрос к базе");
if (mysql_num_rows($result)!=0) { while ($line1 = mysql_fetch_array($result, MYSQL_NUM)) {
print "$line1[15]";  }}?><br> */ ?>
Телефон: <?php
mysql_select_db("gbua_?") or die("Не найдена база данных");
$query = "SELECT * FROM jos_adsmanager_ads WHERE UPPER(id) LIKE '".strtoupper($_POST['keyword'])."'";
$result = mysql_query($query) or die("Неверный запрос к базе");
if (mysql_num_rows($result)!=0) { while ($line1 = mysql_fetch_array($result, MYSQL_NUM)) {
print "$line1[6]";  }}?><br>
Контактное лицо: <?php
mysql_select_db("gbua_?") or die("Не найдена база данных");
$query = "SELECT * FROM jos_adsmanager_ads WHERE UPPER(id) LIKE '".strtoupper($_POST['keyword'])."'";
$result = mysql_query($query) or die("Неверный запрос к базе");
if (mysql_num_rows($result)!=0) { while ($line1 = mysql_fetch_array($result, MYSQL_NUM)) {
print "$line1[3]";  }}?><br>
E-mail: <a href='mailto:2@mail.ru'><?php
mysql_select_db("gbua_?") or die("Не найдена база данных");
$query = "SELECT * FROM jos_adsmanager_ads WHERE UPPER(id) LIKE '".strtoupper($_POST['keyword'])."'";
$result = mysql_query($query) or die("Неверный запрос к базе");
if (mysql_num_rows($result)!=0) { while ($line1 = mysql_fetch_array($result, MYSQL_NUM)) {
print "$line1[7]";  }}?></a></div>

    </div>
<div class="adsmanager_ads_image">
<a href="images/com_adsmanager/ads/<?php
mysql_select_db("gbua_?") or die("Не найдена база данных");
$query = "SELECT * FROM jos_adsmanager_ads WHERE UPPER(id) LIKE '".strtoupper($_POST['keyword'])."'";
$result = mysql_query($query) or die("Неверный запрос к базе");
if (mysql_num_rows($result)!=0) { while ($line1 = mysql_fetch_array($result, MYSQL_NUM)) {
print "$line1[0]";  ?>a.jpg" target="_blank"><img src="images/com_adsmanager/ads/<? print "$line1[0]"; }}?>a_t.jpg" width="150" /></a>
<a href="images/com_adsmanager/ads/<?php
mysql_select_db("gbua_?") or die("Не найдена база данных");
$query = "SELECT * FROM jos_adsmanager_ads WHERE UPPER(id) LIKE '".strtoupper($_POST['keyword'])."'";
$result = mysql_query($query) or die("Неверный запрос к базе");
if (mysql_num_rows($result)!=0) { while ($line1 = mysql_fetch_array($result, MYSQL_NUM)) {
print "$line1[0]";  ?>b.jpg" target="_blank"><img src="images/com_adsmanager/ads/<? print "$line1[0]"; }}?>b_t.jpg" width="150" /></a>
<a href="images/com_adsmanager/ads/<?php
mysql_select_db("gbua_?") or die("Не найдена база данных");
$query = "SELECT * FROM jos_adsmanager_ads WHERE UPPER(id) LIKE '".strtoupper($_POST['keyword'])."'";
$result = mysql_query($query) or die("Неверный запрос к базе");
if (mysql_num_rows($result)!=0) { while ($line1 = mysql_fetch_array($result, MYSQL_NUM)) {
print "$line1[0]";  ?>c.jpg" target="_blank"><img src="images/com_adsmanager/ads/<? print "$line1[0]"; }}?>c_t.jpg" width="150" /></a>
<a href="images/com_adsmanager/ads/<?php
mysql_select_db("gbua_?") or die("Не найдена база данных");
$query = "SELECT * FROM jos_adsmanager_ads WHERE UPPER(id) LIKE '".strtoupper($_POST['keyword'])."'";
$result = mysql_query($query) or die("Неверный запрос к базе");
if (mysql_num_rows($result)!=0) { while ($line1 = mysql_fetch_array($result, MYSQL_NUM)) {
print "$line1[0]";  ?>d.jpg" target="_blank"><img src="images/com_adsmanager/ads/<? print "$line1[0]"; }}?>d_t.jpg" width="150" /></a>
<a href="images/com_adsmanager/ads/<?php
mysql_select_db("gbua_?") or die("Не найдена база данных");
$query = "SELECT * FROM jos_adsmanager_ads WHERE UPPER(id) LIKE '".strtoupper($_POST['keyword'])."'";
$result = mysql_query($query) or die("Неверный запрос к базе");
if (mysql_num_rows($result)!=0) { while ($line1 = mysql_fetch_array($result, MYSQL_NUM)) {
print "$line1[0]";  ?>e.jpg" target="_blank"><img src="images/com_adsmanager/ads/<? print "$line1[0]"; }}?>e_t.jpg" width="150" /></a></div>
<div class="adsmanager_spacer"></div>
</div>
</div>
</div><?php

} else print "<div style='padding-top:20px'><center>Обьявление с таким кодом не найдено<center>Попробуйте воспользоваться <a href='index.php?option=com_adsmanager&view=search'>расширенным поиском</a></div>";
 mysql_free_result($result);
?>

Далее создал еще один модуль, в нем код:
Код
<div style="padding-left:3px">Поиск по коду объявления:</div>
<form action="index.php?option=com_content&view=article&id=64&Itemid=82#ob" method="post">
<table width="100%" border="0">
  <tr>
    <td><input type="text" name="keyword" size="19" /></td>
    <td align="right"><input type="submit" class="button" value="Найти" /></td>
  </tr>
</table>
</form>
где action=ссылка где расположен первый модуль (код, которого выше).

Все работает, но есть баг. Если картинок в объявлении нет, тогда выдает на экран следующее: в мозилле - картинок вообще нет (т.е нет картинки с надписью "no image"), в хроме и опере - структура картинки (т.к задана ширина и высота) и соответственно ссылка на несуществующую картинку.

Может кто-нибудь подскажет как это исправить?  По аналогии с выводом полного объявления (http/components/com_adsmanager/views/details/tmpl/default.php), откуда собственно и брал оформление - пробовал, не вышло. Помогите люди добрые...
*

max_1985

  • Давно я тут
  • 611
  • 56 / 0
Re: Поиск по id
« Ответ #8 : 22.05.2013, 10:32:28 »
Кто-то реализовал для 2.7?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Поиск по текстовым полям AdsManager

Автор Den85

Ответов: 4
Просмотров: 11023
Последний ответ 19.01.2019, 14:28:47
от Den85
AdsManager Расширенный поиск

Автор MakGrouman

Ответов: 1
Просмотров: 11249
Последний ответ 25.12.2018, 08:30:30
от MakGrouman
AdsManager поиск в категориях

Автор oleksyayko

Ответов: 4
Просмотров: 17370
Последний ответ 28.01.2018, 14:54:11
от alex79
Каждой категории свой поиск

Автор cheroky

Ответов: 6
Просмотров: 1626
Последний ответ 07.12.2015, 01:58:31
от voras
Расширенный поиск на cтранице категорий AdsManager

Автор akhalex38

Ответов: 1
Просмотров: 1403
Последний ответ 30.07.2015, 16:43:47
от akhalex38