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

KryaKusha

  • Новичок
  • 1
  • 0 / 0
Привет, киберфорум!
Недавно убрал с сайта поле под главным горизонтальным меню, в котором находились строка местонахождения на сайте(которую меня попросили убрать совсем) и поисковая строка.
Никак не могу перенести модуль поиска по сайту в другое место.
Здесь само меню сайта. Красным отмечена область, куда нужно вставить поисковую строку.
Горизонтальное меню называется topmenu.
Из php кода я убрал модуль subhead, в котором есть и строка поиска и навигатор по сайту:
<div id="subhead">
	
	
	
	
<?
php if($this->countModules('position-2')) : ?>
	
            
	
<jdoc:include type="modules" name="position-2" />
	
	
	
	
<?php endif; ?>
	
	
	
	
<?php if($this->countModules('position-0')) : ?>
	
	
	
	
	
<div id="search">
	
	
	
             <jdoc:include type="modules" name="position-0" />
	
	
	
	
	
</div>
	
	
	
	
<?php endif; ?>
	
	
	
</div>

Вот сам php код:
<?php
defined
'_JEXEC' ) or die( 'Access to this location is RESTRICTED.' );
echo 
'<?xml version="1.0" encoding="utf-8"?'.'>'
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language?>" lang="<?php echo $this->language?>" >
<head>
	
<?php require("head_includes.php"); ?>
	
<jdoc:include type="head" />
</head>
<body>
	
<?php if($whatWidth == 1) : ?>
	
	
<div id="wrapper" style="max-width:<?php echo htmlspecialchars($this->params->get('pageMaxWidth'));?>;">
	
<?php endif;?>
	
<?php if($whatWidth == 0) : ?>
	
	
<div id="wrapper" style="width:<?php echo htmlspecialchars($this->params->get('pageWidth'));?>;">
	
<?php endif;?>
	
	
<?php require("modules/toppanel.php"); ?>
	
	
<?php require("modules/beforehead.php"); ?>
	
	
<div id="header_container">
	
	
	
<?php if (($this->params->get('showHeader'))!=0) : ?>
	

	
	
	
	
<div id="header">
	
	
	
	
	
<?php if($this->countModules('headermodule1')) : ?>
	
	
	
	
	
	
<div id="headermodule1">
	
	
	
	
	
	
	
<jdoc:include type="modules" name="headermodule1" />
	
	
	
	
	
	
	
<div class="clr"></div>
	
	
	
	
	
	
</div>
	
	
	
	
	
<?php endif; ?>
	
	
	

	
	
	
	
	
<?php if($this->countModules('banner')) : ?>
	
	
	
	
	
	
<div id="banner_outer">
	
	
	
	
	
	
	
<div id="banner">
	
	
	
	
	
             <jdoc:include type="modules" name="banner"/>
	
	
	
	
	
	
	
</div>
	
	
	
	
	
	
</div>
	
	
	
	
	
<?php endif; ?>
	
	
	

	
	
	
	
	
<div id="logo">
	
	
	
	
	
	
<?php if (($this->params->get('showimgLogo'))!=0) : ?>
	
	
	
	

	
	
	
	
	
	
	
<a class="imglogo" href="index.php"><img alt="Logo" src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/images/logo/<?php echo htmlspecialchars($this->params->get('imgLogo'));?>"/></a>
	
	
	
	
	
	
<?php endif;?>
	
	
	
	
	
	
<?php if (($this->params->get('showMediaLogo'))!=0) : ?>
	
	
	
	

	
	
	
	
	
	
	
<a class="medialogo" href="index.php"><img alt="Logo" src="<?php echo $this->baseurl ?>/<?php echo htmlspecialchars($this->params->get('mediaLogo'));?>"/></a>
	
	
	
	
	
	
<?php endif;?>
	
	
	
	
	
	
<?php if (($this->params->get('showtextLogo'))!=0) : ?>
	
	
	
	

	
	
	
	
	
	
	
<a style="color:#<?php echo htmlspecialchars($this->params->get('logoColor'));?>;" class="logo" href="index.php"><?php echo htmlspecialchars($this->params->get('textLogo'));?></a>
	
	
	
	
	
	
<?php endif;?>
	
	
	
	
	
	
<?php if (($this->params->get('showSlogan'))!=0) : ?>
	
	
	
	

	
	
	
	
	
	
	
<div style="color:#<?php echo htmlspecialchars($this->params->get('sloganColor'));?>;" class="slogan"><?php echo htmlspecialchars($this->params->get('slogan'));?></div>
	
	
	
	
	
	
<?php endif;?>
	
	
	
	
	
