Новости Joomla

👩‍💻 Компонент "CS Афиши" для Joomla.

👩‍💻 Компонент "CS Афиши" для Joomla.

Расширение "CS Афиши" позволяет выводить список мероприятий, фильтровать их по датам, поиск по заголовкам и описанию.

В состав пакета расширений входят:
- Компонент "CS Афиши"
- Модуль "Календарь событий"
- Модуль "Предстоящие события"
- Библиотека "ImgResize"

Расширение "CS Афиши" позволяет выводить список мероприятий, фильтровать их по датам, поиск по заголовкам и описанию.

Модуль "Календарь событий" отображает предстоящие и прошедшие мероприятие на календаре, с отображением мероприятий на конкретную дату во всплывающем окне.

Модуль "Предстоящие события" показывает список предстоящий событий по порядку их наступления.

P.S. Расширение платное, но плата символическая, чисто для отработки приема платежей. Ключи без ограничения по времени, купившие сейчас - смогут обновляться без ограничений.

Разработчик - участник нашего сообщества Дмитрий Денисов (@codersite).

Страница расширения
Демо

Яндекс выпустил инструмент Видимость сайта в Алисе AI.

Яндекс выпустил инструмент Видимость сайта в Алисе AI.

С тех пор, как в поисковиках появились нейроответы ИИ, трафик на сайты стал гораздо меньше, так как пользователь стал получать информацию непосредственно на странице поисковика без перехода на сайт. Но при генерации ответа ИИ указывает источники - ссылки на сайты, информация которых была использована для генерации ответа.

Долгое время у всех был немой вопрос: "Как же теперь оценивать эффективность сайта?". Теперь этот на этот вопрос отчасти отвечает новый инструмент аналитики.
Процитируем справку Яндекса по инструменту:
На запросы пользователей в Поиске может отвечать Алиса AI. Ответы появляются в поисковой выдаче, в объектных ответах и на отдельной вкладке Поиска. В них чаще всего упоминаются страницы сайтов, на которые Алиса AI опиралась при подготовке ответа.

С помощью инструмента Видимость сайта в Алисе AI в Яндекс Вебмастере вы можете:
- узнать долю упоминаний сайта среди источников в ответах Алисы AI в Поиске и отследить динамику изменений;
- посмотреть примеры запросов, по которым страницы сайта показываются в ответах Алисы AI;
- посмотреть примеры сайтов той же тематики, которые часто упоминаются в генеративной выдаче.
Данные отображаются за последние 3 месяца и обновляются каждую неделю.

Статистика собирается только по тем запросам, по которым ваш сайт уже находится достаточно высоко в поисковой выдаче. Это позволяет анализировать видимость именно в той нише, где вы заинтересованы в продвижении, и избегать «размытия» по малозначимым для вас запросам.

Кроме того, такой подход обусловлен работой Алисы AI: она строит ответ с опорой на самые релевантные, информативные и качественные страницы, которые обычно занимают высокие позиции в Поиске.

Чтобы увидеть статистику вашего сайта в меню Яндекс.Вебмастера перейдите в раздел "Эффективность" и далее в "Показы сайта в Алисе AI".

В начале февраля 2026г. был вебинар с Михаилом Сливинским - амбассадором Поиска Яндекса, и в рамках вебинара была озвучена просьба сделать такой инструмент. Скорее всего разработка на тот момент уже велась, потому что от просьбы до релиза прошло около 2-х месяцев. В любом случае хорошо, что такая статистика появилась.

Показы сайта в Алисе AI в вашем Яндекс,Вебмастере.

@joomlafeed

👩‍💻 ИИ-админ для 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

0 Пользователей и 1 Гость просматривают эту тему.
  • 375 Ответов
  • 178187 Просмотров

Re: Документация по компонентам
« Ответ #150 : 20.05.2006, 17:29:11 »
Ну это понятно...хочу выводить данные на этой же странице вверху формы. Выводить буду типа так:

<div id="unik" style="display: none;">
Тут данные
</div>

