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

bupy7

  • Осваиваюсь на форуме
  • 30
  • 0 / 2
Собственно сабж =)
Свои скрипты подключаю так:
Код
        $document = &JFactory::getDocument();
        $document->addScript($host . 'code.js');
В итоге они висят раньше библы jQuery и прочих, когда должны быть позже по логике.
Собственно разъясните, что не так и что так. Может просто я криворукий. Не исключаю.
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
1. прекращайте писать & перед JFactory и т.д.
2. перед $document->addScript($host . 'code.js'); напишите jimport('jquery.framework');
*

bupy7

  • Осваиваюсь на форуме
  • 30
  • 0 / 2
Istaan,
1. Воо, всегда волновал этот вопрос. Хотя код JFactory и т.д. смотрел, там синглтон есть, поэтому не понимал зачем ссылку делать, хотя в некоторых кодах пишут. Ну, не надо, значит не будем =)
2. Сейчас попробую.

Спасибо, большое! =)
« Последнее редактирование: 08.09.2013, 21:48:16 от bupy7 »
*

bupy7

  • Осваиваюсь на форуме
  • 30
  • 0 / 2
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Вот так надо http://stackoverflow.com/questions/12471067/importing-jquery-into-joomla
да знаю как надо, да вот только позно и чете попутал jimport с JHTML
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Только не забудьте добавить в настройки расширения отключение импорта jQuery, пожалуйста, чтобы не приобщаться к армии криворуких студентов-разработчиков, которые мало того, что пихают jQuery везде где не лень, так и забывают добавить возможность его отключения в настройках. В итоге - конфликты jQuery на сайтах и неработающие расширения.

Спасибо, коллега! :)
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Вот так надо http://stackoverflow.com/questions/12471067/importing-jquery-into-joomla

Хороший пример, прокомментирую только, что в части Joomla 2.5 он годится только для своего же расширения - чтобы не грузить jQuery дважды (например контентный плагин в Блоге категории). А поскольку каждый пихает jQuery как ему удобно, то данная проверка в случае компонента бессмысленна и малополезна при использовании модуля (обычно загружается 1 копия на странице).
« Последнее редактирование: 09.09.2013, 10:27:14 от ecolora »
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
У себя же в контентном плагине делаю так:

Код
$mosConfig_live_site = JURI::base (false);
...
if (!defined('_jqcomm')){ //чтобы 2 раза не крутить
              define('_jqcomm', '1');
              if ($alowjq) {
              if (ext_isJoomla('3.0', '>=' )) JHtml::_('jquery.framework');
                else $document->addScript($mosConfig_live_site.'/components/com_commedia/classes/jquery.min.js');
              }
              $document->addScript($mosConfig_live_site.'/components/com_commedia/players/jquery.jplayer.min.js'); //плеер
         }

ext_isJoomla - встроенная в расширение функция проверки версии Joomla. Годится для всех от самых старых, до самых новых. Скажу честно: слямзил в extplorer-е. Смысл изобретать велосипед.
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
У себя же в контентном плагине делаю так:
Объясните смысл этого кода? зачем он вообще нужен?
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Этот код загружает jQuery в контентном плагине, если:
1) Она еще не загружалась
Код
if (!defined('_jqcomm'))
2) Настройками положено загружать jQuery:
Код
if ($alowjq)

Загрузка осуществляется по-разному в зависимости от версии Joomla.
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Как это спасет если сторонний быдло расширение для 3.0 вызывает jquery не через JHtml::_('jquery.framework')
а так же как и вы $document->addScript($mosConfig_live_site.'/components/com_commedia/classes/jquery.min.js');
так же само сделает кто нить модуль который будет вызывать JFactory::getDocument()->addScript('http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js');, и будут у вас две версии jquery
« Последнее редактирование: 09.09.2013, 12:02:32 от Istaan »
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Вот именно! Каждый вызывает как хочет. Нет единообразия. Поэтому приходится в случае конфликта разбираться и устранять причину. Вдвойне приятно, когда для этого не нужно править код, а помогает отключение jQuery в настройках.
Зачастую, если вижу сайт с K2, к примеру, то во всех остальных расширениях можно смело отключать jQuery. Потому что K2 грузит библиотеку на всех страницах и раньше основных скриптов.
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
ну вот я и спрашиваю какой вообще смысл у вашего кода.. а К2 тот ещё бред собачий.. грузить jquery даже там где нет упоминания о k2 это вообще /facepalm
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
ну вот я и спрашиваю какой вообще смысл у вашего кода.. а К2 тот ещё бред собачий.. грузить jquery даже там где нет упоминания о k2 это вообще /facepalm

У меня такое ощущение, что мы говорим как казах с татарином (никаких параллелей, просто как пример). Насчет К2: о вкусах не спорят. И хоть я не использую ни на одном из своих сайтов, видел его на многих-многих сайтах. Был бы бред, наверное не пользовались бы. Может ошибаюсь, и Вы такой умный, а те кто его используют - дураки. ;)

