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

Stasweb

  • Завсегдатай
  • 1501
  • 24 / 0
Нужна помощь по выводу заголовка а не значения с Пользовательских полей 
Я пытаюсь вывести в админку и в печать страницы Спасибо за заказ
Поля настроил так

все нормально при оформлении заказа  они появились

когда заказ оформляется то же все нормально ошибок нет и в админке в заказе они появились

при попытке вытащить их в сами заказы и печать страницы спасибо за заказ выводит только Значение а не Заголовок
Выводить я пытаюсь с файла
/administrator/components/com_virtuemart/views/orders/tmpl/orders.php
вот так
Код
<?php echo $order->ofis_ispolnitel ; ?> 
таким способом я выводил и другие вещи такие как время дата и все нормально так как там только цифры
также выводит текст редактора

помогите вывести эти заголовки 
*

Stasweb

  • Завсегдатай
  • 1501
  • 24 / 0
В файле /administrator/components/com_virtuemart/views/orders/tmpl/order.php
Выводит на русском
Поставил
Код
<?php print_r($this); ?> 
нашел такую строчку
Код
  Array ( [name] => BT_ofis_ispolnitel [value] => Сарыарка + Мира [title] => 4. Офис исполнитель
   [type] => radio [required] => 0 [hidden] => [formcode] =>  Мира  Сарыарка  Мира + Сарыарка  Сарыарка + Мира
   [description] => )
в файле
/administrator/components/com_virtuemart/views/orders/tmpl/orders.php
пишу
Код
 <?php echo $this->BT_ofis_ispolnitel; ?>
не чего не выводит
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Код: php-brief
echo $this->value;
echo $this->title;
echo $this->formcode;
и т.д.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Stasweb

  • Завсегдатай
  • 1501
  • 24 / 0
Если вы имеете в виду так
Код
 <?php echo $this->BT_ofis_ispolnitel;
       echo $this->value;
       echo $this->title;
       echo $this->formcode;
 ?>
не работает
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Я не имел это
Код: php-brief
echo $this->BT_ofis_ispolnitel;
в виду, потому что нет такого свойства у объекта.
Что выводит
Код: php-brief
echo $this->value;
?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Stasweb

  • Завсегдатай
  • 1501
  • 24 / 0
Код
 <?php
       echo $this->value;
       echo $order->value;
 ?>
не чего
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
А что выводит
Код: php-brief
print_r($this);
?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Stasweb

  • Завсегдатай
  • 1501
  • 24 / 0
Кучу всего и там есть [ofis_ispolnitel] => Mira_Saryarka
также он есть и в   <?php  print_r($order); ?>
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Мне нужна эта куча всего.
Код: php-brief
echo '<pre>';
print_r($this);
echo '</pre>';
и положите под спойлером
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Stasweb

  • Завсегдатай
  • 1501
  • 24 / 0
Вот
Спойлер
[свернуть]

вот print_r($order);

 
Спойлер
[свернуть]
« Последнее редактирование: 17.09.2014, 11:10:12 от Stasweb »
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Теперь
Код: php-brief
echo '<pre>';
print_r($this->orderslist);
echo '</pre>';
И куда нужно выводить? В каких файлах?

вот print_r($order);
Так там же есть $order->ofis_ispolnitel. Вот его и нужно выводить? Там же?
« Последнее редактирование: 17.09.2014, 11:21:33 от robert »
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Stasweb

  • Завсегдатай
  • 1501
  • 24 / 0
Спойлер
[свернуть]
выводить надо в
/administrator/components/com_virtuemart/views/orders/tmpl/orders.php
и в
/templates/a4joomla-mininova-free/html/com_virtuemart/cart/order_done.php
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
У вас в объекте только "Saryarka_Mira", "Сарыарка+Мира" нет. Его нужно добавить в модель при запросе или дополнительно сделать запрос в БД.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Stasweb

  • Завсегдатай
  • 1501
  • 24 / 0
В модели в /administrator/components/com_virtuemart/models/orders.php
в getOrdersList прописана
Код
      $select = " o.*, CONCAT_WS(' ',u.first_name,u.middle_name,u.last_name) AS order_name "
.', u.kontak_lic_no_rigistr, u.ww, u.dop_phone_no_rigistr, u.kontakn_pfone_no_rigistr, u.name_no_rigistr, u.virtuemart_user_id, u.dataj, u.time20140310, u.last_name_2, u.ofis_ispolnitel,  u.email as order_email,pm.payment_name AS payment_method ';
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
u.ofis_ispolnitel - это и есть "Saryarka_Mira", которое вам не нравится.
Код
[ofis_ispolnitel] => Saryarka_Mira
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Stasweb

  • Завсегдатай
  • 1501
  • 24 / 0
А там тогда что надо прописывать
если u.BT_ofis_ispolnitel как тут
 
Код
Array ( [name] => BT_ofis_ispolnitel [value] => Сарыарка + Мира [title] => 4. Офис исполнитель
   [type] => radio [required] => 0 [hidden] => [formcode] =>  Мира  Сарыарка  Мира + Сарыарка  Сарыарка + Мира
   [description] => )
то ошибку выдает
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Ну, вы же вроде разбираетесь. Почему задаете такие вопросы? Где у вас хранится "Сарыарка + Мира"? Если в БД, то найдите его столбец и пропишите в запросе. Если где-то еще, то оттуда извлеките. Я же не знаю, что вы там у себя делали.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Stasweb

  • Завсегдатай
  • 1501
  • 24 / 0
Saryarka_Mira находится в таблице _virtuemart_userinfos в столбце ofis_ispolnitel
А вот Сарыарка+Мира нет не где
*

Stasweb

  • Завсегдатай
  • 1501
  • 24 / 0
Вот  в базе нашел
Спойлер
[свернуть]

но вот их вывести не получается
*

Stasweb

  • Завсегдатай
  • 1501
  • 24 / 0
Нашел они лежат
_virtuemart_userfield_values

На русском в fieldtitle
На английском в fieldvalue

Но вот как вывести так и не понял  !
*

Stasweb

  • Завсегдатай
  • 1501
  • 24 / 0
Как и где надо подключать эту таблицу
_virtuemart_userfield_values
 для файла
 /administrator/components/com_virtuemart/views/orders/tmpl/orders.php
и надо добавлять что то в
 /administrator/components/com_virtuemart/models/orders.php
*

Stasweb

  • Завсегдатай
  • 1501
  • 24 / 0
