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

Nikirinka

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
Всем привет, у меня такая задача: есть поиск по характеристикам от Вертюмарта. Он выдает все существующие типы товара, их параметры и значения и по этим параметрам можно осуществлять поиск . Как сделать так, чтобы не все эти параметры товаров вылазили в поиск, а только определенные.
Есть ли такая возможность в настройках вертюмарта или нужно что-то допрограмировать?

И еще вопрос. При нажатии на ссылку поиск по характеристикам пользователь попадает на страницу, где предлагается выбрать тип товара, по которому осуществляется поиск и только после этого пользователь может перейти на форму поиск. Каким образом можно сделать прямой переход на форму поиск, минуя эту страницу.

Вот мой сайт: http://svetocenter.ru
*

Nikirinka

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
Может кустарно, но нашла решение.

Но есть еще проблема, как изменить вид формы? Заменить поля множественного выбора на чекбоксы? В HTML это понятно как сделать, а в PHP я совсем не знаток...

Поясню конкретнее. В файле administrator/components/com_vertuemart/html/shop.parameter_search_form.php есть кусок кода стр. 293


Код
if (!empty($parameter_values)) { // List of values
                    $fields=explode(";",$parameter_values);
                    echo "<td width=\"55%\" height=\"2\" valign=\"top\">\n";
                    echo "<select class=\"inputbox\" name=\"$item_name";
                    if ($db->f("parameter_multiselect")=="Y") {
                        $size = min(count($fields),6);
                        echo "[]\" multiple size=\"$size\">\n";
                        $selected_value = array();
                        $get_item_value = vmGet($_REQUEST, $item_name, array());
                        foreach($get_item_value as $value) {
                            $selected_value[$value] = 1;
                        }
                        foreach($fields as $field) {
                            echo "<option value=\"$field\"".(($selected_value[$field]==1)? " selected>" : ">"). $field."</option>\n";
                        }
                    }
                    else {
                        echo "\">\n";
                        echo "<option value=\"\">".$VM_LANG->_('PHPSHOP_SELECT')."</option>\n";
                        foreach($fields as $field) {
                            echo "<option value=\"$field\"".(($get_item_value==$field)? " selected>" : ">"). $field."</option>\n";
                        }
                    }
                    echo "</select>";
как можно переделать этот код, чтобы вместо тега


Код
<select>
   <option>
   <option>
      ...
</select>

выполнялся тег

Код
<input type="checkbox" name=" " value=" "> 

Я сделала во так:

Код
echo "<input type=\"checkbox\" class=\"inputbox\" name=\"$item_name";
                    if ($db->f("parameter_multiselect")=="Y") {
                        $size = min(count($fields),6);
                        echo "00" ;
                        $selected_value = array();
                        $get_item_value = vmGet($_REQUEST, $item_name, array());
                        foreach($get_item_value as $value) {
                            $selected_value[$value] = 1;
                        }
                        foreach($fields as $field) {
                            echo "value=\"$field\"".(($selected_value[$field]==1)? " selected>" : ">  "). $field."\n";
                        }
                    }
                    else {
                        echo "\">\n";
                        echo "<value=\"\">".$VM_LANG->_('PHPSHOP_SELECT')."\n";
                        foreach($fields as $field) {
                            echo "<value=\"$field\"".(($get_item_value==$field)? " selected>" : ">"). $field."\n";
                        }
                    }
                    echo "00"; 

Но проблема у меня в том, что select создается 1 раз, а <option> - столько раз, сколько значений в базе данных. А тег <input> должен тоже создаваться столько же раз сколько и <option>. А я не знаю как это прописать...
Помогите, пожалуйста, очень надо!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

как убрать из ссылки component/virtuemart/

Автор kpk17

Ответов: 11
Просмотров: 13190
Последний ответ 10.03.2015, 14:29:19
от Kiparus
Компонент и модуль поиска товаров VirtueMart 1.0.15 на Ajax

Автор Arkadiy

Ответов: 148
Просмотров: 68845
Последний ответ 28.06.2014, 19:11:54
от DeLight
Расширенный Ajax-поиск по характеристикам товара VirtueMart

Автор Arkadiy

Ответов: 990
Просмотров: 213402
Последний ответ 27.06.2014, 16:47:52
от DeLight
Не могу убрать форму "Задайте вопрос..." на странице товара

Автор abrodski

Ответов: 1
Просмотров: 2716
Последний ответ 20.05.2014, 14:30:44
от abrodski
Как спрятать пустые параметры в типе товара?

Автор fsn789

Ответов: 2
Просмотров: 1539
Последний ответ 08.05.2014, 18:56:47
от draff