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

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Уважаемые господа! Хочу отметить, что есть прекрасный раздел для условий Различные условия в шаблонах Joomla 1.5
Предлагаю вам универсальное решение
И так при включенном SEF, чтобы узнать не SEF ссылку достаточно в шаблоне написать
Код: php-brief
<?php echo $_SERVER["HTTP_HOST"].'/index.php?' . http_build_query($_REQUEST); ?>
выведет не SEF ссылку.
Предлагаю вам воспользоватся функцией showPage, которая даст вам легко, без использования api Joomla, контролировать вывод на разных страницах того или иного элемента. Функция должна быть объявлена выше ее применения.
Функция возвращает два значения. True или false (разрешено или запрещено)

Код: php-brief
function showPage($x = array()){
    return array_intersect_assoc($x,  $_REQUEST) === $x;
}

Как видите, код достаточно прост. Единственный аргумент функции, это массив параметров которые нужно сравнить. Присутствуют ли они в адресе вашей страницы (не SEF ссылке). Анализируя ссылки ваших страниц вы легко можете задать ваши условия.
Пару примеров:
Спойлер
[свернуть]
Еще пример решения использования фильтров php. Создаем условие для блога категории компонента com_content
Спойлер
[свернуть]
JRequest - будет удален. И если вышеприведенное решение не помогает, смотрите для ознакомления
JInput
Фильтрация данных
*

artel-st

  • Захожу иногда
  • 350
  • 37 / 1
Спасибо, +, добавил в закладки
"Жираф - это лошадь, выполненная по всем требованиям заказчика" (с) кто-то из дизайнеров
*

streelok

  • Захожу иногда
  • 331
  • 0 / 6
я использовал вот такую запись

<?php if(showPage(array('Itemid'=>'101'))): $index="_index"; endif;?>


а можно написать к примеру на старницах Itemid 101, 102, 105 использовать $index="_index  а например на какких то других определенных использовать $page="page"  наприсал как пример...если да то подскажите пожалуйста как это правильно записать
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Код: php-brief
// создаем массив с нужными значениями
$arr = Array(101, 102, 105);
// с помощью Jinput получаем значение Itemid текущей страницы
//$Itemid = JFactory::getApplication()->input->getInt('Itemid', 0);
// а лучше встроенных фильтров php
$Itemid = filter_input(INPUT_GET, 'Itemid', FILTER_VALIDATE_INT);
// проверяем находится значение $Itemid в массиве $arr
if(in_array($Itemid, $arr )):
echo 'Да'; // Мы на этой странице
else:
echo 'Нет'; // Itemid страницы не находится  в массиве $arr
endif;
*

streelok

  • Захожу иногда
  • 331
  • 0 / 6
спасибо большое! но зачем усложнять с различными созданием масивов и разными функциями?

в стврой версии исмользовалось
$Itemid = JRequest::getInt( 'Itemid', 1, 'get' );

а я щас смотрю по вашему коду на замену пришкл код
$Itemid = JFactory::getApplication()->input->getInt('Itemid', 0);

потом просто работать с условиями обычными $Itemid   .... нет же ни какой разницы? это я щас спрашиваю как у длюдей разбирающихся в этом все хорошо а не для того чтобы поумничать)))
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
но зачем усложнять с различными созданием масивов и разными функциями?
можешь и так писать, это личное дело, но величина кода будет увеличиваться, гораздо короче создать массив и в нем перебирать значения
// Используем switch-case
Код: php-brief
switch ($Itemid) {
case 101:
    echo "101 - id меню";
    break;
case 102:
    echo "102 - id меню";
    break;
case 105:
    echo "105 - id меню";
    break;
default:
    echo "остальные меню";
}
*

Kalipso

  • Захожу иногда
  • 89
  • 0 / 1
Подскажите, пожалуйста, как в Joomla 2.5 задать такое условие: в материалах определённой категории (по id) для всех групп, кроме одной (по id) выводить некое сообщение?
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
для всех групп, кроме одной (по id) выводить некое сообщение?
а с не авторизованными, что будем делать?
*

Kalipso

  • Захожу иногда
  • 89
  • 0 / 1
а с не авторизованными, что будем делать?
На сайте есть:
1. неавторизованные
2. авторизованные "родители" (это новая группа)
3. авторизованные не "родители"


Сообщение не должно быть видно только "родителям". Остальным - не "родителям" и всем неавторизованным - должно быть видно сообщение "Чтобы принять участие в обсуждении, становитесь родителями" :). Сообщение должно выводиться в материалах из определённой категории.
« Последнее редактирование: 21.02.2014, 09:58:59 от Kalipso »
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Решение
Код: php-brief
<?php 
function showPage($x = array()){
    return array_intersect_assoc($x,  $_REQUEST) == $x;
}
//группа пользователей которой не показываем - 8, номер категории материалов19
if(showPage(array('option'=>'com_content', 'view'=>'article', 'catid'=>'19')) &&
!in_array(8, JFactory::getUser()->getAuthorisedGroups())):?>
<span>"Чтобы принять участие в обсуждении, становитесь родителями"</span>
<?php endif;?>
*

