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

mila_serdnaya

  • Захожу иногда
  • 432
  • 3 / 0
Re: Создание папок из фронтенда
« Ответ #450 : 11.11.2015, 18:25:45 »
b2z, вы пишите:
Цитировать
Сначала сделайте выборку материалов из #__chmos_compilations_articles

Код
// Выбираем ID		
$db=JFactory::getDbo();
$query=$db->getQuery(true);
$query->select->quoteName('content_id');
$query->from($db->quoteName('#__chmos_compilations_articles'));
$query->where($db->quoteName('compilation_id').'='.$id);
$db->setQuery($query);
$contentIds=$db->loadColumn();

Мы так понимаем, что это и есть выборка из таблицы #__chmos_compilations_articles.
------------------------------------------
Цитировать
а потом удаляйте сборник.

Код
// Удаляем сборник
$table->delete($id);
 
// Подключаем модель
JModelLegacy::addIncludePath(JPATH_ADMINISTRATOR.'/components/com_content/models','ContentModel');
$model=JModelLegacy::getInstance('Article','ContentModel',array('ignore_request'=>true));
 
// Удаляем материалы
$model->delete($contentIds);

...Мы не совсем понимаем, где именно у нас ошибка, потому что вроде как все действия, которые Вы написали, мы выполнили: выборка из таблицы есть, удаление сборника тоже.
*

mila_serdnaya

  • Захожу иногда
  • 432
  • 3 / 0
Re: Создание папок из фронтенда
« Ответ #451 : 11.11.2015, 18:27:57 »
Может быть, кто-то из форумчан, которые просматривают сейчас тему - знают, в чём мы допустили ошибку?
Автор Voland, например? =)
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Создание папок из фронтенда
« Ответ #452 : 11.11.2015, 19:00:42 »
robert, сделали, в сообщении выводится: "Item deleted successfullyIDs to remove: Model exists".
Значит, проблема в выборке: я на улице, посмотрю, когда приеду.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Создание папок из фронтенда
« Ответ #453 : 11.11.2015, 19:05:08 »
Может быть, кто-то из форумчан, которые просматривают сейчас тему - знают, в чём мы допустили ошибку?
Автор Voland, например? =)
я не слежу за кодом, а работаю в IDE обычно - надо прочитать страниц 5 назад, вникнуть о чем речь, еще и самого кода, как я понял нет ни на гитхабе, нигде..
Проще было б написать один раз за полдня, чем тратить недели.
Извините, мой логический склад ума не позволяет мне плодить энтропию.
*

mila_serdnaya

  • Захожу иногда
  • 432
  • 3 / 0
Re: Создание папок из фронтенда
« Ответ #454 : 11.11.2015, 22:14:53 »
voland, если вдруг Вы в свой выходной захотите по каким-то причинам выбрать время и помочь нам, - мы будем только рады.
Код отдельно мы никуда не выкладывали, потому что он постоянно видоизменяется.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Создание папок из фронтенда
« Ответ #455 : 11.11.2015, 22:25:14 »
Проверьте еще раз, точно у вас есть таблица chmos_compilations_articles? Если да, то какие столбцы там есть? И сейчас там есть какие-нибудь записи?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Re: Создание папок из фронтенда
« Ответ #456 : 11.11.2015, 22:34:03 »
Проверьте еще раз, точно у вас есть таблица chmos_compilations_articles? Если да, то какие столбцы там есть? И сейчас там есть какие-нибудь записи?

Код: sql
CREATE TABLE IF NOT EXISTS `#__chmos_compilations_articles` (
  `compilation_id` int(11) UNSIGNED NOT NULL,
  `content_id` INT(10) UNSIGNED,
  PRIMARY KEY (`compilation_id`, `content_id`),
  CONSTRAINT `#__chmos_compilations_articles_fk_compilation_id`
  FOREIGN KEY (`compilation_id`)
  REFERENCES `#__chmos_compilations` (`id`)
    ON UPDATE CASCADE ON DELETE CASCADE
) ENGINE=InnoDB;

Здесь я делал внешний ключ, чтобы при удалении сбрника автоматически удалялись связи. Поэтому сначала надо делать выборку материалов из этой таблицы, а потом удалять сборник. Если делать наоборот, то в этой таблице уже не будет связанных с удаленным сборником материалов.
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
*

mila_serdnaya

  • Захожу иногда
  • 432
  • 3 / 0
Re: Создание папок из фронтенда
« Ответ #458 : 11.11.2015, 22:41:06 »
robert, таблица  chmos_compilations_articles точно есть.
Автор b2z написал её структуру.
Прикрепляем скрин с записями в этой таблице:
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Создание папок из фронтенда
« Ответ #459 : 11.11.2015, 22:46:26 »
Нифига себе, вы новичку сразу подсунули FOREIGN KEY? Но выборка вроде осуществляется перед удалением, если я правильно помню.

P.S. Еще и CONSTRAINT.
« Последнее редактирование: 11.11.2015, 22:55:31 от robert »
Не будь паразитом, сделай что-нибудь самостоятельно!
*

