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

Damarkuzz

  • Захожу иногда
  • 116
  • 1 / 0
Здравствуйте!
Есть модуль https://www.sakic.net/products/ajax-search/, который представлен формой ajax-поиска, основанного на структуре com_search. Подскажите, как изменить файлы модуля (прикрепляю в спойлеры), чтобы поиск вёлся через com_finder (Умный поиск).

mod_ajaxsearch.php
Код
<?php

defined('_JEXEC') or die;

require_once __DIR__ . '/helper.php';

$lang = JFactory::getLanguage();
$app = JFactory::getApplication();
$config = JFactory::getConfig();
$doc = JFactory::getDocument();

if ($params->get('opensearch', 1))
{
$ostitle = $params->get('opensearch_title', JText::_('MOD_AJAXSEARCH_SEARCHBUTTON_TEXT'). ' ' . $app->getCfg('sitename'));
$doc->addHeadLink(
JUri::getInstance()->toString(array('scheme', 'host', 'port'))
. JRoute::_('&option=com_search&format=opensearch'), 'search', 'rel',
array(
'title' => htmlspecialchars($ostitle),
'type' => 'application/opensearchdescription+xml'
)
);
}

$upper_limit = $lang->getUpperLimitSearchWord();
$lower_limit = $lang->getLowerLimitSearchWord();
$button = $params->get('button', 0);
$button_text = htmlspecialchars($params->get('button_text', JText::_('MOD_AJAXSEARCH_SEARCHBUTTON_TEXT')));
$width = (int) $params->get('width');
$maxlength = $upper_limit;
$text = htmlspecialchars($params->get('text', JText::_('MOD_AJAXSEARCH_SEARCHBOX_TEXT')));
$label = htmlspecialchars($params->get('label', JText::_('MOD_AJAXSEARCH_LABEL_TEXT')));
$max_results = (int) $params->get('max_results', 5);
$moduleclass_sfx = htmlspecialchars($params->get('moduleclass_sfx'));
$pagination_limit = $config->get('list_limit');
$mitemid = 0;
if ($params->get('find_itemid')) {
$mitemid = ModAjaxSearchHelper::getItemid();
}
$include_css = (int) $params->get('include_css', 1);

require JModuleHelper::getLayoutPath('mod_ajaxsearch', $params->get('layout', 'default'));


helper.php
Код
<?php

defined('_JEXEC') or die;

/**
 * Helper for mod_ajaxsearch
 */
class ModAjaxSearchHelper
{
/**
* Find Itemid considering language priority
*/
public static function getItemid()
{
$lang = JFactory::getLanguage();
$lang_tag = $lang->getTag();

$db = JFactory::getDbo();
$query = $db->getQuery(true);

$query->select('id')->from('#__menu')->where('link LIKE '.$db->q('index.php?option=com_search&view=search%').' AND (language='.$db->q($lang_tag).' OR language='.$db->q('*').') AND published=1 ORDER BY language DESC');
$db->setQuery($query);
//die($query);
$Itemid = $db->loadResult();

return $Itemid;
}
}

tmpl/default.php
Код
<?php

defined('_JEXEC') or die;


// Include module's assets
if ($include_css) {
JHtml::_('stylesheet', 'modules/mod_ajaxsearch/assets/css/style.css');
}
JHtml::_('script', 'modules/mod_ajaxsearch/assets/js/script.js');

if ($width)
{
$moduleclass_sfx .= ' ' . 'mod_ajaxsearch' . $module->id;
$css = 'div.mod_ajaxsearch' . $module->id . ' input[type="search"]{ width:auto; }';
$doc->addStyleDeclaration($css);
$width = ' size="' . $width . '"';
} else {
$width = '';
}

$input = $app->input;
if ($input->get('searchword', '', 'string')!='') {
$text = $input->get('searchword', '', 'string');
$text = htmlspecialchars($text, ENT_QUOTES, 'UTF-8');
}

// js settings
$js = '
var asoptions = {
lower_limit: '.$lower_limit.',
max_results: '.$max_results.'
};
var asstrings = {
show_all: "'.JText::_('MOD_AJAXSEARCH_SHOW_ALL').'"
};
';
$doc->addScriptDeclaration($js);

$action_url = 'index.php?option=com_search&view=search';
if ($mitemid) {
$action_url .= '&Itemid='.$mitemid;
}

?>
<div class="ajax-search<?php echo $moduleclass_sfx ?>">
<form id="mod-ajaxsearch-form" action="<?php echo JRoute::_($action_url);?>" method="post" class="form-inline">
<div class="btn-toolbar">
<div class="btn-group pull-left">
<input type="search" name="searchword" id="mod-ajaxsearch-searchword" placeholder="<?php echo $label; ?>"<?php echo $width; ?> maxlength="<?php echo $maxlength; ?>" class="inputbox" value="<?php echo $text; ?>" autocomplete="off" onblur="if (this.value=='') this.value='<?php echo $text; ?>';" onfocus="if (this.value=='<?php echo $text; ?>') this.value='';" />
</div>
<?php if ($button) : ?>
<div class="btn-group pull-left hidden-phone">
<button name="Search" onclick="this.form.submit()" class="btn hasTooltip" title="<?php echo JHtml::tooltipText($button_text);?>"><span class="icon-search"></span></button>
</div>
<?php endif; ?>
<div class="clearfix"></div>
</div>
<div id="mod-ajaxsearch-results-box" class="results-box"></div>
<input type="hidden" name="task" value="search" />
<input type="hidden" name="limit" value="<?php echo $pagination_limit; ?>" />
</form>
</div>

assets/js/script.js
Код
jQuery(document).ready(function($) {
    $('#mod-ajaxsearch-form').on('submit', function(e) {
        e.preventDefault()
    });
    var asxhr;
    $('#mod-ajaxsearch-searchword').on('keyup', function(e) {
        var el = $(this);
        var search_string = el.val();
        if (search_string !== '' && search_string.length >= asoptions.lower_limit) {
            if (asxhr && asxhr.readyState != 4) {
                asxhr.abort()
            }
            asxhr = $.ajax({
                beforeSend: function() {
                    el.addClass('loading')
                },
                url: $('#mod-ajaxsearch-form').attr('action'),
                data: {
                    type: 'raw',
                    option: 'com_search',
                    searchword: search_string,
                    limit: asoptions.max_results,
                    tmpl: 'component'
                },
                cache: false,
                complete: function() {
                    el.removeClass('loading')
                },
                success: function(response) {
                    var container = $('#mod-ajaxsearch-results-box');
                    if ($(response).find('.search-results').html()) {
                        container.html($(response).find('.search-results'));
                        container.append('<div class="mod-ajaxsearch-results-footer"><a href="javascript: void(0);" onclick="document.getElementById(\'mod-ajaxsearch-form\').submit();">' + asstrings.show_all + '</a></div>')
                    } else {
                        container.html('')
                    }
                },
                dataType: 'html'
            })
        } else {
            $('#mod-ajaxsearch-results-box').html('')
        }
        return false
    });
    $(document).on('click', function(e) {
        var container = $('#mod-ajaxsearch-results-box');
        if (!container.is(e.target) && container.has(e.target).length === 0) {
            container.html('')
        }
    })
});
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
assets/js/script.js
Код
option: 'com_search',
на
Код
option: 'com_finder',
Пробовали ?
*

Damarkuzz

  • Захожу иногда
  • 116
  • 1 / 0
assets/js/script.js
Код
option: 'com_search',
на
Код
option: 'com_finder',
Пробовали ?

Здравствуйте, спасибо за ответ. Да, пробовал, при замене на упомянутое поиск ломается.
Ещё в /tmpl/default.php менял:
Код
$action_url = 'index.php?option=com_search&view=search';
на
Код
$action_url = 'index.php?option=com_finder&view=search';


И в  mod_ajaxsearch.php менял
Код
. JRoute::_('&option=com_search&format=opensearch'), 'search', 'rel',
на
Код
. JRoute::_('&option=com_finder&format=opensearch'), 'search', 'rel',

С учетом данных манипуляций ajax-поиск не работает, но если в файлах модуля поменять name и id у ajax-формы на name="q" и id="q" и заменить везде id="mod-ajaxsearch-searchword" на id="q" - то при нажатии на кнопку Enter в форме ajax-поиска, то выполняется поиск через умный поиск после перехода на страницу результатов Умного поиска (с подставкой искомого на предыдущей странице ключа поиска)
« Последнее редактирование: 17.06.2021, 14:07:13 от Damarkuzz »
*

Damarkuzz

  • Захожу иногда
  • 116
  • 1 / 0
В последнем ответе немного ошибся, отредактировал
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Рамка обрамляющая модуль в позиции

Автор alexs64

Ответов: 0
Просмотров: 1077
Последний ответ 21.11.2025, 09:02:57
от alexs64
как из Стиль модуля - none, убрать custom

Автор all_zer

Ответов: 3
Просмотров: 1829
Последний ответ 15.11.2025, 16:20:01
от all_zer
Вывести модуль в модуле

Автор jimka

Ответов: 2
Просмотров: 3174
Последний ответ 18.04.2025, 15:39:36
от fbr
Дублируются дивы у модуля mod_custom

Автор timofe

Ответов: 0
Просмотров: 1216
Последний ответ 07.09.2024, 13:19:48
от timofe
Вывод содержимого модуля mod_custom без html разметки

Автор goga_pgasovav

Ответов: 3
Просмотров: 1816
Последний ответ 07.06.2024, 11:15:50
от goga_pgasovav