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

topos

  • Захожу иногда
  • 78
  • 10 / 0
Добрый день, в VirtueMart на странице товара тип параметра "Разделительная линия" имеет такой же вид как и все остальные параметры. Хотелось бы его выделить. В базе данных в таблице vm_product_type_parameter , parameter_type у разделительной линии "B".
В   product_type.tpl.php указываю

Код
<?php if ($product_type_params["parameter_type"]=='B') { ?>
<td  style="display: inline-block;width: 40%;" class="va_fly_hr"><?php echo $product_type_params["parameter_label"].$product_type_param[$i]["parameter_type"]; ?>
<?php } else{ ?>
<td  style="display: inline-block;width: 40%;"><?php echo $product_type_params["parameter_label"].$product_type_param[$i]["parameter_type"];
     
if ( !empty($product_type_params["tooltip"] ) ) { ?>
    &nbsp;<?php echo $product_type_params["tooltip"];
}
?>
<?php } ?>

Формируется все это добро как я понял в ps_product_type.php функцией list_product_type

Код
function list_product_type($product_id) {
global $VM_LANG;
$tpl = vmTemplate::getInstance();
if (!$this->product_in_product_type($product_id)) {
return "";
}
// $dbag = product_types;
$dbag = new ps_DB;
// $dba = Attributes of product_type param, holds product_id and values assign to each param;
$dba = new ps_DB;
// $dbp = Parameters of product_type, holds definitions of each parameter, but not value ;
$dbp = new ps_DB;
$html ="";
$q  = "SELECT * FROM #__{vm}_product_product_type_xref ";
$q .= "LEFT JOIN #__{vm}_product_type USING (product_type_id) ";
$q .= "WHERE product_id='$product_id' AND product_type_publish='Y' ";
$q .= "ORDER BY product_type_list_order";
$dbag->query( $q );
$q  = "SELECT * FROM #__{vm}_product_type_parameter ";
$q .= "WHERE product_type_id='$product_id'";
$pt = 0; //product_type counter;
while ($dbag->next_record()) { // Show all Product Type
if ($dbag->f("product_type_flypage")) {
$flypage_file = VM_THEMEPATH."templates/".$dbag->f("product_type_flypage").".php";
if (file_exists($flypage_file)) {
$html .= include($flypage_file);
continue;
}
}
$product_types[$pt]["product_type_name"] = $dbag->f("product_type_name");
// SELECT parameter value of product
$q2  = "SELECT * FROM #__{vm}_product_type_".$dbag->f("product_type_id");
$q2 .= " WHERE product_id='$product_id'";
$dbp->query($q2);
// SELECT parameter of Product Type
$dba->query($q.$dbag->f("product_type_id")." ORDER BY parameter_list_order");
$i=0; // parameter counter;
while ($dba->next_record()) {
$product_type_param[$i]["parameter_label"] = $dba->f("parameter_label");
$parameter_description = $dba->f("parameter_description");
$product_type_param[$i]["parameter_description"] = $parameter_description;
if (!empty($parameter_description)) {
$product_type_param[$i]["tooltip"] = vmToolTip($parameter_description, $VM_LANG->_('PHPSHOP_PRODUCT_TYPE_PARAMETER_FORM_DESCRIPTION'));
}
$product_type_param[$i]["parameter_value"] = $dbp->f($dba->f("parameter_name"));
$product_type_param[$i]["parameter_unit"] = $dba->f("parameter_unit");
$i++;
}
$product_types[$pt]["product_type_count_params"] = $i;
$product_types[$pt]["parameters"] = $product_type_param;
$pt++;
}

$tpl->set( 'product_types', $product_types );
$html .= $tpl->fetch( 'common/product_type.tpl.php' ) ;
return $html;
}
}

Что и как прописать  в функции чтобы передался тип параметра в product_type.tpl.php?
*

flyingspook

  • Moderator
  • 3590
  • 247 / 9
после строк
Цитировать
            $product_type_param[$i]["parameter_value"] = $dbp->f($dba->f("parameter_name"));
            $product_type_param[$i]["parameter_unit"] = $dba->f("parameter_unit");
вставить
Цитировать
$product_type_param[$i]["parameter_type"] = $dba->f("parameter_type");
*

sinus

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
Не могу понять, куда это вставить ?
Код
<?php if ($product_type_params["parameter_type"]=='B') { ?>
<td  style="display: inline-block;width: 40%;" class="va_fly_hr"><?php echo $product_type_params["parameter_label"].$product_type_param[$i]["parameter_type"]; ?>
<?php } else{ ?>
<td  style="display: inline-block;width: 40%;"><?php echo $product_type_params["parameter_label"].$product_type_param[$i]["parameter_type"];
     
if ( !empty($product_type_params["tooltip"] ) ) { ?>
    &nbsp;<?php echo $product_type_params["tooltip"];
}
?>
<?php } ?>

Тоже хочу выделить написание типа параметра "разделительная линия"
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться