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

Vasilij30

  • Захожу иногда
  • 143
  • 1 / 6
в  AdsManager есть модуль mod_adsmanager_table который выводит в позицию последние объявления. Если его вставить в колонку справа или слева на сайте он раздвигает её независимо от настроек самой колонки (стоит пиксельное ограничение ширины колонок), получается он выезжает за пределы всего сайта. Пример ниже  что делать?



И второй вопрос. Как именно только в модуле (но чтоб эти поля остались в списке объявлений) убрать поля?? Ведь модуль связан со списком выводимых объявлений - вот эти, всю колонку и полное описание объявления



Вроде как надо наверное какой то код в каком то файле просто удалить но вот какой и где ...... Помогите пожалуйста кто в этом разбирается


« Последнее редактирование: 04.10.2014, 22:43:09 от Vasilij30 »
*

zvi

  • Захожу иногда
  • 392
  • 4 / 0
сделай как у меня резиновый на сайте ромны тандем  Услуги в Ромнах http://romnytandem.esy.es/
код дать?
*

zvi

  • Захожу иногда
  • 392
  • 4 / 0
кстати этот модуль можно крутить как хочеш путь сайт /modules/mod_adsmanager_table/tmpl/table.php
« Последнее редактирование: 04.10.2014, 22:54:22 от zvi »
*

Vasilij30

  • Захожу иногда
  • 143
  • 1 / 6
Буду рад если все получится, конечно давайте, мне важно  именно в боковые колонки его вставить и ширина всего 240 пикселов, шире нехочу делать ....
*

zvi

  • Захожу иногда
  • 392
  • 4 / 0
Буду рад если все получится, конечно давайте, мне важно  именно в боковые колонки его вставить и ширина всего 240 пикселов, шире нехочу делать ....

Спойлер
[свернуть]
может кому пригодится :-)
*

Vasilij30

  • Захожу иногда
  • 143
  • 1 / 6
нетакой уж он громоздкий, но незнаю что тут за что отвечает?

Цитировать
?>
<table class="adsmanager_table">
   <tr>
      <th><?php echo JText::_('ADSMANAGER_CONTENT'); ?></th>
      <?php
      foreach($columns as $col)
      {
         echo "<th>".JText::_($col->name)."</th>";
      }
      ?>
      <th><?php echo JText::_('ADSMANAGER_DATE'); ?></th>
   </tr>
