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

Nessy74

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
Прошу помощи:
Исправить подтягивание значений контактов клиента из базы SQL.

На стадии оформления заказа через "Корзина Товаров" есть этап "Адрес доставки", на котором выводится табличка контактов клиента, в нее должны выводиться данные которые клиент заполнял при регистрации аккаунта.  Но в эту табличку подтягиваются только заголовки, а сами значения не отображаются. Я подозреваю что моим бывшим программистом была изменена система регистрации и ввиду этого в эту табличку данные подтягиваются из другого места базы данных SQL, либо неправильно делается запрос к этим данным. Правильные контактные данные высылаются подтверждением на E-mail, а также отображаются при редактировании контактных данных аккаунта на сайте. Так вот надо поправить код чтобы на стадии оформления заказа через "Корзина Товаров" тоже выводилась корректно заполненная табличка контактов клиента.

Оформление заказа через "Корзину" как я понял сидит тут:
\administrator\components\com_virtuemart\classes\ps_checkout.php
в этом файле блок контактов клиента подтягивается из файла:
\components\com_virtuemart\themes\vmtheme155\templates\checkout\customer_info.tpl.php
я так понял что надо исправить содержимое именно этого файла.
изначальное содержимое файла "customer_info.tpl.php" вот оно:
Спойлер
[свернуть]

Подтверждение заказа на E-mail в котором контакты клиента отображаются корректно находится тут:
\components\com_virtuemart\themes\vmtheme155\templates\order_emails\confirmation_email.tpl.php
содержимое файла "confirmation_email.tpl.php" вот оно:
Спойлер
[свернуть]

я попытался вставить код контактов клиента из файла "confirmation_email.tpl.php" в файл "customer_info.tpl.php",
но так без дополнительной правки оно не работает, нарушается дизайн страницы и выдает ошибку:
Fatal error: Call to a member function f() on a non-object in /var/www/website/web-site.com/components/com_virtuemart/themes/vmtheme155/templates/checkout/customer_info.tpl.php on line 28

Так что прошу помощи у специалистов.

Скриншот контактов клиента при оформлении заказа через "Корзина Товаров" (контактов нет):
Спойлер
[свернуть]

Скриншот контактов клиента при отсылке на E-Mail заказа (контакты есть):
Спойлер
[свернуть]

P.S.
я еще глубже изучил проблему, оказалось все еще загадочней:
у меня 2 сайта на одном движке, так вот на одном, более новом - эта проблема есть, а на более старом, с которого переносился движок - этой  проблемы нет, данные контактов клиента в корзину подтягиваются нормально, что для старого клиента, что для только что созданного.
И файлы "ps_checkout.php" и "customer_info.tpl.php" - абсолютно одинаковые на обоих сайтах.
так что видимо не нужно править файл "customer_info.tpl.php", проблема в чем-то другом.
« Последнее редактирование: 30.12.2015, 23:53:00 от Nessy74 »
*

fsv

  • Moderator
  • 2781
  • 410 / 2
Цитировать
я попытался вставить код контактов клиента из файла "confirmation_email.tpl.php" в файл "customer_info.tpl.php"
Они по-разному формируются. Подобные переносы кода не делаются.

У вас на сайте при регистрации должна быть И страна, И регион. Иначе без правок есть подобные проблемы. Т.к. в запросе выборка юзера идет по ним -
\administrator\components\com_virtuemart\classes\ps_checkout.php  => function display_address()
Закомментируйте обе строки в запросе:
Спойлер
[свернуть]
Если при регистрации нет выбора страны, в базе у всех будет US. Если исправите на RUS (в базе в 3-х местах (если надо, поищу) + у всех юзеров), можно в запросе больше данных оставить. Но предполагаю, вам это не надо.
Веб-разработка: заказ. Только новая разработка.
*

Nessy74

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
У вас на сайте при регистрации должна быть И страна...
так вот где собака порылась...
я как раз отключил на днях выбор страны при регистрации аккаунта, и вот поэтому возникла эта проблема.
сейчас вернул выбор страны при регистрации аккаунта - и все заработало как надо.
так что править никакие файлы не надо, спасибо еще раз за оперативную и конструктивную помощь, уважаемый fsv.
данный воспрос можно считать закрытым / решенным.
сейчас создам новый топик для последнего оставшегося вопроса.
*

fsv

  • Moderator
  • 2781
  • 410 / 2
я как раз отключил на днях выбор страны при регистрации аккаунта
сейчас вернул выбор страны при регистрации аккаунта
Если за эти дни были регистрации, поменяйте им в базе страну, там сейчас US.
Веб-разработка: заказ. Только новая разработка.
*

Nessy74

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
Если за эти дни были регистрации, поменяйте им в базе страну, там сейчас US.
понял, спасибо.
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Цитировать
так вот где собака порылась...
порылась и зарылась :)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Поиск по полям базы данных

Автор valensy

Ответов: 1
Просмотров: 1224
Последний ответ 08.09.2012, 21:39:45
от flyingspook
Требуется сформировать запрос на выборку из базы

Автор evsmusic

Ответов: 1
Просмотров: 1308
Последний ответ 26.03.2012, 19:15:39
от evsmusic
Создал фильтр товара, но фильтрация происходит только по одному введённому значению, как исправить?

Автор Artrum

Ответов: 1
Просмотров: 1329
Последний ответ 18.01.2012, 15:23:49
от Artrum
Как исправить функцию вывода изображения Image_tag

Автор Olga Kichina

Ответов: 0
Просмотров: 1927
Последний ответ 20.11.2011, 02:13:30
от Olga Kichina
как исправить опци товара по умолчанию?

Автор NapoleON_OFF

Ответов: 2
Просмотров: 1429
Последний ответ 21.09.2009, 19:40:38
от NapoleON_OFF