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

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Тема такая что мне часто приходится делать шаблоны под Joomla. К счастью почти все модули написаны по канонам Joomla, и их можно перешаблонизировать в папке html/module_name/layout_name.php

Однако иногда нужно для разных экземпляров модуля иметь разный layout. Такая проблема часто возникает с mod_mainmenu и mod_newsflash.
Решение достаточно простое - добавлять к модулям параметр выбора шаблона. делается это очень просто:

1)добавляем в манифест (xml-файл модуля) новый параметр:
Код: xml
<param name="layout" type="modulelayout" module="mod_имя_модуля" label="Layout" description="Select layout" />
Типа modulelayout Joomla не знает, поэтому мы его создадим сами.
2)добавляем атрибут addpath элементу params:
Код: xml
<params addpath="/modules/mod_имя_модуля/elements">
Таким образом мы указываем что неизвестные типы параметров надо искать в данной папке
3)создаем /modules/mod_имя_модуля/elements/modulelayout.php . Вставляем туда следующий код:
[spoiler title="modulelayout.php"]
Код: php
<?php

// no direct access
defined('_JEXEC') or die('Restricted access');
jimport('joomla.filesystem.folder');
jimport('joomla.filesystem.file');

class JElementModuleLayout extends JElement
{
var $_name = 'ModuleLayout';

function fetchElement($name, $value, &$node, $control_name)
{
global $mainframe;
$db =& JFactory::getDBO();

// get current template
$query = 'SELECT template'
.' FROM #__templates_menu'
.' WHERE client_id = 0'
.' AND menuid = 0'
;
$db->setQuery( $query );
$template = $db->loadResult();
$module = $node->attributes('module');

// If a template, extension and view are present build the options.
if ($template && $module) {

// Build the search paths for layouts.
$bPath = JPath::clean(JPATH_SITE.DS.'modules'.DS.$module.DS.'tmpl');
$tPath = JPath::clean(JPATH_SITE.DS.'templates'.DS.$template.DS.'html'.DS.$module);

// Add the default option.
$options[] = JHTML::_('select.option', '', JText::_('Default'));

// Add the layout options from the first path.
if (is_dir($bPath) && ($files = JFolder::files($bPath, '^[^_]*\.php$'))) {
$options[] = JHTML::_('select.option',  '<OPTGROUP>', JText::_( 'Module' ) );
foreach ($files as $file) {
$options[] = JHTML::_('select.option', JFile::stripExt($file));
}
//$options[] = JHTML::_('select.option',  '</OPTGROUP>' );
}

// Add the layout options from the second path.
if (is_dir($tPath) && ($files = JFolder::files($tPath, '^[^_]*\.php$'))) {
$options[] = JHTML::_('select.option',  '<OPTGROUP>', JText::_( 'Template' ) );
foreach ($files as $file) {
$options[] = JHTML::_('select.option', JFile::stripExt($file));
}
//$options[] = JHTML::_('select.option',  '</OPTGROUP>' );
}
return JHTML::_('select.genericlist', $options, $control_name.'['.$name.']', null, 'value', 'text', $value);
}

}
}
[/spoiler]
Мы создали новый тип параметра, который генерирует список найденных layout'ов в папке модуля и шаблона.
4)Меняем в mod_имя_модуля.php вызов layout'а на следующий:
Код: php
require( JModuleHelper::getLayoutPath('mod_имя_модуля', $params->get('layout', 'default')) );


К счастью в Joomla 1.6 тип modulelayout уже содержится в библиотеке, и все стандартные модули имеют этот параметр слава тапочкам.
Ну а пока мы живем с j 1.5 прошу разработчиков проделать эти нехитрые 4 шага чтобы помочь бедным верстальшикам обуздать ваши модули )
« Последнее редактирование: 12.09.2010, 20:16:21 от danik.html »
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Сделал маленькую правку благодаря которой layout'ы в списке разделяются на те что из модуля (родные) и те что из шаблона.
Если в шаблоне layout перекрыт, то не имеет значения какой из них выбрать в списке...
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
То ли я туплю, то ли не пойму практического применения, поясните?
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Практическое применение в основном разработчикам шаблонов - к одному модулю можно создать несколько layout'ов, которые будут доступны для выбора в параметрах модуля.

Неоднократно сталкивался с такой задачей, и очень обрадовался когда ковырялся в Joomla 1.6 beta и увидел решение данной проблемы.