<?php
   foreach($contents as $content)
   {
      $linkTarget = TRoute::_( "index.php?option=com_adsmanager&view=details&id=".$content->id."&catid=".$content->catid);
      if (function_exists('getContentClass'))
         $classcontent = getContentClass($content,"list");
         else
         $classcontent = "adsmanager_table_description";
      ?>  
   <tr class="<?php echo $classcontent;?>">
      <td class="column_desc">
         <?php
         if (isset($content->images[0])) {
            echo "<a href='".$linkTarget."'><img class='adimage' name='adimage".$content->id."' src='".JURI::base()."images/com_adsmanager/ads/".$content->images[0]->thumbnail."' alt='".htmlspecialchars($content->ad_headline)."' /></a>";
         } else {
            echo "<a href='".$linkTarget."'><img class='adimage' src='".ADSMANAGER_NOPIC_IMG."' alt='nopic' /></a>";
         }
         ?>
         <div>
         <h2>
            <?php echo '<a href="'.$linkTarget.'">'.$content->ad_headline.'</a>'; ?>
            <span class="adsmanager_cat"><?php echo "(".$content->parent." / ".$content->cat.")"; ?></span>
         </h2>
         <?php
            $content->ad_text = str_replace ('<br />'," ",$content->ad_text);
            $af_text = JString::substr($content->ad_text, 0, 100)."...";
            echo $af_text;
         ?>
         </div>
         
         <?php
         if (($userid == $content->userid)&&($content->userid != 0))   {
         ?>
         <div>
         <?php
            $target = TRoute::_("index.php?option=com_adsmanager&task=write&catid=".$content->catid."&id=$content->id");
            echo "<a href='".$target."'>".JText::_('ADSMANAGER_CONTENT_EDIT')."</a>";
            echo "&nbsp;";
            $target = TRoute::_("index.php?option=com_adsmanager&task=delete&catid=".$content->catid."&id=$content->id");
            echo "<a href='".$target."'>".JText::_('ADSMANAGER_CONTENT_DELETE')."</a>";
         ?>
         </div>
         <?php
         }
         ?>         
      </td>
      <?php
         foreach($columns as $col) {
            echo '<td class="tdcenter column_'.$col->id.'">';
            if (isset($fColumns[$col->id]))
               foreach($fColumns[$col->id] as $f)
               {
                  $c = $field->showFieldValue($content,$f);
                  if ($c != "") {
                     $title = $field->showFieldTitle(@$content->catid,$f);
                     if ($title != "")
                        echo htmlspecialchars($title).": ";
                     echo "$c<br/>";
                  }
               }
            echo "</td>";
         }
      ?>
      <td class="tdcenter column_date">
         <?php
         $iconflag = false;
         if (($conf->show_new == true)&&(isNewcontent($content->date_created,$conf->nbdays_new))) {
            echo "<div class='center'><img align='center' src='".$baseurl."/components/com_adsmanager/images/new.gif' /> ";
            $iconflag = true;
         }
         if (($conf->show_hot == true)&&($content->views >= $conf->nbhits)) {
            if ($iconflag == false)
               echo "<div class='center'>";
            echo "<img align='center' src='".$baseurl."/components/com_adsmanager/images/hot.gif' />";
            $iconflag = true;
         }
         if ($iconflag == true)
            echo "</div>";
         echo reorderDate($content->date_created);
         ?>
         <br />
         <?php
         if ($content->userid != 0)
         {
            echo JText::_('ADSMANAGER_FROM')." ";
            $target = TLink::getUserAdsLink($content->userid);
            echo "<a href='".$target."'>".$content->user."</a><br/>";
         }
         ?>
         <?php echo sprintf(JText::_('ADSMANAGER_VIEWS'),$content->views); ?>
      </td>
   </tr>
<?php   
}
?>
</table>
*

zvi

  • Захожу иногда
  • 392
  • 4 / 0
нетакой уж он громоздкий, но незнаю что тут за что отвечает?

у тебя Joomla 3 -2.5 просто поменяй свой файл по пути сайт /modules/mod_adsmanager_table/tmpl/table.php(свой сохрани желательно) стили у меня с сайта возьми или свои
*

Vasilij30

  • Захожу иногда
  • 143
  • 1 / 6
Заменил весь код, все равно лезет  вот  сайт  http://www.ramwed.ru/index.php/index/task-display.php

правая колонка..
*

Vasilij30

  • Захожу иногда
  • 143
  • 1 / 6
*

zvi

  • Захожу иногда
  • 392
  • 4 / 0

наверное не поменял нет читать полностью </div>
      <?php
         foreach($columns as $col) {
            echo '<div class="tdcenter column_'.$col->id.'">';
            if (isset($fColumns[$col->id]))
               foreach($fColumns[$col->id] as $f)
               {
                  $c = $field->showFieldValue($content,$f);
                  if ($c != "") {
                     $title = $field->showFieldTitle(@$content->catid,$f);
                     if ($title != "")
                        echo htmlspecialchars($title).": ";
                     echo "$c<br/>";
                  }
               }
            echo "</div>";
         }
      ?>
      
         <?php
         
         echo reorderDate($content->date_created);
         ?>
         
          <div class="btn-successst">
               <?php echo "<a href='".$linkTarget."'>читать полностью</a>";?>
          </div>      
      </div>

*

Vasilij30

  • Захожу иногда
  • 143
  • 1 / 6
выложи весь код от и до, так как ошибка там какая то....прямо все что в скрипте
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
1 - одна тема == один вопрос
2 - нужен пример кода, пока непонятно
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

zvi

  • Захожу иногда
  • 392
  • 4 / 0
наверное не поменял нет читать полностью </div>
      <?php
         foreach($columns as $col) {
            echo '<div class="tdcenter column_'.$col->id.'">';
            if (isset($fColumns[$col->id]))
               foreach($fColumns[$col->id] as $f)
               {
                  $c = $field->showFieldValue($content,$f);
                  if ($c != "") {
                     $title = $field->showFieldTitle(@$content->catid,$f);
                     if ($title != "")
                        echo htmlspecialchars($title).": ";
                     echo "$c<br/>";
                  }
               }
            echo "</div>";
         }
      ?>
      
         <?php
         
         echo reorderDate($content->date_created);
         ?>
         
          <div class="btn-successst">
               <?php echo "<a href='".$linkTarget."'>читать полностью</a>";?>
          </div>      
      </div>


или свой переделай на div и убири в настройках дату или выреж в коде
*

Vasilij30

  • Захожу иногда
  • 143
  • 1 / 6
я выложил одной код скрипта table.php   если поскажете что убрать в нём чтоб убралось то что на картинке будет может проще, мне в колонке полное описание не нужно
*

Vasilij30

  • Захожу иногда
  • 143
  • 1 / 6
да я полностью заменил то что выкладывал выше, но вылезла ошибка какая то.. наверное что недоразместил, мне все что в скрипте прям от и до
*

Vasilij30

  • Захожу иногда
  • 143
  • 1 / 6
я в php ноль полный, просто могу только что то куда то вставить или заменить.или кусок вырезать.. сильно не бейте уж.. просто подскажите
*

zvi

  • Захожу иногда
  • 392
  • 4 / 0
1 - одна тема == один вопрос
2 - нужен пример кода, пока непонятно
просто код поменяй по пути
наверное не поменял нет читать полностью </div>
      <?php
         foreach($columns as $col) {
            echo '<div class="tdcenter column_'.$col->id.'">';
            if (isset($fColumns[$col->id]))
               foreach($fColumns[$col->id] as $f)
               {
                  $c = $field->showFieldValue($content,$f);
                  if ($c != "") {
                     $title = $field->showFieldTitle(@$content->catid,$f);
                     if ($title != "")
                        echo htmlspecialchars($title).": ";
                     echo "$c<br/>";
                  }
               }
            echo "</div>";
         }
      ?>
      
         <?php
         
         echo reorderDate($content->date_created);
         ?>
         
          <div class="btn-successst">
               <?php echo "<a href='".$linkTarget."'>читать полностью</a>";?>
          </div>      
      </div>


ты наверное не поменял видиш у меня все в div а у тебя таблици
*

Vasilij30

  • Захожу иногда
  • 143
  • 1 / 6
да блин чтож такое то, выложи весь код этого скрипта, от и до...это то что выше только же его часть
*

zvi

  • Захожу иногда
  • 392
  • 4 / 0
у тебя нужно переделать с табличной верстки в div как минимум или вкинь мой готовый что проще он или будет работать или нет 2.5 стили мои или свои будет работать на ура, ни кто за тебя не будет работать
*

Vasilij30

  • Захожу иногда
  • 143
  • 1 / 6
у тебя нужно переделать с табличной верстки в div как минимум или вкинь мой готовый что проще он или будет работать или нет 2.5 стили мои или свои будет работать на ура, ни кто за тебя не будет работать

туплю  чото, все заменил посмотри, выложи стили свои для него а я подправлю под сайт
« Последнее редактирование: 04.10.2014, 23:43:28 от Vasilij30 »
*

Vasilij30

  • Захожу иногда
  • 143
  • 1 / 6
кстати вот, неподцепляет твой скрип пустую фотку, если в объяве её нету
*

zvi

  • Захожу иногда
  • 392
  • 4 / 0
убири верхнюю колонку
Спойлер
[свернуть]

Спойлер
[свернуть]

и тд методом тыка если не понимаеш убирай что нужно тебе
« Последнее редактирование: 05.10.2014, 11:11:43 от zvi »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

AdsManager вывод нужных полей по отдельности

Автор klekovkinandrey

Ответов: 2
Просмотров: 20440
Последний ответ 06.04.2024, 09:54:15
от Rinat abzyi
Вывод данных

Автор FlexNL

Ответов: 0
Просмотров: 4992
Последний ответ 06.11.2021, 12:37:54
от FlexNL
Заглушки с http://placehold.it вместо картинок в списке объявлений

Автор efimov777

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

Автор DomBeri

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

Автор trel

Ответов: 7
Просмотров: 5574
Последний ответ 25.03.2019, 09:02:25
от Technic