Новости Joomla

Компонент 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

👩‍💻 WT LLMs для Joomla: llms.txt, llms.json для AI-агентов.

👩‍💻 WT LLMs для Joomla: llms.txt, llms.json для AI-агентов.

Это Joomla-компонент для публикации AI-ready карты сайта и автоматической генерации файлов llms.txt, llms-full.txt и llms.json по концепции llmstxt.org.  Также о концепции llms.txt говорит Google в своей справке Lighthouse. Решение помогает LLM-моделям, AI-агентам, GEO/AI SEO-процессам и внутренним автоматизациям получать структурированные данные о сайте без ручной сборки JSON и Markdown.

С помощью WT LLMs можно:
- создать структурированное описание сайта для AI-агентов;
- управлять профилем сайта, картой интентов и каноническими страницами для этих интентов из админки Joomla;
- генерировать llms.txt и llms.json;
- использовать REST API для автоматического заполнения данных;
- отдавать публичную schema-инструкцию для AI-агентов;

В комплект компонента входит плагин markdown-версии страниц Joomla. Системный плагин Joomla, который добавляет альтернативное Markdown-представление страниц сайта. Он позволяет отдавать содержимое страницы в более чистом текстовом формате, удобном для AI-агентов, LLM, поисковых систем и технических интеграций.
Плагин добавляет в ссылки на AI-файлы.

Пакет подходит для сайтов на Joomla 5+, которым важно сделать контент понятнее для LLM, AI-поиска, ассистентов и будущих систем машинного чтения.

Видео:
- ВК Видео
- RuTube
- YouTube

Ссылки:
Страница расширения
GitHub

@joomlafeed

0 Пользователей и 1 Гость просматривают эту тему.
  • 9 Ответов
  • 18531 Просмотров
*

Виталик

  • Завсегдатай
  • 1244
  • 130 / 0
Пример создания выпадающего списка (<SELECT>) с использованием класса JHTML

Данные для списка будем брать из базы данных.


     
// Получаем объект базы данных
     
$database =& JFactory::getDBO();
     
// Формируем запрос
     
$query "SELECT c.id AS value, c.title AS text FROM #__categories AS c WHERE c.section='com_qcontacts_details'";
     
// Выполняем запрос
     
$database->setQuery($query);
     
// Получаем массив объектов
     
$categorylist $database->loadObjectList();
     
// Создаём первый элемент выпадающего списка (<option value="0">Выберите категорию</option>)
     
$categories[] = JHTML::_('select.option',  '0'"Выберите категорию"'value''text' );
     
// Добавляем массив данных из базы данных
     
$categories array_merge$categories$categorylist);
     
// Получаем выпадающий список
     
$list JHTML::_(
                         
'select.genericlist' /* тип элемента формы */,
                         
$categories /* массив, каждый элемент которого содержит value и текст */
                         
'cid' /* id и name select`a формы */,
                         
'class="inputbox" size="1"' /* другие атрибуты элемента select */
                         
'value' /* название поля в массиве объектов содержащего ключ */,
                         
'text' /* название поля в массиве объектов содержащего значение */,
                         
/* value элемента, который должен быть выбран (selected) по умолчанию */
                      
);
« Последнее редактирование: 31.07.2009, 06:49:46 от Виталик »
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Виталик - замечательно, а сможешь описать создания не только SELECt, но и RADIO, multiply select и прочих опций форм с комментариями к каждой строке\переменной\массиву - цены не будет мануалу!
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
последний параметр списка не расписан.
значение по-молчанию, не 0, а NULL(!) ибо этот параметр может быть как числом/текстом, так и массивом совпадающих значений value
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
значение по-молчанию, не 0, а NULL(!) ибо этот параметр может быть как числом/текстом, так и массивом совпадающих значений value
Леш, это просто не очень однозначно написано, там имело в виду не то, что это значение по умолчанию у метода, а то, что это то значение, которое по умолчанию будет выбрано в списке.

p.s. Виталик, вообще респект, плюс я тебе вчера уже выдал. Если сделаешь для остальных элементов, как предложил Петр, я готов выдать еще дополнительные плюсы за каждый элемент :)
*

Mitrich

  • Захожу иногда
  • 289
  • 524 / 13
  • Все можно. Но сначала учиться, учиться и учиться.
« Последнее редактирование: 20.05.2009, 23:21:27 от smart »
*

vmir

  • Осваиваюсь на форуме
  • 17
  • 4 / 0
