Новости Joomla

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями Joomla и использовании FieldsHelper.

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями Joomla и использовании FieldsHelper.

В процессе работы с Joomla бывает необходимо работать с пользовательским интерфейсом более тонко, чем обычно. Все формы Joomla состоят из стандартных полей, содержанием, стилем отображения, состоянием (включено/выключено, доступно для редактирования или нет и т.д.) можно управлять с помощью плагинов. Да и для нестандартных проектов хорошей практикой является создание одного системного или нескольких плагинов групп "под проект", в которых храниться весь "нестандарт".

В этой статье описаны все триггеры, которые вызываются через Event Dispatcher из administrator/components/com_fields/src/Helper/FieldsHelper.php, с привязкой к жизненному циклу (порядку этапов работы запроса), аргументам, изменяемым данным и дальнейшему распространению по Joomla. Это поможет вам работать с Joomla свободнее и не опасаясь при этом потерять изменения при очередном обновлении движка.

Подходы, описанные в статье, полезны в тех случаях, когда вы работаете с данными в com_fields - механизме создания и редактирования пользовательских полей ядра Joomla и при использовании FieldsHelper. Многие сторонние компоненты не используют эту возможность, поэтому данная статья будет полезна лишь частично.

Читать статью на Хабре.

@joomlafeed

🏆 Открыто голосование за Joomla в премии CMS Critic People’s Choice Awards 2025

🏆 Открыто голосование за Joomla в  премии CMS Critic People’s Choice Awards 2025

🗓 Голосование продлится до 27 февраля 2026 года.

👩‍💻 Проголосовать! 👩‍💻

Номинации, в которых можно проголосовать за Joomla:
⭐️ Best Free CMS
⭐️ Best Open Source CMS
⭐️ Best Enterprise CMS

Также в номинации Best e-Commerce Solution участвуют компоненты интернет-магазинов для Joomla:
⭐️ HikaShop
⭐️ Virtuemart

В номинации Best Website Builder оказались:
⭐️ YooTheme
⭐️ SP Page Builder

Что такое CMS Critic Awards?
С 2012 года премия CMS Critic Awards занимает особое место в сообществе систем управления контентом (CMS). Это единственный в своем роде сайт, который составляет рейтинг системы управления контентом и связанных с ними решений на рынке — от малого до крупного и подчеркивает их инновации и услуги.

Каждый год награда CMS Critic Awards присуждается одному победителю в различных отраслевых категориях, таких как: «Лучшая облачная CMS», «Лучший DXP», «Лучшая Headless CMS и других. Затем результаты оглашаются через СМИ вместе с выбором редакции CMS Critic.
В этом году премия вернулась к своим традициям и только TOP-5 движков по количеству номинаций попали в 2-й этап - голосование.

@joomlafeed

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

Sergey2

  • Давно я тут
  • 651
  • 15 / 1
VM 2.0.22e
Joomla 2.5.6
есть товар с настраиваемыми полями. Товар в двух категориях. В одной категории поля выводятся, во второй - нет

код вот такой:
Код
					<div class="product-custom-field">
<?php $custom_title = null;
if (!empty($product->customfields)) {
foreach ($product->customfields as $field) {
if ($field->is_hidden ) continue;
if ($field->layout_pos!='cat') continue;
if ($field->display) { ?>
<div class="product-field-line">
<span class="product-field-title"><?php echo $field->custom_title ?>:</span>
<span class="product-field-display"><?php echo $field->display ?></span>
    <span class="product-field-desc"><?php echo $field->custom_field_desc ?></span>
</div>
<?php }
}
}  ?>
</div>
вся разница в третьей строке. В одной категории $product->customfields емпти, а во второй - нет.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Не понял смысл топика: это вопрос или утверждение?
вся разница в третьей строке.
Не только.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Sergey2

  • Давно я тут
  • 651
  • 15 / 1