Так же плюс в том что юзеры модуля могут создавать свои layout'ы, и делиться ими друг с другом. Другими словами это добавляет возможность расширять модуль сторонними лицами, и отображать модуль в разных вариантах.

К примеру: в планах сделать модуль меню, и наделать layout'ов, скажем аккордион, выпадающий список и тп, что избавит пользователей от установки кучи модулей меню...
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
более близкий пример тебе, beliyadm - mod_virtuemart_universal. Скажем у нас два экземпляра модуля, и оба они должны выглядеть по-разному, причем CSS задачу не решит. Вот тут и приходит на помошь параметр modulelayout )
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Все, понял смысл, чегой то затупил :)
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Roberta

  • Захожу иногда
  • 182
  • 0 / 0
Тема такая что мне часто приходится делать шаблоны под Joomla. К счастью почти все модули написаны по канонам Joomla, и их можно перешаблонизировать в папке html/module_name/layout_name.php

Однако иногда нужно для разных экземпляров модуля иметь разный layout. Такая проблема часто возникает с mod_mainmenu и mod_newsflash.
Решение достаточно простое - добавлять к модулям параметр выбора шаблона. делается это очень просто:

1)добавляем в манифест (xml-файл модуля) новый параметр:
Код: xml
<param name="layout" type="modulelayout" module="mod_имя_модуля" label="Layout" description="Select layout" />
Типа modulelayout Joomla не знает, поэтому мы его создадим сами.
2)добавляем атрибут addpath элементу params:
Код: xml
<params addpath="/modules/mod_имя_модуля/elements">
Таким образом мы указываем что неизвестные типы параметров надо искать в данной папке
3)создаем /modules/mod_имя_модуля/elements/modulelayout.php . Вставляем туда следующий код:
[spoiler title="modulelayout.php"]
Код: php
<?php

// no direct access
defined('_JEXEC') or die('Restricted access');
jimport('joomla.filesystem.folder');
jimport('joomla.filesystem.file');

class JElementModuleLayout extends JElement
{
var $_name = 'ModuleLayout';

function fetchElement($name, $value, &$node, $control_name)
{
global $mainframe;
$db =& JFactory::getDBO();

// get current template
$query = 'SELECT template'
.' FROM #__templates_menu'
.' WHERE client_id = 0'
.' AND menuid = 0'
;
$db->setQuery( $query );
$template = $db->loadResult();
$module = $node->attributes('module');

// If a template, extension and view are present build the options.
if ($template && $module) {

// Build the search paths for layouts.
$bPath = JPath::clean(JPATH_SITE.DS.'modules'.DS.$module.DS.'tmpl');
$tPath = JPath::clean(JPATH_SITE.DS.'templates'.DS.$template.DS.'html'.DS.$module);

// Add the default option.
$options[] = JHTML::_('select.option', '', JText::_('Default'));

// Add the layout options from the first path.
if (is_dir($bPath) && ($files = JFolder::files($bPath, '^[^_]*\.php$'))) {
$options[] = JHTML::_('select.option',  '<OPTGROUP>', JText::_( 'Module' ) );
foreach ($files as $file) {
$options[] = JHTML::_('select.option', JFile::stripExt($file));
}
//$options[] = JHTML::_('select.option',  '</OPTGROUP>' );
}

// Add the layout options from the second path.
if (is_dir($tPath) && ($files = JFolder::files($tPath, '^[^_]*\.php$'))) {
$options[] = JHTML::_('select.option',  '<OPTGROUP>', JText::_( 'Template' ) );
foreach ($files as $file) {
$options[] = JHTML::_('select.option', JFile::stripExt($file));
}
//$options[] = JHTML::_('select.option',  '</OPTGROUP>' );
}
return JHTML::_('select.genericlist', $options, $control_name.'['.$name.']', null, 'value', 'text', $value);
}

}
}
[/spoiler]
Мы создали новый тип параметра, который генерирует список найденных layout'ов в папке модуля и шаблона.
4)Меняем в mod_имя_модуля.php вызов layout'а на следующий:
Код: php
require( JModuleHelper::getLayoutPath('mod_имя_модуля', $params->get('layout', 'default')) );


