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

GlooM

  • Давно я тут
  • 558
  • 91 / 0
  • AdsManager
Чтобы в конкретном объявлении выводились еще, к примеру, пять ссылок на другие объявления с сайте, написал небольшой хак:
Код
<div class="info">
<h3><?php echo ADSMANAGER_INFO; ?></h3>
<?php
$database->setQuery( "SELECT * FROM #__adsmanager_ads WHERE 'id'!='$row->id' ORDER BY RAND() LIMIT 5");
$infos = $database->loadObjectList();
foreach($infos as $info){
echo '<div class="inform">';
echo '— <a href="index.php?option=com_adsmanager&amp;page=show_ad&amp;adid='.$info->id.'">'.$info->ad_headline.'</a><br />';
echo '</div>';
}
?>
</div>
вставляется в файл adsmanager.html.php в функцию function show_html_ad (в то место, где хотите выводить)

Можно изменить количество вывода, поставив LIMIT N, где N - число объявлений, сколько Вы хотите выводить.

-------------

Еще одно решение: если находимся в объявлении и надо вытащить объявления только из категории, в которой находимся:
(в global только объявите $catid, т.е. global $mosConfig_live_site,$mosConfig_absolute_path,$my,$database, $catid; )
Код
<div class="info">
<h3><?php echo ADSMANAGER_INFO; ?></h3>
<?php
$database->setQuery( "SELECT c.*, a.* FROM #__adsmanager_ads a join #__adsmanager_adcat c on a.id=c.adid WHERE (a.id!='$row->id') and (c.catid = '$catid') ORDER BY RAND() LIMIT 5");
$infos = $database->loadObjectList();
foreach($infos as $info){
echo '<div class="inform">';
echo '— <a href="index.php?option=com_adsmanager&amp;page=show_ad&amp;adid='.$info->id.'&amp;catid='.$catid.'">'.$info->ad_headline.'</a><br />';
echo '</div>';
}
?>
</div>

----------

Решение от AlexSims:
Для 1.5.17  Адс 2.2.1
Вот код:

Код
<div class="info">
<h3><?php echo ADSMANAGER_INFO; ?></h3>
<?php
 global $mosConfig_live_site,$mosConfig_absolute_path,$my,$database;

$database->setQuery( "SELECT c.*, a.* FROM #__adsmanager_ads a join #__adsmanager_categories c on a.category=c.id WHERE (a.id!='$row->id') and (c.id='$row->category') ORDER BY RAND() LIMIT 3");
$infos = $database->loadObjectList();


foreach($infos as $info){
echo '<div class="inform">';
//Обработка вывода цены
$nums = $info->ad_price;
$format_ad_price = number_format($nums,' ');
//
echo '— <a href="index.php?option=com_adsmanager&amp;page=show_ad&amp;adid='.$info->id.'&amp;catid='.$info->category.'">'.$info->ad_headline.'</a>&nbsp;&nbsp;'.$format_ad_price.''. ADSMANAGER_DEVICE. '<br />';
echo '</div>';
}

?>
</div>

***********
p.s.: Первые два решения тестировались на Joostina 1.2.0 + AdsManager 2.5 RC2, Третье решение тестировалось на Joomla 1.5.17 + AdsManager 2.2.1
« Последнее редактирование: 01.06.2010, 10:18:10 от GlooM »
*

uf1976

  • Захожу иногда
  • 242
  • 6 / 5
ЗдОрово!
От AlexSims работает в 1.5. Только мне не очень нравится вывод цены: "2,115,000", хотелось бы "2 115 000".
*

GlooM

  • Давно я тут
  • 558
  • 91 / 0
  • AdsManager
ЗдОрово!
От AlexSims работает в 1.5. Только мне не очень нравится вывод цены: "2,115,000", хотелось бы "2 115 000".
С таким условием
Код
$format_ad_price = number_format($nums,' ');
и должен выводиться 2 115 000
можно попробовать расширить
Код
$format_ad_price = number_format($nums,0, ',', ' ');
вместо 0 можно написать цифру - сколько знаков после запятой
*

AlexSims

  • Захожу иногда
  • 314
  • 38 / 0
  • кручу верчу
думаю так надо
($nums, 0, '  ');
чтоб было 1 000 000
С фантазией плохо.
*

uf1976

  • Захожу иногда
  • 242
  • 6 / 5
Код
$format_ad_price = number_format($nums,0, ',', ' ');
вместо 0 можно написать цифру - сколько знаков после запятой
[/quote]
Это помогло. Спасибо!
*

AlexAl

  • Захожу иногда
  • 309
  • 13 / 0
