Новости Joomla

Вышли релизы Joomla 6.1 и Joomla 5.4.5: новые возможности и стабильность

Релиз Joomla 6.1.0

Проект Joomla! объявил о доступности Joomla 6.1 [Nyota] — новой минорной версии шестой серии, а также о выпуске релиза исправлений ошибок Joomla 5.4.5. Релиз 6.1 приносит ряд долгожданных функций, повышающих удобство управления контентом и защиту от спама.

👩‍💻 Компонент "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

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

hmarno

  • Захожу иногда
  • 84
  • 0 / 1
Здравствуйте! Установил теги на сайт TorTags, при клике на любой тег, открывается стандартный поиск Joomla 2.5, в результатах поиска выводится "Заголовок материала" и "Описание".
Вопрос: Как вывести изображение материала в результатах поиска по тегам? К примеру пусть берет фото из "Изображение для вступительного текста материала".
Если я не ошибаюсь, то нужно править \plugins\search\tortags\tortags.php, но что именно нужно добавить, помогите пожалуйста, я полный ноль в php.

Код
<?php
defined( '_JEXEC' ) or die();
jimport( 'joomla.html.parameter' );
if (!defined('DS')) define('DS',DIRECTORY_SEPARATOR);
class plgSearchTorTags extends JPlugin
{
   
