Новости 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 Пользователей и 2 Гостей просматривают эту тему.
  • 285 Ответов
  • 61481 Просмотров
*

Andr73

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Спойлер
[свернуть]
Ну вот кусочек конца скрипта вставил вот так работает сам скрипт работает но не выводит, без точки с запятой ваще труба.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
ну мне вам нового нечего сказать. вы понимаете, что такое сделайте по аналогии с другими тегами? вы видите, как выводятся другие теги? они выводятся так
Код
'</offers>';
? вы думать не хотите? или вам просто поговорить охота? вы не можете просто скопировать то, что уже сделано, удалить старый тег и вставить свой новый? элементарная вещь, вы ее 3 дня мусолите. раз у вас такая операция вызывает сложности, то может стоит заниматься тем, чем умеете? идите в коммерческий раздел тогда, и не мучайте ни себя, ни другим головы.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

riser

  • Осваиваюсь на форуме
  • 21
  • 1 / 0
корректная обработка extra_fields

Код

 $res = $pdo->query("SELECT id, type, `name_RU-ru` as efn, `description_ru-RU` as efd FROM {$cfg->dbprefix}jshopping_products_extra_fields");
    $extraf_array = $res->fetchAll(PDO::FETCH_ASSOC);

    $res=$pdo->query("SELECT id, field_id, ordering, `name_RU-ru` as efv1 FROM {$cfg->dbprefix}jshopping_products_extra_field_values");
    $extraf_values = $res->fetchAll(PDO::FETCH_ASSOC);


    $extra_select = '';

    if($extraf_array) {
        foreach ($extraf_array as $ei) {
            $extra_select .= "{$tb_product}.extra_field_{$ei['id']},";
        }
    }



foreach ($extraf_array as $k=>$v) {

                $efid=$v['id'];
                $efkey='extra_field_'.$efid;
                $efname=$v['efn'];
                $efvalue = $row[$efkey];
                if ($v['type']==1 && !empty($efvalue) )
                {
                    $description.= '<p>'.$efname.': '.$efvalue.$v['efd'].'</p>';
                }

                if ($v['type']==0 && !empty($efvalue) )
                {
                    $description.= "<p>$efname: ";
                    foreach($extraf_values as $ef1)
                    {
                        if ($ef1['id'] == $efvalue )
                        {
                            $description.= $ef1['efv1'].'</p>';
                        }
                    }
                }
            }



Смотрите в $v['type']==0 или 1
Определяет тип характеристики.
*

Serega668

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Подскажите пожалуйста ответ на такой вопрос: товары выгружаются нормально, но вот с характеристиками беда - вместо правильного значения в виде слова выдает цифры. Пару страниц назад писали о такой ситуации. С постом выше о правильной обработке extra_fields не могу разобраться.
Код
Спойлер
[свернуть]

Результат (вместо 62 должно быть 5W-30, вместо 64 - Синтетическое)
Спойлер
[свернуть]
« Последнее редактирование: 08.09.2016, 01:01:41 от Serega668 »
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
А что не понятно?
Формируете список доступных значений характеристик
Код: php
$res=$pdo->query("SELECT id, field_id, ordering, `name_RU-ru` as efv1 FROM {$cfg->dbprefix}jshopping_products_extra_field_values");
$extraf_values = $res->fetchAll(PDO::FETCH_ASSOC);
А когда получаете цифру вместо слова, ищите эту цифру в списке доступных значений характеристик
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

Serega668

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Дело в том, что я с программированием пока на Вы (в стадии обучения  ^-^) и данный момент для меня пока не понятен. Не могу понять как решить данный вопрос, 2-й день пытаюсь вытянуть характеристики, но получаются пока только цифры вместо значений.
Если не сложно, подскажите куда вставить код в мой файл и что лишнее убрать.
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Serega668, Да даже если вы не знакомы с программированием, это не важно, так как вам не нужно вытягивать характеристики вместо цифр.
Когда вы это поймете, тогда сможете двигаться дальше.

На пальцах:
1. Вам нужны эти цифры!
2. Только получив эти цифры вы сможете пойти в место где хранятся характеристики и получить их оттуда. Благодаря только этим цифрам.

На всякий случай прочтите мое предыдущее сообщение.
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

