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

Biss

  • Давно я тут
  • 995
  • 101 / 0
Условие удаления
« : 14.10.2022, 10:01:53 »
Добрый день. Помогите правильно написать, у меня не получается. Код должен удалить отмеченные строки или строку при условии что нет вложенностей
Код
if (isset($_POST['delete']))
{
$del_cat = $_POST['checkbox'];
foreach ($del_cat as $del_parent) {
$query = $pdo->query("SELECT `sub_cat_parent` FROM `e_sub_cat` WHERE `sub_cat_parent`='$del_parent'");
$search= $query->fetch(PDO::FETCH_BOTH);

if ($search != '')
{
echo "<div class='alert alert-danger' role='alert'><h5>Видаляю...</h5></div>";
echo "<br /><img class='img_load' src='".$dom."/karat/img/load.gif'>";
$_SESSION['message'] = "<div class='alert alert-danger' role='alert'>Категорія не пуста!</div>";
header("Refresh:1;url=".$dom."/karat/stock/cat_index.php");
exit();
}
if ($search == '')
{
foreach ($del_cat as $del_id) {
$query = $pdo->query("DELETE FROM `e_sub_cat` WHERE `id` = '$del_id'");
}
echo "<div class='alert alert-danger' role='alert'><h5>Видаляю...</h5></div>";
echo "<br /><img class='img_load' src='".$dom."/karat/img/load.gif'>";
$_SESSION['message'] = " <div class='alert alert-success' role='alert'>Видалено!</div>";
header("Refresh:1;url=".$dom."/karat/stock/cat_index.php");
exit();
}
}
}
*

fsv

  • Живу я здесь
  • 2781
  • 410 / 2
Re: Условие удаления
« Ответ #1 : 14.10.2022, 11:43:44 »
Если без сообщений:
Код
"DELETE FROM `e_sub_cat` WHERE `id` IN ('".implode(',', $del_cat."') AND `sub_cat_parent` = 0";
Только $del_cat через фильтр пропустите.

Если надо сообщение, что было не удалено и почему, аналогично в SELECT получить id/имя не удаленных категорий. `sub_cat_parent` > 0. И в очередь сообщений передать нужный текст.
Веб-разработка: заказ. Только новая разработка.
*

Biss

  • Давно я тут
  • 995
  • 101 / 0
Re: Условие удаления
« Ответ #2 : 14.10.2022, 12:15:34 »
Код
Только $del_cat через фильтр пропустите.
цыкл? не совсем понял
*

fsv

  • Живу я здесь
  • 2781
  • 410 / 2
Re: Условие удаления
« Ответ #3 : 14.10.2022, 13:21:06 »
Посмотрите начало любого метода какого-либо контроллера, получающего массив ids.
Код
// Make sure the item ids are integers
$cid = ArrayHelper::toInteger($cid);
Например, delete() в AdminController.
Веб-разработка: заказ. Только новая разработка.
*

Biss

  • Давно я тут
  • 995
  • 101 / 0
Re: Условие удаления
« Ответ #4 : 14.10.2022, 13:57:05 »
Это самописный код, без Joomla
*

fsv

  • Живу я здесь
  • 2781
  • 410 / 2
Re: Условие удаления
« Ответ #5 : 14.10.2022, 15:22:33 »
Это самописный код, без Joomla
А Joomla - тоже самописный код, на php. Зайдите в toInteger и посмотрите, что там.
Код
$cid = ArrayHelper::toInteger($cid);
соответствует
Код
if (\is_array($cid)) {
    $cid = array_map('intval', $cid);
} else {
    $cid = array();
}
Веб-разработка: заказ. Только новая разработка.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться