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

a159cm

  • Захожу иногда
  • 71
  • 0 / 0
Есть такая хрень.. Как ее исправить?
https://developers.google.com/speed/pagespeed/insights/?url=https%3A%2F%2Fprosalsk.ru%2F&tab=desktop

ругается на эту ссылку https://yastatic.net/s3/front-maps-static/maps-front-jsapi-v2-1/2.1.78-11/build/release/full-ffb813a29f30feadb63b5654242d042b7b6a91aa.js

выводится вроде бы так
Код
<script async>
function getYaMap(){
    var myMap = new ymaps.Map('map', {
            center: [<?php echo $center[0] ?>, <?php echo $center[1] ?>],
            zoom: <?php echo $zoom_map ?>,
controls: ["zoomControl"]
        }, {
            searchControlProvider: 'yandex#search'
        }),


        /**
         * Создадим кластеризатр, вызвав функцию-конструктор.
         * Список всех опий доступен в документации.
         * @see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/Clusterer.xml#constructor-summary
         */
            clusterer = new ymaps.Clusterer({
            /**
             * Чеез кластеризатор можно указать тоько стили кластеов,
             * стил для меток нужно азначать каждой етке отдельно.
             * @see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/option.presetStorage.xml
             */
            preset: 'islands#invertedRedClusterIcons',
            /**
             * Ставим true, если хотим кластеризовать только точки с одинаковыми координатами.
             */
            groupByCoordinates: false,
            /**
             * Опции кластеров указывем в кластеризатре с префиксом "cluster".
             * @see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/ClusterPlacemark.xml
             */
            clusterDisableClickZoom: true,
            clusterHideIconOnBalloonOpen: false,
            geoObjectHideIconOnBalloonOpen: false
        }),
        /**
         * Функция озвращает объект, содержащий данне метки.
         * Поле данных clusterCaption будет отображено в списке геообъетов в балуне кластера.
         * Поле balloonContentBody - источник данных для конента балуна.
         * Оба поля поддерживают HTML-разметку.
         * Список плей данных, которые используют стандартные макеты содержимого иконк метки
         * и балуна геообъектов, можно посмотреть в документации.
         * @see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/GeoObject.xml
         
            getPointData = function (index) {
            return {
                balloonContentHeader: '!',
                balloonContentBody: '',
                balloonContentFooter: '',
                clusterCaption: ''
            };
        },
        /**
         * Фнкция возвращает объект, содержащй опции метки.
         * Все опции, которые поддерживаю геообъекты, можно посмотреть в доументации.
         * @see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/GeoObject.xml
         */
getPointOptions = [
<?php foreach ($list as $item) { ?>
{
//preset: "islands#redAttentionCircleIcon",
            // Опции.
            // Необходимо указать данный тип макта.
            iconLayout: 'default#image',
            // Своё изображение иконки метки.
<?php if($item->parent_id == 11) { $ic = 'auto.png'; }
if($item->parent_id == 20) { $ic = 'bank.png'; }
if($item->parent_id == 24) { $ic = 'flag.png'; }
if($item->parent_id == 35) { $ic = 'kafe.png'; }
if($item->parent_id == 37) { $ic = 'deti.png'; }
if($item->parent_id == 53) { $ic = 'shop.png'; }
if($item->parent_id == 79) { $ic = 'razvlecheniya.png'; }
if($item->parent_id == 84) { $ic = 'medical.png'; }
if($item->parent_id == 92) { $ic = 'obrazovanie.png'; }
if($item->parent_id == 97) { $ic = 'home.png'; }
if($item->parent_id == 111) { $ic = 'krasota.png'; }
if($item->parent_id == 116) { $ic = 'sport.png'; }
if($item->parent_id == 128) { $ic = 'eda.png'; }
if($item->parent_id == 137) { $ic = 'business.png'; }
if($item->parent_id == 147) { $ic = 'turizm.png'; }
if($item->parent_id == 2010) { $ic = 'uslugi.png'; }
if($item->parent_id == 2019) { $ic = 'proizvodstvo.png'; }
if($item->parent_id == 2023) { $ic = 'selhoz.png'; }
?>
            iconImageHref: "images/icons/map/<?php echo $ic ?>",
            // Размеры метки.
            iconImageSize: [32, 32],
            // Смещение левого верхнего угла иконки относительно
            // её "нжки" (точки привяки).
            iconImageOffset: [-16, -16]
},
<?php } ?>
],
   
        points = [
<?php foreach ($list as $key => $item) {
$link = JRoute::_(ContentHelperRoute::getArticleRoute($item->slug, $item->catid, $item->language));
$img = json_decode($item->images)->image_intro;

JLoader::register('FieldsHelper', JPATH_ADMINISTRATOR . '/components/com_fields/helpers/fields.php');
$jcfields = FieldsHelper::getFields('com_content.article', $item, true);
foreach($jcfields as $fields) {
$f[$fields->id] = $fields;
}
$t = '['.$f[109]->value.'],';

?>
<?php echo $t ?>
<?php } ?>
        ],
balloonContentHeader = [
<?php foreach ($list as $key => $item) {
$link = JRoute::_(ContentHelperRoute::getArticleRoute($item->slug, $item->catid, $item->language));
$img = json_decode($item->images)->image_intro;

JLoader::register('FieldsHelper', JPATH_ADMINISTRATOR . '/components/com_fields/helpers/fields.php');
$jcfields = FieldsHelper::getFields('com_content.article', $item, true);
foreach($jcfields as $fields) {
$f[$fields->id] = $fields;
}
$b = '{
balloonContentHeader: `<div class="map_item_img"><img src="'.$img.'"/></div><div class="map_item_info"><h3><a href="'.$link.'">'.$item->title.'</a></h3><div>'.$f[1]->value.'</div></div>`,
},';
?>
<?php echo $b ?>
<?php } ?>
]
        geoObjects = [];

    /**
     * Данные передаются вторым параметром в коструктор метки, опции - третьим.
     * @see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/Placemark.xml#constructor-summary
     */
    for(var i = 0, len = points.length; i < len; i++) {
        geoObjects[i] = new ymaps.Placemark(points[i], balloonContentHeader[i], getPointOptions[i]);
    }

    /**
     * Можно менять опии кластеризатора после создания.
     */
    clusterer.options.set({
        gridSize: 80,
        clusterDisableClickZoom: false
    });

    /**
     * В кластеризатор ожно добавить javascript-массив меток (е геоколлекцию) или одну метку.
     * @see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/Clusterer.xml#add
     */
    clusterer.add(geoObjects);
    myMap.geoObjects.add(clusterer);