</div>
	

	
	
	
	
	
<?php if($this->countModules('headermodule2')) : ?>
	
	
	
	
	
	
<div id="headermodule2">
	
	
	
	
	
	
	
<jdoc:include type="modules" name="headermodule2" />
	
	
	
	
	
	
	
<div class="clr"></div>
	
	
	
	
	
	
</div>
	
	
	
	
	
<?php endif; ?>
	
	
	

	
	
	
	
	
<span class="heckl">&nbsp;</span>
	
	
	
	
	
<span class="heckr">&nbsp;</span>
	
	
	
	
</div>
	
	
	
<?php endif; ?>
	
	
	

	
	
	
<?php require("modules/afterhead.php"); ?>
	
	
	
<?php if($this->countModules('position-1')) : ?>
	
	
	
	
<div id="topmenu_container">
	
	
	
	
	
<div id="topmenu">
	
	
	
             <jdoc:include type="modules" name="position-1" />
	
	
	
	
	
</div>
	
	
	
	
	

	
	
	
	
	
<div class="clr"></div>
	
	
	
	
</div>
	
	
	
<?php endif; ?>
	
	
	
<?php if($this->countModules('position-1-1')) : ?>
	
             <jdoc:include type="modules" name="position-1-1" />
	
	
	
	
<div class="clr"></div>
	
	
	
<?php endif; ?>
	
	
</div>
	
	
<?php if($this->countModules('position-2 or position-0')) : ?>
	
	
	

	
	
<?php endif; ?>
	
	
<div id="container">
	
	
	
<?php if($this->countModules('slider')) : ?>
	
	
	
	
<div id="slider">
	
	
	
	
	
<jdoc:include type="modules" name="slider" />
	
	
	
	
</div>
	
	
	
	
<div class="clr"></div>
	
	
	
<?php endif; ?>
	
	
	
<?php require("modules/top.php"); ?>
	
	
	
<?php if($this->countModules('position-7')) : ?>
	
	
	
	
<div id="leftcol">
	
	
             <jdoc:include type="modules" name="position-7" style="lvround_left" />
	
	
	
	
</div>
	
	
	
<?php endif; ?>
	
	

	
	
    <div id="content_out<?php echo $contentwidth?>">
	
	
	
	
<?php require("modules/advert_top.php"); ?>
	
	
	
	
<div id="maincontent">
	
	
	
	
	
<jdoc:include type="message" />
	

<?php require_once(dirname(__FILE__).'/css/system.php'); ?>
	
	
	
	
	

	
	
	
	
	
<jdoc:include type="component" />
	
	
	
	
</div>
	
	
	
	
<div class="clr"></div>
	
	
	
	
<span class="shadow-left">&nbsp;</span>
	
	
	
	
<span class="shadow-right">&nbsp;</span>
	
	
	
	
<?php require("modules/advert_btm.php"); ?>
	
	
	
</div>
	
	
	
<?php if($this->countModules('position-8')) : ?>
	
	
	
	
<div id="rightcol">
	
	
             <jdoc:include type="modules" name="position-8" style="lvround_right" />
	
	
	
	
</div>
	
	
	
<?php endif; ?>
	

	
	
	
<div class="clr"></div>
	
	
</div>
	
	
<?php require("modules/bottom.php"); ?>
	
	
<div class="clr"></div>
	
</div>
	
<?php if($whatWidth == 1) : ?>
	
	
<div id="foot_container" style="max-width:<?php echo htmlspecialchars($this->params->get('pageMaxWidth'));?>;">
	
<?php endif;?>
	
