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

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Здравствуйте!

Продолжаю писать компонент, в котором есть представление "delete", кнопка тулбара "Удалить" которого формируется кодом:
Код
JToolBarHelper::deleteList();
в файле \admin\views\delete\view.html.php прикреплённого архива.

Когда, будучи в админке на этом виде, я выделяю какие-то добытые из базы данных отображенные строки и затем жму эту кнопку "Удалить", все строки остаются в базе данных, о чем говорит обновление страницы(по умолчанию происходит редирект на это же представление).

Скажите, пожалуйста, какого кода не хватает, чтобы отмеченные строки удалялись?
*

Aleks.Denezh

  • Живу я здесь
  • 3404
  • 428 / 4
не хватает всего кода и понимания как всё работает!
Обычно строится два вида, один для записи второй списка этих записей!
Модель списка наследуется от JModelList в которой вся логика для построения списка, сортировок и т.д.
А модель для записи наследуется от JModelAdmin, вот в JModelAdmin и существуют методы для удаления записи, в JModelList ничего этого нет!
по этому вам нужно в модели вам определить метод delete...
*

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
по этому вам нужно в модели вам определить метод delete...
Спасибо! Создам.
А как в этом методе модели получить список тех записей, что были отмечены на удаление?
*

Aleks.Denezh

  • Живу я здесь
  • 3404
  • 428 / 4
А как в этом методе модели получить список тех записей, что были отмечены на удаление?

Вообще то имелось ввиду что вам нужно скопировать метод delete из JModelAdmin  в вашу модель..
*

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Доброе утро!

Пытаюсь создать SQL-запрос вида:
Цитировать
DELETE m FROM `#__virtuemart_medias` AS `m` WHERE `file_type` = 'product' AND NOT EXISTS(SELECT virtuemart_media_id FROM #__virtuemart_product_medias WHERE virtuemart_media_id = m.virtuemart_media_id )
с помощью php-кода:
Код
$conditions = array(
$db->quoteName('file_type'). ' = \'product\'',
'NOT EXISTS(SELECT virtuemart_media_id FROM #__virtuemart_product_medias WHERE virtuemart_media_id = m.virtuemart_media_id )'
);
$query->delete($db->quoteName('#__virtuemart_medias', 'm'));
$query->where($conditions);
но он создает запрос без буквы m после DELETE, и запрос не выполняется в силу синтаксической ошибки.
Скажите пожалуйста, как надо изменить код, чтобы построить запрос правильно?

*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Код
$db->setQuery("DELETE m FROM `#__virtuemart_medias` AS `m` WHERE `file_type` = 'product' AND NOT EXISTS(SELECT virtuemart_media_id FROM #__virtuemart_product_medias WHERE virtuemart_media_id = m.virtuemart_media_id )");
$db->execute();
:)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Код
$db->setQuery("DELETE m FROM `#__virtuemart_medias` AS `m` WHERE `file_type` = 'product' AND NOT EXISTS(SELECT virtuemart_media_id FROM #__virtuemart_product_medias WHERE virtuemart_media_id = m.virtuemart_media_id )");
$db->execute();
:)
:) единственно верный выход?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Прописать условие для сохранения данных в БД

Автор semen1707

Ответов: 0
Просмотров: 460
Последний ответ 14.04.2021, 00:59:44
от semen1707
Почему id не назначается переменной?

Автор borro

Ответов: 3
Просмотров: 835
Последний ответ 29.06.2020, 12:59:51
от borro
Почему getTable() не находит таблицу?

Автор borro

Ответов: 3
Просмотров: 820
Последний ответ 13.05.2020, 09:14:42
от borro
Модель для представления, которое показывает списки данных разных типов

Автор borro

Ответов: 27
Просмотров: 1218
Последний ответ 06.05.2020, 11:57:12
от Septdir
Почему ссылки меню одинаковые для разных представлений?

Автор borro

Ответов: 3
Просмотров: 713
Последний ответ 14.02.2020, 16:19:18
от borro