На сколько мне известно в Joomla есть всякие примочечки в плане расширений класса JHTML. Но вот чего там точно нет, так это CheckBoxа. И раз уж пошла такая маза предлагаю сообществу заценить мою разработку  ^-^

       
Код
function getCheckBox($arr, $name, $attribs = '', $key = 'value', $value = 'text', $selected = null, $separator = ',')
{
if(is_null($arr)) return '';

reset( $arr );
$html = '<div style="padding: 10px 0 10px 0;">';

$id = $name;
$name .= "[]";

$useSel = (!is_null($selected));
if($useSel)
{
if(is_array($selected)) $useSel = count($selected);
else
{
$selected = trim($selected);
$useSel = strlen($selected);
if($useSel)
{
if(strpos($separator, $separator) !== false) $selected = explode($separator, $selected);
else $selected = array($selected);
}
}
}

for ($i=0, $n=count($arr); $i < $n; $i++ )
{
$k = $arr[$i]->$key;
$v = $arr[$i]->$value;
$_id = $id.$i;
$checked = ($useSel && in_array($k, $selected)) ? 'checked' : '';
$html .= '<span '.$attribs.'>';
$html .= '<input type="checkbox" '.$attribs.' name="'.$name.'" id="'.$_id.'" value="'.$k.'" '.$checked.' />'.$v;
$html .= '</span>';
}
return $html.'</div>';
}

Эту функицю я использую в классе helper своего компонента и вызываю ее при необходимости для разных видов.
Краткое описание параметров:
1) $arr - массив объектов с данными на основе которых строится чекбокс (получается как правило при запросе к БД с помощью метода $db->loadObjectList())
2) $name - имя чекбокса в html-коде <input type="checkbox" name="'.$name.'">
3) $attribs - атрибуты элемента <input type="checkbox">
4) $key - название ключа для объекта из массива $arr
5) $value - название значения для объекта из массива $arr
6) $selected - это либо массив, либо строка значений (которые разделены с помощью $separator), или одно значение, которые(ое) в чекбоксе будет отмеченно галкой при отображении элемента на сранице
7) $separator - это разделитель для строки $selected в случае, когда она содержит множество значений
*

Mitrich

  • Захожу иногда
  • 289
  • 524 / 13
  • Все можно. Но сначала учиться, учиться и учиться.
$selected я бы передавал как string или как array

и проверял бы на is_array и не вводил бы лишний гемор в виде сепаратора
*

beliyadm

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

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
пример:
Код: php
$a = 'abcde';
$arr = array(
JHTML::_('select.option',  '0', JText::_( $a[0] ) ),
JHTML::_('select.option',  '1', JText::_( $a[1] ) ),
JHTML::_('select.option',  '2', JText::_( $a[2] ), 'value', 'text', true ), // <-- set true to disable
JHTML::_('select.option',  '3', JText::_( $a[3] ) ),
JHTML::_('select.option',  '4', JText::_( $a[4] ) )
);
$name = 'checklist';
$attribs = '';
$selected = 3;
$id = 'checklistid';
echo JHTML::_('select.genericlist',  $arr, $name, $attribs, 'value', 'text', (int) $selected, $id );
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Дополнение данной темы для движка 1.0.хх
Встроенной работы с параметром disabled нет. Потому открываем includes/joomla.php, находим функцию function selectList
и после
Код: php
} else {
$extra .= ($k == $selected ? " selected=\"selected\"" : '');
}
дописываем
Код: php
//Add disabled params
$extra2 = '';
$extra2 .= $id ? " id=\"" . $arr[$i]->id . "\"" : '';
if (is_array( $disabled )) {
foreach ($disabled as $obj2) {
$k3 = $obj2->$key;
if ($k == $k3) {
$extra2 .= " disabled=\"disabled\"";
break;
}
}
} else {
$extra2 .= ($k == $disabled ? " disabled=\"disabled\"" : '');
}
//
Далее вместо
Код: php
$html .= "\n\t<option value=\"".$k."\"$extra>" . $t . "</option>";
Пишем
Код: php
$html .= "\n\t<option value=\"".$k."\"$extra.$extra2>" . $t . "</option>";
Далее в нашем скрипте для элемента массива дописываем параметр
Код: php
$arr1[] = mosHTML::makeOption( '2', '22222', disabled );
и добавляем параметр $disabled в mosHTML::selectList
« Последнее редактирование: 20.06.2009, 18:09:24 от beliyadm »
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Валидация форм средствами Joomla

Автор VETERINAR

Ответов: 29
Просмотров: 49616
Последний ответ 09.10.2013, 15:14:44
от digitalheart
Как написать системный плагин для Joomla 1.5

Автор Sergey2

Ответов: 2
Просмотров: 39180
Последний ответ 23.06.2013, 15:28:38
от l-key
[how to] Красота JHTML, или создание элементов формы с

Автор Professor

Ответов: 11
Просмотров: 24794
Последний ответ 27.12.2012, 18:14:38
от BaR
Плагин рейтинга чего угодно для Joomla 1.5

Автор Obmor

Ответов: 54
Просмотров: 32438
Последний ответ 18.12.2012, 15:01:55
от Raimonds
Как вы "въехали" в создание расширений?

Автор aanvale

Ответов: 4
Просмотров: 2978
Последний ответ 13.10.2012, 21:44:25
от passer