Новости Joomla

👩‍💻 ИИ-админ для Joomla ближе, чем вы думаете: Joomla MCP.

👩‍💻 ИИ-админ для Joomla ближе, чем вы думаете: Joomla MCP.

В февральском номере Joomla Community Magazine в статье Evolving Joomla - Joomla CMS MCP Server: Opening the Door to AI-Powered Administration рассказывается о работе команды разработчиков над внедрением в ядро Joomla MCP-сервера.

Что такое MCP-сервер?
Последние годы всех захватывает бум ИИ-технологий. Появились ИИ-агенты - программы, устанавливаемые на сервер или компьютер, которые получают от вас запрос или задачу в человеческом виде и могут выполнять действия с файлами, ходить по сайтам, создавать сайты, программировать и т.д. Люди используют ИИ-агентов в самых разных ситуациях: от написания и проверки кода (даже там, где язык программирования не знаете совсем) до планирования путешествий и бронирования гостиницы.

ИИ-агенты могут использовать различные программные инструменты по протоколу Model Context Protocol (MCP). Для этого разработчик программы должен внедрить MCP в свой продукт или сервис. Так, например, ваш ИИ-агент может ходить по сайтам через браузер и собирать нужную информацию, управляя браузером через MCP-сервер. Или использовать функционал IDE PHP Storm для написания кода, сбора и отладки ошибок, использовать поиск PHP Storm по кодовой базе, а не простой текстовый поиск по файлам. MCP предоставляет набор функций для полноценного управления программным обеспечением.

В случае с Joomla, сервер MCP может предоставить администраторам следующие возможности:
- Автоматическое создание категорий, материалов и меню на основе карты сайта или PDF-файла.
- Создавайть SEO-оптимизированные заголовки и метаописания в пакетном режиме.
- Обновлять расширения на нескольких сайтах одновременно
- Создание посадочные страницы.

Важно отметить, что сервер MCP не задумывался как функция, доступная только «супер-администраторам». Цель инициативы — создать решение, которое будет простым в настройке, маломощным и доступным для широкого круга пользователей.

В процессе разработки точка входа Joomla (аналогично Site, Administrator, Api, Cli), которая будет работать с Streamable HTTP, необходимым для MCP. Аутентификация пока что предполагается на токенах, но затем планируется создание универсального OAuth-сервера для Joomla.
Фактические возможности MCP — инструменты, ресурсы и подсказки — реализованы в виде плагинов для обеспечения расширяемости. Таким образом ожидаем, что и сторонние разработчики смогут создавать MCP-плагины для внедрения поддержки своих расширений Joomla для работы с ИИ.

@joomlafeed

Вышли релизы безопасности Joomla 6.0.4 и Joomla 5.4.4

Релиз безопасности Joomla 6.0.4 и Joomla 5.4.4

Проект Joomla! рад сообщить о выходе Joomla 6.0.4 и Joomla 5.4.4. Это релизы безопасности и исправления ошибок для серий 5.x и 6.x.

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

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
Всем привет!
Нужно именно в index.php шаблона определять, отображается ли сейчас категория, и если да, то получать один из её параметров, будь то название, alias и т.п.
Определять категорию я умею:

Код
if(showPage(array('view'=>'category')))

А вот как получить заголовок текущей категории, это я понять не могу.
Прошу помощи!  !
« Последнее редактирование: 30.12.2019, 23:14:02 от goga_pgasovav »
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Определять категорию я умею:
Это откуда ? Почему не как в protostar ?
Код
$view     = $app->input->getCmd('view', '');
Код
<?php		$doc = JFactory::getDocument();
$doc->title; ?>
*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
draff

Цитировать
Это откуда ?
Есть такой топик «Различные условия в шаблонах Joomla 3.0 ...». Там подсмотрел и всегда использую.

