Новости Joomla

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

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

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

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

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

🏆 Открыто голосование за 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 Гость просматривают эту тему.
  • 10 Ответов
  • 1989 Просмотров
*

Ramsey

  • Осваиваюсь на форуме
  • 13
  • 1 / 0
Добрый день!
Проблема состоит в следующем: не удаётся найти файл, в котором лежит таблица, содержащая варианты доставки (страница выбора варианта доставки в процессе оформления заказа). Хотел стилизовать данную табличку, да найти не могу. Файл \components\com_virtuemart\themes\default\templates\checkout\list_shipping_methods.tpl.php, в котором я ожидал найти заветные html-теги, к сожалению, таблички не содержит.
Подскажите, пожалуйста, где искать сей файлик? Спасибо!
*

fsv

  • Moderator
  • 2787
  • 413 / 2
для list_shipping_methods.tpl.php смотрите checkout.index.php и ps_checkout.php (файл страницы и файл класса)

Веб-разработка: заказ. Только новая разработка.
*

Ramsey

  • Осваиваюсь на форуме
  • 13
  • 1 / 0
Здравствуйте. Да, я видел ваш комментарий в соседнем топике, в этих файлах также таблички не нашёл. Поиски продолжаются. Спасибо за попытку помочь.
*

fsv

  • Moderator
  • 2787
  • 413 / 2
смотрите каждый заданный у вас вариант доставки в своем файле .php
\administrator\components\com_virtuemart\classes\shipping\

Веб-разработка: заказ. Только новая разработка.
*

Ramsey

  • Осваиваюсь на форуме
  • 13
  • 1 / 0
Да, действительно, в моём случае это был стандартный модуль доставки - файл \administrator\components\com_virtuemart\classes\shipping\standard_shipping.php. Убрал здесь и ненужное мне поле (столбец) "Вариант доставки", и отредактировал стили.
fsv, спасибо большое! Сейчас буду искать, где тут карма повышается.))
*

Ramsey

  • Осваиваюсь на форуме
  • 13
  • 1 / 0
мм. А могу ли я повышать кому-то карму, имея нулевую репутацию?
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
мм. А могу ли я повышать кому-то карму, имея нулевую репутацию?
да. после 10 сообщений на форуме можете начинать)
*

Ramsey

  • Осваиваюсь на форуме
  • 13
  • 1 / 0
да. после 10 сообщений на форуме можете начинать)
понял, спасибо!
*

Ramsey

  • Осваиваюсь на форуме
  • 13
  • 1 / 0
Чтобы совсем уж не было оффтопа, да мейби кому-то пригодится, покажу ту самую табличку (строки 72-113 файла \administrator\components\com_virtuemart\classes\shipping\standard_shipping.php)
Код
					$html = "<table width=\"100%\">\n<tr class=\"sectiontableheader\"><th>&nbsp;</th>" ;
$html .= "<th>" . $VM_LANG->_('PHPSHOP_INFO_MSG_CARRIER'). "</th><th>" ;
$html .= $VM_LANG->_('PHPSHOP_INFO_MSG_SHIPPING_METHOD'). "</th><th>" ;
$html .= $VM_LANG->_('PHPSHOP_INFO_MSG_SHIPPING_PRICE'). "</th></tr>\n" ;
define( "_SHIPPING_RATE_TABLE_HEADER", "1" ) ;
}
if( $i ++ % 2 )
$class = "sectiontableentry1" ; else
$class = "sectiontableentry2" ;
if( $_SESSION['auth']['show_price_including_tax'] != 1 ) {
$taxrate = 1 ;
} else {
$taxrate = $this->get_tax_rate( $dbr->f( "shipping_rate_id" ) ) + 1 ;
}
$total_shipping_handling = $dbr->f( "shipping_rate_value" ) + $dbr->f( "shipping_rate_package_fee" ) ;
$total_shipping_handling = $GLOBALS['CURRENCY']->convert( $total_shipping_handling ) ;
$total_shipping_handling *= $taxrate ;
$show_shipping_handling = $CURRENCY_DISPLAY->getFullValue( $total_shipping_handling ) ;

