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

Kami

  • Захожу иногда
  • 146
  • 5 / 0
левая колонка вылезает из блока и заезжает на футер, а если содержимого мало то она короткая. Хочется чтобы она была на высоту общего блока.

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

Kami

  • Захожу иногда
  • 146
  • 5 / 0
Код
/* begin Page */


html, body, form, fieldset {
margin: 0;
padding: 0;
}

body {
background: #fff;
font-size: 12px;
line-height: 1.5em;
}

body#background{
margin: 0 0 0 0; padding: 0;
font: normal 13px/1.6em  verdana, tahoma, sans-serif;
text-align: center;
color: #686567;
background: #fff;
}

/* Normal link */
a:link, a:visited {
color: #2b5f09;
background-color: inherit;
text-decoration: none;
}

a:hover, a:active {
color: #292929;
background-color: inherit;
}

a img {
border: none;
}

/* headers */
h1, h2, h3, h4 {
font: normal 1em 'Trebuchet MS', Tahoma, Arial, Sans-serif;
color: #292929;
}

h1 { font-size: 20px; color: #2b5f09; }
h2 { font-size: 2.5em; }
h3 { font-size: 1.8em; }
h4 { font-size: 1.5em; }

p, h1, h2, h3, h4 {
margin: 0;
padding: 5px 5px;
}


ul, ol {
margin: 10px 30px;
padding: 0 15px;
}

/* images */
img {
background: transparent;
   border: none;
}

fieldset {
margin: 0;
padding: 0;
border: none;
}

code {
  margin: .5em 0;
  display: block;
  padding: 20px;
  text-align: left;
  overflow: auto;  
  font: 500 1em/1.5em 'Lucida Console', 'Courier New', monospace ;
  /* white-space: pre; */
  background: transparent;
  border: 1px solid #211E20;  
}
acronym {
  cursor: help;
  border-bottom: 1px dotted #8F8F8E;
}
blockquote {
margin: 10px 15px;
  padding: 10px 0 10px 30px;  
   background: transparent;
border: 1px solid #211E20;  
   font: normal 1.6em/1.5em Georgia, "Times New Roman", Times, serif;
}


/* ======================== Layout ==============================*/

#header, #nav, #menu, #content, #footer-wrap , #topmenu{
width: 900px;
}

/* header */
#header {
clear: both;
position: relative;
margin: 0 auto; padding: 0;
background: none;
height: 234px;
text-align: center;
background:url(../images/header.jpg) no-repeat center top;
}


#topmenu
{
clear: both;
position: relative;
margin: 0 auto; padding: 0;
background: none;
height: 66px;
text-align: center;
background:url(../images/hornav.jpg) no-repeat center top;

}


 ul.mainlevel {
margin: 0 10px 0 10px;
padding: 0;
font-family: 'Trebuchet MS', Tahoma, Sans-serif;

}
 a.mainlevel {
font-size:14px;
font-weight: bold;
height: 26px !important;
color: #fff;
text-transform: uppercase;
padding-left: 30px;
background: url(../images/tmbg.png) no-repeat left;
background-position: 0 0;
margin: 0px;
list-style:none;
}

.mainlevel ul, .mainlevel ul li {
font-size:11px;
}

* HTML body  ul.mainlevel li { height: 1%; }

ul.mainlevel li a {
font-weight: bold;
color: #fff;
text-decoration: none;
padding: .2em 0 .2em 30px;
line-height: 18px;
font-size: 14px;
}
ul.mainlevel li a:hover {
color: #fff;
background: url(../images/tmbg.png) no-repeat left;
}







/* content */
#content-wrap {
clear: both;
margin: 0 auto;
width: 900px;
background: #dce9b6 url(../images/bodybg.png) no-repeat center bottom;
vertical-align: top;
}
#content {
text-align: left;
padding: 0 0 0 0;
margin: 0 auto; vertical-align: top;
}

/* sidebar */
#sidebar {
float: left;
height: 100%;
width: 257px;
margin: 0px 0 -21em 0px ;
padding: 0;
background: #73c445 url(../images/rightbg.gif) no-repeat center top;
}

/* main */
#main {
margin: 20px 20px 10px 0;
padding: 0;
vertical-align: top;
}

#footer-wrap {
clear: both;
padding: 0; margin: 0 auto;
background: #dadada url(../images/footer.jpg) no-repeat center top ;}

/* columns */
#columns {
clear: both;
text-align: left;
color: #666666;
margin: 0 auto;
padding: 1.6em 0 .5em 0;
width: 95%;
}

/* footer */
#footer-bottom {
clear: both;
margin: 0 auto;
padding: 0 0;
text-align: left;
font-size: 11px;
}

/* ============================= System Messages ====================================*/
#system-message    { margin-bottom: 10px; padding: 0;}
#system-message dt { font-weight: bold; }
#system-message dd { margin: 0; font-weight: bold; text-indent: 30px; }
#system-message dd ul { color: #0055BB; margin-bottom: 10px; list-style: none; padding: 10px; border-top: 3px solid #84A7DB; border-bottom: 3px solid #84A7DB; list-style: none;}

