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

Kikasso

  • Захожу иногда
  • 99
  • 45 / 0

Этот способ будет действенен только для Ads начиная с версии 2.5RC2

Первый этап:
1. Заходим в админ панель и переходим к пункту редактирования полей в AdsMeneger ("AdsManager -> Fields List" )
2. Создаём поле со следующими параметрами:
- Type: SingleSelect
- Name: ad_delta
- Title: Срок размещения (на усмотрение)
- Required?: если оставите нет, то по умолчанию объявления будут публиковаться на срок 30 дней
- Published?: Да
- Editable?: Да
- Добавляете параметры:
   


Если всё получилось и данное поле отображается в форме добавления объявления, переходим ко второму этапу:
И так кодинг:
Находим в файле adsmanager.php кусок кода:
Код
	$isUpdateMode  = intval(mosGetParam( $_POST, 'isUpdateMode', 0));
if ($isUpdateMode == 0)
{
if ($conf->auto_publish == 1)
{
$row->published = 1;
$redirect_text = ADSMANAGER_INSERT_SUCCESSFULL_PUBLISH;
}
else
{
$row->published = 0;
$redirect_text = ADSMANAGER_INSERT_SUCCESSFULL_CONFIRM;
}
}
else
$redirect_text .= ADSMANAGER_UPDATE_SUCCESSFULL;

if ($isUpdateMode == 0)
{
$row->date_created = date("Y-m-d");
$delta = $conf->ad_duration; 
echo $delta;
$row->expiration_date = date("Y-m-d",mktime()+($delta*24*3600));

}

и меняем его на:
Код
$isUpdateMode  = intval(mosGetParam( $_POST, 'isUpdateMode', 0));
$delta =intval(mosGetParam( $_POST, 'ad_delta',30 ));
if ($isUpdateMode == 0)
{
if ($conf->auto_publish == 1)
{
$row->published = 1;
$recall_time = $conf->recall_time;
$redirect_text = sprintf(ADSMANAGER_INSERT_SUCCESSFULL_PUBLISH,$delta,$recall_time);
}
else
{
$row->published = 0;
$redirect_text = ADSMANAGER_INSERT_SUCCESSFULL_CONFIRM;
}
}
else
$redirect_text .= ADSMANAGER_UPDATE_SUCCESSFULL;

if ($isUpdateMode == 0)
{
$row->date_created = date("Y-m-d");
$row->expiration_date = date("Y-m-d",mktime()+($delta*24*3600));
}

Последний штрих, для корректного вывода информационного собщения

в используемом языковом файле изменяем значение переменной ADSMANAGER_INSERT_SUCCESSFULL_PUBLISH , по максимуму это будет выглядеть так:
Код
DEFINE( "ADSMANAGER_INSERT_SUCCESSFULL_PUBLISH","Ваше объявление опубликовано.Срок публикации %s дней, за %s дней до окончания срока Вам на e-mail придет уведомление с ссылкой на продление.");
*

Nishtiak

  • Захожу иногда
  • 112
  • 3 / 0
У меня не получилось! у меня даже код adsmanager.php отличается может напишешь подробнее что и как.
*

bargakuzzo

  • Осваиваюсь на форуме
  • 46
  • 3 / 0
А у меня заработало на 2.5RC1. Спасибо.
*

Nishtiak

  • Захожу иногда
  • 112
  • 3 / 0
У меня еще есть пару вопросов касательно Adsmanager а вот спросить не у кого, на форумах мало на что отвечают, а ты я видел часто помогаешь в решениях проблем. Может поможешь мне тоже, думаю многим будут полезны изменения   
*

bargakuzzo

  • Осваиваюсь на форуме
  • 46
  • 3 / 0
А ads какой? (Я вообще не специалист, так пытаюсь разобраться).
Найди блокнотом Notepad++ (если нет - скачай и установи, полезная штука) какой-то маленький кусочек кода (например $isUpdateMode) и замени весь кусок на предложенный. В блокноте поиск = Ctr+F.
Создай поле как написано (можешь со своим вариантом сроков публикации и позицией вывода).
Также в языковом файле измени DEFINE( "ADSMANAGER_INSERT_SUCCESSFULL_PUBLISH","Ваше объявление опубликовано.Срок публикации %s дней, за %s дней до окончания срока Вам на e-mail придет уведомление с ссылкой на продление."); или свой вариант.
Вроде все.
*