Попробовал сделать так в  /administrator/components/com_virtuemart/models/orders.php
Прописал
Код
	public function getOrdersList($uid = 0, $noLimit = false)
{
// vmdebug('getOrdersList');
$this->_noLimit = $noLimit;

      $select = " o.*, CONCAT_WS(' ',u.first_name,u.middle_name,u.last_name) AS order_name "
.', u.kontak_lic_no_rigistr, u.ww, u.dop_phone_no_rigistr, u.kontakn_pfone_no_rigistr, u.name_no_rigistr, u.virtuemart_user_id, u.dataj, u.time20140310, u.last_name_2, u.ofis_ispolnitel,  u.email as order_email,pm.payment_name AS payment_method ';

   $select = ' `#__virtuemart_userfield_values`.`virtuemart_userfield_value_id`, `#__virtuemart_userfield_values`.`virtuemart_userfield_id`,
`fieldtitle`, `fieldvalue`, `ofis_ispolnitel`';

и в  /administrator/components/com_virtuemart/views/orders/tmpl/orders.php
решил вывести так
Код
 <?php echo $order->fieldtitle;?> 

выдал ошибку
Код
vmError: exeSortSearchListQuery Unknown column 'calcbook_virtuemart_userfield_values.virtuemart_userfield_value_' in 'field list' SQL=SELECT SQL_CALC_FOUND_ROWS `calcbook_virtuemart_userfield_values`.`virtuemart_userfield_value_id`, `calcbook_virtuemart_userfield_values`.`virtuemart_userfield_id`, `fieldtitle`, `fieldvalue`, `ofis_ispolnitel` FROM calcbook_virtuemart_orders as o LEFT JOIN calcbook_virtuemart_order_userinfos as u ON u.virtuemart_order_id = o.virtuemart_order_id AND u.address_type="BT" LEFT JOIN calcbook_virtuemart_paymentmethods_ru_ru as pm ON o.virtuemart_paymentmethod_id = pm.virtuemart_paymentmethod_id WHERE ( o.virtuemart_vendor_id = "1" ) ORDER BY created_on DESC LIMIT 0, 50
*

Stasweb

  • Завсегдатай
  • 1501
  • 24 / 0
так
Код
	public function getOrdersList($uid = 0, $noLimit = false)
{
// vmdebug('getOrdersList');
$this->_noLimit = $noLimit;

      $select = " o.*, CONCAT_WS(' ',u.first_name,u.middle_name,u.last_name) AS order_name "
.', u.kontak_lic_no_rigistr, u.ww, u.dop_phone_no_rigistr, u.kontakn_pfone_no_rigistr, u.name_no_rigistr, u.virtuemart_user_id, u.dataj, u.time20140310, u.last_name_2, u.ofis_ispolnitel,  u.email as order_email,pm.payment_name AS payment_method ';

   $select =  ' #__virtuemart_userfield_values.virtuemart_userfield_value_id, #__virtuemart_userfield_values.virtuemart_userfield_id,
fieldtitle, fieldvalue, ofis_ispolnitel';
то есть убираю `
вылезает другая ошибка
Код
vmError: exeSortSearchListQuery Unknown column 'calcbook_virtuemart_userfield_values.virtuemart_userfield_value_' in 'field list' SQL=SELECT SQL_CALC_FOUND_ROWS calcbook_virtuemart_userfield_values.virtuemart_userfield_value_id, calcbook_virtuemart_userfield_values.virtuemart_userfield_id, fieldtitle, fieldvalue, ofis_ispolnitel FROM calcbook_virtuemart_orders as o LEFT JOIN calcbook_virtuemart_order_userinfos as u ON u.virtuemart_order_id = o.virtuemart_order_id AND u.address_type="BT" LEFT JOIN calcbook_virtuemart_paymentmethods_ru_ru as pm ON o.virtuemart_paymentmethod_id = pm.virtuemart_paymentmethod_id WHERE ( o.virtuemart_vendor_id = "1" ) ORDER BY created_on DESC LIMIT 0, 50

что это за ошибки
*

Stasweb

  • Завсегдатай
  • 1501
  • 24 / 0
Может есть у кого примеры как выводить в таких случаях
« Последнее редактирование: 19.09.2014, 15:58:27 от Stasweb »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как сделать - Вывод модуля на всех страницах - Кроме в карточке товара?

Автор artem_wrong

Ответов: 15
Просмотров: 4115
Последний ответ 15.02.2022, 15:07:34
от beliyadm
Вывод дополнительного описания в карточке товара

Автор Litop

Ответов: 1
Просмотров: 2873
Последний ответ 24.11.2021, 22:26:21
от Litop
Вывод в шаблоне Рекомендуемый товар или нет.

Автор kuzmit42

Ответов: 4
Просмотров: 1181
Последний ответ 03.11.2019, 22:12:41
от Viclingvolive
Количество товаров на странице - как поменять значения?

Автор artem_wrong

Ответов: 7
Просмотров: 1179
Последний ответ 03.04.2019, 17:27:49
от artem_wrong
Вывод модуля

Автор Leo1986

Ответов: 2
Просмотров: 815
Последний ответ 27.12.2018, 15:09:45
от Leo1986