Не понял смысл топика: это вопрос или утверждение?
Это утверждение и вопрос, как это "починить"? Нужно что бы в обоих категориях эти характеристики выводились
Цитировать
Не только.
При выполнении кода условие в третье строке срабатывает по разному в зависимости от категории - когда товар отображается в одной категории у него есть настраиваемые поля, а в другой - нет
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
1. Приведите ссылку на сайт. По-моему, не должно быть связки между настраиваемыми полями и категориями.
2.
При выполнении кода условие в третье строке срабатывает по разному в зависимости от категории - когда товар отображается в одной категории у него есть настраиваемые поля, а в другой - нет
Не нужно мне пояснять, как работает условие в 3-й строке. Я имел в виду, что там еще есть 5,6 и 7-я строки.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Sergey2

  • Давно я тут
  • 651
  • 15 / 1
2. Не нужно мне пояснять, как работает условие в 3-й строке. Я имел в виду, что там еще есть 5,6 и 7-я строки.
Если условие не выполняется, то до них и не доходит. Ссылку вечером закину
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Если условие не выполняется, то до них и не доходит.
Да. А если выполняется? Почему вы так уверены, проверили?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Sergey2

  • Давно я тут
  • 651
  • 15 / 1
Да. А если выполняется? Почему вы так уверены, проверили?
разумеется проверил. Вставил echo 'TEST' и посмотрел.
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
ну раз уж вы тут вставили эхо то можете теперь воткнуть в какую нибудь model product
интернет-блог: http://websiteprog.ru
*

Sergey2

  • Давно я тут
  • 651
  • 15 / 1
ну раз уж вы тут вставили эхо то можете теперь воткнуть в какую нибудь model product
в какую именно и в какое именно место?
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
да по разному для начала вам надо глянуть getProductSingle() метод в \administrator\components\com_virtuemart\models\product.php там ищите где customfields добавляются к товару. Мне тоже кажется что категория тут не должна влять, если только у вас там где то что то не переопределено.
интернет-блог: http://websiteprog.ru
*

Sergey2

  • Давно я тут
  • 651
  • 15 / 1
Спасибо за наводку.
Так. Глянул. Функция  getProductSingle() вызывается уже с параметром $customfields=FALSE и соответственно эти поля и не добавляются. Откуда он вызывается?
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Ну если в карточке товара то через метод getproduct(); во вьюхе. У меня вот такая строчка:
\components\com_virtuemart\views\productdetails\view.html.php
Код: php
$product = $product_model->getProduct($virtuemart_product_id,TRUE,TRUE,TRUE,$quantity);

Последний параметр здесь не указан но он true по умолчанию:

Код: php
public function getProduct ($virtuemart_product_id = NULL, $front = TRUE, $withCalc = TRUE, $onlyPublished = TRUE, $quantity = 1,$customfields = TRUE)

У вас может конечно по другому быть.. но чето мне кажется что у вас там похакано где то..
интернет-блог: http://websiteprog.ru
*

Sergey2

  • Давно я тут
  • 651
  • 15 / 1
Не, не в карточке товара, а в списке товаров в категории.
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
а там метод getProducts во вьюхе вызывается, в нем тоже true по умолчанию для customfields
Код: php
 $products = $productModel->getProducts ($ids);
интернет-блог: http://websiteprog.ru
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не отображаются товары в категории

Автор iZacNT

Ответов: 0
Просмотров: 2987
Последний ответ 23.06.2023, 12:20:49
от iZacNT
VirtueMart 3 Отображать только товары в наличии!

Автор GaziroFFka

Ответов: 4
Просмотров: 5155
Последний ответ 06.06.2023, 13:55:13
от Akeksandr
Перестали выводиться категории

Автор sergspb

Ответов: 0
Просмотров: 3138
Последний ответ 12.02.2022, 12:53:31
от sergspb
Мультиязычность, связь товаров, доп.поля

Автор sanek2281

Ответов: 1
Просмотров: 3111
Последний ответ 24.01.2022, 18:00:46
от Максим Пишняк
Нет поля для введения купона VirtueMart 3

Автор Olga89

Ответов: 32
Просмотров: 1807
Последний ответ 18.01.2021, 19:28:11
от Olga89