/* System Standard Messages */
#system-message dt.message { display: none; }
#system-message dd.message {  }

/* System Error Messages */
#system-message dt.error { display: none; }
#system-message dd.error ul { color: #c00; background-color: #E6C0C0; border-top: 3px solid #DE7A7B; border-bottom: 3px solid #DE7A7B; }

/* System Notice Messages */
#system-message dt.notice { display: none; }
#system-message dd.notice ul { color: #c00; background: #EFE7B8; border-top: 3px solid #F0DC7E; border-bottom: 3px solid #F0DC7E; list-style: none;}

/* Debug */
#system-debug     { color: #ccc; background-color: #fff; padding: 10px; margin: 10px; }
#system-debug div { font-size: 11px;}

/*================================ Header ========================================*/
#header h1#logo-text a {
position: absolute;
margin: 0; padding: 0;
font: bold 30px 'Trebuchet MS', Tahoma, Arial, Sans-serif;
color: #fff;
text-decoration: none;
z-index: 9998;
background: transparent;
top: 90px;
left: 20px;
}

/* ================================ Sidebar Menu ======================================*/
#sidebar h3 {
font: normal 16px 'Trebuchet MS', Tahoma, Arial, Sans-serif;
padding: 13px 0 10px 20px;
margin:5px;
color: #292929;
background: url(../images/newsbg.gif) no-repeat left center;
text-transform: none;

}
#sidebar .moduletable {
padding: 0 0 0 10px;

}
#sidebar ul.menu {
margin: 0 10px 0 10px;
padding: 0;
font-family: 'Trebuchet MS', Tahoma, Sans-serif;

}
#sidebar ul.menu li {
padding: 0;
background: #cceb6a;
margin: 2px;
list-style:none;
}

#sidebar ul, #sidebar ul li {
font-size:11px;}

* HTML body #sidebar ul.menu li { height: 1%; }

#sidebar ul.menu li a {
display: block;
font-weight: bold;
color: #2b5f09;
text-decoration: none;
padding: .2em 0 .2em 30px;
line-height: 18px;
font-size: 14px;
}
#sidebar ul.menu li a:hover {
color: #292929;
background: #b8e26d ;
}
#sidebar ul.menu ul { margin: 0 0 0 15px; }
#sidebar ul.menu ul li { border: none; }

/*=============================== Sidebar Module ===========================*/
#sidebar .moduletable{
overflow: hidden;
margin-bottom: 10px;
}

#sidebar .moduletable h3{
margin: 0;
}


/*=============================== Main ====================================*/
#main h2 {
font: normal 27px 'Trebuchet MS', Arial, Sans-serif;
color: #292929;
}

#main h2 a {
color: #84A5DA;
text-decoration: none;
}

#main ul {
background: #fff url(../images/quotesbg.gif) repeat-y left top;
padding-left:13px;
margin-left:10px;
}

#main ul li {
background: none;
margin-left:2px;

}

/*============================ Column =====================================*/
#columns h3 {
color: #292929;
margin: 0;
padding: 0 10px;
font: normal 1.4em "Trebuchet MS", Arial, Tahoma, Sans-serif;
text-transform: none;
}

#columns ul {
list-style: none;
margin: 10px 0 10px 0;
padding: 0;
border-top: 1px solid #ebebeb;
}
#columns li {
border-bottom: 1px solid #ebebeb;
}
#columns li a {
display: block;
padding: .5em 0 .5em 1em;
color: #407a9e;
}
#columns li a:hover {
color: #292929;
background:#f3f3f3;
}

#columns .col, .col-center {
float: left;
width: 31%;
}
#columns .col-center {
margin: 0 15px;
}

/*============================== Col3 Module =============================*/
#col .moduletable, #col-center .moduletable{
margin: 0 0 10px 0;
}

#col .moduletable h3, #col-center .moduletable h3{
margin: 0;
}