Это вроде понятно. Непонятно то, что как данные в этот див передадуться после нажатия на кнопку предварительный просмотр. Как бы схема будет такой:
Предварительный просмотр->дальше куда?->в див который указан выше. Или схема не такая? Понятно, что див будет скрываться и при помощи JS отображаться...когда в див передали данные. Как передать данные в этот див? Куда данные должны передаться до дива?
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Документация по компонентам
« Ответ #151 : 20.05.2006, 17:45:03 »
Предварительный просмотр->дальше куда?->в див который указан выше. Или схема не такая?
можно и так. можно с перегрузкой страницы.
просто в первом случае код полностью формирует js, а во втором PHP

Понятно, что див будет скрываться и при помощи JS отображаться...когда в див передали данные. Как передать данные в этот див? Куда данные должны передаться до дива?
ну так это опять же зависит...
если данные сформированы ДО построения дива, это наверно лучше делать на рнр, если же данные формируются после, то это только JS по принципу document.id.innerHTML, но это зависит от местоположения объекта
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3

Re: Документация по компонентам
« Ответ #152 : 20.05.2006, 17:57:18 »
Вот буду очень рад, если пример какой нить дашь.  ;) Вот у меня див будет выше формы:

Код
<div id="unik" style="display: none;"></div>
<form action="index.php?option=$option" method="GET" name="Form">
<input type="text" name="adres" value="" size="10" class="text">
<input type="submit" value="отправить" class="button">
<input type="reset" value="Предварительный просмотр" class="button">
</form>
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Документация по компонентам
« Ответ #153 : 20.05.2006, 18:21:00 »
ну вот так, "на бегу":

<script>
function show(){
   unik.innerHTML = myform.adres.value;
}
</script>
<div id="unik"></div>

<form action="index.php?option=$option" method="GET" name="myform">
<input type="text" name="adres" value="allowable text" size="10" class="text">
<input type="button" onclick="show()" value="отправить" class="button" name="button">
</form>

при нажатии на кнопку текст из инпута будет скопирован в див
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

dreamwind

  • Захожу иногда
  • 166
  • 27 / 13
Re: Документация по компонентам
« Ответ #154 : 20.05.2006, 19:03:53 »
Господа, давайте не будем учить детей плохому?

<script>
function show(){
   unik.innerHTML = myform.adres.value;
}
</script>
<div id="unik"></div>

Будет работать только в ИЕ, используйте хотя бы

document.getElementById('unik').nnerHTML=myform.adres.value;

да и к элементу формы лучше обращаться

document.forms['myform'].adres

А еще лучше передавать объект формы прямо из button:

<script type="text/javascript">
function show(form){
   document.getElementById('unik').innerHTML = form.adres.value;
}
</script>

<div id="unik"></div>

<form action="index.php?option=$option" method="GET" name="myform">
<input type="text" name="adres" value="allowable text" size="10" class="text">
<input type="button" onclick="show(form)" value="отправить" class="button" name="button">
</form>

Re: Документация по компонентам
« Ответ #155 : 21.05.2006, 09:48:05 »
dreamwind
Спасибо за помощь!!)) Буду смотреть.
Господа, давайте не будем учить детей плохому?
Это Вы конечно зря так..))

userxp
Спасибо! Что получится дам знать!)
*

PyKaB

  • Захожу иногда
  • 88
  • 19 / 13
Re: Документация по компонентам
« Ответ #156 : 22.05.2006, 12:11:10 »
а вот еще вопросик(нравиться мне эта тема - прям интелектуальная инструкцая по апи + пхп + ява )) ). Хочу сделать колонку "опубликовано" ну и кнопку соответствующую. хочется чтоб работала кнопка при включенном чекбоксе(чекбоксы джумловским методом сделанны) и работало изменение по щелчку на иконку в строке(красный крест где). как такое делается?

Re: Документация по компонентам
« Ответ #157 : 22.05.2006, 17:44:27 »
а вот еще вопросик(нравиться мне эта тема - прям интелектуальная инструкцая по апи + пхп + ява )) ). Хочу сделать колонку "опубликовано" ну и кнопку соответствующую. хочется чтоб работала кнопка при включенном чекбоксе(чекбоксы джумловским методом сделанны) и работало изменение по щелчку на иконку в строке(красный крест где). как такое делается?