<?php if($whatWidth == 0) : ?>
	
	
<div id="foot_container" style="width:<?php echo htmlspecialchars($this->params->get('pageWidth'));?>;">
	
<?php endif;?>
	
	
<?php require("modules/foot.php"); ?>
	
	
	
	
<?php if($this->countModules('footer')) : ?>
	
	
	
	
	
<div id="footermodule">
	
	
	
	
	
	
<jdoc:include type="modules" name="footer" />
	
	
	
	
	
</div>
	
	
	
	
<?php endif; ?>
	
	
	

	

	
	
<?php if (($this->params->get('showSubfoot'))!=0) : ?>
	

	
	
	
<div id="subfoot">
	
	
	
	
<?php if (($this->params->get('showCopy'))!=0) : ?>
	
	
	
	

	
	
	
	
	
<div class="copytext">&copy; <?php echo htmlspecialchars($this->params->get('copyText'));?></div>
	
	
	
	
<?php endif;?>
	
	
	
</div>
	
	
<?php endif; ?>
	
	
	

	

	
	
<div class="clr"></div>
	
	
	
<div id="footer">
	
	
	
	
<div class="footer-inner">
	
	
	
	
	
<span class="feckl">&nbsp;</span>
	
	
	
	
	
<span class="feckr">&nbsp;</span>
	
	
	
	
	
<div id="scroll_up"> <a href="#" class="lv-tooltip" id="gotop" title="Scroll to top">&uarr;&uarr;&uarr;</a></div>
	
	
	
	
	
<?php require("modules/footermodules.php"); ?>
	
	
	
	
</div>
	
	
	
	
<div class="footer-bottom">
	
	
	
	
	
<?php if (($this->params->get('showDate'))!=0) : ?>
	
	
	
	

	
	
	
	
  
	
	
<span id="date"><?php $format =''; echo JHTML::_('date''now'$format $format JText::_('DATE_FORMAT_LC1')); ?></span>
	
	
	
	
	
<?php endif;?>
	
	
	
  
	
	
<span id="copy"><a href="http://joomla3x.ru/" title="joomla 3">joomla3x</a></span>
	
	
	
	
</div>
	
	
	
</div>
	
	

	
	
<div class="clr"></div>
	
</div>
	

	
<?php require("modules/sidepanel.php"); ?>
	
<jdoc:include type="modules" name="debug" />
</body>
</html>

Вот поиск в файле css:
[CSS].search input.button {
   margin:0;
   padding:1px 2px !important;
   vertical-align:middle;
}[/CSS]
Помогите пожалуйста добавить поиск на сайт, очень надо.
*

rqoon

  • Новичок
  • 7
  • 0 / 0
Модуль поиска, глядя на код, был в позиции 'position-0' которая была в том самом "id="subhead'".
Код

<div id="search">

             <jdoc:include type="modules" name="position-0" />

</div>
Нужно просто назначить модулю поиска другую позицию.
*

levitan

  • Захожу иногда
  • 142
  • 1 / 0
Расширения - менеджер модулей - выбрать нужный - выбор позиции. И выбирайте ту, которая Вам требуется. Позиции (если не отключен просмотр в настройках системы) можно просмотреть, добавив в конце адреса сайта ?tp=1
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как сделать плавающий модуль?

Автор THeCMeX

Ответов: 2
Просмотров: 2776
Последний ответ 08.03.2021, 22:21:01
от Flexderection
Как сделать плавающий блок/модуль. Пример есть!

Автор Good_user

Ответов: 8
Просмотров: 13945
Последний ответ 04.04.2020, 13:49:11
от jan_dax
helix 3 не могу заставить работать position: sticky;

Автор platonische

Ответов: 0
Просмотров: 2746
Последний ответ 04.01.2020, 16:01:16
от platonische
Не могу вывести картинку нужно размера

Автор stonehand

Ответов: 3
Просмотров: 2032
Последний ответ 22.03.2019, 21:55:29
от sivers
Как вставить красивю кнопку CSS в модуль/материал?

Автор kunsaid

Ответов: 6
Просмотров: 3663
Последний ответ 02.10.2018, 23:16:12
от kunsaid