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

IceBeerg

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
По сабжу. Делаю свой шаблон для отображения товаров в категории. На вкладке статус товара добавил свойство и его особенность. Задача: получить значение данного свойства в категории товаров для выделения товара цветом.
В коде VirtueMart откопал attributeX[0][name] и attributeX[0][value][], использовать как, например, $product_s_desc не получается.
Что я делаю не так и как правильно надо?
С Joomla и VirtueMart знаком поверхностно. В PHP только пытаюсь разобраться...

*

fsv

  • Moderator
  • 2787
  • 413 / 2
Было где-то на форуме решение. Попробуйте через поиск или FAQ.
Веб-разработка: заказ. Только новая разработка.
*

IceBeerg

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
Вот зараза... никак не получается, в основном идет модификация системных шаблонов, а мне нужно как то, просто, в своем сделать и систему не трогать... Есть еще с запросом к базе, но там более сложная и навороченная реализация. Мне бы, что по проще...
Пошел копаться дальше.
Если у кого возникнет какая идея, просьба, отписаться.
*

fsv

  • Moderator
  • 2787
  • 413 / 2
Невнимательно я первый раз прочел, не так понял, извиняюсь, не видел такого на форуме... Попробуйте так:

\components\com_virtuemart\themes\default\templates\browse\browse_1.php (или тот, который используете)
вместо
Код
<div class="browseProductContainer"> 
вставить:
Код
<?php		
$db = new ps_DB( ) ;
$q = "SELECT attribute FROM #__{vm}_product WHERE product_id='$product_id'";
$db->query($q);  
$attribute = $db->f( "attribute" ) ;
$my_attr1 = explode(',',$attribute);
$my_attr2 = explode('[',$my_attr1[1]);
$color = $my_attr2[0];
?>
<div class="browseProductContainer" style="background:<?php echo $color; ?>">

Только не совсем понятно. При этом название цвета как атрибут будет выводится в карточке товара. Если так надо, нет вопросов. Если не надо, лучше создать в админке в товаре поле (на форуме есть решение) для цвета, или можно использовать другое поле в товаре, которое точно не понадобится.
Веб-разработка: заказ. Только новая разработка.
*

IceBeerg

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

\components\com_virtuemart\themes\default\templates\browse\browse_1.php (или тот, который используете)
вместо
Код
<div class="browseProductContainer"> 
вставить:
Код
<?php		
$db = new ps_DB( ) ;
$q = "SELECT attribute FROM #__{vm}_product WHERE product_id='$product_id'";
$db->query($q); 
$attribute = $db->f( "attribute" ) ;
$my_attr1 = explode(',',$attribute);
$my_attr2 = explode('[',$my_attr1[1]);
$color = $my_attr2[0];
?>
<div class="browseProductContainer" style="background:<?php echo $color; ?>">

Только не совсем понятно. При этом название цвета как атрибут будет выводится в карточке товара. Если так надо, нет вопросов. Если не надо, лучше создать в админке в товаре поле (на форуме есть решение) для цвета, или можно использовать другое поле в товаре, которое точно не понадобится.

Шаблон, так сказать, на основе \components\com_virtuemart\themes\default\templates\browse\browse_2.php
Все, что по считал возможным, вырезал.
Но не в этом суть.
$product_id у всех товаров 0 и как следствие запрос к базе сделать не могу. Хотя:
Сделал парсинг $product_flypage, если этот костыль можно назвать парсингом... Получил id товара.
Теперь курочу s_product_attribute::list_advanced_attribute($product_id); на предмет наименования атрибута и его значений, опять же собираюсь разбирать строку по "зап. частям"...
И если еще короче то хочу получить строку с номером цвета и залить им (цветом) фон ячейки. Все. Никуда ничего более не выводить.
С запросом попробую, сам копал уже в ту же сторону, но резко наткнулся на s_product_attribute::list_advanced_attribute и с запросом пока отложил.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Настройки отображения товара

Автор wectra

Ответов: 2
Просмотров: 5612
Последний ответ 12.07.2017, 22:12:27
от wectra
Несколько изображений для товара/ Лупа для изображения/ Magic Zoom

Автор antoha333

Ответов: 41
Просмотров: 28130
Последний ответ 13.11.2015, 16:08:16
от sonics
Описание категории опустить под товары

Автор angelo4ek-001

Ответов: 5
Просмотров: 3193
Последний ответ 12.11.2015, 01:53:39
от fsv
Как реализовать на VirtueMart такую карточку товара?

Автор AdmbVlad

Ответов: 0
Просмотров: 3224
Последний ответ 14.10.2015, 17:01:55
от AdmbVlad
Вставить картинку в карточку товара через URL и создать его миниатюру

Автор sashgera

Ответов: 8
Просмотров: 4147
Последний ответ 14.02.2015, 21:12:46
от sashgera