   public function __construct(& $subject, $config)
{
parent::__construct($subject, $config);
$this->loadLanguage();
}

function onContentSearchAreas() {
static $areas = array(
'tortags' => 'PLG_SEARCH_TORTAGS'
);
return $areas;
}

function onContentSearch($text, $phrase='', $ordering='', $areas=null)
{
$text = trim($text);
if ($text == '') {return array();}
$return = array();

$db = JFactory::getDbo();
$app = JFactory::getApplication();
$user = JFactory::getUser();
$limit = $this->params->def('search_limit', 50);
$nav = $this->params->def('nav', 2);
$groups = implode(',', $user->getAuthorisedViewLevels());

if (is_array($areas)) {
if (!array_intersect($areas, array_keys($this->onContentSearchAreas()))) {
return array();
}
}

$db->setQuery('UPDATE `#__tortags_tags` SET `hits`=hits+1 WHERE `title`='.$db->quote($text));
$db->query();

$query = $db->getQuery(true);
$query->select('t.id');
$query->from('#__tortags_tags AS t');
$query->where('(`t`.`published`=1)');
switch ($phrase)
{
case 'exact':
$text = $db->Quote('%'.$db->escape($text, true).'%', false);
$query->where("`t`.`title` LIKE ".$text);
break;

case 'all':
case 'any':
default:
$words = explode(' ', $text);
$wheres = array();
foreach ($words as $word)
{
$word = $db->Quote('%'.$db->escape($word, true).'%', false);
$wheres2 = array();
$wheres2[] = '`t`.`title` LIKE '.$word;
$wheres[] = implode(' OR ', $wheres2);
}
$where = '(' . implode(($phrase == 'all' ? ') AND (' : ') OR ('), $wheres). ')';
$query->where($where);
break;
}

$db->setQuery($query);
$tagids = $db->loadColumn();

if(!sizeof($tagids)) return array();

$ids = implode(',',$tagids);

$query = $db->getQuery(true);
$query->select('m.oid');
$query->from('#__tortags AS m');
$query->where('m.tid IN ('.$ids.')');
$query->group('m.oid');
$db->setQuery($query);
$oids = $db->loadColumn();
if(!sizeof($oids)) return array();

foreach ( $oids as $oid )
{
$query = $db->getQuery(true);
$query->select('m.item_id');
$query->from('#__tortags AS m');
$query->where('m.tid IN ('.$ids.')');
$query->where('m.oid='.$oid);
$db->setQuery($query);
$itemids = $db->loadColumn();
if (sizeof($itemids))
{
$query = $db->getQuery(true);
$query->select('c.*');
$query->from('#__tortags_components AS c');
$query->where('c.id ='.$oid);
$db->setQuery($query);
$param = $db->loadObject();
if ($param->table)
{
if ($param->table!='#__')
{
$query = $db->getQuery(true);
$table = $param->table;
$title = $param->title_field?$param->title_field:'""';
$id_field = $param->id_field?$param->id_field:'id';
$description = $param->description_field?$param->description_field:'""';
$created = $param->created_field?('`t`.`'.$param->created_field.'`'):'""';
$query->select($id_field.' AS `id`');
$query->select($title.' AS `title`');
$query->select($description.' AS `text`');
$query->select($created.' AS `created`');
$query->select('"1" AS browsernav');
if (isset($param->state_field) && isset($param->state_status))
{
if ($param->state_field && $param->state_status)
{
$query->where('`t`.`'.$param->state_field.'`='.$param->state_status);
}
}
if ($param->component=='com_content')
{
$query->select('`catid`');
$query->select('`alias`');
if ($groups) $query->where('`access` IN ('.$groups.')');
$query->select('`alias`');
}else
if ($param->component=='com_marketplace')
{
$query->select('`category_id` AS `catid`');
}else
  if ($param->component=='com_jshopping')
{
$query->select('(SELECT `jpc`.`category_id` FROM `#__jshopping_products_to_categories` AS `jpc` WHERE `jpc`.`product_id`=`t`.`product_id` LIMIT 1) AS `catid`');
}else
if ($param->component=='com_virtuemart')
{
$query->where('(SELECT `vmt`.`published` FROM `#__virtuemart_products` AS `vmt` WHERE `vmt`.`virtuemart_product_id`=`t`.`virtuemart_product_id` LIMIT 1)=1');
$query->select('(SELECT `vmtm`.`created_on` FROM `#__virtuemart_products` AS `vmtm` WHERE `vmtm`.`virtuemart_product_id`=`t`.`virtuemart_product_id` LIMIT 1) AS `created`');
}
else
if ($param->component=='com_form2content')
{
$query->select('`reference_id` AS `id`');
$query->select('`catid`');
$query->select('`alias`');
}
else
if ($param->component=='com_sobipro')
{
$query->leftjoin('`#__sobipro_field_data` AS `sbpd` ON `sbpd`.`sid`=`t`.`id` AND `sbpd`.`fid`=1');
$query->select('`sbpd`.`baseData` AS `title`');
$query->select('`parent` AS `pid`');
$created='created';
}
else $query->select('"" AS `catid`');

switch ($ordering) {
case 'oldest':
$query->order($created.' ASC');
break;
case 'popular':
$query->order($created.' DESC');
break;
case 'alpha':
$query->order($title.' ASC');
break;
case 'newest':
default:
$query->order($created.' DESC');
break;
}

$query->where($id_field.' IN ('.implode(',',$itemids).')');
$query->from($table.' AS `t`');
$db->setQuery($query);

$res = $db->loadObjectList();

if (sizeof($res))
{
foreach ( $res as $r )
{
$a = $b = array();
$a[] = '[COMPONENT]';
$b[] = $param->component;
$a[] = '[ID]';
$b[] = $r->id;

$url= str_replace($a,$b,$param->url_template);
$menu = &JSite::getMenu();
$item = $menu->getItems('link', $url, true);

switch ( $param->component )
{
case 'com_sobipro':
jimport( 'joomla.filter.output' );
$alias = JFilterOutput::stringURLSafe($r->title);
$url.= '&pid='.$r->pid;
$url = str_replace($r->id,$r->id.':'.$alias,$url);
break;
}

$Itemid = JRequest::getInt('Itemid');
if(isset($item))
if(is_object($item)) $Itemid = $item->id;

    if (isset($Itemid)) $url.='&Itemid='.$Itemid;

switch ( $param->component )
{
case 'com_content':
case 'com_form2content':
require_once(JPATH_SITE.DS.'components'.DS.'com_content'.DS.'helpers'.DS.'route.php');
$r->slug = $r->alias ? ($r->id . ':' . $r->alias) : $r->id;
$r->href = ContentHelperRoute::getArticleRoute($r->slug?$r->slug:$r->id,$r->catid);
break;

case 'com_category':
require_once(JPATH_SITE.DS.'components'.DS.'com_content'.DS.'helpers'.DS.'route.php');
$r->href = ContentHelperRoute::getCategoryRoute($r->id);
break;
default:
$r->href = JRoute::_($url);
break;
}
$r->section='';
$r->browsernav=$nav;
$return[]=$r;
}
}
}
}
}

}
//echo '<pre>';print_R($return);echo'</pre>';
return $return;
}
}
?>

Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Настройки поиска в Joomla

Автор bobylev

Ответов: 5
Просмотров: 4861
Последний ответ 29.10.2015, 11:23:07
от Exciter
Проблема с курсором поиска

Автор Alex19946

Ответов: 2
Просмотров: 929
Последний ответ 15.10.2015, 18:24:53
от Alex199466
модуль поиска на сайте - правильная реализация

Автор timotheus

Ответов: 6
Просмотров: 2980
Последний ответ 02.09.2015, 08:29:35
от Stasweb
Картинка в модуле растягивается аналогично своему размеру, а ссылка - нет

Автор Adrian1111

Ответов: 8
Просмотров: 1360
Последний ответ 16.07.2015, 12:09:29
от Adrian1111
Настроить страницу результатов поиска

Автор gamb

Ответов: 0
Просмотров: 1082
Последний ответ 20.04.2015, 20:32:40
от gamb