Dimm555

  • Захожу иногда
  • 103
  • 6 / 0
bargakuzzo, вот у меня такая же RC1 как и у тебя, но, к сожалению, не работает... Ты не знаешь, что можно проверить, может у меня какие функции в коде повреждены?
И как можно проверить, что работает? Через день удаляется или если, например, на денвере время перевести?
*

bargakuzzo

  • Осваиваюсь на форуме
  • 46
  • 3 / 0
Посмотри настройки поля, может ты его не опубликовал. В Ads объявы по умолчанию на сколько выставлены-?
Вот файл. Строки с 1207 по 1230. Попробуй заменить этот на свой, только свой скопируй на всякий случай, если что - обратно поставишь.
Мне кажется что проблема в настройках поля, поковыряйся.

[вложение удалено Администратором]
*

Kikasso

  • Захожу иногда
  • 99
  • 45 / 0
У меня не получилось! у меня даже код adsmanager.php отличается может напишешь подробнее что и как.
в более ранних версиях Адс, дата окончания публикации вычислятется исходя из сегодняшней даты:
Код
$expiration_date = date("Ymd",mktime()-($delta*24*3600));
именно поэтому приведённый выше рецепт, не подходит

*

eklmn

  • Осваиваюсь на форуме
  • 34
  • 2 / 0
Спасибо.
Цитировать
- Required?: если оставите нет, то по умолчанию объявления будут публиковаться на срок 30 дней
- Это значит что будет срок по умолчанию, тот который администратор установил в конфигурации?
- Что если в настройках поля для срока (ad_delta) сделать -Редактируемый? - нет-    Получится так, что поле будет отображаться при добавлении объявления пользователем с фронта, но пользователь не сможет установить срок (выпадающий список не работает:) При этом администратор в админке может поменять срок для этого объявления. Получится, что администратор может установить любой срок для объявления без участия пользователя? Если так, то как бы скрыть поле ad_delta на фронте для пользователя? (хотя можно и не скрывать).
*

Kikasso

  • Захожу иногда
  • 99
  • 45 / 0
1. если не сделать это поле обязательным для заполнения и пользователь при добавлении объявления не выберет срок, то ему будет присвоена ad_delta=30 дней;
для изменения этой даты правим
Код
$delta =intval(mosGetParam( $_POST, 'ad_delta',30 ));
где 30 - это и есть значение по умолчанию

2. тебя интересует возможность изменять срок публикации только администратором в админке?
*

eklmn

  • Осваиваюсь на форуме
  • 34
  • 2 / 0
Ясно, спасибо.
Да, это было бы здорово, чтобы только администратор устанавливал срок публикации.
« Последнее редактирование: 10.02.2010, 21:48:53 от eklmn »
*

Kikasso

  • Захожу иногда
  • 99
  • 45 / 0
Для того чтобы из админки можно было устанавливать произвольную дату окончания публикации объявления, необходимо:
в файле admin.adsmanager.html.php найти function displayAd после строчки
Код
<table cellpadding="4" cellspacing="0" border="0" width="100%" class="adminlist">
вставляем
Код
<tr>
<td><?php echo ADSMANAGER_EXPIRATION_DATE; ?></td>
<td>
<input name="expiration_date" type="text" size="10" value="<?php echo $row->expiration_date; ?>">
</td>
<td>&nbsp;</td>
</tr>

Проверяем чтоб в adsmanager.class.php class adsManagerAd содержит var $published = null;

*

eklmn

  • Осваиваюсь на форуме
  • 34
  • 2 / 0
Сделал.
Добавил в lang: DEFINE('ADSMANAGER_EXPIRATION_DATE','Дата окончания публикации объявления');
Спасибо, за такой хороший хак и помощь, буду пробовать.
*