А где хочешь сделать в админ части или на самом сайте?
*

PyKaB

  • Захожу иногда
  • 88
  • 19 / 13
Re: Документация по компонентам
« Ответ #158 : 22.05.2006, 18:30:25 »
в админ части...
*

grusha

  • Осваиваюсь на форуме
  • 21
  • 2 / 0
Re: Документация по компонентам
« Ответ #159 : 22.05.2006, 19:39:03 »
 а мне ктонить подскажите .......
у меня есть 2 таблицы categories и subcategories.
В таблице categories есть 2 поля : 'id' и 'name'
В Таблице subcategories 3 поля :'id' 'parent' 'name'
в таблице categories 'name' - название ,скажем , городов и имеет id
в таблице subcategories 'name' - название улиц и имеет parent=id из таблици categories.

вообщем мне надо чтоб при выборе города автоматически показывались улицы только этого города , сейчас я сделал у меня показывает все улицы независимо от того какой город выбран.
надо чтобы если в таблице categories у города id=1 то из базы subcategories выбирались улици у которых parent=1.
у еще вопросик...
это сделано как выпадающее меню , можно ли сделать обновление улиц без перезагрузки страници .
« Последнее редактирование: 22.05.2006, 19:57:19 от grusha »
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Документация по компонентам
« Ответ #160 : 22.05.2006, 20:20:03 »
вот такой запрос примерно 'SELECT name FROM #__subcategories WHERE parent='.$row->id , где $row->id - id таблицы categories
вопрос был - без перегрузки страницы.

2 grusha:
или грузи всё в массивы javascript или используй технологии AJAX
если инфы не много, то первое проще.
сколько записей в таблицах?
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

grusha

  • Осваиваюсь на форуме
  • 21
  • 2 / 0
Re: Документация по компонентам
« Ответ #161 : 23.05.2006, 00:28:17 »
записей будет около 500
*

grusha

  • Осваиваюсь на форуме
  • 21
  • 2 / 0
Re: Документация по компонентам
« Ответ #162 : 23.05.2006, 00:31:04 »
вот такой запрос примерно 'SELECT name FROM #__subcategories WHERE parent='.$row->id , где $row->id - id таблицы categories

спасибо , но он же будет брать id из subcategories а мне надо чтоб id он брал из categories
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Документация по компонентам
« Ответ #163 : 23.05.2006, 00:37:09 »
скажем по 50 символов * 4 (для массива) * 500 = прим. +100 кБ к ёмкости страницы.

я знаю?.. думай.
ИМХО - не есть гут.
попробуй пересчитать по реальным данным

а что, не перегружать - так критично?
« Последнее редактирование: 23.05.2006, 00:39:19 от userxp »
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

grusha

  • Осваиваюсь на форуме
  • 21
  • 2 / 0
Re: Документация по компонентам
« Ответ #164 : 23.05.2006, 00:44:07 »
ну с перерезагрузкой я разберусь а вот с выбором по таблице немогу ......
и правильно ли вообще что я в двух таблицах сделал два поля name или это неимеет значения ??
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Документация по компонентам
« Ответ #165 : 23.05.2006, 00:54:57 »
в общем:
если ты хочешь делать выборку с перезагрузкой, то придётся делать всё равно два запроса
1) просто SELECT id, name FROM .... - это для главного списка
при выборе нужно в GET дописать свой идентификатор, потом, после перезагрузки отбираешь $_GET['имя_параметра'] и по нему отсеиваешь:
2) SELECT поля FROM таблица WHERE условие выборки по $_GET['имя_параметра'] -> получишь отфильтрованные данные
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

grusha

  • Осваиваюсь на форуме
  • 21
  • 2 / 0
