Новости 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 Пользователей и 3 Гостей просматривают эту тему.
  • 21 Ответов
  • 8709 Просмотров
*

ProtectYourSite

  • Живу я здесь
  • 2368
  • 139 / 4
  • Безопасность вебсайтов
Не знаю, в какой раздел лучше, если что перенесите.
Итак, мое решение проблем с полями Publisher, Image, Даты публикаций/модификаций и непонятного mainEntityOfPage.
На основе шаблона Protostar
Редактируем файл шаблона /html/com_content/article/default.php
В область php где-то после defined('_JEXEC') or die; и перед ?> вставляем код обработки изображений. Внимание! Изображения у меня находятся в самой статье, если у вас не так, то стоит модифицировать в этом направлении.
Сам код:
Код
$myimage=$this->item->introtext;
preg_match_all('/<img[^>]+>/i', $myimage, $result);
preg_match_all('/(src)=("[^"]*")/i',$result[0][0], $img);
$timag=$img[2][0];
if(!empty($timag)){
 $timage=str_replace("\"","",$timag);}
 else
{
  $timage= 'images/logo.png';
}
$timage=JURI::base().$timage;
$size = getimagesize($timage);
Здесь же можно добавить OpenGraph разметку для соцсетей:
Код
$doc = JFactory::getDocument();
$doc->addCustomTag( '
<meta property="og:locale" content="ru_RU">
<meta property="og:type" content="article">
<meta property="og:title" content="'.$this->escape($this->item->title).'">
<meta property="og:site_name" content="Защита сайтов ProtectYourSite">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@Protect_Site">
<meta name="twitter:creator" content="@Protect_Site">
<meta property="og:url" content="'.JURI::current().'">
<meta property="og:description" content="'.$doc->getDescription().'">
<meta property="og:image" content="'.$timage.'">
');
Необходимые поля надо заменить на свои значения.
Дальше ищем, где у нас объявлен блок микроразметки  itemtype="http://schema.org/Article"
Я вставлял после
Код
	<meta itemprop="inLanguage" content="<?php echo ($this->item->language === '*')? JFactory::getConfig()->get('language') : $this->item->language; ?>" />
И вставляем после следующие блоки
Код
	<meta itemscope itemprop="mainEntityOfPage"  itemtype="https://schema.org/WebPage" itemid="<?php echo JURI::current(); ?>"/>
<meta itemprop="dateModified" content="<?php echo $this->item->modified; ?>">
              <meta itemprop="datePublished" content="<?php echo $this->item->publish_up; ?>">
<span style="display:none;" itemprop="image" itemscope itemtype="https://schema.org/ImageObject">
<img itemprop="url" src="<?php echo $timage;?>">
<meta itemprop="image" content="<?php echo $timage;?>">
<meta itemprop="width" content="<?php echo $size[0];?>">
<meta itemprop="height" content="<?php echo $size[1];?>">
</span>
<span itemprop="publisher" itemscope itemtype="https://schema.org/Organization">
<meta itemprop="name" content="Защита сайтов ProtectYourSite">
    <span itemprop="logo" itemscope itemtype="https://schema.org/ImageObject">
        <img itemprop="url" src="https://protectyoursite.ru/images/logo.png" style="display:none;"/>
        <meta itemprop="image" content="https://protectyoursite.ru/images/logo.png">
        <meta itemprop="width" content="141">
        <meta itemprop="height" content="160">
    </span>
</span>
Аналогично заменяя на свои значения в нужных местах. После этого сохраняем, очищаем кеш и смотрим полученный результат. Если всё правильно, то мы должны успешно проходить валидацию микроразметки

Стал проверять микроразметку по блогу, в итоге вылезло:
Необходимо указать значение для поля headline.
Необходимо указать значение для поля image.
Необходимо указать значение для поля publisher.

Рекомендуется заполнять поле mainEntityOfPage. Укажите значение, если оно известно.

Решил я это всё на основании того же стандартного шаблона и последней Joomla так:
Создаем в папке шаблона файл /html/layouts/joomla/content/blog_style_default_item_title.php и вставляем туда следующий код:

Код
<?php
/**
 * @package     Joomla.Site
 * @subpackage  Layout
 *
 * [member=126442]copyright[/member]   Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

defined('JPATH_BASE') or die;

// Create a shortcut for params.
$params = $displayData->params;
$canEdit = $displayData->params->get('access-edit');
JHtml::addIncludePath(JPATH_COMPONENT.'/helpers/html');
$myimage=$displayData->introtext;
preg_match_all('/<img[^>]+>/i', $myimage, $result);
preg_match_all('/(alt|title|src)=("[^"]*")/i',$result[0][0], $img);
$timag=$img[2][1];
if(!empty($timag)){
 $timage=str_replace("\"","",$timag);}
 else
{
  $timage= 'images/logo.png';
}
$timage=JURI::base().$timage;
$size = getimagesize($timage);
?>

<?php if ($params->get('show_title') || $displayData->state == 0 || ($params->get('show_author') && !empty($displayData->author ))) : ?>
<div class="page-header">
<meta itemscope itemprop="mainEntityOfPage"  itemtype="https://schema.org/WebPage" itemid="<?php echo JRoute::_(
ContentHelperRoute::getArticleRoute($displayData->slug, $displayData->catid, $displayData->language)
); ?>"/>
<span style="display:none;" itemprop="image" itemscope itemtype="https://schema.org/ImageObject">
<img itemprop="url" src="<?php echo $timage;?>">
<meta itemprop="image" content="<?php echo $timage;?>">
<meta itemprop="width" content="<?php echo $size[0];?>">
<meta itemprop="height" content="<?php echo $size[1];?>">
</span>
<span itemprop="publisher" itemscope itemtype="https://schema.org/Organization">
<meta itemprop="name" content="Защита сайтов ProtectYourSite">
    <span itemprop="logo" itemscope itemtype="https://schema.org/ImageObject">
        <img itemprop="url" src="https://protectyoursite.ru/images/logo.png" style="display:none;"/>
        <meta itemprop="image" content="https://protectyoursite.ru/images/logo.png">
        <meta itemprop="width" content="141">
        <meta itemprop="height" content="160">
    </span>
</span>
<?php if ($params->get('show_title')) : ?>
<h2 itemprop="headline">
<?php if ($params->get('link_titles') && ($params->get('access-view') || $params->get('show_noauth', '0') == '1')) : ?>
<a href="<?php echo JRoute::_(
ContentHelperRoute::getArticleRoute($displayData->slug, $displayData->catid, $displayData->language)
); ?>" itemprop="url">
<?php echo $this->escape($displayData->title); ?>
</a>
<?php else : ?>
<?php echo $this->escape($displayData->title); ?>
<?php endif; ?>
</h2>
<?php endif; ?>

<?php if ($displayData->state == 0) : ?>
<span class="label label-warning"><?php echo JText::_('JUNPUBLISHED'); ?></span>
<?php endif; ?>

<?php if (strtotime($displayData->publish_up) > strtotime(JFactory::getDate())) : ?>
<span class="label label-warning"><?php echo JText::_('JNOTPUBLISHEDYET'); ?></span>
<?php endif; ?>

<?php if ((strtotime($displayData->publish_down) < strtotime(JFactory::getDate()))
&& $displayData->publish_down != JFactory::getDbo()->getNullDate()) : ?>
<span class="label label-warning"><?php echo JText::_('JEXPIRED'); ?></span>
<?php endif; ?>
</div>
<?php endif; ?>

Заменив логотип на своё значение.
После этих манипуляций блог стал проходить проверку микроразметки

Если есть комментарии по разметке, пишите)
« Последнее редактирование: 05.08.2018, 21:58:01 от ProtectYourSite »
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Это чё за комбаин? Фреймворком у продвинутых мастеров ныне пользоваться не в моде?
*

ChaosHead

  • Гуру
  • 5242
  • 451 / 13
Спасибо, полезно на самом деле, т.к. у Joomla уже неправильная разметка, после того как Google ввёл новые изменения.
Кстати говоря больше всего бесит, что картинки теперь требуется размечать так:

Цитировать
<span style=display:none; itemprop=image itemscope itemtype=https://schema.org/ImageObject>
<img itemprop=url src=https://yoursite.ru/images/news/Google_recaptcha_exploit.jpg>
<meta itemprop=image content=https://yoursite.ru/images/news/Google_recaptcha_exploit.jpg>

я не понимаю кому это нужно...

Кстати аккуратнее с display:none в разметке, можно схлопотать санкции - она перестанет отображаться для сайта и таких примеров не мало.
*

Missile

  • Завсегдатай
  • 1116
  • 90 / 1
Я после тщетных попыток угодить и Яндексу, и Гуглю просто забила на это дело.
Мне кажется. вебмастерам пора устраивать акции сопротивления, потому что веб идёт куда-то не туда. Если бы, к примеру, все разом отказались от микроразметки, то в мозгу у поисковиков (точнее, у тех, кто за ними стоит) наверняка бы что-то щёлкнуло.
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Ну я немного попарился и сделал и для Яндекс и для Google.  
Насчёт дисплей ноне.  Я просто сделал класс со стилем.
Display block
Width 0
Height 0
Font-size 0
Line-height 0
Overflow hidden
Да и все.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

Vasiliy111

  • Захожу иногда
  • 248
  • 5 / 0
А если шаблон используется beez-3. В этом шаблоне нет папки content. Куда в этом случае сбрасывать blog_style_default_item_title.php?

Я уже и в корень папки Joomla ложил, и создавал отдельную папку content - ничего не меняется
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Создаем в папке шаблона файл /html/layouts/joomla/content/blog_style_default_item_title.php
Папка HTML есть в шаблоне, если нет- создайте
*

Vasiliy111

  • Захожу иногда
  • 248
  • 5 / 0
В шаблоне по указанному пути есть: /html/layouts/joomla/system/message.php

Я ж говорю сбрасывал и в папку Joomla и в ней создавал папку content никаких изменений
*

ProtectYourSite

  • Живу я здесь
  • 2368
  • 139 / 4
  • Безопасность вебсайтов
автора выставлено показывать в настройках материалов?
*

Vasiliy111

  • Захожу иногда
  • 248
  • 5 / 0
Да, автор есть.

Еще интересный момент, добавляю в /html/com_content/article/default.php код:
 
Цитировать
$myimage=$this->item->introtext;
preg_match_all('/<img[^>]+>/i', $myimage, $result);
preg_match_all('/(alt|title|src)=("[^"]*")/i',$result[0][0], $img);
$timag=$img[2][1];
if(!empty($timag)){
 $timage=str_replace("\"","",$timag);}
 else
{
  $timage= 'images/logo.png';
}
$timage=JURI::base().$timage;
$size = getimagesize($timage);

Вылазит ошибка
Warning: getimagesize(http://moy-sayt/kak vyrastit arbuz na balkone): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /templates/beez3/html/com_content/article/default.php on line 24

в строке 24 такой код:
$size = getimagesize($timage);




Причем на хостинге все изображения проименовыны через дефиз, т.е. kak-vyrastit-arbuz-na-balkone.jpg

В исходном коде страницы такая же ерунда
Цитировать
<span style="display:none;" itemprop="image" itemscope itemtype="https://schema.org/ImageObject">
<img itemprop="url" src="http://moy-sayt/kak vyrastit arbuz na balkone">
<meta itemprop="image" content="http://moy-sayt/kak vyrastit arbuz na balkone">
<meta itemprop="width" content="">
<meta itemprop="height" content="">
</span>
« Последнее редактирование: 31.07.2018, 21:14:25 от Vasiliy111 »
*

Mehanick

  • Давно я тут
  • 846
  • 5 / 0
в к2 уже включена вся разметка
*

Vasiliy111

  • Захожу иногда
  • 248
  • 5 / 0
Если установить данный код под строкой <meta itemprop="inLanguage" content=

Код
<meta itemscope itemprop="mainEntityOfPage"  itemtype="https://schema.org/WebPage" itemid="<?php echo JURI::current(); ?>"/>
<meta itemprop="dateModified" content="<?php echo $this->item->modified; ?>">
              <meta itemprop="datePublished" content="<?php echo $this->item->publish_up; ?>">
<span style="display:none;" itemprop="image" itemscope itemtype="https://schema.org/ImageObject">
<img itemprop="url" src="<?php echo $timage;?>">
<meta itemprop="image" content="<?php echo $timage;?>">
<meta itemprop="width" content="<?php echo $size[0];?>">
<meta itemprop="height" content="<?php echo $size[1];?>">
</span>
<span itemprop="publisher" itemscope itemtype="https://schema.org/Organization">
<meta itemprop="name" content="Защита сайтов ProtectYourSite">
    <span itemprop="logo" itemscope itemtype="https://schema.org/ImageObject">
        <img itemprop="url" src="https://protectyoursite.ru/images/logo.png" style="display:none;"/>
        <meta itemprop="image" content="https://protectyoursite.ru/images/logo.png">
        <meta itemprop="width" content="141">
        <meta itemprop="height" content="160">
    </span>
</span>

Валидатор микроразметки не ругается (ошибок нет) но считаю что в моем случае это условие не совсем правильно:

Код
<img itemprop="url" src="<?php echo $timage;?>">
<meta itemprop="image" content="<?php echo $timage;?>">
<meta itemprop="width" content="<?php echo $size[0];?>">
<meta itemprop="height" content="<?php echo $size[1];?>">

Так как в исходном коде в строках:

<img itemprop="url" - "отображается ссылка на главную страницу"
<meta itemprop="image" - пусто
<meta itemprop="width" - пусто
<meta itemprop="height" - пусто

Помогите решить проблему. Думаю решение уже совсем близко.
*

ProtectYourSite

  • Живу я здесь
  • 2368
  • 139 / 4
  • Безопасность вебсайтов
А картинки есть в материале ? Они в тексте материала прописаны ? И лучше привести полный код файла.
*

Vasiliy111

  • Захожу иногда
  • 248
  • 5 / 0
Да картинки в материале (статье) есть и не одна. Выводятся обычным способом <img src="" alt="" " title="" />

А какой именно код файла нужен default.php?
*

ProtectYourSite

  • Живу я здесь
  • 2368
  • 139 / 4
  • Безопасность вебсайтов
Где вставляли микроразметку
*

Vasiliy111

  • Захожу иногда
  • 248
  • 5 / 0
Правил шаблон/html/com_content/article/default.php

Спойлер
[свернуть]

С данным кодом в исходном файле страницы имею:

Код
<span style="display:none;" itemprop="image" itemscope itemtype="https://schema.org/ImageObject">
<img itemprop="url" src="/">
<meta itemprop="image" content="">
<meta itemprop="width" content="">
<meta itemprop="height" content="">
</span>
*

ProtectYourSite

  • Живу я здесь
  • 2368
  • 139 / 4
  • Безопасность вебсайтов
Так надо допиливать блок с изображением, которое у вас выдавало ошибку. Пробуйте после:
Код
preg_match_all('/<img[^>]+>/i', $myimage, $result); 
preg_match_all('/(alt|title|src)=("[^"]*")/i',$result[0][0], $img);
добавить
Код
var_dump($result);var_dump($img);die();
и смотреть, что приходит
*

Vasiliy111

  • Захожу иногда
  • 248
  • 5 / 0
Нееее, так вообще белый экран и отблик изображения

Код
array(1) { [0]=> array(1) { [0]=> string(295) "


*

Vasiliy111

  • Захожу иногда
  • 248
  • 5 / 0
Спасибо ProtectYourSite за помощь с микроразметкой. Всем у кого будут проблемы обращайтесь к нему.
*

kern.USR

  • Давно я тут
  • 827
  • 68 / 1
Всем у кого будут проблемы обращайтесь к нему.
Звучит, как проклятие  :dry:
*

Vasiliy111

  • Захожу иногда
  • 248
  • 5 / 0
А что у Google изменились какие то требования? Обнаружил что появилось две ошибки (раньше не было). На сайте изменений ни каких не происходило.

1.BreadcrumbList (хлебные крошки) - item   Необходимо указать значение для поля item.

2. Article - Атрибут logo.height имеет недопустимое значение.



*

ProtectYourSite

  • Живу я здесь
  • 2368
  • 139 / 4
  • Безопасность вебсайтов
Та же фигня, баг зафиксировали и обещали исправить.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Архив статей – в чём суть?

Автор Gerostrat

Ответов: 3
Просмотров: 1097
Последний ответ 14.03.2024, 21:03:48
от sivers
Перестал работать просмотр блога категории

Автор selmax

Ответов: 1
Просмотров: 938
Последний ответ 01.12.2022, 21:41:07
от NewUsers
Массовый импорт статей из Excel в Joomla

Автор koskanalya

Ответов: 1
Просмотров: 1101
Последний ответ 05.11.2022, 14:15:34
от antony2606
Как получить ссылку на материал для использования в макете блога?

Автор Chigolberi

Ответов: 19
Просмотров: 6221
Последний ответ 10.06.2022, 00:27:40
от Леон
Навигация внутри &quot;Блога категории&quot;

Автор RomanA

Ответов: 8
Просмотров: 795
Последний ответ 12.04.2022, 15:46:01
от marksetter