Новости Joomla

Метод registerListeners() в CMSPlugin в плагинах планируется удалить в Joomla 7.0

Метод registerListeners() в CMSPlugin в плагинах  планируется удалить в Joomla 7.0

👩‍💻 Метод registerListeners() в CMSPlugin в плагинах планируется удалить в Joomla 7.0.Этот метод регистрирует устаревшие слушатели событий в диспетчере, имитируя работу плагинов Joomla! 3.x и ниже для Joomla 4+. По умолчанию этот метод ищет все общедоступные методы, название которых начинается с on. Он регистрирует лямбда-функции (замыкания), которые пытаются преобразовать аргументы отправленного события в аргументы вызова метода и вызвать ваш метод on<Что-то>. Результат передаётся обратно событию в его аргумент result.Теперь этот слой совместимости с устаревшей Joomla 3 помечен к удалению в Joomla 7.0, которая должна выйти осенью 2027 года. Это означает, что те уникальные расширения от Joomla 2.5 / Joomla 3, которые ещё работали на Joomla 4-6 скорее всего окончательно перестанут работать на Joomla 7. Предполагается, что активные разработчики планомерно и постепенно избавляются от технического долга и обновляют свои расширения. @joomlafeed#joomla #разработка #php

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

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
В шаблонах для движка 1.5 вставка позиции модуля происходит следующим образом
Код: html4strict
<jdoc:include type="modules" name="left" style="xhtml" />
Если с полем name все понятно (имя позиции из списка созданных в XML файле шаблона), то вот с полем style частенько возникают вопросы - что это, зачем и что можно с ним делать.
Разберем сначала вывод хтмл по умолчанию при стиле XHTML - в исходном коде получается следующее
Код: html4strict
<div class="moduletable">
<h3>заголовок модуля</h3>
тело модуля
</div>
А что же нам делать, если хотим чуть усложнить структуру, дабы вписаться в разработанный дизайн либо иное? Все очень просто.
Мы идем в папку шаблона, в ней видим (и если не видим то создаем папку html), в ней находим (а если не находим то создаем файл modules.php). В нем к примеру пишем такую функцию
Код: php
function modChrome_mycustomdiv($module, &$params, &$attribs)
{
$headerLevel = isset($attribs['headerLevel'])? (int) $attribs['headerLevel'] : 3;
if (!empty ($module->content)) : ?>
<div class="mycustomdiv<?php echo $params->get('moduleclass_sfx'); ?>">
<?php if ($module->showtitle) : ?>
<div class="mycustomdivtitle"><h3><?php echo $module->title; ?></h3></div>
<?php endif; ?>
<?php echo $module->content; ?>
</div>
<?php endif;
}
И в шаблоне index.php для style теперь указываем значение mycustomdiv. То есть имя функции обязательно должно начинаться с modChrome_ а то что после подчеркивания нужно использовать в качестве значения style при выводе в шаблоне
Код: html4strict
<jdoc:include type="modules" name="left" style="mycustomdiv" />
В итоге у нас хтмл вывод будет таким
Код: html4strict
<div class="mycustomdiv">
<h3>заголовок модуля</h3>
тело модуля
</div>
По порядку, что мы здесь видим:
$params->get('moduleclass_sfx') - суффикс модуля, заданный в его настройках
$module->showtitle - заголовок модуля и соответственно проверку условия, если в настройках отмечен к показу - то выводим в тегах h3
$module->content - тело модуля, зависит от хелпера модуля либо других вариаций вывода

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

« Последнее редактирование: 07.03.2010, 20:41:29 от beliyadm »
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
можно немного дополнить (расширенное рассмотрение возможностей шаблонизации модуля)
И куда-нибудь присобачить. Будет полезно.
« Последнее редактирование: 09.03.2010, 15:37:37 от beliyadm »
*

sachek

  • Захожу иногда
  • 102
  • 1 / 0
  • Jamal*