mila_serdnaya

  • Захожу иногда
  • 432
  • 3 / 0
Re: Создание папок из фронтенда
« Ответ #460 : 11.11.2015, 22:46:41 »
b2z, текущий код метода delete в файле compilationform.php такой:
Спойлер
[свернуть]
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Создание папок из фронтенда
« Ответ #461 : 11.11.2015, 22:50:08 »
Да, выборка идет после удаления. Временный код для проверки удалите.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

mila_serdnaya

  • Захожу иногда
  • 432
  • 3 / 0
Re: Создание папок из фронтенда
« Ответ #462 : 11.11.2015, 22:58:27 »
robert, временный код удалили
Вот строки этого временного кода (вроде бы ничего не забыли):
$return[]=$id;
$return[]='IDs to remove: '.implode(',',$contentIds);
if($model){
$return[]='Model exists.';
}
return $return;
--------------
Вот метод delete файла compilationform.php, который имеем сейчас:
Спойлер
[свернуть]
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: Создание папок из фронтенда
« Ответ #463 : 11.11.2015, 23:03:01 »
Нифига себе, вы новичку сразу подсунули FOREIGN KEY? Но выборка вроде осуществляется перед удалением, если я правильно помню.

P.S. Еще и CONSTRAINT.
Я предсказывал эти проблемы. b2z, напишите ей нормально полностью функцию удаления, а то топик грозит побить мой рекорд (помните разработку импорта XML? на 505 постов...)
*

mila_serdnaya

  • Захожу иногда
  • 432
  • 3 / 0
Re: Создание папок из фронтенда
« Ответ #464 : 11.11.2015, 23:03:25 »
Цитировать
Да, выборка идет после удаления

Значит, нам нужно select на первое место поставить?
*

mila_serdnaya

  • Захожу иногда
  • 432
  • 3 / 0
Re: Создание папок из фронтенда
« Ответ #465 : 11.11.2015, 23:24:27 »
Может быть, как-то так?
Цитировать
Код
public function delete($data)
{
// Выбираем ID
$db=JFactory::getDbo();
$query='SELECT content_id
FROM #__chmos_compilations_articles
WHERE compilation_id='.(int)$id;
$db->setQuery($query);
$contentIds=$db->loadColumn();


$id = (!empty($data['id']))? $data['id'] : (int) $this->getState('compilation.id');
if (JFactory::getUser()->authorise('core.delete', 'com_chmos.compilation.'.$id)!== true)
{
throw new Exception(403, JText::_('JERROR_ALERTNOAUTHOR'));
}
$table = $this->getTable();
JModelLegacy::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_content/models', 'ContentModel');
       $model = JModelLegacy::getInstance('Article', 'ContentModel', array('ignore_request' => true));


if ($table->delete($data['id']) === true)
{
$return=array();
$model->delete($contentIds);
}
else
{
return false;
}
}
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Создание папок из фронтенда
« Ответ #466 : 11.11.2015, 23:42:58 »
mila_serdnaya, верните функции delete() старый код, потом добавьте выборку IDs с учетом подсказок. Сейчас у вас не совсем правильно:
- функция при успешном исполнении ничего не возвращает
- переменная $id в запросе нигде не объявлена
Не будь паразитом, сделай что-нибудь самостоятельно!
*

mila_serdnaya

  • Захожу иногда
  • 432
  • 3 / 0
Re: Создание папок из фронтенда
« Ответ #467 : 11.11.2015, 23:50:02 »
robert, возвращаем функции delete() старый код:
Спойлер
[свернуть]

*

mila_serdnaya

  • Захожу иногда
  • 432
  • 3 / 0
Re: Создание папок из фронтенда
« Ответ #468 : 11.11.2015, 23:52:31 »
Цитировать
добавьте выборку IDs с учетом подсказок

Подсказка - это то, что наше обращение к таблице chmos_compilations_articles должно произойти перед тем, как мы удалим сборник?
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Создание папок из фронтенда
« Ответ #469 : 12.11.2015, 00:04:35 »
Да.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

mila_serdnaya

  • Захожу иногда
  • 432
  • 3 / 0
Re: Создание папок из фронтенда
« Ответ #470 : 12.11.2015, 00:36:38 »
robert, пробуем разобраться с кодом.

public function delete($data)
{
$id = (!empty($data['id']))? $data['id'] : (int) $this->getState('compilation.id'); - здесь мы в переменную получаем id удаляемого сборника
if (JFactory::getUser()->authorise('core.delete', 'com_chmos.compilation.'.$id)!== true) -здесь мы говорим, что если пользователь неавторизован...
{
throw new Exception(403, JText::_('JERROR_ALERTNOAUTHOR')); - ...то мы выводим ошибку
}

Затем получаем ID материалов, которые связаны с удаляемым сборником:

$db=JFactory::getDbo();
$query='SELECT content_id
FROM #__chmos_compilations_articles
WHERE compilation_id='.(int)$id;
$db->setQuery($query);
$contentIds=$db->loadColumn();         

...пока правильно?



« Последнее редактирование: 12.11.2015, 00:42:22 от mila_serdnaya »
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Создание папок из фронтенда
« Ответ #471 : 12.11.2015, 00:44:16 »
Да, правильно.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

mila_serdnaya

  • Захожу иногда
  • 432
  • 3 / 0
Re: Создание папок из фронтенда
« Ответ #472 : 12.11.2015, 00:56:50 »
Уже что-то. =)
---------------
После того, как мы получили ID материалов, которые связаны с удаляемым сборником, можно удалять сборник.
Продолжаем код:

