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

rsa_m

  • Захожу иногда
  • 254
  • 22 / 0
Есть компонент типа HelloWorld
и
В нем есть форма в XML вида с combobox
Код
<?xml version="1.0" encoding="utf-8"?>
<form>
<fieldset>
      <field name="id" type="hidden"/>
      <field
         name="color"
         type="combo"
         label="color"
         description="color"
         size="1"
         default=""
      >
      <option value="0">- выбирите цвет -</option>
      </field>
</fieldset>
</form>

Форма как и положено в виде у меня
Код
   public function display($tpl = null)
   {
    ....
       $form = $this->get('Form');
    .....
      $this->form = $form;
    .....

В tmpl в файле edit.php
Код
<form action="index.php"
      method="post" name="adminForm" id="adminForm">
        <fieldset class="adminform">
                <legend><?php echo JText::_( 'COM_MY_DETAILS' ); ?></legend>
                <?php foreach($this->form->getFieldset() as $field): ?>
                        <?php if (!$field->hidden): ?>
                                <?php echo $field->label; ?>
                        <?php endif; ?>
                        <?php echo $field->input; ?>
                <?php endforeach; ?>
        </fieldset>
        <div>
      ......


Вопрос.
1. Как динамически заполнить combobox из формы в каком либо php файле?
Т.е. нужно к примеру добавить в combobox:
<option value="1">Белый</option>
<option value="2">Черный</option>

2. В каком файле это лучше сделать? Подозреваю что в edit.php

3. После выбора элемента в combobox, как вернуть его value и значение?

P.S.: Вероятно что при использовании формы в XML виде эту задачу решить нельзя. Или можно ?
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
Делайте тогда свой класс по аналогии с JFormFieldCombo, расширяющий JFormFieldList  и переопределяйте метод getOptions()

Соответственно в XML задаёте свой type, options не задаёте, так как вы их собираетесь получать по-своему.
Не забудьте в XML про addFieldPath
*

rsa_m

  • Захожу иногда
  • 254
  • 22 / 0
Спасибо.

Думал проще можно сделать, но снова увы  :o.
Попробую. Если не получится, то придется генерить через JHTML::_('select.genericlist'....
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
Куда уж проще. Половину скопируете с JFormFieldCombo, вторую половину напишете
*

rsa_m

  • Захожу иногда
  • 254
  • 22 / 0
Решено  :D

Значит делаем так:
В XML файле в поле type прописываем свой тип который мы сейчас сделаем:
Код
<form
addrulepath="/administrator/components/com_my/models/rules"
>
....
<field
         name="color"
         type="Color"
         label="Color"
         description="Color"
         size="1"
         default=""
      >

Теперь нужно прописать свой тип.
В models/fields создаем файл color.php
Код
<?php
// No direct access to this file
defined('_JEXEC') or die;
 
// import the list field type
jimport('joomla.form.helper');
jimport('joomla.form.formfield');
JFormHelper::loadFieldClass('list');

class JFormFieldColor extends JFormFieldList
{
   protected $type = 'color';
 
   public function getInput() {
                return '<select id="'.$this->id.'" name="'.$this->name.'">'.
                       '<option value="1" >Белый</option>'.
                       '<option value="2" >Черный</option>'.
                       '</select>';
        }
}

Далее в public function getInput() можем уже прописывать все что угодно что будет нам к примеру брать цвета из переменных или массива.

Если же нужно чтобы combobox заполнялся значениями из базы, как это собственно и нужно было мне, то вместо public function getInput()
пишем другую функцию:
Например для выборки данных в combobox из базы #__color с полями color_id и color
Код
	protected function getOptions() 
{
$db = JFactory::getDBO();
$query = $db->getQuery(true);
$query->select('color_id,color');
$query->from('#__color');
$db->setQuery((string)$query);
$messages = $db->loadObjectList();
$options = array();
if ($messages)
{
foreach($messages as $message)
{
$options[] = JHtml::_('select.option', $message->color_id, $message->color);
}
}
$options = array_merge(parent::getOptions(), $options);
return $options;
}
« Последнее редактирование: 21.11.2012, 21:16:43 от rsa_m »
*

rsa_m

  • Захожу иногда
  • 254
  • 22 / 0
Кстати на заметку.

В виде после загрузки формы из XML файла, любой атрибут поля формы можно получить так:
Код
$param = $this->form->getFieldAttribute('название_поля','название_атрибута');
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Расширение BA Team - Не удалось найти представление [name, type, prefix]: images

Автор DeniTornado

Ответов: 0
Просмотров: 2300
Последний ответ 19.09.2024, 14:50:24
от DeniTornado
Динамическое создание полей в настройках модуля

Автор Makkssimka

Ответов: 7
Просмотров: 2626
Последний ответ 13.03.2015, 22:15:39
от fbr
Поменять версию jquery из <jdoc:include type="head" />

Автор kreker92

Ответов: 1
Просмотров: 3331
Последний ответ 05.09.2013, 20:57:53
от kreker92