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

Tatyana111

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
Помогите пожалуйста!
У меня форма без записи в БД (без таблицы), т.е. имена элементов типа "___name". Необходимо написать PHP-код для обработки формы ("Sabmission plag-ins"), в котором переменным нужно назначить значения элементов формы. Пробовала разные варианты (например, $name = JRequest::getVar('___name')) - не выходит.
Подскажите как в PHP сослаться на элементы формы?
*

ovenm

  • Захожу иногда
  • 101
  • 3 / 0
  • Мы все сможем, если захотим
Посмотрите исходный код формы и Вам станет видно какие имена полей генерируются и затем их используйте на сервере в php обработчике
*

Tatyana111

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
Цитировать
Посмотрите исходный код формы
<input class="fabrikinput inputbox text" type="text" name="___NaimOrg" id="___NaimOrg" value="" size="60" maxlength="255">
если я в PHP указываю:
$naimorg = JRequest::getVar('___NaimOrg');
или
$naimorg = $_POST['___NaimOrg'];
то переменная $naimorg не получает значения, хотя в форме элемент '___NaimOrg' заполнен.
*

Tatyana111

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
Нашла причину данной проблемы! Если кому интересно, то причина в поле "Process script" (появляется если выбрано "Run PHP") - значения этих полей влияет на передачу переменных из формы (описаны в components\com_fabrik\plugins\form\fabrikphp\fabrikphp.php). В общем у меня сначала было выбрано "onLoad" и значения не передавались, выбрала - "onBeforeProcess" и все стало OK.
*

recomp

  • Осваиваюсь на форуме
  • 15
  • 2 / 0
для таблиц:
Код: php
<?php $blablabla = ($this->_row->data->tablename___elementname);?>
потом просто:
Код: php
<?php echo $blablabla;?>

p.s - для граватара простенько делал ))

Код: php
<?php $gravatar = md5($this->_row->data->tablename___email);?>
Код: html
<img src="http://www.gravatar.com/avatar/<?php echo $gravatar;?> " />


« Последнее редактирование: 12.02.2012, 01:13:02 от recomp »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Автозаполнение элемента Databasejoin не работает на русском

Автор stahanovets

Ответов: 1
Просмотров: 3428
Последний ответ 06.09.2017, 19:40:10
от stahanovets
Отправка формы на email после заполнения

Автор sergm87

Ответов: 4
Просмотров: 5255
Последний ответ 30.03.2016, 18:47:23
от Gorilla
Cascading Dropdown элемент, как вывести данные из другого элемента

Автор vladimir199128

Ответов: 0
Просмотров: 2213
Последний ответ 09.12.2015, 06:22:28
от vladimir199128
Нужна доработка формы Fabrik. За небесплатно)

Автор ovenya

Ответов: 0
Просмотров: 2104
Последний ответ 14.03.2014, 16:43:39
от ovenya
Как сделать чтобы метка элемента располагалась в одной строчке!

Автор Spaik

Ответов: 2
Просмотров: 2072
Последний ответ 15.01.2014, 13:08:57
от Spaik