// THE ORDER OF THOSE VALUES IS IMPORTANT:
// ShippingClassName|carrier_name|rate_name|totalshippingcosts|rate_id
$shipping_rate_id = urlencode( __CLASS__ . "|" . $dbc->f( "shipping_carrier_name" ). "|" . $dbr->f( "shipping_rate_name" ). "|" . number_format( $total_shipping_handling, 2, '.', '' ). "|" . $dbr->f( "shipping_rate_id" ) ) ;

$_SESSION[$shipping_rate_id] = 1 ;

$html .= "<tr class=\"$class\">" ;
$html .= "<td width=\"10\">
          <input type=\"radio\" id=\"shipping_rate_id_ss_" . $dbr->f( "shipping_rate_id" ). "\" name=\"shipping_rate_id\" value=\"" . $shipping_rate_id . "\" " ;

if( ! $selected ) {
$selected = True ;
$html .= "checked=\"checked\"" ;
}
$html .= " /></td>" ;
$html .= "<td><label for=\"shipping_rate_id_ss_" . $dbr->f( "shipping_rate_id" ). "\">" . $dbc->f( "shipping_carrier_name" ). "</label></td>" ;
$html .= "<td><label for=\"shipping_rate_id_ss_" . $dbr->f( "shipping_rate_id" ). "\">" . $dbr->f( "shipping_rate_name" ). "</label></td>" ;

$html .= "<td>" . $show_shipping_handling . "</td></tr>\n" ;
}
}
if( defined( "_SHIPPING_RATE_TABLE_HEADER" ) ) {
$html .= "</table>

Здесь я избавился от колонки "Вариант доставки" путём удаления соответствующих ячеек в заголовочном <tr> и <tr>, содержащим значения вариантов доставки. Т.о. удалены фрагменты кода:

Код
$html .= "<th>" . $VM_LANG->_('PHPSHOP_INFO_MSG_CARRIER'). "</th>"

и

Код
$html .= "<td><label for=\"shipping_rate_id_ss_" . $dbr->f( "shipping_rate_id" ). "\">" . $dbc->f( "shipping_carrier_name" ). "</label></td>" ;

строки 73 и 106, соответственно.

Ну, и настроил стиль таблицы - бордеры, бекграунды и т.п.
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
понял, спасибо!
Ramsey, плюсы надо за дело ставить
вот кто мне его теперь удалит...
*

Ramsey

  • Осваиваюсь на форуме
  • 13
  • 1 / 0
Ramsey, плюсы надо за дело ставить
вот кто мне его теперь удалит...
в моей ситуации - это "Дело". вообще, конечно, я не в курсе всех местных правил и мелочей. дополнительный плюс - это не гуд, да? )) могу я как-то вернуть состояние твоей кармы в исходное положение?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Редактирование главной страницы VirtueMart

Автор cheni

Ответов: 13
Просмотров: 13463
Последний ответ 02.04.2015, 08:41:09
от flyingspook
Как перенести кнопку редактирования товара с fly-страницы на страницу категории?

Автор longestall

Ответов: 5
Просмотров: 3004
Последний ответ 09.07.2014, 17:40:59
от talentas
Поменять местами категории и описание главной страницы VirtueMart

Автор mrmaster

Ответов: 18
Просмотров: 12707
Последний ответ 27.02.2014, 04:09:04
от artserge
Нужна помощь в оформлении страницы товаров

Автор smesharic

Ответов: 10
Просмотров: 2098
Последний ответ 07.05.2013, 14:51:40
от smesharic
Стоимость доставки и плата за отгрузку: Как изменить

Автор satmas

Ответов: 1
Просмотров: 1697
Последний ответ 15.01.2013, 19:43:35
от fsv