Addon JoomShopping Custom Fields

Joomla 3 Joomla 4

Аддон JoomShopping Custom Fields (дополнительные поля) — это аддон, который позволяет добавлять товарам неограниченное количество дополнительных полей разного типа.

В аддоне доступны такие типы полей как:

  • input — обычное поле для ввода символов;
  • number — поле ввода чисел с возможностью задания минимального и максимального значения, а также шаг изменения значения;
  • tel — поле ввода номера телефона, введенное значение будет отображаться в виде ссылки с префиксом tel:;
  • email — поле ввода адреса e-mail, введенное значение будет отображаться в виде ссылки с префиксом mailto:;
  • link — поле ввода ссылки на вебресурс, введенное значение будет отображаться в виде ссылки, также возможно задать параметр target;
  • textarea — обычная область ввода текста;
  • editor — текстовый редактор Joomla с возможностью форматирования текста;
  • radio — кнопки выбора с возможностью выбора одного значения;
  • checkbox — флажки выбора с возможностью выбора нескольких значений;
  • select — список выбора с возможностью выбора одного значения;
  • combobox — список выбора с возможностью выбора нескольких значений;
  • image — поле выбора изображения с возможностью добавления одного изображения;
  • gallery — поле выбора набора изображений с возможностью добавления нескольких изображений и отображения их в виде галереи;
  • youtube — поле видео с канала Youtube, в данное поле необходимо указывать только идентификатор видео, который будет преобразован в видеоплеер;
  • calendar — поле выбора даты.

Помимо всего прочего, аддон JoomShopping Custom Fields имеет возможность создавать мультиязычные поля, что позволит заполнять данные отдельно для каждого языка сайта.

Аддон устанавливается из раздела «Компоненты» — «JoomShopping» — «Установка и обновление».

Поддержка версии аддона для Joomla 3 + JoomShopping 4 прекращена и в будущем будет удалена.

Особенности модуля

  • Возможность создания неограниченного количества полей;
  • Поддержка многоязычности сайта;
  • Не требует правок ядра;
  • Множество типов полей на все случаи;
  • Нет необходимости ставить дополнительные аддоны типа «Второе поле короткого описания» или «Второе поле полного описания»;
  • Возможность самостоятельно определять позиции для отображения полей;
  • Отсутствуют копирайты и вшитые скрытые ссылки.
  • Аддон абсолютно бесплатен, благодаря пожертвованиям пользователей, проявившим интерес к дополнению.

[свернуть]
Административная часть

[свернуть]
Тестирование

Модуль тестировался на следующих версиях компонентов и модулей:

  • Joomla 4.3.4
  • Joomla 4.2.9
  • Joomla 3.9.15
  • Joomla 3.9.27
  • JoomShopping 5.1.2
  • JoomShopping 4.18.5
  • JoomShopping 4.18.6

[свернуть]
История версий

0.1.2: (09.10.2023)
— Исправлена ошибка с типами полей radio, checkbox, select, combobox, из-за которой не сохранялось большое количество выбранных элементов

0.1.1: (24.03.2023)
— Поддержка Joomla 4 + JoomShopping 5;
— Исправлено отображение значений полей типа Checkbox и Radiobox в карточке товара в административной панели

0.0.7: (19.12.2021)
— Удалена привязка к домену и соответствующий зашифрованный код, теперь аддон распространяется бесплатно.

0.0.6: (23.06.2021)
— Внесено исправление для совместимости с JoomShopping 4.18.6;
— Внесено критическое исправление, из-за которого при сохранении настроек внутри других аддонов удалялись поля в аддоне Custom Fields;
— Устранена ошибка, возникающая при попытке установить аддон поверх установленного.

0.0.3: (15.02.2020)
— Добавлен набор различных типов полей для добавления;
— Исправлена работа мультиязычных полей.

0.0.1: (23.11.2019)
— Возможность создания полей вида input;
— Организован вывод поля в позиции на свое усмотрение;
— Добавлена мультиязычность полей.

[свернуть]
В будущих версиях

  • Добавление поля повторителя полей;
  • Переработка окна создания полей.

[свернуть]
F.A.Q.

В: Есть ли привязка к домену?
О: Нет. Аддон бесплатный и может устанавливаться на любое количество доменов.

В: Будет ли аддон работать с JoomShopping 3?
О: Нет.

В: Есть ли в планах разработка аддона для JoomShopping 3?
О: Нет.

В: Не получается установить аддон, что я делаю не так?
О: Аддон устанавливается из раздела «Компоненты» — «JoomShopping» — «Установка и обновление». Если и в этом случае не устанавливается, напишите о проблеме на почту info@blog-about.ru

В: Где находятся настройки аддона?
О: Настройки аддона доступны из раздела «Компоненты» — «JoomShopping» — «Опции» — «Расширения», справа от аддона «JoomShopping addon — Custom Fields» нажмите кнопку в поле «Конфигурация». После активации аддона в карточке товара появится вкладка «Custom Fields», где можно заполнить все созданные поля.

В: Будет ли работать аддон с кастомным шаблоном JoomShopping?
О: Работа аддона с кастомизированным шаблоном JoomShopping не гарантируется. Всё зависит от степени его кастомизации.

В: Аддон установился нормально, настройки произведены, но результата никакого, где проблема?
О: Если у Вас переопределен шаблон JoomShopping в Вашем шаблоне Joomla, то откройте файл /templates/ВАШШАБЛОН/html/com_jshopping/list_products/product.php Если у Вас стандартный шаблон JoomShooping или он переопределен согласно рекоммендациям JoomShopping, то откройте файл /components/com_jshopping/templates/ВАШШАБЛОН/list_products/product.php
В файле должны быть строки следующего вида:
— print $product->_tmp_product_html_start;
— print $product->_tmp_product_html_before_image;
— print $product->_tmp_product_html_body_image;
— print $product->_tmp_product_html_after_image;
— print $product->_tmp_product_html_before_image_thumb;
— print $product->_tmp_product_html_after_image_thumb;
— print $product->_tmp_product_html_after_video;
и т.п., в противном случае аддон срабатывать не будет.

В: Как задать параметры для ссылки или числового поля?
О: Достаточно в поле «Значения» перечислить параметры (каждый параметр с новой строки), например min=»20″ или target=»_blank».

[свернуть]
Возможные конфликты и требования

  • Для работы модуля необходима версия PHP не ниже 5.6;

[свернуть]

Вложения

Только Joomla 4+ и JoomShopping 5+
Только Joomla 3+ и JoomShopping 4+

