Новости 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 Ответов
  • 2320 Просмотров
*

Hurgrave

  • Новичок
  • 5
  • 2 / 0
Для людей, хорошо знающих шаблоны и умеющих работать с PHP тут ничего нового не будет. Для людей, не умеющих писать на РНР и не особо искушенных в шаблонах - может что-то новое расскажу. Мне самому пришлось покопаться, поискать, чтобы сделать как нужно.
Итак, какая у меня была задача?
Нужно было переделать вид витрины и отображения категорий. У меня был стандартный шаблон joom shopping, который отображает категории вот так:

Мне нужно было разместить все изображения на "плитках" с названиями категорий ровно под ними и без описаний категорий

Настройки встроенной темы ничего такого не позволяют, значит надо копать в шаблонах. Нужные шаблоны - это файлы maincategory.php (витрина на главной странице) и category_default.php (основной список категорий). Но внутри них для непосвященного взгляда творится лютый АДЪ из мешанины тегов HTML и PHP. Чтобы разобраться нужно выделить какие теги за что отвечают. Желательно знать хотя бы HTML5/CSS3 и понимать как оно должно выглядеть.
По сути фрагменты кода РНР вставляются в HTML-разметку и сами по себе только подставляют значения тех или иных обьектов, не влияя на разметку страницы. Поэтому наша работа выявить нужные куски кода и воткнуть их в нашу разметку. От некоторых кусков кода можно вообще отказаться.

Вот код файла category_default.php, его и поковыряем. Естественно сначала скопируем исходный файл куда-нибудь в надёжное место.

В самом начале мы обьявляем о запуске шаблона. Этот пункт - самое начало, трогать не будем, иначе у нас просто ничего не сработает.
Код
print $this->_tmp_category_html_start;
?>

Потом начинается изменяемая часть, например обьявление названия категории (name) и ее описания (description). Описание категории можно отключать, это не повлияет на работу. Здесь можно вставлять РНР-код в любое форматирование, которое вам нужно для названия категории. То есть весь HTML можно менять как бог на душу положит. Главное - не прозевать закрывающие теги div.
Код
<div class="jshop" id="comjshop">
    <h1><?php print $this->category->name?></h1> // Имя категории
    <div class="category_description">
        <?php print $this->category->description?> // Описание категории
    </div>

А теперь начинается та часть, которую нам по исходному заданию надо кастомизировать. Думаю пояснить по структуре страницы. JoomShopping новых версий сверстано на блоках, без таблиц, с использованием сетки колонок от Bootstrap. Отсюда - знакомые классы sblock. Эта сетка - адаптивная и "резиновая", умеющая автоматически увеличивать и уменьшать число колонок в зависимости от разрешения экрана. Поэтому же, меняя дизайн страницы категорий на нестандартный, вам придется вот эту бутстраповскую сетку убивать и заменять своей.

Что мы делаем в этом куске кода? Мы считаем категории и сколько их поместится в ряд. Если мы убиваем родную вёрстку, эта часть кода для нас несущественна.

Код
    <div class="jshop_list_category"> 
    <?php if (count($this->categories)) : ?>
        <div class = "jshop list_category">
            <?php foreach($this->categories as $k=>$category) : ?>
           
                <?php if ($k % $this->count_category_to_row == 0) : ?>
                    <div class = "row-fluid">
                <?php endif; ?>
               
                <div class = "sblock<?php echo $this->count_category_to_row;?> jshop_categ category">

А вот и наши барашки! Смотрите, в блоке c sblock2 image живет наша картинка категории и ссылка! Если Вы понимаете в HTML, то легко нарежете всё как надо. В нашем случае ссылка - это <?php print $category->category_link;?>, картинка - это <?php print $this->image_category_path;?>/<?php if ($category->category_image) print $category->category_image; else print $this->noimage;?>, тег alt - это <?php print htmlspecialchars($category->name)?>, название ссылки - это <?php print htmlspecialchars($category->name)?>

Код

                    <div class = "sblock2 image">
                        <a href = "<?php print $category->category_link;?>"> // Вот ссылка картинки! Её бережём!
                            <img class="jshop_img" src="<?php print $this->image_category_path;?>/<?php if ($category->category_image) print $category->category_image; else print $this->noimage;?>" alt="<?php print htmlspecialchars($category->name)?>" title="<?php print htmlspecialchars($category->name)?>" />
                        </a>

Дальше - ссылка на категорию <?php print $category->category_link?>, текстовое название категории <?php print $category->name?> и короткое описание <?php print $category->short_description?>. Эти фрагменты кода можно поместить в Вашу разметку без всяких проблем.

Код
                    </div>
                    <div class = "sblock2">
                        <div class="category_name">
                            <a class = "product_link" href = "<?php print $category->category_link?>">
                                <?php print $category->name?>
                            </a>
                        </div>
                        <p class = "category_short_description">
                            <?php print $category->short_description?>
                        </p>                       
                   </div>
                </div>


Следующий кусок кода - продолжение разметки категорий по сетке. Если Вы уже "грохнули" предыдущую разметку - спокойно добивайте и эту.
Код
                
                <?php if ($k % $this->count_category_to_row == $this->count_category_to_row - 1) : ?>
                    <div class = "clearfix"></div>
                    </div>
                <?php endif; ?>
               
            <?php endforeach; ?>
           
            <?php if ($k % $this->count_category_to_row != $this->count_category_to_row - 1) : ?>
                <div class = "clearfix"></div>
                </div>
            <?php endif; ?>
           
        </div>
    <?php endif; ?>
    </div>

А это - наш хвост файла, не несущий никакой разметки HTML и оставляемый без изменений.
Код
	<?php print $this->_tmp_category_html_before_products;?>
       
    <?php include(dirname(__FILE__)."/products.php");?>

<?php print $this->_tmp_category_html_end;?>
</div>

Собственно вот и всё. Если Вы знаете HTML, то легко справитесь дальше самостоятельно. А если не знаете, то лучше и не браться вовсе. Не исключаю что в моём тексте есть ошибки. Обычно они моментально выявляются, выбрасывая ошибки РНР. Найдёте - поправляйте. Но, надеюсь, общий принцип всё же понятен: находите нужные фрагменты кода и вставляйте в свой шаблон.
*

Biss

  • Давно я тут
  • 995
  • 101 / 0
 ^-^ Не важно, делали вы все это для себя или клиенту, но я бы рекомендовал шаблон вам переопределить так как это всё слетит при первом обновлении...
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[JoomShopping 5] вывод товаров из дочерних категорий

Автор v42bis

Ответов: 15
Просмотров: 3312
Последний ответ 14.06.2024, 11:43:28
от denistischenko
Ошибка при установке шаблона

Автор jimka

Ответов: 2
Просмотров: 2195
Последний ответ 23.08.2023, 15:22:52
от victorantoniak
Несколько категорий на одной странице

Автор geral

Ответов: 4
Просмотров: 1106
Последний ответ 21.04.2023, 16:15:49
от geral
Внедрение интернет-магазина на JoomShopping в работающий сайт

Автор Sashkavtanke

Ответов: 4
Просмотров: 2027
Последний ответ 14.04.2023, 19:11:31
от IgorGeneralov
Кеширование страниц товаров JoomShopping

Автор mister_boy

Ответов: 3
Просмотров: 1048
Последний ответ 04.08.2022, 11:49:36
от ProtectYourSite