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

katjuha6

  • Захожу иногда
  • 173
  • 0 / 0
Все здравствуйте!
скажите, пожалуйста, как в такую конструкцию
Код
if ( $checkout['phone'] == '' || strlen($checkout['phone']) < 6 ) {
$error .= '<p>Вы не указали контактного телефона или указали неверно.</p>';
}
вставить значение языкового файла ERROR_NAME_CARD
я пыталась
сделать так
Цитировать
if ( $checkout['phone'] == '' || strlen($checkout['phone']) < 6 ) {
$error .= '<p><?php echo $VM_LANG->_('NAME_ERROR_PHONE')?></p>';
}

но браузер послал меня подальше =)
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Код
$error .= '<p>' . $VM_LANG->_('NAME_ERROR_PHONE'). '</p>'
Не будь паразитом, сделай что-нибудь самостоятельно!
*

katjuha6

  • Захожу иногда
  • 173
  • 0 / 0
Код: php-brief
<?php echo $VM_LANG->_NAME_ERROR_PHONE; ?>

при таком коде вместо "Вы не указали контактного телефона или указали неверно" (значение языкового файла) выскакивает _NAME_ERROR_PHONE; ?>

а при таком
Код
$error .= '<p>' . $VM_LANG->_('NAME_ERROR_PHONE'). '</p>'
вот такая страница получается (в прищепке)
и ошибка
Код
Parse error: syntax error, unexpected '}' in .......\administrator\components\com_virtuemart\html\checkout.without_register_form.php on line 35
на всякий случай полный код
Цитировать
$checkout = vmGet($_REQUEST, 'checkout', '');
$error = '';
if ( is_array($checkout) && count($checkout) ) {
require_once( CLASSPATH.'ps_main.php' );

if( $checkout['name'] == '' || vmValidateName($checkout['name']) == false  ) {
$error .= '<p>Вы не указали имени контактного лица или указали неверно.</p>';
}
      
preg_replace('/\D/', '', $checkout['phone']);
if ( $checkout['phone'] == '' || strlen($checkout['phone']) < 6 ) {
$error .= '<p>' . $VM_LANG->_('NAME_ERROR_PHONE'). '</p>'
}    - вот это 35 строка


[вложение удалено Администратором]
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
а при таком
Код
$error .= '<p>' . $VM_LANG->_('NAME_ERROR_PHONE'). '</p>'
вот такая страница получается (в прищепке)
и ошибка
Код
Parse error: syntax error, unexpected '}' in .......\administrator\components\com_virtuemart\html\checkout.without_register_form.php on line 35
Катя, поставьте ";" в конце выражения.
Код
$error .= '<p>' . $VM_LANG->_('NAME_ERROR_PHONE'). '</p>';
Я думал, что вы это знаете.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

voland

  • Легенда
  • 11028
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
*

katjuha6

  • Захожу иногда
  • 173
  • 0 / 0
спасибо, Роберт! все заработало!  ^-^ Вы в очередной раз очень помогли. я вчера часа 1,5 убила составляя разные комбинации. я же Вам говорила, что в php ориентируюсь чуть-чуть получше, чем в китайском языке ;)
*

katjuha6

  • Захожу иногда
  • 173
  • 0 / 0
А что в VirtueMart не юзается JText::_()? Oo
не знаю. может и юзается. только для меня пока это непонятно  :o
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

VirtueMart не может создать мини-изображение из .jpeg-файла

Автор Nick IntegraLL

Ответов: 12
Просмотров: 8321
Последний ответ 03.04.2019, 03:28:34
от Roki37
Вставить картинку в карточку товара через URL и создать его миниатюру

Автор sashgera

Ответов: 8
Просмотров: 2929
Последний ответ 14.02.2015, 21:12:46
от sashgera
Как вставить кнопку купить в материал?

Автор cheni

Ответов: 3
Просмотров: 2062
Последний ответ 14.02.2013, 14:21:29
от Infosakh
Как вставить ссылку "Показать все товары в категории" в flypage товара?

Автор rdk

Ответов: 11
Просмотров: 2121
Последний ответ 20.01.2013, 15:32:15
от rdk
Получить значение свойства товара в категории

Автор IceBeerg

Ответов: 4
Просмотров: 1431
Последний ответ 22.10.2012, 17:31:18
от IceBeerg