Kikasso

  • Захожу иногда
  • 99
  • 45 / 0
Готовое решение на тему "Срок публикаци объявлений только для администратора" + календарик для ввода даты, можно просмотреть тут
http://joomlaforum.ru/index.php/topic,100565.new.html#new
*

Nishtiak

  • Захожу иногда
  • 112
  • 3 / 0
в более ранних версиях Адс, дата окончания публикации вычислятется исходя из сегодняшней даты:
Код
$expiration_date = date("Ymd",mktime()-($delta*24*3600));
именно поэтому приведённый выше рецепт, не подходит
Спасибо! помогло!
*

Nishtiak

  • Захожу иногда
  • 112
  • 3 / 0
Подскажите пожалуйста, у меня объявления выглядят так (картинка 1) а мне нужно чтоб выглядели так (картинка 2). Короче нужен компактный вид объявлений, то-есть только заголовок, дата и город, а миниатюры фотографий заменить на иконку, например фотоаппарата, при наведении на который отображалась бы фотография с объявления (картинка3). И еще при наведении на заголовок чтоб отображался текст объявления (картинка2).





*

Ротор

  • Захожу иногда
  • 97
  • 0 / 0
Kikasso в очередной раз + ^-^,было замечательно если бы ты подсказал теперь как прикрутить рейтинги к адсу ::)
*

Rudolf

  • Захожу иногда
  • 65
  • 11 / 0
Хочу добавить: когда у себя реализовывал срок размещения, то для большей эффективности использовал условие, при котором, в случае, если когда то захочется убрать изменяемый срок размещения на стандартный, то не нужно будет править компонент

Код
if ($isUpdateMode == 0)
{
$row->date_created = date("Y-m-d");

// период размещения объявления
if ( $_POST['ad_period']) $delta = $_POST['ad_period'];
else $delta = $conf->ad_duration; 
$row->expiration_date = date("Y-m-d",mktime()+($delta*24*3600));

}
бизнес-планирование, финансовое моделирование
*

samson56633

  • Осваиваюсь на форуме
  • 37
  • 7 / 1
  • Самсон
1. если не сделать это поле обязательным для заполнения и пользователь при добавлении объявления не выберет срок, то ему будет присвоена ad_delta=30 дней;
для изменения этой даты правим
Код
$delta =intval(mosGetParam( $_POST, 'ad_delta',30 ));
где 30 - это и есть значение по умолчанию.

Что-то не получается чтоб срок был 30 дней.  У меня после добавления объявы табличка пишет (Поздравляем, Ваша объявление удачно добавлено! Срок публикации 0 дней.) и реально объява опубликовывается на 0 дней!
Поле я поставил не обязательным. А вот если я поле вообще отключаю, тогда публикуется на 30 дней.

И еще вопрос.  Как бы сделать чтоб срок размещения объявлений был доступен только зарегистрированным пользователям.
А не зарегистрированным это поле не выводилось и естественно срок ставился бы автоматом, указанный в 'ad_delta'
« Последнее редактирование: 26.02.2010, 17:35:17 от samson56633 »
*

igriv

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
Для того чтобы из админки можно было устанавливать произвольную дату окончания публикации объявления, необходимо:
в файле admin.adsmanager.html.php найти function displayAd после строчки
Код
<table cellpadding="4" cellspacing="0" border="0" width="100%" class="adminlist">
вставляем
Код
<tr> 
<td><?php echo ADSMANAGER_EXPIRATION_DATE; ?></td>
<td>
<input name="expiration_date" type="text" size="10" value="<?php echo $row->expiration_date; ?>">
</td>
<td>&nbsp;</td>
</tr>

Проверяем чтоб в adsmanager.class.php class adsManagerAd содержит var $published = null;



не сохраняется дата, после изменения
и с календариком ошибка выходит
« Последнее редактирование: 04.03.2010, 03:35:04 от igriv »
*

igriv

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
как можно сделать, что бы при обновлении объявления, изменялся срок окончания на количество выбранных дней от даты обновления?

*