/* =================================== additional classes ===========================*/
.clear { clear: both; }
.grey { color: #8F8F8E; }


/*======================= ARTICLE =============================*/
.contentheading{
font: 20px 'Trebuchet MS',Arial,Sans-serif;
color: #292929;
}
/*.contentpaneopen a, .contentpaneopen a:link, .contentpaneopen a:visited{
}*/

.small, .createdate, .modifydate{
font-size: 10px;
line-height:10px;
color: #333;
}

.readon, a.readon:link, a.readon:visited{
width: 98px;
height: 26px;
margin:5px;
text-align:center;
font-weight:bold;
padding: 2px 2px;
color: #fff;
background: none;
}

a.readon:hover{
background: none;
}

.contenttoc{
float: right;
margin: 30px 10px 10px 10px ;
background: #1a1a1a;
}

.contenttoc tbody tr th{
padding: 10px;
}

a.toclink{
padding: 10px;
}

/*a.toclink:hover{
}

.pagenavcounter{
}*/


/*======================= COMPONENT =============================*/
.componentheading{
font: 14px 'Trebuchet MS',Tahoma,Arial,Sans-serif;
font-weight:bold;
color: #686567;
padding: 0px 0 10px 30px;
background: url(../images/welcomebg.gif) no-repeat 10px 0;
}

.contentpaneopen fieldset{
padding: 5px;
margin: 0 0 10px 0;
}

.highlight{
background: #333;
padding: 0px 3px;
}

.button{
background:#407a9e none repeat scroll 0 0;
border:2px solid #211E20;
color:#FFFFFF;
font:1em Arial,Tahoma,Sans-serif;
font-weight: bold;
margin:0 0 0 5px;
padding:0.25em 0.3em;
vertical-align: middle;
cursor:pointer;

}

.button:hover{
background:#222 none repeat scroll 0 0;
}

.inputbox{
border:1px solid #E5E5E5;
color:#777777;
padding:0.4em;
vertical-align:top;
}

td.sectiontableheader{
background:#090807 none repeat scroll 0 0;
border-color:#8EB200 #090807  #090807 ;
border-style:solid;
border-width:2px 0px 1px;
color:#FFFFFF;
height:3em;
padding-left:12px;
padding-right:12px;
text-align:left;
}

td.sectiontableheader a:link, td.sectiontableheader a:visited{
font-weight: bold;
}

tr .sectiontableentry1 td, tr .sectiontableentry2 td{
border:1px solid #211E20;
padding: 5px 10px;
}

/*========================= SEARCH ===========================*/
.search{
margin: 10px;
}
.search .button{
background:#2b5f09 none repeat scroll 0 0;
border:2px solid #211E20;
color:#FFFFFF;
vertical-align:middle;
font:1em Arial,Tahoma,Sans-serif;
font-weight: bold;
margin:0 0 0 5px;
padding:0.25em 0.3em;
}

/*.search .button:hover{
}*/

.search .inputbox{
border:1px solid #E5E5E5;
color:#777777;
padding:0.4em;
vertical-align:top;
width:11em;
text-transform: capitalize;
}

/*======================= LOGIN ==============================*/
#modlgn_username{
width: 80%;
}

#modlgn_passwd{
width: 80%;
}

/*======================= BREADCRUMB =========================*/


.pathway {padding: 5px;}


.breadcrumb .moduletable{
padding: 5px;
margin: 10px 10px;
}

.breadcrumb img{
border: none;
}

.pathway:link, .pathway:visited{
}
/*========================= POLLING ========================*/
tbody tr td{
text-align: left;
padding: 0 0 5px 0;
}

tbody tr td .poll tbody tr td{
text-align: left;
}

.poll tbody tr td div{
text-align: left;
/*width: 125px;
border: 1px solid #3C2B00;*/
margin-top: 10px;
}

.buttonheading {
padding:3px;
margin:2px;
}

/* begin PageFooter */
.designer, .designer a, .designer a:link, .designer a:visited, .designer a:hover
{
font-family:Arial;
font-size:10px;
letter-spacing:normal;
word-spacing:normal;
font-style:normal;
font-weight:normal;
text-decoration:none;
color:#ccc;
}

.designer
{
margin:0em;
text-align:center;
text-decoration:none;
color:#ccc;
}
/* end PageFooter */
#menu {
clear: both;
margin: 0 auto;
padding: 0;
}
*

Varyag0488

  • Захожу иногда
  • 68
  • 1 / 0
вообще слои сами выровниваются по содержимому, если не прописать высоту вручную, но это не всегда хорошо, если контента много то он вылезет за слой, есть способ сделать пошире, но там вродь надоеще один слой делать, поищи в инете, гдето видел решение. не помню где, и выложи конкретно какой код CSS отвечает за левый блок и футер
*

gdX

  • Глобальный модератор
  • 995
  • 128 / 0
  • Открыт к заказам по дизайну
*

Kami

  • Захожу иногда
  • 146
  • 5 / 0
футер так и называется у меня footer и за левый блок отвечает  sidebar

сайт www.s-milya-ru.1gb.ru
*

gdX

  • Глобальный модератор
  • 995
  • 128 / 0
  • Открыт к заказам по дизайну
Повнимательней посмотрите на верстку.
Если у #sidebar убрать margin:0 0 -21em; то проблема нахлеста на футер пропадает.
Пробовал в разделе новостей.
*

Kami

  • Захожу иногда
  • 146
  • 5 / 0
спасибо! точно заработало!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] Слетает правый сайдбар на шаблоне protostar

Автор Mick_20

Ответов: 4
Просмотров: 3592
Последний ответ 28.05.2020, 15:45:06
от Muzzy
Как сделать плавающий блок/модуль. Пример есть!

Автор Good_user

Ответов: 8
Просмотров: 13944
Последний ответ 04.04.2020, 13:49:11
от jan_dax
Исчезает блок с видео

Автор diana1975

Ответов: 14
Просмотров: 2449
Последний ответ 11.12.2019, 10:29:55
от sivers
На iPad в Safari блок вылезает за края [Решено]

Автор dm-krv

Ответов: 10
Просмотров: 2629
Последний ответ 11.08.2018, 19:42:53
от dm-krv
Социальные кнопки Яндекса - Блок «Поделиться» - асинхронно

Автор leo78

Ответов: 2
Просмотров: 3905
Последний ответ 17.10.2017, 00:09:07
от leo78