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

PavelK

  • Захожу иногда
  • 101
  • 1 / 0
Добрый день. Условный магазин работает до 23.00. После - до 8.00 необходимости принимать заказы онлайн нет.
Как ограничить возможность заказа пользователям в нерабочее время?
Либо блокировать автоматически возможность входа в корзину, чтобы появлялось всплывающее окно с текстом, либо как-то ещё.
Прошу совета.
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Странная задача. Сколько заказывал в ИМ, все обрабатывают заказы в рабочее время.
Либо блокировать автоматически возможность входа в корзину, чтобы появлялось всплывающее окно с текстом,
В макете корзины проверяете время, и соответственно- выводите текст или выводите корзину .
*

rsn

  • Давно я тут
  • 520
  • 34 / 3
Как ограничить возможность заказа пользователям в нерабочее время?
Да, понимаю о чём речь. В некоторых сферах это актуально.
Вижу минимум 2 варианта:

1) Небольшой скриптик - запускать кроном в начале смены (включает) и в конце смены (выключает). Что включать/выключать - режим "Использовать как каталог" в настройках конфигурации VM.
Соответственно, если режим включен (ночью), тогда не выводится кнопка Купить и не работает Корзина.

2) Написать плагинчик, который в зависимости от времени будет (при каждой загрузке страницы) устанавливать эту настройку (не сохраняя) в нужное положение (включено/выключено).
Возможно, будет интересно: Интеграция с Ozon
*

rsn

  • Давно я тут
  • 520
  • 34 / 3
Ещё один вариант - ограничить время работы корзины )
На примере работы с OPC от RuposTel:



Код
// echo $output;

// https://iresurs.com
$opening_hours = '11:00 - 22:30';
$opening_start = trim(explode('-', $opening_hours)[0]);
$opening_start_hours = explode(':', $opening_start)[0];
$opening_start_minutes = explode(':', $opening_start)[1];
$opening_start_today = $opening_start_hours * 60 + $opening_start_minutes;
// echo $opening_start_today.'<br>';
$opening_end = trim(explode('-', $opening_hours)[1]);
$opening_end_hours = explode(':', $opening_end)[0];
$opening_end_minutes = explode(':', $opening_end)[1];
$opening_end_today = $opening_end_hours * 60 + $opening_end_minutes;
if ($opening_end_today <= $opening_start_today) $opening_end_today = 24 * 60 + $opening_end_today;
// echo $opening_end_today.'<br>';
$config = JFactory::getConfig();
$zone = $config->get('offset');
// echo $zone.'<br>';
$now = new DateTime('now', new DateTimeZone($zone));
$now_hours = $now->format('H');
$now_minutes = $now->format('i');
$now_today = $now_hours * 60 + $now_minutes;
// echo $now_today.'<br>';
if ($now_today > $opening_start_today && $now_today < $opening_end_today) {
    echo $output;
} else {
    echo '<div class="cart-view"><h1>Время приёма заказов: '.$opening_hours.'</h1><p>Пожалуйста, зайдите позже.</p></div>';
}
Возможно, будет интересно: Интеграция с Ozon
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Модуль доставки: СДЭК, Boxberry, Ozon, 5post, Почта, пэк, gtd, iml, Байкал и др

Автор eshoplogistic

Ответов: 0
Просмотров: 2505
Последний ответ 06.04.2022, 16:43:13
от eshoplogistic
Добавить выбор города в плагин доставки?

Автор warlocksp

Ответов: 3
Просмотров: 3253
Последний ответ 13.02.2022, 15:48:14
от Evgen Kulibin
Пропали способы доставки и оплаты

Автор Orfei

Ответов: 3
Просмотров: 2616
Последний ответ 01.10.2020, 21:00:44
от AlexB
Сортировка способов доставки

Автор stardel

Ответов: 9
Просмотров: 5117
Последний ответ 21.10.2019, 09:05:27
от rsn
Исправить надпись цены доставки - ?

Автор warlocksp

Ответов: 13
Просмотров: 4479
Последний ответ 22.01.2019, 08:04:36
от warlocksp