В шаблонах для движка 1.5 вставка позиции модуля происходит следующим образом
Код: html4strict
<jdoc:include type="modules" name="left" style="xhtml" />
Если с полем name все понятно (имя позиции из списка созданных в XML файле шаблона), то вот с полем style частенько возникают вопросы - что это, зачем и что можно с ним делать.
Разберем сначала вывод хтмл по умолчанию при стиле XHTML - в исходном коде получается следующее
Код: html4strict
<div class="moduletable">
<h3>заголовок модуля</h3>
тело модуля
</div>
А что же нам делать, если хотим чуть усложнить структуру, дабы вписаться в разработанный дизайн либо иное? Все очень просто.
Мы идем в папку шаблона, в ней видим (и если не видим то создаем папку html), в ней находим (а если не находим то создаем файл modules.php). В нем к примеру пишем такую функцию
Код: php
function modChrome_mycustomdiv($module, &$params, &$attribs)
{
$headerLevel = isset($attribs['headerLevel'])? (int) $attribs['headerLevel'] : 3;
if (!empty ($module->content)) : ?>
<div class="mycustomdiv<?php echo $params->get('moduleclass_sfx'); ?>">
<?php if ($module->showtitle) : ?>
<div class="mycustomdivtitle"><h3><?php echo $module->title; ?></h3></div>
<?php endif; ?>
<?php echo $module->content; ?>
</div>
<?php endif;
}
И в шаблоне index.php для style теперь указываем значение mycustomdiv. То есть имя функции обязательно должно начинаться с modChrome_ а то что после подчеркивания нужно использовать в качестве значения style при выводе в шаблоне
Код: html4strict
<jdoc:include type="modules" name="left" style="mycustomdiv" />
В итоге у нас хтмл вывод будет таким
Код: html4strict
<div class="mycustomdiv">
<h3>заголовок модуля</h3>
тело модуля
</div>
По порядку, что мы здесь видим:
$params->get('moduleclass_sfx') - суффикс модуля, заданный в его настройках
$module->showtitle - заголовок модуля и соответственно проверку условия, если в настройках отмечен к показу - то выводим в тегах h3
$module->content - тело модуля, зависит от хелпера модуля либо других вариаций вывода

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



Все отлично получилось...но хотя бы отображается заголовки модулей.Вот еще бы эти заголовки подогнать под общий дизайн сайта,а то на превью моего шаблона совсем по другому сайт выглядет.Я так понимаю нужно самому уже создавать свой стиль...?
*

lottis

  • Захожу иногда
  • 181
  • 11 / 0
спасибо, очень тема помогла, как раз столкнулся с тем, как изменить стандартные теги вывода заголовка меню - поменял - как теперь красиво стало - любуюсь ;-) +1 вам)
вот так вышло: (заголовок модуля в h3 с стилем caption, моей иконкой)



*

faradej

  • Новичок
  • 3
  • 0 / 0
Подскажите где можно найти список функций для вывода информации в модуль. В Google информацию найти не могу. Думаю это будет актуально и для версии 3+
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Создание новой позиции модуля

Автор Ptalameeya

Ответов: 6
Просмотров: 9181
Последний ответ 01.03.2015, 14:32:36
от Natko23
[howto] Создание новой позиции модулей в Joomla 1.5 .

Автор Blinp

Ответов: 221
Просмотров: 262379
Последний ответ 25.11.2013, 16:17:06
от milk101
[howto] Создание шаблона для Joomla! 1.5

Автор Mitrich

Ответов: 225
Просмотров: 379594
Последний ответ 17.09.2013, 16:00:05
от fred
Повторение стиля боковой колонки для каждого модуля отдельно

Автор ArtTheft

Ответов: 0
Просмотров: 5792
Последний ответ 21.09.2012, 20:04:56
от ArtTheft
Шаблон вывода статей на главной.

Автор ArtTheft

Ответов: 8
Просмотров: 8114
Последний ответ 09.08.2012, 12:19:16
от ArtTheft