Kalipso

  • Захожу иногда
  • 89
  • 0 / 1
Решение...
Отлично, благодарствую!
*

waterfly

  • Захожу иногда
  • 83
  • 0 / 0
Добрый вечер. Подскажите пожалуйста. В шаблоне компонента вывожу модуль таким образом:
Код
<?php $modules =JModuleHelper::getModules('user-review-item'); foreach ($modules as $module){ echo JModuleHelper::renderModule($module);} ?>
Как составить условие для вывода другого модуля если первый оказался пустой?
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Здесь вы выводите не модуль, а модули в позиции user-review-item
Пожалуйста, приводите код к удобочитаемому виду.
Так лучше
Код: php-brief
$modules = JModuleHelper::getModules('user-review-item');
$html = "";
foreach ($modules as $module) {
    $html .= JModuleHelper::renderModule($module);
}
if ($html == ""):
    echo "Пусто";
else:
    echo $html;
endif;
метод 
echo JFactory::getDocument()->countModules('user-review-item');
выведет вам количество модулей в позиции
в шаблоне можно
$this->countModules('user-review-item');
посмотрите здесь как выводить один модуль
Несколько модулей в одной статье
Примерно как  то
Код: php-brief
$html = "";
$module = JModuleHelper::getModule('mod_banners');
$html =  JModuleHelper::renderModule($module);
if(!$html):
    $module = JModuleHelper::getModule('mod_custom');
    $html =  JModuleHelper::renderModule($module);
endif;
echo $html;
*

koyot777

  • Захожу иногда
  • 136
  • 1 / 2
  • Не щекочи койота..
Всем привет! подскажите как можно в шаблоне сделать ссылку "вход" и "выход" отображающуюся только гостям или зарег пользователям?
для дж1.5 вроде есть ответ а вот на дж2.5 не смог найти. заранее благодарен за помощь.
*

verstalshik

  • Завсегдатай
  • 1754
  • 95 / 1
Главную определяю так, где-то нарыл, работает четко!
Т.е. что такое главная? это та стр, которая назначена как ДЕФАУЛТная!
Правим файл index.php, на примере шаблона протостар:

1 ШАГ
Спойлер
[свернуть]

2 ШАГ
Спойлер
[свернуть]

ВСЁ!
❶ НЕ СПРАВЛЯЕШЬСЯ САМ???  Поможем тут...  ❷ Калькулятор доставки - ЗАКАЖИ!!!...  ❸ Каталог компаний - ЖМИ!!!...  ❹ НОВИЧКИ! ВСЕ сюда! Первая консультация БЕСПЛАТНО!!
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
*

dron

  • Завсегдатай
  • 1581
  • 16 / 10
Друзья, день добрый! прошу помощи. использовал ваш код для джумшопинга:

<?php if(showPage(array('option'=>'com_jshopping')) && !showPage(array('controller'=>'product'))):?>
На всех страницах магазина кроме продуктов
<?php endif;?>

мне не нужно на странице товара выводить левую колонку. она не выводится, но как сделать что бы при этом оставшийся контент выводился на всю ширину экрана?

Заранее спасибо!
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Страница продукта так должна определятся
Код: php-brief
<?php if(showPage(array('option'=>'com_jshopping', 'controller'=>'product'))):?>
<div class="left">Страница продукта левый блок</div>
<?php endif; ?>
Может еще эта тема чем то поможет в поиске решения
Ширина модулей в зависимости от количества опубликованных позиций (Решение)
*

