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

rom

  • Осваиваюсь на форуме
  • 29
  • 0 / 0
Помогите пожалуйста решить или укажите направление для решения..
 В статье http://tattooroman.com/permanent-makeup/tatuazh-brovey/protsedura-tatuazha-brovey в самом низу стоит ссылка на якорь("FOTO"). Якорь на главной, в одном из разделов.
Так вот, нажимая на ссылку, раздел открывается, но не до конца. В чём может быть задержка??
Joomla 3.х
Заранее благодарен любому ответу!
« Последнее редактирование: 17.11.2014, 17:18:03 от rom »
*

dimat84

  • Давно я тут
  • 517
  • 20 / 0
Re: Не до конца срабатывает якорь
« Ответ #1 : 07.11.2014, 01:19:57 »
Все нормально открывается
*

rom

  • Осваиваюсь на форуме
  • 29
  • 0 / 0
Re: Не до конца срабатывает якорь
« Ответ #2 : 07.11.2014, 02:06:25 »
Извиняюсь, я сразу не обратил внимание - я тестировал на Мазиле.
В Мазиле открывается вот так


т.е. не показывает папки с фотками, которые должны быть справа, как на этой фотке:


На Chrome и Opera вообще открывает только главную и всё.
Задача, чтобы перейти по ссылке и сразу попасть на открывшийся раздел "Мои работы"
« Последнее редактирование: 07.11.2014, 02:15:08 от rom »
*

umbabaraumba

  • Живу я здесь
  • 2415
  • 153 / 1
  • если помог можете поставить +
Re: Не до конца срабатывает якорь
« Ответ #3 : 07.11.2014, 11:26:01 »
на главной в коде нет метки на которую ссылается якорь
Errare humanum est
Ubuntu по-русски
Пишу не сложные модули и компоненты, не дорого но не срочно
*

rom

  • Осваиваюсь на форуме
  • 29
  • 0 / 0
Re: Не до конца срабатывает якорь
« Ответ #4 : 07.11.2014, 15:14:26 »
на главной в коде нет метки на которую ссылается якорь

Как это сделать? поделитесь пожалуйста
*

umbabaraumba

  • Живу я здесь
  • 2415
  • 153 / 1
  • если помог можете поставить +
Re: Не до конца срабатывает якорь
« Ответ #5 : 07.11.2014, 15:22:48 »
Вот так
Errare humanum est
Ubuntu по-русски
Пишу не сложные модули и компоненты, не дорого но не срочно
*

rom

  • Осваиваюсь на форуме
  • 29
  • 0 / 0
Re: Не до конца срабатывает якорь
« Ответ #6 : 07.11.2014, 17:31:05 »
Вот так

я так уже пытался сделать, но видать опыта мало, поэтому не уверен точно в какой файл и куда вставить метку.
пробовал поочерёдно вставлять в этот код(по логике в него надо) там где надпись " -ВСТАВЛЯЛ СЮДА-". Файл "gallery.php" в папке шаблона:
Код
<?php defined( '_JEXEC' ) or die; ?>
<?php

// Get a db connection.
$gallerydb = JFactory::getDbo();
 
// Create a new query object.
$query = $gallerydb->getQuery(true);
 
$query->select($gallerydb->quoteName(array('id','ttstudio_title','ttstudio_image','ttstudio_orderid','state')));
$query->from($gallerydb->quoteName('#__ttstudio_galleries'));
$query->order($gallerydb->quoteName('ttstudio_orderid'));

// Reset the query using our newly populated query object.
$gallerydb->setQuery($query);
$galleryresults = $gallerydb->loadRowList();

?>

<div class="gallery"> -ВСТАВЛЯЛ СЮДА-
<?php foreach ($galleryresults as $row) : ?>
<?php if ($row[4] == 1) { ?>
<?php if ($portfolioimghide == 0) { ?>     
    <figure>  -ВСТАВЛЯЛ СЮДА-
        <a -ВСТАВЛЯЛ СЮДА- class="gallery<?php echo $row[0]; ?>" data-title="<?php echo $row[1]; ?>" href="<?php echo $row[2]; ?>">
            <img src="<?php echo $row[2]; ?>" alt="">
        </a>  -ВСТАВЛЯЛ СЮДА-
        <figcaption> -ВСТАВЛЯЛ СЮДА-
            <span><?php echo $row[1]; ?></span>
        </figcaption>
    </figure>
<?php } else { ?> 
    <a class="gallerylink gallery<?php echo $row[0]; ?>" href="<?php echo $row[2]; ?>" data-title="<?php echo $row[1]; ?>"><?php echo $row[1]; ?></a><br/>
<?php } ?>   
<script type="text/javascript">
jQuery(function($) {
$(".gallery<?php echo $row[0]; ?>").swipebox({hideBarsDelay : <?php if (!empty($swipeboxautohide)) { echo $swipeboxautohide . '000'; } else { echo '0'; } ?>});
});
</script>   
<?php } ?>   
<?php endforeach; ?>   
</div>

