Новости Joomla

Рендер пользовательского поля внутри другого пользовательского поля. Joomla 5.3

Писал ранее о том, как внутри одного пользовательского поля рендерить другое пользовательское поле. Применил для этого возможность Joomla обращаться к методам плагинов напрямую. Процитирую строчку кода из предыдущего поста:

<?php
$joomlaFieldContentPlugn->onContentPrepare('com_content.article', $fakeItem, $app->getParams());

Joomla постепенно переходит от простого указания аргументов для триггеров плагинов к собственным классам событий. Это позволяет не запоминать порядок передачи аргументов класса и использовать человекопонятные методы $event->getContext(), $event->getItem() и т.д. А то в одном месте в Joomla было $article, в другом - $item, в третьем ещё как-то... Порядку больше становится.

Сегодня обновил сайт клиентов до Joomla 5.3. В ней обновили контент-плагин fields и мой финт ушами с вызовом метода плагина отвалился потому, что я передавал в нём 3 аргумента, вместо одного. И для события onContentPrepare это должен быть объект класса ContentPrepareEvent. Как меняется фрагмент кода из предыдущего поста:

<?php
// мы находимся в файле макета поля

use Joomla\CMS\Event\Content\ContentPrepareEvent;
use Joomla\CMS\Factory;

$app = Factory::getApplication();
$fakeItem = new \stdClass();
// Получаем id текущего материала из объекта Input
$fakeItem->id = $app->getInput()->getInt('id');
// {field 29} - это шорт код вставки поля с id 29 - "ассортимент проекта"
// к содержимому поля конкатенируем шорт-код для обработки
$fakeItem->text = $field->value . '{field 29}';
// Получаем объект плагина
$joomlaFieldContentPlugn = $app->bootPLugin('fields', 'content');
// вызываем метод обработки напрямую
// вместо 3-х аргументов теперь указываем один
// это объект класса ContentPrepareEvent
$joomlaFieldContentPlugn->onContentPrepare(new ContentPrepareEvent('onContentPrepare', [
            'context' => 'com_content.article',
            'subject' => $fakeItem,
            'params'  => $app->getParams(),
            'page'    => 0,
        ]));
// выводим оба поля
echo $fakeItem->text;

@webtolkru 

Вышел релиз Joomla 5.3.0

Вышел релиз Joomla 5.3.0

Проект Joomla с радостью объявляет о выходе Joomla 5.3 — последней минорной версии в серии Joomla 5.

Этот релиз сосредоточен на продуманных улучшениях, которые совершенствуют работу с CMS. От лучшей организации файлов и журналирования задач до расширенной обработки электронной почты и улучшенной доступности — Joomla 5.3 помогает администраторам и разработчикам работать более эффективно, сохраняя ваш сайт современным, безопасным и готовым к будущему.

0 Пользователей и 1 Гость просматривают эту тему.
  • 4 Ответов
  • 3455 Просмотров
*

Tornado

  • Осваиваюсь на форуме
  • 27
  • 0 / 0
  • Лучше гор только сноуборды!
Собственно вопрос в топике. Есть набор свойств товара: длина, вес и т.д.мне нежно добавить ещё поля с др. свойствами. Как реализовать, может хак есть какой?
*

Tornado

  • Осваиваюсь на форуме
  • 27
  • 0 / 0
  • Лучше гор только сноуборды!
Re: Как добавить поля свойства товара.
« Ответ #2 : 12.11.2006, 01:15:07 »
Никак не могу разобраться ввожу в поле атрибутов через точку с запятой свойства товара. На странице с товаром выводятся эти свойства, но рядом с ними пустые поля для заполнения. Как сделать так ,чтоб в этих полях были необходимые цифры, характеризующие свойства
*

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/
Re: Как добавить поля свойства товара.
« Ответ #3 : 12.11.2006, 13:21:36 »
Нужно после того как ввел название атрибута поставить двоеточие и через запятую вводить  значения атрибута. А в квадратных скобках цену регулируешь (я этим не пользовался). На примере ведь все наглядно показано. И чере CSV атрибуты замечательно заливаются.
Примеры формата перечня атрибутов :
Размер XL[+1.99], M, S[-2.99]; Цвет Red, Green, Yellow, ExpensiveColor[=24.00]; и т.д.,..,..
корректирование цен в линию для использования предоставленных атрибутов модификации:
+ == Добавлять эту сумму/количество к конфигурируемой цене.
- == Вычитать эту сумму/количество из сконфигурируемой цене.
= == Установить цену товара в эту сумму.
 
*

Tornado

  • Осваиваюсь на форуме
  • 27
  • 0 / 0
  • Лучше гор только сноуборды!
Re: Как добавить поля свойства товара.
« Ответ #4 : 13.11.2006, 00:04:15 »
Все понял, спасибо. Я тебе рассказывал про список собственных атрибутов
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Количество просмотров товара VirtueMart Существует?

Автор grishin

Ответов: 38
Просмотров: 11074
Последний ответ 22.08.2020, 08:44:29
от rsn
VirtueMart. Вывести названия дополнительных изображений в карточке товара

Автор Delik

Ответов: 3
Просмотров: 4277
Последний ответ 04.09.2018, 10:42:46
от Eholov
Как сделать импорт товара на VirtueMart?

Автор Усач911

Ответов: 0
Просмотров: 1064
Последний ответ 07.11.2017, 22:03:18
от Усач911
Sj Minicart Pro for VirtueMart не показывает изображение товара

Автор 6199233

Ответов: 2
Просмотров: 1409
Последний ответ 22.07.2017, 17:16:46
от 6199233
Добавить классы для каждой категории в модуле вывода категорий

Автор dron

Ответов: 5
Просмотров: 1247
Последний ответ 16.04.2017, 18:31:51
от fsv