Новости 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 Ответов
  • 7558 Просмотров
*

ma1efic

  • Осваиваюсь на форуме
  • 34
  • 4 / 0
Zoo - замечательный компонент каталога, и я часто использую его в разработке сайтов, но у него есть один небольшой минус - это невозможность вывести теги как пункты меню, чтобы можно было как-то индивидуально оформить страницу каждого тега в отдельности.

Если на вашем сайте сложный каталог - например, вы хотите выводить товары и по категориям, и, например, сортировать по производителям, то теги подойдут вам как нельзя кстати.

Штатные решения каталога позволяют нам выводить пунктом меню отдельные товары, категории товаров и главную страницу товаров, а теги к сожалению выводить нельзя. Но как же тогда вставить какие-нибудь модули на конкретные страницы тегов, ведь для отображения модулей на конкретных страницах нам нужны пункты меню?

Есть вариант - использовать компонент TorTags, про который уже писали на форуме в этой теме. Но мне такой вариант показался слишком замудрёным, т.к. в данном решении пришлось бы проставлять теги на все товары заново, а в моём случае сайт уже был наполнен большим количеством товаров, на которых уже стояли нужные теги. К тому же данный компонент платный.

Мы с моим штатным программистом нашли следующее решение данной проблемы (хотя его тоже незамудрённым не назовёшь):

1. Сначала мы сделаем возможность добавлять тег как пункт меню. Для этого в папке: components/com_zoo/views создаем новую папку tag. В ней создадим файл файл index.html с содержимым:

Код
<!DOCTYPE html><title></title>

В новосозданной папке tag создадим еще папку tmpl, куда поместим 4 файла:

а) файл elements.php с содержимым:
Код
<?php
/**
* @package   com_zoo
* @author    YOOtheme http://www.yootheme.com
* @copyright Copyright (C) YOOtheme GmbH
* @license   http://www.gnu.org/licenses/gpl.html GNU/GPL
*/

defined('_JEXEC') or die('Restricted access');

// add js
$this->app->document->addStylesheet('assets:css/ui.css');

// load element
require_once($this->app->path->path('component.admin:views/tag/tmpl/element.php'));

?>
<style>
table.list tfoot td { text-align: center; }

table.list tfoot td a {
text-decoration: none;
cursor: pointer;
}
</style>

б) файл element.xml с содержимым:
Код
<?xml version="1.0" encoding="utf-8"?>
<metadata>
<layout hidden="true" />
</metadata>

в) файл index.html с содержимым:
Код
<!DOCTYPE html><title></title>

г) и файл tag.xml с содержимым:
Код
<?xml version="1.0" encoding="utf-8"?>
<metadata>

<layout title="Tag">
<message><![CDATA[Displays an overview of users submitted articles]]></message>
</layout>
<state>
<name>Tag</name>
<description>Пункт меню TAG</description>
</state>

 <fields name="request">
                <fieldset name="request">
                        <field
                                name="tag"
                                type="text"
                                label="Наименование TAG"
                                description="Наименование TAG"
                                default=""
                        >
                            
                        </field>
<field
                                name="task"
                                type="hidden"
                                label="Наименование TAG"
                                description="Наименование TAG"
                                default="tag"
                        >
                            
                        </field>
<field
                                name="app_id"
                                type="hidden"
                                label="Наименование TAG"
                                description="Наименование TAG"
                                default="1"
                        >
                            
                        </field>
<field
                                name="option"
                                type="hidden"
  
                                default="com_zoo"
                        >
                            
                        </field>
                </fieldset>
        </fields>
</metadata>

После этого при создании нового пункта меню в списке раздела Zoo появится новый элемент tag. Создаём пункт меню с данным элементом. В параметрах пункта указываем точное название тега.

2. Теперь нужно подружить наши теги с пунктами меню. Здесь мы пошли похожим путём, как в пункте меню типа item.

В чем заключается особенность ссылок из пунктов Zoo каталога: если вы уже создавали пункты меню для типа item, то наверное уже замечали, что алиас пункта не совпадает со стандартной ссылкой из каталога Zoo. Обычная ссылка из каталога выглядит примерно так: /category/item/example.html, тогда как при создании пункта меню дополнительная приставка /item/ исчезает, и ссылка становится вида: /category/example.html. Однако zoo каталог принимает новый алиас пункта меню, и уже непосредственно в каталоге все ссылки именно на данный товар станут такими, как в пункте, то есть /category/example.html.

А то, что мы сделали в пункте 1. не будет менять тэги в каталоге, то есть ссылка из пункта будет вида: category/tagexample.html, а из карточки товара тег будет вида /category/tag/tagexample.html.

Чтобы исправить эту проблему, мы должны откорректировать файл itemtag.php, расположенный по адресу: /media/zoo/elements/itemtag/

В файле заменяем строку:

Код
$values[] = '<a href="'.JRoute::_($this->app->route->tag($this->_item->application_id, $tag)).'">'.$tag.'</a>';

на следующий код (сравните некоторые параметры с параметрами вашего сайта!):

Код
$q='SELECT path FROM #__menu WHERE `link` like "index.php?option=com_zoo&view=tag&layout=item&tag='.$tag.'&task=tag&app_id=1"';
$db->setQuery($q);
$data_row = $db->loadAssoc();
if(!empty($data_row['path'])){

$values[] = '<a href="/'.$data_row['path'].'.html">'.$tag.'</a>';
} else {

$values[] = '<a href="'.JRoute::_($this->app->route->tag($this->_item->application_id, $tag)).'">'.$tag.'</a>';

}