<?php

// Get a db connection.
$itemsdb = JFactory::getDbo();
 
// Create a new query object.
$query = $itemsdb->getQuery(true);
 
$query->select($itemsdb->quoteName(array('id','ttstudio_title','ttstudio_gallery','ttstudio_image','ttstudio_video','ttstudio_orderid','state')));
$query->from($itemsdb->quoteName('#__ttstudio_gallery_items'));
$query->order($itemsdb->quoteName('ttstudio_orderid'));

// Reset the query using our newly populated query object.
$itemsdb->setQuery($query);
$itemsresults = $itemsdb->loadRowList();

?>

<?php foreach ($itemsresults as $row) :
if ($row[6] == 1) {
echo '<a data-rel="gallery' . $row[2] . '" href="';
if (!empty($row[4])) { echo $row[4]; } else { echo $row[3]; }
echo '" class="hide gallery' . $row[2] . '" data-title="' . $row[1] . '"></a>';
}
endforeach; ?>

но срабатывает так же как и с якорем, недооткрывается. как будто что-то блокирует срабатывание.
*

rom

  • Осваиваюсь на форуме
  • 29
  • 0 / 0
Re: Не до конца срабатывает якорь
« Ответ #7 : 17.11.2014, 17:15:48 »
Нашлось некоторое решение:
в файле custom.js
Код
    jQuery('#ascensorBuilding').ascensor({direction:"x",time:1300,childType:"article",loop:false,overflow:'hidden'});

    if (jQuery(window).width() > 1024) {
    jQuery('#ascensorBuilding').stellar();
    }
     
    jQuery(window).load(function () {
    "use strict";
    if (jQuery(window).width() > 800) {
    jQuery('body').find('header').stop().animate({
    'marginTop': '0px'
    }, 500);
    setTimeout(function () {
    jQuery('body').find('#main-menu ul').stop().animate({
    'marginLeft': '0px'
    }, 500);
    jQuery('body').find('#sub-menu ul').stop().animate({
    'marginLeft': '0px'
    }, 900);
    }, 500 );
    }
    var menuheight = jQuery('body').find('#main-menu').height();
    if (jQuery(window).width() < 640) {
    if (jQuery(window).height() > 320) {
    jQuery('body').find('#sub-menu').css('top', menuheight + 90);
    }
    else {
    jQuery('body').find('#sub-menu').css('top', menuheight + 50);
    }
    }
    else
    {
    if (jQuery(window).height() > 320) {
    jQuery('body').find('#sub-menu').css('top', menuheight);
    }
    else {
    jQuery('body').find('#sub-menu').css('top', menuheight + 50);
    }
    }
    });
     
    jQuery(window).resize(function () {
    "use strict";
    var menuheight = jQuery('body').find('#main-menu').height();
    if (jQuery(window).width() > 800) {
    jQuery('body').find('header').css('margin-top', '0px');
    jQuery('body').find('nav ul').css('margin-left', '0px');
    jQuery('body').find('#main-menu').css('display', 'block');
    jQuery('body').find('#sub-menu').css('display', 'block');
    jQuery('body').find('#sub-menu').css('top', menuheight);
    }
    if (jQuery(window).width() < 640) {
    jQuery('body').find('#main-menu').css('display', 'none');
    jQuery('body').find('#sub-menu').css('display', 'none');
    jQuery('body').find('#mobile-menu').removeClass('menu-close');
    if (jQuery(window).height() > 320) {
    jQuery('body').find('#sub-menu').css('top', menuheight + 90);
    }
    else {
    jQuery('body').find('#sub-menu').css('top', menuheight + 50);
    }
    }
    else
    {
    if (jQuery(window).height() > 320) {
    jQuery('body').find('#sub-menu').css('top', menuheight);
    }
    else {
    jQuery('body').find('#sub-menu').css('top', menuheight + 50);
    }
    jQuery('body').find('#main-menu').css('display', 'block');
    jQuery('body').find('#sub-menu').css('display', 'block');
    }
    });
     
     
    jQuery("body").find('#mobile-menu').on("click", function (e) {
    "use strict";
    e.preventDefault();
    jQuery('body').find('#main-menu').toggle();
    jQuery('body').find('#sub-menu').toggle();
    jQuery('body').find('#mobile-menu').toggleClass('menu-close');
    });
     
    if (jQuery(window).width() < 640) {
    jQuery("body").find('nav li a').on("click", function () {
    "use strict";
    jQuery('body').find('#main-menu').toggle();
    jQuery('body').find('#sub-menu').toggle();
    jQuery('body').find('#mobile-menu').toggleClass('menu-close');
    });
    }
     
    /////////////////* ACCORDION */////////////////////////
     
    jQuery(document).ready(function () {
    "use strict";
    jQuery('.accordion-header').toggleClass('inactive-header');
     
    jQuery('.accordion-content').css({ 'width': '100%' });
     
    jQuery('.accordion-header').click(function () {
    if (jQuery(this).is('.inactive-header')) {
    jQuery('.active-header').toggleClass('active-header').toggleClass('inactive-header').next().slideToggle().toggleClass('open-content');
    jQuery(this).toggleClass('active-header').toggleClass('inactive-header');
    jQuery(this).next().slideToggle().toggleClass('open-content');
    }
     
    else {
    jQuery(this).toggleClass('active-header').toggleClass('inactive-header');
    jQuery(this).next().slideToggle().toggleClass('open-content');
    }
    });
     
    return false;
    });
     
    jQuery('body').find('iframe').wrap('<div class="flex-video"></div>');
    jQuery('body').find('.hasTooltip').removeClass('hasTooltip');

первая строка:
Код
jQuery('#ascensorBuilding').ascensor({direction:"x",time:1300,childType:"article",loop:false,overflow:'hidden'});

была заменена на:
Код
if(window.location.hash=="#foto") {jQuery('#ascensorBuilding').ascensor({windowsOn: 1,direction:"x",time:1300,childType:"article",loop:false,overflow:'hidden'});}
else {jQuery('#ascensorBuilding').ascensor({direction:"x",time:1300,childType:"article",loop:false,overflow:'hidden'});}

Проблема в том, что всё хорошо работает как надо на локалке, а вот на хостинге не срабатывает. Странно, но не могу понять что может мешать работе скрипта. Может ли быть проблема в самом хосте??
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Не до конца срабатывает якорь
« Ответ #8 : 17.11.2014, 19:28:57 »
От хоста может быть только одна проблема - страница переходит на якорь только после полной загрузки, если какой-то файл потерялся, то загрузка идет долго или бесконечно и т.п.
*

rom

  • Осваиваюсь на форуме
  • 29
  • 0 / 0
Re: Не до конца срабатывает якорь
« Ответ #9 : 18.11.2014, 00:14:40 »
От хоста может быть только одна проблема - страница переходит на якорь только после полной загрузки, если какой-то файл потерялся, то загрузка идет долго или бесконечно и т.п.

Вы имеете ввиду, что на сайте на хосте не хватает файла в отличии сайта на локалке?
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Не до конца срабатывает якорь
« Ответ #10 : 18.11.2014, 05:27:51 »
Вы посмотрите в консоль FireBug, есть ли там отсутствующие файлы, вместо того, чтобы задавать доп. Вопросы.
*

rom

  • Осваиваюсь на форуме
  • 29
  • 0 / 0
Re: Не до конца срабатывает якорь
« Ответ #11 : 19.11.2014, 01:02:11 »
Вы посмотрите в консоль FireBug, есть ли там отсутствующие файлы, вместо того, чтобы задавать доп. Вопросы.

спасибо, мистер просвещённость!)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как убрать tooltip в регистрации в Joomla 3?

Автор KoloS

Ответов: 13
Просмотров: 9010
Последний ответ 24.08.2021, 19:00:51
от coolplaymaster
Шаблон VTEM CLEAN (не работает с русскими буквами) - ?

Автор warlocksp

Ответов: 6
Просмотров: 1534
Последний ответ 15.10.2018, 17:59:59
от Frost68
Как вывести alt для изображения в карточке?

Автор Anna01

Ответов: 6
Просмотров: 2127
Последний ответ 24.04.2017, 12:04:22
от Anna01
Стили пагинации в Helix 3

Автор stepan39

Ответов: 0
Просмотров: 1442
Последний ответ 30.03.2017, 12:30:13
от stepan39
При увелечении масштаба исчезает модуль

Автор Egordj

Ответов: 0
Просмотров: 1127
Последний ответ 08.02.2017, 20:56:41
от Egordj