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

brigz

  • Осваиваюсь на форуме
  • 15
  • 1 / 0
Добрый день!
AdsManager 3.1.0 Free
Хочу добавить зарегистрированным пользователям возможность поднимать объявление вверх. По логике, чтобы объявление поднялось вверх, нужно изменить его дату публикации, т. е перезаписать данные в date_created в таблице adsmanager_ads.

В файле components/com_adsmanager/views/myads/tmpl/default.php создаю ссылку
Код
$target = TRoute::_("index.php?option=com_adsmanager&task=adsUpContent&id=$content->id");
                        echo "<a href='".$target."'>UP</a><br/>";
и функцию adsUpContent в файле administrator/components/com_adsmanager/models/content.php
Код
function adsUpContent($contentid,$newadsdate)
{
$newadsdate = date("Y-m-d H:i:s");
$this->_db->setQuery( "UPDATE #__adsmanager_ads SET date_created = '$newadsdate' WHERE id=".(int)$contentid."");
                $this->_db->query();
}
При нажатии на ссылку UP выбрасывает на страницу добавления объявления, значение date_created не перезаписывается и объявление вверх не подымается. Подскажите, что делаю не так, или это нужно реализовывать как-то по другому?
« Последнее редактирование: 31.07.2015, 11:13:53 от brigz »
*

brigz

  • Осваиваюсь на форуме
  • 15
  • 1 / 0
Re: Поднять объявление
« Ответ #1 : 31.07.2015, 11:10:43 »
Решил сам. Может кому пригодится для версии 3.1.0
Отображаем ссылку на странице Продление объявления "Мои объявления". Для этого в файле /components/com_adsmanager/views/myads/tmpl/default.php меняем
Код
if ($this->conf->expiration == 1) { 
if ($content->expiration_date != null) {
$expiration_time = strtotime($content->expiration_date);
$current_time = time();
if ($expiration_time - $current_time <= ($conf->recall_time * 3600 *24)) {
                                if(function_exists('countRenewDurations') && countRenewDurations() > 1){
                                    $target = TRoute::_("index.php?option=com_adsmanager&view=expiration&id=$content->id");
                                } else {
                                    $target = TRoute::_("index.php?option=com_adsmanager&task=renew&id=$content->id");
                                }
                                echo "<br/><a href='".$target."'>".JText::_('ADSMANAGER_RENEW_CONTENT')."</a>";
}
}
}
на
Код
$target = TRoute::_("index.php?option=com_adsmanager&view=expiration&id=$content->id");
echo "<a href='".$target."'>".JText::_('ADSMANAGER_RENEW_CONTENT')."</a>";
Ссылка Продление объявления появилась. Затем в файле  /components/com_adsmanager/controller.php
Код
function renew() {
$app = JFactory::getApplication();

$contentid = JRequest::getInt('id', 0);

$this->addModelPath(JPATH_ADMINISTRATOR.DS.'components'.DS.'com_adsmanager'.DS.'models');
$contentmodel =$this->getModel( "content" );

$confmodel =$this->getModel( "configuration" );
$conf = $confmodel->getConfiguration();

$c = $contentmodel->getContent($contentid,false);
if ($c == null)
exit();

if ($c->expiration_date == null) {
exit();
}

$expiration_time = strtotime($c->expiration_date);
$current_time = time();

if (function_exists("renewPaidAd")) {
renewPaidAd($contentid);
}
else
{
if ($current_time < $expiration_time - ($conf->recall_time * 3600 *24)) {
$app->redirect(TRoute::_("index.php?option=com_adsmanager"),JText::_('ADSMANAGER_CONTENT_CANNOT_RESUBMIT'),'message');
}
$contentmodel->renewContent($contentid,$conf->ad_duration);
}

$cache = JFactory::getCache( 'com_adsmanager');
$cache->clean();

$app->redirect(TLink::getMyAdsLink(), JText::_('ADSMANAGER_CONTENT_RESUBMIT'),'message');
}
поменял на
Код
function renew() {
$app = JFactory::getApplication();

$contentid = JRequest::getInt('id', 0);

$this->addModelPath(JPATH_ADMINISTRATOR.'/components/com_adsmanager/models');
$contentmodel =$this->getModel( "content" );

$confmodel =$this->getModel( "configuration" );
$conf = $confmodel->getConfiguration();

$c = $contentmodel->getContent($contentid,false);
if ($c == null)
exit();

if ($c->expiration_date == null) {
exit();
}

$expiration_time = strtotime($c->expiration_date);
$current_time = time();

if (function_exists("renewPaidAd")) {
renewPaidAd($contentid);
}
else
{
$contentmodel->renewContent($contentid,$conf->ad_duration);
}

$cache = JFactory::getCache( 'com_adsmanager');
$cache->clean();

$app->redirect(TLink::getMyAdsLink(), JText::_('ADSMANAGER_CONTENT_RESUBMIT'),'message');
}
Теперь дата подачи объявления изменяется на текущую и объявление перемещается на верхнюю позицию. Если нужно чтобы кроме даты обновлялось и время, в файле administrator/components/com_adsmanager/models/content.php
Код
function renewContent($contentid,$ad_duration)
{
$this->_db->setQuery( "SELECT expiration_date FROM #__adsmanager_ads WHERE id = ".(int)$contentid);
$expiration_date = $this->_db->loadResult();
$time = strtotime($expiration_date);
if ($time < time())
{
$time = time();
}
$time = $time + ( $ad_duration * 3600 *24);
$newdate = date("Y-m-d",$time);

$this->_db->setQuery( "UPDATE #__adsmanager_ads SET expiration_date = '$newdate', date_created = CURDATE(),recall_mail_sent=0,published=1 WHERE id=".(int)$contentid."");//TODO and recall_mail_sent = 1
$this->_db->query();
}
поменял на
Код
function renewContent($contentid,$ad_duration)
{
$this->_db->setQuery( "SELECT expiration_date FROM #__adsmanager_ads WHERE id = ".(int)$contentid);
$expiration_date = $this->_db->loadResult();
$time = strtotime($date_created);
if ($time < time())
{
$time = time();
}
$time = $time + ( $ad_duration * 3600 *24);
$newdate = date("Y-m-d",$time);

$this->_db->setQuery( "UPDATE #__adsmanager_ads SET expiration_date = '$newdate', date_created = NOW(),recall_mail_sent=0,published=1 WHERE id=".(int)$contentid."");//TODO and recall_mail_sent = 1
$this->_db->query();
}
« Последнее редактирование: 31.07.2015, 14:17:11 от brigz »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено]Дублирования ссылки "объвления" в breadcrumb, в компоненте AdsManager

Автор nicklas

Ответов: 4
Просмотров: 9720
Последний ответ 25.04.2024, 23:13:18
от Rinat abzyi
AdsManager 3.0.3 и вставка видео в объявление

Автор Tori777

Ответов: 1
Просмотров: 12632
Последний ответ 26.10.2018, 18:07:45
от avtomastersu
Как добавить тег в объявление?

Автор smls

Ответов: 1
Просмотров: 2653
Последний ответ 23.05.2018, 20:28:48
от smls
Как в Adsmanager'е выделить цветом объявление с определенным значением поля?

Автор Fetka

Ответов: 1
Просмотров: 16998
Последний ответ 20.02.2018, 00:30:44
от Fetka
[Решено] Похожие объявления в AdsManager 2.9.13

Автор Ishti39

Ответов: 17
Просмотров: 5870
Последний ответ 06.06.2017, 22:08:18
от gremeru777