У моего кода смысл именно применительно к контентному плагину. Суть я описал. И остальное - читайте выше.

Про то где и как грузить jQuery - иногда без него и правда никак (если нет аналогов в Joomla). Это относится к версиям ниже 3.0.

От 3.0 и выше разработчики добавили jQuery в ядро. Наверное тоже считают, что она нужна (кстати в админке понятно, зачем, во фронтпейдже пока не особо заметил, в стандартных шаблонах она вроде как не используется).
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Давайте вам объясню всю бесмысленность вашего кода:
$document->addScript($mosConfig_live_site.'/components/com_commedia/classes/jquery.min.js');
хоть в двухсот файлах размещайте этот код все равно будет подключение только одной версии jQuery...
так же как и строка JHtml::_('jquery.framework') всего лишь раз подгрузит.. у вас вообще должна быть такая строка
вообще код вашего плагина упрощается до:

Код: php
if (!defined('_jqcomm') && $alowjq ){ //чтобы 2 раза не крутить
define('_jqcomm', '1');
if (ext_isJoomla('3.0', '>=' )) JHtml::_('jquery.framework');
else $document->addScript($mosConfig_live_site.'/components/com_commedia/classes/jquery.min.js');
$document->addScript($mosConfig_live_site.'/components/com_commedia/players/jquery.jplayer.min.js'); //плеер
}

а учитывая что я выше сказал о том что и так не вставится скрипт если он уже вставлялся то сократить код можно до:
Код: php
if ($alowjq ){
if (ext_isJoomla('3.0', '>=' )) JHtml::_('jquery.framework');
else $document->addScript($mosConfig_live_site.'/components/com_commedia/classes/jquery.min.js');
$document->addScript($mosConfig_live_site.'/components/com_commedia/players/jquery.jplayer.min.js'); //плеер
}

*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Если действительно будет так (я просто не знал, что при добавлении скрипта через $document->addScript в Joomla проверяется уже его наличие), снимаю шляпу. :-) Век живи - век учись.

Хотя вообще-то странно... вот представьте ситуацию: блог материалов категории... у каждого своя отдельная обработка onContentPrepare, и что, скрипт загрузится 1 раз? Надо проверить. :)

...

Проверил. Спасибо за совет, коллега!
« Последнее редактирование: 09.09.2013, 16:51:12 от ecolora »
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Если действительно будет так (я просто не знал, что при добавлении скрипта через $document->addScript в Joomla проверяется уже его наличие),
ну не совсем проверяется ) скорее перезаписывается ))
вот метод AddScript
Код: php
public function addScript($url, $type = "text/javascript", $defer = false, $async = false)
{
$this->_scripts[$url]['mime'] = $type;
$this->_scripts[$url]['defer'] = $defer;
$this->_scripts[$url]['async'] = $async;

return $this;
}
как видите ключем есть $url текущего скрипта, и если вы будете вносить один и тот же скрипт в разных местах он банально запишется в существующий ключ ))
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Понятно, спасибо. Просто никогда не смотрел эту функцию, не было необходимости. А стоило. Я +анул.
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Понятно, спасибо. Просто никогда не смотрел эту функцию, не было необходимости. А стоило. Я +анул.
для стилей таже фигня ) но вот если будете писать плагин/модуль и в нем будет addScriptDeclaration или addStyleDeclaration вот в них нужно будет писать подобное, иначе продублируется )
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
для стилей таже фигня ) но вот если будете писать плагин/модуль и в нем будет addScriptDeclaration или addStyleDeclaration вот в них нужно будет писать подобное, иначе продублируется )
Уже пишу и обязательно проверяю однократный вызов. ;) Не первый год за рулем, коллега! :)

Я даже, наверное, и сделал ошибочный вывод насчет путей к скриптам из-за того, что столкнулся с повторным вызовом кода скрипта на странице и добавил условие.
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Почему в Phoca Guestbook не защищает Google Captcha?

Автор Mick_20

Ответов: 2
Просмотров: 1546
Последний ответ 24.03.2025, 20:37:10
от R31rus
Почему Joomla не поддерживает формат webp?

Автор Sensession

Ответов: 74
Просмотров: 15965
Последний ответ 03.10.2023, 19:44:42
от fsv
[Решено] Отключить Mootols, Jquery и Bootstrap в Joomla 3

Автор Pazys

Ответов: 126
Просмотров: 106957
Последний ответ 21.10.2022, 22:25:23
от Alex Kop
Почему в админке Joomla в Менеджере категорий не отображаются счетчики материало

Автор mak200

Ответов: 0
Просмотров: 954
Последний ответ 28.07.2022, 16:42:17
от mak200
Знакомый почему-то не может войти в учетную запись Joomla со своего компьютера

Автор admi5575

Ответов: 6
Просмотров: 1600
Последний ответ 18.12.2021, 20:34:59
от draff