Новости 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 Ответов
  • 2644 Просмотров
*

Divn

  • Осваиваюсь на форуме
  • 22
  • 1 / 0
  • Ivan Vlasov
Здравствуйте. В К2 имеются дополнительные поля множественного выбора типа multiselect.
С помощью chosen.js с такими полями работать намного удобнее, а на мобильном устройстве, пожалуй, работать без chosen.js просто невозможно.

Дополнительные поля К2 загружаются после выбора категории на странице создания материала. Видимо по этой причине поля multiselect не обрабатываются chosen.js, так как на момент выбора категории все срипты уже загружены.

Пытался повторно обработать поля  с помощью
Код
<?php JHtml::_('formbehavior.chosen', 'select'); ?>

также пробовал способы аналогичные этому:

Код
$("#K2ExtraField_16").trigger("liszt:updated");

Но по всей видимости либо делал "не то", либо "не так".

Может быть кто-то сталкивался с данной проблемой и знает как  заставить chosen.js обратывать multiselect , которые подргружаются со списком дополнительных полей K2 после выбора категории

Благодарю.
*

sivers

  • Живу я здесь
  • 2589
  • 359 / 0
В версии chosen для Joomla немного изменены имена событий. Попробуйте вместо liszt:updated использовать liszt:updated.chosen. Это должно работать, если в селекте изменился состав опшнов.
Если селект целиком загружается через AJAX (т.е. оказывается неинициализированным, то надо его инитить после загрузки (пример):
Код
jQuery('select').chosen({"disable_search_threshold":0,"search_contains":true,"allow_single_deselect":true,"placeholder_text_multiple":"Введите или выберите несколько элементов","placeholder_text_single":"Выберите значение","no_results_text":"Ничего не найдено."});
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

Divn

  • Осваиваюсь на форуме
  • 22
  • 1 / 0
  • Ivan Vlasov
Благодарю за Ваш ответ.
Нет состав option не меняется. Это стандартные дополнительные поля К2, которые подгружаются после выброра категории, так как группы полей привзяваются к категории (хотя группа полей у меня одна для всех категорий).

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

Однако загвоздка с тем, как обработать поля, которые по всей видимости подгружаются с помощью AJAX уже после выбора категории.

На всякий случай я попробовал и Ваш первый вариант. Не сработало.

В /administrator/components/com_k2/views/item/default.php добавил:

Код
<script>
jQuery('select').chosen({"disable_search_threshold":0,"search_contains":true,"allow_single_deselect":true,"placeholder_text_multiple":"Введите или выберите несколько элементов","placeholder_text_single":"Выберите значение","no_results_text":"Ничего не найдено."});
</script>

Этот код я добавлял в начале страницы и в конце — результат тот же, поля загружаются, но не обрабатываются chosen'ом

Наверно, логично было бы вставить блок, который подгружается со списком дополнительных полей. Но в этом случае К2 режет этот код в блоке дополнительных полей! Вобще любой код именно в этом блоке режется.

Может быть как то нужно вызвать этот код после загрузки страницы или по клику? Или может что-то еще что я не учел? Благодарю!
*

fsv

  • Живу я здесь
  • 2781
  • 410 / 2
Код инициализации или обновления надо вставить в .done аякса после кода изменения DOM.
Веб-разработка: заказ. Только новая разработка.
*

Divn

  • Осваиваюсь на форуме
  • 22
  • 1 / 0
  • Ivan Vlasov
Код инициализации или обновления надо вставить в .done аякса после кода изменения DOM.
Конечно пришлось потупить! :) Но в целом разобрался! Заработало! Благодарю всех за помощь. Плюсанул ;)
*

Divn

  • Осваиваюсь на форуме
  • 22
  • 1 / 0
  • Ivan Vlasov
Эх к сожалению недостаточно сообщений для того, чтобы поставить +
Но поблагодарю на словах! Помогли очень
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Решено: Более одной группы доп. полей

Автор chilly_bang

Ответов: 75
Просмотров: 10857
Последний ответ 07.02.2022, 17:06:11
от Dobrota
Ошибка дополнительных полей в конце материала

Автор Vekach

Ответов: 4
Просмотров: 1074
Последний ответ 22.09.2020, 17:45:22
от Vekach
Отображение доп. полей материала в спойлере или структурировано

Автор Falana

Ответов: 0
Просмотров: 860
Последний ответ 25.02.2020, 20:37:34
от Falana
Как сделать нечто подобное с помощью дополнительных полей?

Автор designerandrey

Ответов: 0
Просмотров: 836
Последний ответ 04.04.2019, 17:20:32
от designerandrey
Вывод определенных доп. полей в форме редактирования материла с лицевой

Автор lgmax

Ответов: 0
Просмотров: 748
Последний ответ 23.12.2018, 12:40:32
от lgmax