К счастью в Joomla 1.6 тип modulelayout уже содержится в библиотеке, и все стандартные модули имеют этот параметр слава тапочкам.
Ну а пока мы живем с j 1.5 прошу разработчиков проделать эти нехитрые 4 шага чтобы помочь бедным верстальшикам обуздать ваши модули )

сделала все вышесказанное с XML файлом.
но в php файле модуля уже прописан вызов layout'a следующим образом

$layout = $params->get('layout','default');
$layout = JFilterInput::clean($layout, 'word');
$path = JModuleHelper::getLayoutPath('mod_hbooking', $layout);
if (file_exists($path)) {
   require($path);
}

результат: дополнительный layout из админки не виден, только default

что делать??
« Последнее редактирование: 18.12.2010, 23:12:34 от Roberta »
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Случайно набрел на эту тему. Задумка действительно неплохая, тем более, что многие еще на 1.5 сидят. Но посмотрев код возникло 2 вопроса:

1. Почему layout'ы ищутся только в текущем шаблоне? А если у пользователя 5 шаблонов и в них разный набор layout'ов?
2. Почему при формировании списка закомментированы строки </OPTGROUP>

Может быть есть более свежий элемент? Просто я как раз переписывал модули для JComments под 1.7 и 1.5, и в случае с 1.7 выбор layout'а есть, а в 1.5 пока нет. Я готов добавить, но нужно какое-то более универсальное решение.
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Хм, подумал, подумал и решил чуток улучшить элемент:
[spoiler title=JElementModuleLayout]
Код: php
<?php
 
defined('_JEXEC') or die('Restricted access');

jimport('joomla.filesystem.folder');
jimport('joomla.filesystem.file');
 
class JElementModuleLayout extends JElement
{
var $_name = 'ModuleLayout';
 
function fetchElement($name, $value, &$node, $control_name)
{
$module = $node->attributes('module');
$clientId = ($v = $node->attributes('client_id'))? $v : 0;

global $mainframe;
$db =& JFactory::getDBO();
 
$query = 'SELECT template'
.' FROM #__templates_menu'
.' WHERE client_id = ' . $clientId
;

$db->setQuery( $query );
$templates = $db->loadResultArray();

$options = array();
$options[] = JHTML::_('select.option', '', JText::_('Default'));

if ($module) {
$moduleFolder = JPath::clean(JPATH_SITE . DS . 'modules' . DS . $module . DS . 'tmpl');

if (is_dir($moduleFolder) && ($files = JFolder::files($moduleFolder, '^[^_]*\.php$'))) {
$options[] = JHTML::_('select.option', '<OPTGROUP>', JText::_('Module'));
foreach ($files as $file) {
$options[] = JHTML::_('select.option', JFile::stripExt($file));
}
$options[] = JHTML::_('select.option', '</OPTGROUP>');
}
}

if ($templates) {
foreach ($templates as $template) {
$templateFolder = JPath::clean(JPATH_SITE . DS . 'templates' . DS . $template . DS . 'html' . DS . $module);

if (is_dir($templateFolder) && ($files = JFolder::files($templateFolder, '^[^_]*\.php$'))) {
$options[] = JHTML::_('select.option', '<OPTGROUP>', JText::_('Template'). ' ' . $template);
foreach ($files as $file) {
$options[] = JHTML::_('select.option', JFile::stripExt($file));
}
$options[] = JHTML::_('select.option', '</OPTGROUP>');
}
}
}
 
return JHTML::_('select.genericlist', $options, $control_name.'['.$name.']', null, 'value', 'text', $value);
}
}
[/spoiler]
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вставка кода вызова модуля в тело шаблона другого модуля

Автор Dorfman

Ответов: 15
Просмотров: 3090
Последний ответ 19.11.2018, 21:45:54
от beliyadm
Как создать дополнительный параметр(по типу published) для элемента списка?

Автор borro

Ответов: 4
Просмотров: 1738
Последний ответ 08.02.2018, 17:03:11
от borro
Нужна помощь в доработке модуля под Joomla 3

Автор kik84

Ответов: 5
Просмотров: 3256
Последний ответ 30.01.2018, 22:40:30
от Елeна
Модификация модуля lastet_news вывод времени перед заголовком

Автор Morphiss

Ответов: 9
Просмотров: 2928
Последний ответ 19.04.2016, 12:41:55
от spsyper
Создание платного модуля

Автор fiter

Ответов: 7
Просмотров: 2208
Последний ответ 04.08.2014, 18:27:05
от neo85r