myMap.behaviors.disable('scrollZoom');

if(document.documentElement.clientWidth < 960) {
//myMap.behaviors.disable('drag');
}


    /**
     * Спозиционируем кату так, чтобы на ней были видны все объекты.
     */

   /* myMap.setBounds(clusterer.getBounds(), {
        checkZoomRange: false
    });*/
}
</script>
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вставка Яндекс captcha

Автор Kadadzher

Ответов: 0
Просмотров: 860
Последний ответ 16.10.2025, 11:19:32
от Kadadzher
Множество несуществующих ссылок при обходе сайта роботом Яндекс

Автор goga_pgasovav

Ответов: 7
Просмотров: 2333
Последний ответ 10.12.2024, 18:44:25
от goga_pgasovav
Проблема вебвизором в Яндекс метрике при использовании плагина jch optimize

Автор polezniy

Ответов: 32
Просмотров: 5950
Последний ответ 01.03.2024, 10:26:31
от Vastriet
Некорректно работает Яндекс Метрика из-за mootools

Автор web_signal

Ответов: 4
Просмотров: 2726
Последний ответ 21.06.2023, 23:25:14
от sivers
Модуль Яндекс карты выдает ошибку Warning: count(): Parameter must be an array

Автор 62411

Ответов: 0
Просмотров: 1222
Последний ответ 19.02.2023, 13:34:54
от 62411