И в самый конец файла после строк:

Код
public function render($params = array()) {

добавляем код:

Код
$db  = JFactory::getDbo();

Пояснения:

Код
WHERE `link` like "index.php?option=com_zoo&view=tag&layout=item&tag='.$tag.'&task=tag&app_id=1"';
, где link - параметр из таблицы _menu базы данных (The actually link the menu item refers to.);
index.php?option=com_zoo&view=tag&layout=item&tag='.$tag.'&task=tag&app_id=1 - значение данного параметра с вставкой в место, где указано название пункта меню переменной $tag.

После этой строчки следуют условия, при которых ссылка на тег в каталоге zoo меняется на ссылку пункта меню.

Вывод:
После данных манипуляций вы сможете создавать пункты меню в тегах, алиасы тегов во всех шаблонах вывода в каталоге zoo будут автоматически изменяться на алиасы созданных пунктов меню. Следовательно, на страницу тега, который выводится через пункт меню, вы сможете добавлять любые модули в стандартном режиме.

В данном случае даже хлебные крошки показывают правильный результат. На сайте, где было применено данное решение, используются штатные джумловские ЧПУ. Ссылка, где тег выведен пунктом меню, и на странице выведены модули.
« Последнее редактирование: 08.04.2016, 13:00:19 от ma1efic »
*

lenasha-dn

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
спасибо за подсказку, то что нужно!

Через недельку скину ссылку, как это всё работает в онлайн режиме.
кстати, неделька уж давно прошла, а ссылки нет ;)
*

verstalshik

  • Завсегдатай
  • 1754
  • 95 / 1
да все элементарно!
в шаблон модуля поиска кидаете нужные поля, далее на фронте запускаете поиск по этим полям, глядим внимательно на получившийся URL - это и будет искомая ссылка!! ее как внешний URL ставите пунктом меню - все пашет!! и никакого хардкода!!
❶ НЕ СПРАВЛЯЕШЬСЯ САМ???  Поможем тут...  ❷ Калькулятор доставки - ЗАКАЖИ!!!...  ❸ Каталог компаний - ЖМИ!!!...  ❹ НОВИЧКИ! ВСЕ сюда! Первая консультация БЕСПЛАТНО!!
*

isay777

  • Захожу иногда
  • 54
  • 0 / 0
Отлично решение.
Но каноникал по сути не срабатывает. А так всё супер! Спасибо автору за решение.
*

Bake

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
  • обычный разработчик сайтов
2. Теперь нужно подружить наши теги с пунктами меню. Здесь мы пошли похожим путём, как в пункте меню типа item.
Пункт 2. не работает. Пункты меню создаются, но что-то не получается подружить! Возможно, связано с изменениями в ZOO?
У меня на локалке стоит сейчас Zoo: 3.3.14

Может обновите вставку нужного кода?
*

isay777

  • Захожу иногда
  • 54
  • 0 / 0
После последнего обновления zoo слетело.
Будьте внимательны
*

ma1efic

  • Осваиваюсь на форуме
  • 34
  • 4 / 0
спасибо за подсказку, то что нужно!
кстати, неделька уж давно прошла, а ссылки нет ;)
Извиняюсь, забыл про эту тему, ссылку добавил в главный топик, правда не знаю, насколько она сейчас будет актуальна, т.к. версия компонента поменялась.

Пункт 2. не работает. Пункты меню создаются, но что-то не получается подружить! Возможно, связано с изменениями в ZOO?
У меня на локалке стоит сейчас Zoo: 3.3.14

Может обновите вставку нужного кода?

Только что проверил на версии Zoo 3.3.2. Всё работает по инструкции. Одна ошибка была, но это из-за того, что я сначала реализовал не в кодировке UTF-8. И кстати не рекомендую обновлять компонент. Скорее всего может всё слететь.

На всякий случай прикрепляю скриншот версии ZOO, на которой я только что проверял мануал.
*

Mirotvoretz

  • Захожу иногда
  • 65
  • 0 / 0
Версия Zoo 3.3.25 - по инструкции не заводится.
Меню создаётся, но ссылки получаются разными из меню и из итема. Делал по инструкции.
Поделитесь информацией, у кого получилось реализовать теги на Zoo 3.3.25+
*

radiant

  • Захожу иногда
  • 114
  • 3 / 0
ZOO v4.0.3 - по инструкции не заводится.
Меню создаётся, но ссылки получаются разными (из меню и из итема).
« Последнее редактирование: 11.12.2020, 09:43:43 от radiant »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] Превью в виде картинки с youtube для элемента MEDIA

Автор likrion

Ответов: 4
Просмотров: 4913
Последний ответ 13.10.2016, 07:02:34
от Театрал
Шифра с количеством итемов в каждой категории в меню

Автор tarkasha

Ответов: 0
Просмотров: 1563
Последний ответ 23.12.2014, 21:05:25
от tarkasha
Разные пункты меню для Teaser и Full

Автор mt_3000

Ответов: 12
Просмотров: 2148
Последний ответ 27.03.2014, 03:29:19
от Efanych
Badge в меню

Автор Tony Jones

Ответов: 2
Просмотров: 1826
Последний ответ 08.10.2013, 07:49:03
от Tony Jones
Теги и категории

Автор Tony Jones

Ответов: 0
Просмотров: 1332
Последний ответ 21.04.2013, 17:12:28
от Tony Jones