что то у меня не выводит не чего. ((( пробовал 3 выриант. мне кажется что запрос не чего не позвращает. нужна помощь
« Последнее редактирование: 17.06.2010, 14:03:58 от AlexAl »
*

AlexSims

  • Захожу иногда
  • 314
  • 38 / 0
  • кручу верчу
что то у меня не выводит не чего. ((( пробовал 3 выриант. мне кажется что запрос не чего не позвращает. нужна помощь
а версия адс у вас какая?

может у вас переменные в базе по другому обозначаются
С фантазией плохо.
*

AlexAl

  • Захожу иногда
  • 309
  • 13 / 0
2.5 версия переменные я не переименовывал. вот допустим такой запрос в другом месте работает
Код
"SELECT a.id,a.views, a.ad_headline, a.category, a.date_created,p.id as parentid,p.name as parent,c.id as catid, c.name as cat, a.ad_price as price ".
"FROM #__adsmanager_ads as a ".
"LEFT JOIN #__adsmanager_adcat as adcat ON adcat.adid = a.id ".
"LEFT JOIN #__users as u ON a.userid = u.id ".
"LEFT JOIN #__adsmanager_categories as c ON adcat.catid = c.id ".
"LEFT JOIN #__adsmanager_categories as p ON c.parent = p.id ".
"WHERE $cat_query c.published = 1 and a.published = 1 GROUP BY a.id $order_sql LIMIT 0, $nb_ads");
*

AlexSims

  • Захожу иногда
  • 314
  • 38 / 0
  • кручу верчу
в личку написал
С фантазией плохо.
*

AlexAl

  • Захожу иногда
  • 309
  • 13 / 0
Вот мой вариант но хочется довести до ума.
Код
	<div class="info">
<h3><?php echo ADSMANAGER_INFO; ?></h3>
<?php
 global $mosConfig_live_site,$mosConfig_absolute_path,$my,$database;

      // explode the meta keys on a comma
      $keys = explode( ' ', $row->ad_headline );
      $likes = array();

      $Compteur = 0;
      // assemble any non-blank word(s)
      foreach ($keys as $key) {
         $key = trim( $key );

         if ($key) {
            $likes[] = $key;
         }
      }


     $likes = implode( "%' OR a.ad_keywords LIKE '%", $likes );

$database->setQuery( "SELECT DISTINCT  c.*, a.* FROM #__adsmanager_ads a join #__adsmanager_categories c WHERE (a.id!='$row->id')and (a.ad_keywords LIKE '%.$likes.%')   ORDER BY RAND() LIMIT 3");
$infos = $database->loadObjectList();


foreach($infos as $info){
echo '<div class="inform">';
//Обработка вывода цены
$nums = $info->ad_price;
$format_ad_price = number_format($nums,' ');
//
echo ' <a href="index.php?option=com_adsmanager&amp;page=show_ad&amp;adid='.$info->id.'&amp;catid='.$info->category.'">'.$info->ad_headline.'</a>&nbsp;&nbsp;'.$format_ad_price.''. ADSMANAGER_DEVICE2. '<br />';
echo '</div>';
}

?>
</div>

а именно исключить повторяющееся записи в запросе, и исключить предлоги, то есть слова меньше 3 слов. кто не понял поясню что данный пример ищет обявления по похожим словам из за головка объявления.
*

AlexSims

  • Захожу иногда
  • 314
  • 38 / 0
  • кручу верчу
если ищеться из заголовка объявления то наверное не ad_keywords      а   ad_headline  обрабатывать
С фантазией плохо.
*

tonik83

  • Новичок
  • 8
  • 0 / 0
Ребята. помогите разобраться. пытаюсь 3-й вариант поставить - не получается. joomla1.5 и доска 2.5. у меня появляется только синяя полоска и всё(((((((
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Фильтр по полям или автозаполнение категl

Автор Risenab

Ответов: 2
Просмотров: 1836
Последний ответ 24.02.2017, 21:46:48
от Risenab
Как убрать названия позиции?

Автор Негодяй

Ответов: 7
Просмотров: 2032
Последний ответ 27.11.2016, 14:16:42
от grinat
Как добавить поле даты и календарь на стра

Автор Polosatyi

Ответов: 2
Просмотров: 2279
Последний ответ 12.10.2016, 06:05:57
от alexche
Как изменить вывод заголовка объявлений?

Автор max.g

Ответов: 1
Просмотров: 1600
Последний ответ 23.05.2016, 13:59:04
от max.g
Core Design Captcha на AdsManager

Автор RodionMurin

Ответов: 1
Просмотров: 1550
Последний ответ 10.03.2016, 20:44:32
от RodionMurin