Andr73

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Добрый день! Подскажите пожалуйста какой код нужно добавить в скрипт чтобы в названии позиций кавычки заменялись (в соответствии с требованиями Яндекса) на запись &quot;
Спасибо заранее!
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
htmlspecialchars. или если надо только кавычки, то можно воспользоваться str_replace
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Serega668

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Serega668, Да даже если вы не знакомы с программированием, это не важно, так как вам не нужно вытягивать характеристики вместо цифр.
Когда вы это поймете, тогда сможете двигаться дальше.

На пальцах:
1. Вам нужны эти цифры!
2. Только получив эти цифры вы сможете пойти в место где хранятся характеристики и получить их оттуда. Благодаря только этим цифрам.

На всякий случай прочтите мое предыдущее сообщение.
Не получается(((
*

Serega668

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Помогите пожалуйста кто-нибудь с решением вышеуказанного вопроса. Linfuby, как только добавляю указанный код в скрипт - все param name пропадают

Забыл добавить, использую Joomla 2.5.28 и JS 3.20.2
« Последнее редактирование: 29.09.2016, 10:59:51 от Serega668 »
*

Serega668

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Пробую плагин wishboxyandexmarket - у меня несколько характеристик, т.е. несколько id. Как их прописать в плагине?
*

Kyrsor

  • Захожу иногда
  • 317
  • 4 / 2
Добрый день.

У меня заработало, но в значениях параметров товара выводятся цифры вместо слов

Код
<offers>
<offer id="23" available="true" bid="11">
<url>
http://site.com/component/jshopping/product/view/17/23
</url>
<price>75299.000</price>
<currencyId>UAH</currencyId>
<categoryId>17</categoryId>
<picture>
http://site.com/components/com_jshopping/files/img_products/CSVE9NKE-600x600.png
</picture>
<delivery>true</delivery>
<name>Кондиционер Panasonic CS-VE9NKE / CU-VE9NKE</name>
<param name="Класс">1</param>
<param name="Площадь помещения (кв.м.)">2</param>
<param name="Мощность охлаждения (кВт.)">3</param>
<param name="Мощность обогрева (кВт)">4</param>
<param name="Инверторное управление">5</param>
<param name="Потребляемая мощность (кВт)">0,51</param>
<param name="Тип хладагента">7</param>
<param name="Размеры внутреннего блока">870x290x214</param>
<param name="Размеры наружного блока">780x542x289</param>
<param name="Минимальный уровень шума внутреннего блока (ДБ)">20</param>
<param name="Наличие и типы фильтров">8</param>
<param name="Антибактериальное поктытие">9</param>
<param name="Цвет">11</param>
<param name="Дополнительные опции">12</param>
<param name="Гарантия (мес.)">15</param>
<param name="Страна производитель">19</param>
</offer>
Аналогичная проблема, пока не понял как исправить. Кстати та версия отлично работает на последней версии Joomla и JS
*

Kyrsor

  • Захожу иногда
  • 317
  • 4 / 2
Жалко, что данный вопрос не кому более не интересен. У кого работает на последней версии без проблем?
*

miklman

  • Осваиваюсь на форуме
  • 40
  • 0 / 0
Жалко, что данный вопрос не кому более не интересен. У кого работает на последней версии без проблем?
Очень даже интересен, не могу найти бесплатный плагин
*

timson

  • Осваиваюсь на форуме
  • 44
  • 3 / 0
Очень даже интересен, не могу найти бесплатный плагин
ВОТ же работающее решение
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Импорт/экспорт

Автор apirat

Ответов: 903
Просмотров: 202995
Последний ответ 17.06.2022, 21:10:28
от marksetter
Интеграция с Yandex.Market (заказы)

Автор Mikle_Shaman

Ответов: 10
Просмотров: 3326
Последний ответ 27.04.2022, 10:14:17
от Mikle_Shaman
Импорт товаров в Яндекс.Объявления

Автор demll

Ответов: 1
Просмотров: 3281
Последний ответ 04.02.2021, 09:32:19
от khan-alex
Для настройки Яндекс Маркет

Автор stardel

Ответов: 6
Просмотров: 4665
Последний ответ 03.12.2019, 20:00:35
от zikkuratvk
Перенос товаров из магазнина на Joomla 2.5 на Joomla 3.9

Автор dron

Ответов: 3
Просмотров: 3506
Последний ответ 09.04.2019, 14:27:51
от nevigen