Комментарии

  • Владимир
    Отвечая на свой вопрос в предыдущем сообщении могу сказать, что нашёл решение, хоть и совсем не изящное...
    Чтобы вывести значение кастомного поля на в карточке товара на странице категории, нужно в шаблоне list_products/product.php (в начале файла) добавить следующее:

    $hover_photo = JFactory::getDbo()->setQuery("SELECT `ba_custom_field_1` FROM `#__jshopping_custom_fields_values` WHERE `id_product` = $product->product_id")->loadResult();

    Затем в месте, где необходимо вывести данные из поля пишем:

    <?php if ($hover_photo != null) { echo ''; } ?>

    В моём случае я вывожу доп.изображение для товара. Вы же можете модифицировать данный код для себя.

    Автору расширеня большое спасибо, и два вопроса: можно ли как-то более изящно решить данную задачу (без getDbo() запроса), и не планируется ли подобный плагин для категорий? Т.е. чтобы можно было именно категориям добавлять дополнительные поля?
    • Blog About
      Не совсем понял, зачем. В настройках аддона для каждого поля можно указать позицию как в самой карточке товара, так и в товаре в списочном отображении (т.е. в категории).

      Пример: для поля указали позицию в списке "после изображения". Это позиция _tmp_var_bottom_foto и если открыть файл /list_products/product.php шаблона JoomShopping то можно найти эту позицию. По необходимости её можно передвинуть выше/ниже в пределах самого товара, как будет удобнее.

      Если же Вы планируете выводить поле за рамками конкретного товара, тогда тут без getDbo не обойтись.
      P.S.: Нет, для категорий не планируется такого дополнения.
  • Владимир
    Здравствуйте!
    Скажите пожалуйста, как можно вывести данные из кастомного поля вашего плагина на странице категории товаров? Т.е. в шаблоне list_products/product.php
    Заранее спасибо!
    • Blog About
      Добрый день. Да, выводятся на основе настроек аддона.
      В настройках аддона, когда создаете поля, там есть выбор позиции в карточке товара и в списке, выберите нужные позиции для отображения http://joxi.ru/xAeB96yTPP8egr

      Пример есть в демо на странице https://blog-about.ru/demo/magazin/odezhda/futbolki.html (последний товар)

      Если всё равно не выводится, то вполне возможно у Вас переопределен шаблон и в нём могут быть удалены стандартные позиции вывода для аддонов.
  • Александр
    3. И возможно ли в поле Галерея добавить возможность заполнять alt?
    • Blog About
      Такой возможности нет, даже и в голову не приходило такое. Для фотографий товара Вы ведь тоже не можете указать alt... Возможно возьму в будущие доработки.
  • Александр
    1. Когда планируется выпуск добавление поля повторителя полей?
    2. Возможно ли сделать переопределение шаблона вывода полей?
    • Blog About
      Добрый день.
      1. Пока, к сожалению, катастрофически не хватает времени вернуться к доработкам аддона, потому ничего не могу обещать
      2. Именно переопределение нет, всё зашито в плагине. Максимум можете только отредактировать в файле /plugins/jshoppingproducts/ba_custom_fields/ba_custom_fields.php формат отображения в методе generate_html_field
  • Надежда
    Огромное спасибо вам за этот аддон! Прямо находка века, однако случилось одно НО - в тип "Текстовый редактор" не вставляется модуль Joomla с кодом типа {loadmoduleid 123}, так и отображает этот код, а не содержимое модуля. Скажите пожалуйста, возможно ли это как-то исправить?
    • Blog About
      Добрый день. Спасибо за отзыв.
      Он и не должен выводить, т.к. обработку плагинов нужно включать отдельно, да и в аддоне это в принципе не реализовано.
      Остается только ждать обновления. Либо, если у Вас Joomla 4 и если есть доступ к FTP, то откройте файл ba_custom_fields.php в каталоге /plugins/jshoppingproducts/ba_custom_fields/ (главное, сперва сделайте копию файла на всякий случай)

      В этом файле в самом начале сразу после строки:
      defined('_JEXEC') or die('Restricted access');
      Добавьте строку:
      use Joomla\CMS\HTML\HTMLHelper;

      Ниже в этом же файле, примерно в 165-ой строке найдите строку (там еще должно быть подписано case 'editor'):
      $html .= '<div class="field_content">' . $value . '</div>';
      И замените на следующую строку:
      $html .= '<div class="field_content">' . HTMLHelper::_('content.prepare', $value) . '</div>';
  • Boris
    Вещь - ну просто незаменимая, только вот с мультиязысночтью не разобрался. Подскажите, как добавить заголовки на других языках.
    • Blog About
      Добрый день. К сожалению момент с заголовками я как-то упустил, поэтому соответствующего функционала нет. Придется в коде копаться.
  • Андрей
    Огромное спасибо за плагин! Очень Полезный. Скажите, за отдельную плату можно его "допилить". В частности необходимо:
    1. Опция, которая позволяла бы выводить поле только в товарах, которых нет в наличии.
    2. Вывод поля в произвольном месте.

    Заранее спасибо!
    • Blog About
      Добрый день.

      2-ой пункт в принципе не осуществимо, т.к. аддон выводит поля только в специальных позициях, которые предоставляются самим шаблоном JoomShopping.
      Как вариант, Вы можете выбрать какую-нибудь ненужную Вам позицию, например "после видео", сохраните в нее поля. После этого отредактируйте файл product_default.php в каталоге /components/com_jshopping/templates/ВАШ_ШАБЛОН/product/
      В этом файле найдите строку <?php print $this->_tmp_product_html_after_video;?> (если например "после видео", если другую позицию выбрали, то соответственно искать придется другую строку, но принцип тот же), вырежите ее и вставьте в любое интересующее Вас место в этом же файле

      1-ый пункт, можете попробовать аналогичным образом, выберите какую-нибудь позицию, например "перед файлами демо", в том же файле найдите <?php print $this->_tmp_product_html_before_demofiles; ?>, перенесите в нужное место и оберните в условие
      <?php if (!$this->config->hide_text_product_not_available){ ?>
      <?php print $this->_tmp_product_html_before_demofiles; ?>
      <?php }?>
      Насчет самого условия не помню, нужно именно проверять, но вроде именно это должно определять, есть в наличии товар или нет
  • Сергей
    Добрый день,
    Подскажите пожалуйста,
    Как вывести дополнительные поля в произвольном месте товара?
    • Blog About
      Добрый день. Вы можете вывести дополнительные поля только в специальных позициях, перечень которых значится в полях "Позиция в карточке" и "Позиция в списке", когда создаете поле. Эти позиции предоставляются самим компонентом JoomShopping.
  • Алекс
    Подскажите как к полю gallery приклеить слайдер? например на основе owl карусели?
    • Blog About
      Вы можете воспользоваться инициализацией из шаблона.
      Например в index.php Вашего шаблона подключить owl, и проинициализировать согласно документации.
      В качестве селектора использовать $('.custom_field .field_gallery').owlCarousel()
  • Максим
    Здравствуйте! А как потом получить эти поля в корзине или в заказе? Где в БД хранятся их значения или как передать параметры в корзину?
    • Blog About
      Добрый день. Аддон позволяет отображать поля только в списке товаров и в карточке товаров.
      Для вывода в корзине и заказе не подразумевается. Для этого нужно дополнительно дорабатывать аддон.
  • Александр
    Доброго времени суток.
    Есть ли возможность добавить поле
    ----
    Поле "Изображение до (медиа поле) - Изображение после (медиа поле)"
    ----
    С возможностью сделать это поле повторяемым?!
    Спасибо.
    • Blog About
      Добрый день.
      К сожалению нет. На данный момент "повторители" только в задумке.
  • Михаил
    Большое спасибо Павлу за отличное расширение, которое решило ряд задач при разработке интернет-магазина тканей! Как раз требовалось реализовать в карточке товара дополнительные поля с разными характеристиками (галереи и текст) и с этим аддон справился на 5+. Выбрав Addon JoomShopping Custom Fields - мы сэкономили много времени на разработку аналогичного функционала.
    Всем разработчикам, которым требуется описанный в статье функционал - рекомендую к покупке!

Добавить комментарий