Спасибо что отозвались.
Ваш метод работает, но я сформулировал вопрос максимально просто (не вдаваясь в подробности), хотя задача стоит чуть более сложная, и мне он не помогает.
Например если нужно получить alias а не название, то уже не срабатывает.
В идеале, хотелось бы добраться до любого из полей в категории: id, alias, note, description и прочим.
*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
Попытался решить задачу запросом к БД.

Код
$ctd = JRequest::getInt('Itemid'); // получаю ID текущей категории
$db = JFactory::getDbo();
$query = $db
    ->getQuery(true)
    ->select($db->quoteName('alias'))
    ->from($db->quoteName('#__categories'))
    ->where($db->quoteName('id'). ' = ' .$ctd);
$db->setQuery($query);
$result = $db->loadResult();
echo '<div>Output: '.var_dump($result).'</div>';

Но ничего не получается. var_dump возвращает значение NULL.
В чём может быть дело, товарищи?
*

xpank

  • Захожу иногда
  • 448
  • 41 / 0
Но ничего не получается. var_dump возвращает значение NULL.
В чём может быть дело, товарищи?
Разумеется будет null, т.к. Itemid не равно id категории. Это уникальный идентификатор пункта меню.

Как вариант:
Код
$app = JFactory::getApplication();
$cat_id = $app->input->getCmd('catid','');
if ($cat_id == '1')  //где 1 категория для которой должно срабатывать правило. Id смотреть в менеджере категорий.

*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
xpank, спасибо за наводку!
Уже лучше, но всё не то)
Почему-то определятся не текущая категоря, а самая верхняя. В то время, когда я нахожусь в подкатегории...
Т.е. мне нужен ID именно той категории, в которой я нахожусь в данный момент.

P.S.: ID нужный смог получить с помощью:

Код
$cat_id = JRequest::getInt('id');

Ну теперь буду пробовать дальше )
« Последнее редактирование: 31.12.2019, 00:26:22 от goga_pgasovav »
*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
Товарищи, дабы не плодить топики со сходными вопросами, решил развить тему здесь.
В общем, методом, описанным выше, я смог, в том числе, добраться до поля "params".
Но тут меня ожидало неожиданное препятствие.

Код
$cat_id = JRequest::getInt('id');
$db = JFactory::getDbo();
$query = $db
    ->getQuery(true)
    ->select($db->quoteName('params'))
    ->from($db->quoteName('#__categories'))
    ->where($db->quoteName('id'). ' = ' .$cat_id);
$db->setQuery($query);
$params = $db->loadObjectList(); //использовал loadObjectList(), т.к. возвращается массив

Получаю массив, а что с ним делать, так и не понял.
Как мне достучаться до нужного параметра по его названию?
Там их всего три: 'category_layout', 'image' и 'image_alt'.
Помогите пожалуйста!  !
*

ProtectYourSite

  • Живу я здесь
  • 2368
  • 139 / 4
  • Безопасность вебсайтов
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Проверяйте что в массиве и тип, скорее всего объект
Код
foreach($params as $param) {
var_dump($param);}
*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
ProtectYourSite, draff
Спасибо! Буду пробовать.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не удается поменять название почты в мобильной версии ((

Автор stitch808

Ответов: 7
Просмотров: 2336
Последний ответ 27.03.2025, 23:23:58
от azm1n
Перенести описание категории вниз страницы

Автор jimka

Ответов: 1
Просмотров: 2088
Последний ответ 18.07.2024, 08:02:46
от Vastriet
[Решено] Получить category description image в index.php шаблона

Автор goga_pgasovav

Ответов: 6
Просмотров: 2524
Последний ответ 12.07.2024, 17:06:14
от goga_pgasovav
Сортировка по доп. полям на странице списка категории

Автор revil

Ответов: 4
Просмотров: 2299
Последний ответ 02.06.2024, 13:42:45
от tigra-uki
Получить ошибку

Автор KevinSimon

Ответов: 0
Просмотров: 1110
Последний ответ 22.09.2023, 15:20:21
от KevinSimon