Re: Документация по компонентам
« Ответ #166 : 23.05.2006, 01:22:08 »
спасибо большое, буду пробовать
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Документация по компонентам
« Ответ #167 : 23.05.2006, 01:33:42 »
да пожалуйста, просто не хочется поисывать подробно, поскольку это как-то не совсем относится к джумле - это общий подход реализации и это можно прочитать в книгах, да и с уже готовыми примерами и пояснениями.
а джумла - это просто часть этой реализаци.
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3

Re: Документация по компонентам
« Ответ #168 : 23.05.2006, 06:53:26 »
в админ части...

Я делал вот так:

Код
<?php
for ($i=0, $n=count( $rows ); $i < $n; $i++) {

$row = &$rows[$i];

$pub = $row->published ? 'unpublish' : 'publish';
$im_g = $row->published ? 'tick.png' : 'publish_kr.png';
?>

<input type="checkbox" id="cb<?php echo $i;?>" name="id[]" value="<?php echo $row->id; ?>" onclick="isChecked(this.checked);" />  // Это чекбокс

<a href="javascript: void(0);" onclick="return listItemTask('cb<?php echo $i;?>','<?php echo $pub;?>')"><img src="images/<?php echo $im_g;?>" width="12" height="12" border="0" alt="" /></a>  // Это сама картинка по которой будешь переключать
}


К этому у тебя должен быть свой файл с классом, и должна быть описана функция публикации, у меня она выглядит так:

Код
<?php

    function publish_x( $cid=null, $publish=1,  $option ) {
global $database;
    if (!is_array( $cid ) || count( $cid ) < 1) {
$action = $publish ? 'publish' : 'unpublish';
echo "<script> alert('" . "messaga!!!" . " $action'); window.history.go(-1);</script>\n";
exit;
}
    $cids = implode( ',', $cid );
    $database->setQuery( "UPDATE #__tablename SET published='$publish' WHERE id IN ($cids)" );
if (!$database->query()) {
echo "<script> alert('".$database->getErrorMsg()."'); window.history.go(-1); </script>\n";
exit();
}
    mosRedirect( "index2.php?option=$option" );
}
?>
Сразу скажу, что у меня с первого раза не получилось...)) Так что у тебя тоже может такое быть. Но во всяком случае работать должно!)

« Последнее редактирование: 23.05.2006, 06:55:32 от Quexx »
*

PyKaB

  • Захожу иногда
  • 88
  • 19 / 13
Re: Документация по компонентам
« Ответ #169 : 23.05.2006, 12:57:28 »
хм... особо не понял... а когда будет вызываться publish_х?

Re: Документация по компонентам
« Ответ #170 : 23.05.2006, 13:26:51 »
хм... особо не понял... а когда будет вызываться publish_х?

Тебе нужно пробовать...чтобы понять. Вызываться будет когда по картинкам будешь кликать или когда выберешь чекбокс и нажмешь в меню публиковать/непубликовать. Publish_x это у меня, а ты можешь обозвать как тебе захочется. Потом ее нужно загнать в swich примерно таким образом:

Код
<?php
  switch ($task) {
case "publish":
publish_x( $id, 1, $option );
break;
case "unpublish":
publish_x( $id, 0, $option );
break;
?>

Re: Документация по компонентам
« Ответ #171 : 24.05.2006, 17:55:46 »

Пример использования функции strtotime()
<?php
echo strtotime("now"), "\n";
echo 
strtotime("10 September 2000"), "\n";
echo 
strtotime("+1 day"), "\n";
echo 
strtotime("+1 week"), "\n";
echo 
strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
echo 
strtotime("next Thursday"), "\n";
echo 
strtotime("last Monday"), "\n";
?> 


Вот не могу понять где тут мне может пригодится strtotime? Если возможно расскажи подробнее)) И допустим у меня есть в базе дата удаления 2006-06-25, как мне сравнить с текущей датой эту дату, и вывести юзеру сколь осталось дней?
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Документация по компонентам
« Ответ #172 : 24.05.2006, 18:44:41 »
сорьки, но ща сильно занят :(
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3

Re: Документация по компонентам
« Ответ #173 : 25.05.2006, 07:48:48 »
Оке...Ну если появится минутка, то напиши. Может я к тому времени..что и сам додумаю..))