$table = $this->getTable(); - в переменную получаем данные из таблицы
if ($table->delete($data['id']) === true) - если таблицу удаляем, то...
{
$return=array(); - ...получаем результат
}

else - если не удаляем
{
return false; - то ничего не возвращаем.
}
*

mila_serdnaya

  • Захожу иногда
  • 432
  • 3 / 0
Re: Создание папок из фронтенда
« Ответ #473 : 12.11.2015, 00:58:57 »
Нам нужно куда-то вставить подключение к модели и само удаление материалов.


*

mila_serdnaya

  • Захожу иногда
  • 432
  • 3 / 0
Re: Создание папок из фронтенда
« Ответ #474 : 12.11.2015, 01:02:20 »
Мы думаем так:
Сначала подключаем модель
JModelLegacy::addIncludePath(JPATH_ADMINISTRATOR.'/components/com_content/models','ContentModel');
$model=JModelLegacy::getInstance('Article','ContentModel',array('ignore_request'=>true));

Потом обращаемся к таблице
$table = $this->getTable();

if ($table->delete($data['id']) === true) - если таблицу удаляем, то...
{
$model->delete($contentIds); - удаляем материалы тоже
$return=array(); - ...получаем результат
}
else - если не удаляем
{
return false; - то ничего не возвращаем.
}

....Правильно мы закончили код? Или опять напартачили со строкой удаления материалов?
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Создание папок из фронтенда
« Ответ #475 : 12.11.2015, 01:07:20 »
Вы вернули не первоначальный код модели. $return=array(); там не должно быть.
в переменную получаем данные из экземпляр объекта таблицы
если таблицу нужный сборник успешно удален удаляем, то...
удаляем и материалы
...получаем результат на самом деле не получали, хотя должны были получить $id
если не удаляем удалось удалить
то ничего не возвращаем ложь.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

mila_serdnaya

  • Захожу иногда
  • 432
  • 3 / 0
Re: Создание папок из фронтенда
« Ответ #476 : 12.11.2015, 01:18:29 »
Прочитали мы то, что Вы нам позачёркивали - улыбнулись.)
Правим код с учётом Ваших замечаний.
----------------
в переменную получаем экземпляр объекта таблицы
$table = $this->getTable();

если  нужный сборник успешно удален, то...
if ($table->delete($data['id']) === true)

{
$model->delete($contentIds);  удаляем и материалы
здесь мы должны получить $id
}
else если не удалось удалить
{
return false; - возвращаем ложь
}
*

mila_serdnaya

  • Захожу иногда
  • 432
  • 3 / 0
Re: Создание папок из фронтенда
« Ответ #477 : 12.11.2015, 01:23:34 »
Не совсем мы понимаем, что эта за переменная $id. Это id удаляемого сборника? Мы же вроде как в самом начале функции её получали:
$id = (!empty($data['id']))? $data['id'] : (int) $this->getState('compilation.id');
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Создание папок из фронтенда
« Ответ #478 : 12.11.2015, 01:25:32 »
Не совсем мы понимаем, что эта за переменная $id.
Ладно,
Код: php-brief
return $id;
В принципе все нормально. Модель ContentModelArticle лучше подключить прямо перед удалением материалов, чтобы не выполнять лишний код в случае неудачи.
Все, я иду спать.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

mila_serdnaya

  • Захожу иногда
  • 432
  • 3 / 0
Re: Создание папок из фронтенда
« Ответ #479 : 12.11.2015, 01:31:07 »
robert, спасибо Вам огромное. За терпение особенно.  
Спокойной Вам ночи и самых-самых хороших снов!
------
А мы сейчас всё подправим и пойдём тестировать. Надеемся, всё получится.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Создание релиза компонента средствами GitHub

Автор SkyAn

Ответов: 4
Просмотров: 1337
Последний ответ 01.11.2019, 17:42:04
от Septdir
[Решено] Создание контент плагина

Автор IvanTopor

Ответов: 4
Просмотров: 1997
Последний ответ 26.02.2016, 13:10:37
от IvanTopor
Создание динамических полей в своем компоненте

Автор NeuroZ

Ответов: 14
Просмотров: 1932
Последний ответ 18.08.2015, 11:17:59
от b2z
Создание таблиц средствами компонента

Автор spirit1086

Ответов: 3
Просмотров: 1667
Последний ответ 18.08.2015, 10:17:09
от spirit1086
Создание изображений PHP и GD

Автор vita1971

Ответов: 6
Просмотров: 1380
Последний ответ 10.05.2015, 13:10:38
от vita1971