oleg_v

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
Здравствуйте подскажите как для определенной категории материалов (например id9) добавить к классу class="articles" класс colums (class="articles colums)

<div class="articles<?php if  ?  { echo ' colums';} ?>">

Спасибо.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Примерно так
Код: php-brief
<?
$input = JFactory::getApplication()->input;
$option   = $input->getCmd('option', '');
$catid = $input->getInt('catid', '');
$cls = 'articles';
if($option == 'com_content' && $catid == 9){
$cls .= ' colums';
}
?>
Код: html4strict
<div class="<?=$cls;?>">
*

oleg_v

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
Примерно так
Код: php-brief
<?
$input = JFactory::getApplication()->input;
$option   = $input->getCmd('option', '');
$catid = $input->getInt('catid', '');
$cls = 'articles';
if($option == 'com_content' && $catid == 9){
$cls .= ' colums';
}
?>
Код: html4strict
<div class="<?=$cls;?>">

очень благодарен!
*

midav

  • Давно я тут
  • 926
  • 115 / 1
Код: php
$Itemid = filter_input(INPUT_GET, 'Itemid', FILTER_VALIDATE_INT);
Если использовать в шаблоне, возвращает NULL . Поскольку массив $_GET пустой . А в $_REQUEST переменные Itemid, option, view и т.д. есть . Почему так ?
Ответы на вопросы по CSS . Откройте для себя Firebug
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
в $_REQUEST заносятся данные не только с $_GET а также $_POST
кроме того эти массивы глобальные и может какой то код заносит туда свои значения после в массив
INPUT_GET берет данные из GET запроса
*

midav

  • Давно я тут
  • 926
  • 115 / 1
Это понятно . POST тоже пустой .

Я к тому, что вот эта конструкция, с помощью фильтров php , не срабатывает в Joomla 3 . По крайней мере у меня на тестовом сайте .
Код: php
// с помощью Jinput получаем значение Itemid текущей страницы
//$Itemid = JFactory::getApplication()->input->getInt('Itemid', 0);
// а лучше встроенных фильтров php
$Itemid = filter_input(INPUT_GET, 'Itemid', FILTER_VALIDATE_INT);
Ответы на вопросы по CSS . Откройте для себя Firebug
*

fsv

  • Живу я здесь
  • 2790
  • 414 / 2
Я к тому, что вот эта конструкция, с помощью фильтров php , не срабатывает в Joomla 3 .
Код: php
$Itemid = $_GET['Itemid'] ? $_GET['Itemid'] : '';
if( $Itemid ){
    $Itemid = filter_var($Itemid, FILTER_SANITIZE_NUMBER_INT);
}
Веб-разработка: заказ. Только новая разработка.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Код: php-brief
$Itemid = isset($_REQUEST['Itemid'])? $_REQUEST['Itemid']: NULL;
if( $Itemid ){
    $Itemid = filter_var($Itemid, FILTER_SANITIZE_NUMBER_INT);
}
а так
*

midav

  • Давно я тут
  • 926
  • 115 / 1
Код: php
$Itemid = $_GET['Itemid'] ? $_GET['Itemid'] : '';
if( $Itemid ){
    $Itemid = filter_var($Itemid, FILTER_SANITIZE_NUMBER_INT);
}

Смысл этой конструкции ? Она не получит значение переменной, потому  что в $_GET этой переменной нет .
Надо получать значение напрямую из $_REQUEST или с помощью родного класса Joomla JInput .

А пишу я всё это вот по этому поводу :
Код
// с помощью Jinput получаем значение Itemid текущей страницы
//$Itemid = JFactory::getApplication()->input->getInt('Itemid', 0);
// а лучше встроенных фильтров php
$Itemid = filter_input(INPUT_GET, 'Itemid', FILTER_VALIDATE_INT);
Ответы на вопросы по CSS . Откройте для себя Firebug
*

midav

  • Давно я тут
  • 926
  • 115 / 1
Код: php-brief
$Itemid = isset($_REQUEST['Itemid'])? $_REQUEST['Itemid']: NULL;
if( $Itemid ){
    $Itemid = filter_var($Itemid, FILTER_SANITIZE_NUMBER_INT);
}
а так

Так конечно всё будет .  ^-^ Только в чём выгода по сравнению с JInput ?
Ответы на вопросы по CSS . Откройте для себя Firebug
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
скорость само собой. Ты используешь встроенные средства языка. Хочу отметить, что ранее Jinput не обрабатывал должным образом ссылки.
Программистам легче привыкнуть к одним функциям, значит еще переносимость кода под другие cms
*

SolopoV

  • Давно я тут
  • 577
  • 16 / 0
  • зеленею...
Попался кривенький компонент, но что бы код не переписывать, нашел лазейку для нормального функционирования.

Вопрос в следующем:

Имеем .php файл в админке компонента, часть кода в этом файле:

Код
}
return JURI::root().'cache/'.$cacheFile;
}

Мне необходимо вывести строчку по условию:

Если для фронта сайта, то строка неизменна:
Код
return JURI::root().'cache/'.$cacheFile;

Если для админки, то строка другая должна быть:
Код
return JURI::root().'administrator/cache/'.$cacheFile;

Как определить условие вывода для админки и для фронта?

Заранее благодарю за совет, кто знает каким образом это сделать.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Шаблоны Joomlart, Gavick, Yootheme, RocketTheme для Joomla: легально и с обновлениями, no warez

Автор _ib_

Ответов: 168
Просмотров: 220797
Последний ответ 15.04.2023, 18:26:50
от AS1969
Где в Joomla 3.4.3 шаблон материала? Шаблон Yootheme Organic

Автор annushka

Ответов: 13
Просмотров: 8251
Последний ответ 13.09.2022, 11:14:56
от tuztref
Master3 – современный удобный гибкий шаблон для Joomla! 3 на фреймворке UIkit 3

Автор dron

Ответов: 81
Просмотров: 16345
Последний ответ 11.09.2021, 03:12:59
от vasileк
Как убрать tooltip в регистрации в Joomla 3?

Автор KoloS

Ответов: 13
Просмотров: 9415
Последний ответ 24.08.2021, 19:00:51
от coolplaymaster
Сменить текст placeholder в поле поиска Joomla 3.x

Автор Poincare

Ответов: 7
Просмотров: 2932
Последний ответ 09.06.2021, 15:39:26
от Akeksandr