Новости Joomla

Новый способ добавления и рендера полей в Joomla Form - метод renderControlFields() (Joomla 5.3+)

Новый способ добавления и рендера полей в Joomla Form - метод renderControlFields() (Joomla 5.3+)

Новый способ добавления и рендера полей в Joomla Form - метод renderControlFields() (Joomla 5.3+). При отображении форм компонента в админке раньше разработчикам нужно было описывать скрытые поля в лейаутах. И выглядело это так:

<?php     // Это файл в /layouts/components/com_component/your_layout.php?><input type="hidden" name="task" value=""><input type="hidden" name="return" value="<?php echo $input->getBase64('return'); ?>"><input type="hidden" name="forcedLanguage" value="<?php echo $input->get('forcedLanguage', '', 'cmd'); ?>"><?php echo HTMLHelper::_('form.token'); ?>
Начиная с Joomla 5.3 добавлен новый способ добавления таких полей (их называют control fields) - программно. И теперь это можно сделать просто в Controller / View.
// В Controller/View добавляем поля$this->form  ->addControlField('task', '')  ->addControlField('return', $input->getBase64('return', ''))  ->addControlField('forcedLanguage', $forcedLanguage);
А в layout'е просто используем метод
renderControlFields()
// В layout формыecho $this->form->renderControlFields();
Многие компоненты ядра уже используют этот подход. Соответствующий PR был принят в Joomla 5.3 осенью 2024г.Смотреть
Pull Request@joomlafeed#joomla #разработка #php

JoomGallery 4.1.0 - компонент галереи изображений для Joomla

JoomGallery 4.1.0 - компонент галереи изображений для Joomla

Новая итерация компонента продолжает развиваться, ведь с v.4.x компонент был переписан практически с нуля.

v.4.1.0. Что нового?

Редактирование метаданных изображений. Теперь метаданные можно не только читать, но и напрямую редактировать и записывать обратно в изображение JPG. Поддерживаются данные EXIF ​​и IPTC.

Полная совместимость с Joomla! 4.x, 5.x и 6.x. Компонент почистили от устаревших методов в коде.

Заметно ускорили загрузку больших галерей. Списки в админке, особенно для очень больших галерей ( >30 000 изображений), теперь загружаются значительно быстрее.

Несколько сеток lightGallery на одной странице. Будь то плагины контента или модули изображений: теперь вы можете отображать несколько галерей или категорий на одной странице без каких-либо ограничений.

Множество мелких исправлений ошибок и оптимизаций.

Сайт проекта

GitHub расширения

Скачать

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

Tokyo

  • Захожу иногда
  • 87
  • 5 / 0
Как при помощи php вывести модуль в стороннем компоненте? хочу в компонент один вставить созданный mod_custom с инфой в одном месте
*

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
Re: Вывести модуль при помощи php
« Ответ #1 : 21.04.2011, 13:29:58 »
Примерно так попробуй:
Код
$item_mod = <тут ID модуля, из менеджера модулей>;

if ($item_mod) {
$modules =& JModuleHelper::_load();
$total = count($modules);

if ($total) {
for($i = 0; $i < $total; $i++) {
if($modules[$i]->id == $item_mod) {
$cur_mod =& $modules[$i];
break;
}
}
if (isset($cur_mod)) {
$document = &JFactory::getDocument();
$renderer = $document->loadRenderer('module');
echo $renderer->render($cur_mod, $cur_mod->params);
}
}
unset($cur_mod);
}

вместо ID модуля можно использовать позицию для модулей, типа 'my-component', для этого:
вместо
Цитировать
$item_mod = <тут ID модуля, из менеджера модулей>;
пишем имя позиции модулей.
+
вместо
Цитировать
         if($modules[$i]->id == $item_mod) {
делаем:
Цитировать
         if($modules[$i]->position == $item_mod) {
*

Tokyo

  • Захожу иногда
  • 87
  • 5 / 0
Re: Вывести модуль при помощи php
« Ответ #2 : 21.04.2011, 13:41:28 »
работает! спасибо. можно еще 1 вопрос? :

он выводит содерживое модуля, а как выводить и название? я там понял надо какой-то еще параметр указать?

вот в случае шаблона <jdoc:include type="modules" name="right" style="table" /> мне нравилось что в файле в папке шаблона html/modules.php можно было прописать индивидуальный стиль table

Код
function modChrome_table($module, &$params, &$attribs)
{
}

а где в ваше коде вставить этот table?
*

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
Re: Вывести модуль при помощи php
« Ответ #3 : 21.04.2011, 14:35:22 »
обрамляй "echo $renderer->render($cur_mod, $cur_mod->params);" вокруг - это и есть мм.м... тело модуля
*

Tokyo

  • Захожу иногда
  • 87
  • 5 / 0
Re: Вывести модуль при помощи php
« Ответ #4 : 22.04.2011, 00:27:39 »
так этот способ заголовок почему-то не выводит
*

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
Re: Вывести модуль при помощи php
« Ответ #5 : 22.04.2011, 14:02:20 »
потому-что заголовок выводит шаблон сайта.

здесь тебе ручками надо будет обрамлять как я и написал:
Цитировать
echo $renderer->render($cur_mod, $cur_mod->params);
заменить на
Код
?>
<table cellpadding="0" cellspacing="0" class="moduletable">
<tr>
<th valign="top">
<?php echo $cur_mod->title; ?>
</th>
</tr>
<tr>
<td>
<?php
echo $renderer->render($cur_mod, $cur_mod->params);
?>
</td>
</tr>
</table>
<?php
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Модуль отправки e-mail сообщений

Автор zt.Dan4ik

Ответов: 6
Просмотров: 4201
Последний ответ 05.02.2014, 10:12:45
от svetka_777
Модуль КУРС ВАЛЮТ J1.5 Native (Почти готов)

Автор Abix

Ответов: 168
Просмотров: 41535
Последний ответ 21.08.2011, 00:01:32
от DimNsk
Модуль определения позиций сайта в Google

Автор Виталик

Ответов: 6
Просмотров: 2496
Последний ответ 03.05.2011, 23:11:16
от dm888
Не могу установить ни один модуль корректно

Автор sin0ptik

Ответов: 2
Просмотров: 2027
Последний ответ 22.03.2011, 17:33:08
от sin0ptik
Как узнать в какой позиции выводится модуль?

Автор mic_2000

Ответов: 4
Просмотров: 2215
Последний ответ 23.06.2010, 00:12:56
от beagler