igriv

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
if ($isUpdateMode == 0) нужно убрать из кода, что бы обновлялись даты при обновлении, спасибо Leech
*

archik

  • Осваиваюсь на форуме
  • 31
  • 4 / 0
Подскажите пожалуйста, что надо сделать чтоб я мог добавить срок размещения объявлений на AdsMeneger 2.2.1
*

Doc

  • Захожу иногда
  • 456
  • 17 / 0
Для того чтобы из админки можно было устанавливать произвольную дату окончания публикации объявления, необходимо:
в файле admin.adsmanager.html.php найти function displayAd после строчки
Код
<table cellpadding="4" cellspacing="0" border="0" width="100%" class="adminlist">
вставляем
Код
<tr>
<td><?php echo ADSMANAGER_EXPIRATION_DATE; ?></td>
<td>
<input name="expiration_date" type="text" size="10" value="<?php echo $row->expiration_date; ?>">
</td>
<td>&nbsp;</td>
</tr>

Проверяем чтоб в adsmanager.class.php class adsManagerAd содержит var $published = null;


Поставил этот код, но почему то число не сохранялось
Из разных тем собрал вот такой
Код
<tr>
<td><?php echo ADSMANAGER_EXPIRATION_DATE; ?></td>
<td><form action="index2.php" method="post" name="adminForm" id="adminForm" class="adminForm" enctype="multipart/form-data">
<input name="expiration_date" type="text" size="10" value="<?php echo $row->expiration_date; ?>">
</td>
<td>&nbsp;</td>
</tr>
Теперь все сохраняется
Теперь бы хотел узнать, правильной код собрал ?
Можно его использовать ?
*

omvitamin

  • Осваиваюсь на форуме
  • 33
  • 0 / 1
Что-то не получается чтоб срок был 30 дней.  У меня после добавления объявы табличка пишет (Поздравляем, Ваша объявление удачно добавлено! Срок публикации 0 дней.) и реально объява опубликовывается на 0 дней!
Поле я поставил не обязательным. А вот если я поле вообще отключаю, тогда публикуется на 30 дней.

И еще вопрос.  Как бы сделать чтоб срок размещения объявлений был доступен только зарегистрированным пользователям.
А не зарегистрированным это поле не выводилось и естественно срок ставился бы автоматом, указанный в 'ad_delta'


Тоже самое. Публикуется на ноль дней.
*

wtp

  • Осваиваюсь на форуме
  • 26
  • 1 / 0
Подскажите замену кода для adsmanager 2.6
*

apelsin

  • Захожу иногда
  • 129
  • 0 / 1
Для 2.6 кто нибудь смог сделать?
*

Flanker381

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Для 2.6 кто нибудь смог сделать?

Сделал в 2.6.2

Этот фрагмент кода в данной версии находится в controller.php
*

apelsin

  • Захожу иногда
  • 129
  • 0 / 1
Какой именно код вставил? в controller.php код отличается от того что в первом сообщении
*

Алекс82

  • Захожу иногда
  • 120
  • 4 / 0
  • Совсем новичок
Сделал в 2.6.2

Этот фрагмент кода в данной версии находится в controller.php
Там другой код. Вы какой вставили.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Заглушки с http://placehold.it вместо картинок в списке объявлений

Автор efimov777

Ответов: 6
Просмотров: 7670
Последний ответ 12.04.2020, 07:25:59
от Pavel
Хочу уточнить, есть в AdsManager возможность загрузки объявлений с парсера?

Автор DomBeri

Ответов: 3
Просмотров: 11253
Последний ответ 28.03.2019, 17:20:10
от DomBeri
Удалить карту объявлений Google

Автор trel

Ответов: 7
Просмотров: 5577
Последний ответ 25.03.2019, 09:02:25
от Technic
Вывод объявлений в случайном порядке

Автор Sabotage

Ответов: 3
Просмотров: 2933
Последний ответ 28.09.2018, 14:21:05
от Sabotage
Поля в списке объявлений

Автор klekovkinandrey

Ответов: 0
Просмотров: 2178
Последний ответ 17.01.2018, 10:18:34
от klekovkinandrey