Re: Документация по компонентам
« Ответ #174 : 25.05.2006, 08:19:29 »
Вот не могу понять где тут мне может пригодится strtotime? Если возможно расскажи подробнее)) И допустим у меня есть в базе дата удаления 2006-06-25, как мне сравнить с текущей датой эту дату, и вывести юзеру сколь осталось дней?
Обязательно это средствами php делаь? Если значение с которым нужно узнать разницу в БД имхо решать такую задачу надо стредствами БД.
Например так:
SELECT DATEDIFF(NOW(),'2006-06-25')
*

PyKaB

  • Захожу иногда
  • 88
  • 19 / 13
Re: Документация по компонентам
« Ответ #175 : 25.05.2006, 09:29:16 »
toolbar.****.html.php подключается из toolbar.****.php,  а тот, в свою очередь, вызывается в файле: administrator/modules/mod_toolbar.php...

если тебе необходимо использовать русские языковые константы, то лучше их подключить в файле toolbar.****.php
а вот и нет :) тут дело не чисто :) в toolbar.****.php не определенна $mosConfig_lang, поэтому подключить проблематично, НО если подключить в admin.***.php, в котором $mosConfig_lang определен, то языковые константы работают в toolbar.****.html.php.... получается, что admin.***.php подключается первый и потом где-то удаляется переменная $mosConfig_lang.

Re: Документация по компонентам
« Ответ #176 : 25.05.2006, 15:41:31 »
Обязательно это средствами php делаь? Если значение с которым нужно узнать разницу в БД имхо решать такую задачу надо стредствами БД.
Например так:
SELECT DATEDIFF(NOW(),'2006-06-25')

Не так SELECT DATEDIFF(NOW(),'2006-06-25'), А так SELECT PERIOD_DIFF(NOW(),'2006-06-25'). Но это все равно не подходит, проверять нужно не одну строку, а больше 300..так что тут без рнр ни как.

to USERXP

Все проблему решил по описаному выше тобой примеру! Разницу между дат вычислил путем перевода даты из базы:

  $a 
strtotime ("$row->dropdate");
  
$c $a time(); 


Результат сам поделил на сутки и секунды. Получил что хотел. Удаление из базы проделал простым запросом.)) Ну и все соответственно в цикле.

ЗЫ. Чуть не забыл +1 сделать.)) Спасибо помог в очередной раз!
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Документация по компонентам
« Ответ #177 : 25.05.2006, 15:53:28 »
Спасибо/Пожалуйста!
Молодец, что разобрался.
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3

Re: Документация по компонентам
« Ответ #178 : 25.05.2006, 19:09:47 »
Не так SELECT DATEDIFF(NOW(),'2006-06-25'), А так SELECT PERIOD_DIFF(NOW(),'2006-06-25'). Но это все равно не подходит, проверять нужно не одну строку, а больше 300..так что тут без рнр ни как.
А в чем собственно проблемы? Зачем прекладывать на php ту работу с которой отлично справится БД...
А PERIOD_DIFF счиатет разниу в месяцах... а вы если память не изменяет хотели разницу в днях.

Re: Документация по компонентам
« Ответ #179 : 26.05.2006, 07:19:56 »
А в чем собственно проблемы? Зачем прекладывать на php ту работу с которой отлично справится БД...
А PERIOD_DIFF счиатет разниу в месяцах... а вы если память не изменяет хотели разницу в днях.

Да так и есть, и память вам не изменяет, именно в днях я и хотел. Вот тогда зачем Вы мне предложили PERIOD_DIFF? Ну не в этом суть я же говорил что сравнить нужно более 300 строк в которых не одна и таже дата, а все разные и получается что текущую дату нужно сравнить с тремя сотнями разных дат. Вот покажите мне пример запроса в базу (SELECT PERIOD_DIFF), без помощи рнр чтобы запрос вернул 300 значений - разностей дат.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Документация по созданию user profile плагина для Joomla 1.6

Автор n_drey

Ответов: 13
Просмотров: 3025
Последний ответ 05.10.2011, 21:03:46
от n_drey