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

ChervonStudio

  • Осваиваюсь на форуме
  • 45
  • 0 / 0
Я делаю AJAX запрос и передаю данные формы в helper.php для обработки. В нем я должен обработать данные. В хелпер я вызываю  переменные $params->get("param"); Все работает ок. Я создаю новую копию модуля, в настройках модуля меняю поле "param" на другое значение, но обработка данных все равно происходит со значением переменной param из оригинального модуля. (Переменная param участвует в обработке данных в хелпере). Отсюда я понял, что хелпер берет только оригинальные данные. Отсюда получатся, что обработку с этой переменной я должен делать в default.php, так как он видит новую переменную.. Но как из хелпера передать данные $_POST?
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Ничего не понял.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

SmokerMan

  • Гуру
  • 5291
  • 720 / 26
ничего не понял)
но если проблема в параметрах модуля, то можно передавать id этого модуля, потом запросом выбирать его из базы и получать параметры нужного модуля
*

ChervonStudio

  • Осваиваюсь на форуме
  • 45
  • 0 / 0
ничего не понял)
но если проблема в параметрах модуля, то можно передавать id этого модуля, потом запросом выбирать его из базы и получать параметры нужного модуля

Проблема в том, что helper.php, берет параметры последнего модуля. Из-за этого, дубликат модуля, не может корректно пройти обработку
*

SmokerMan

  • Гуру
  • 5291
  • 720 / 26
Проблема в том, что helper.php, берет параметры последнего модуля. Из-за этого, дубликат модуля, не может корректно пройти обработку
и? я кажется написал что можно сделать)
*

ChervonStudio

  • Осваиваюсь на форуме
  • 45
  • 0 / 0
и? я кажется написал что можно сделать)

Как можно вывести ячейку параметров если нашел id? Я вот тут написал, "если есть ид модуля, и передаю id модуля на странице". Но как мне вывести тогда ячейку param этой строки ?
Код: php
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('id');
$query->from($db->quoteName('#__modules'));
$query->where($db->quoteName('id').' = '.$a);
*

SmokerMan

  • Гуру
  • 5291
  • 720 / 26
Код
$id = 90; //какой-то ид
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('*');
$query->from($db->quoteName('#__modules'));
$query->where($db->quoteName('id').' = '. $id);
$db->setQuery($query, 0, 1);
$module = $db->loadObject();
$params = json_decode($module->params);

die(var_dump($params));
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться