Новости Joomla

Свои типы полей в Joomla.

Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много

Это большая тема, о которой можно говорить очень много. Самое главное, что возможности применения ограничиваются только вашей больной фантазией. Вы строите интерфейс своего модуля или плагина и вам нужно подтянуть данные из сторонней системы (список чего-нибудь по какому-нибудь API), чтобы сохранить выбранный id в Joomla. Или сделать какую-то проверку и в зависимости от неё показать то или иное сообщение пользователю. Для этого подойдут свои пользовательские типы полей. Интерфейс Joomla по большей части описан в XML-файлах. У каждого из них свои параметры. Некоторые не описаны в документации (manual.joomla.org), поэтому самым любопытным будет полезно заглянуть в собственно файлы фреймворка по пути

libraries/src/Form/FormField.php, а так же в
libraries/src/Form/Fields. У каждого класса поля перечислены его специфические свойства, которые можно описывать в XML. А в своём типе поля вы можете устанавливать эти значения программно. В моём модуле WT Quick links под капотом происходят изменения. Теперь для работы (в админке) ему нужен вспомогательный плагин. А в самом модуле нам бы проверить, а не выключен ли он? В Joomla есть тип поля Note - заметка. Его можно использовать для вывода примечаний.

<field type="note" name="your_note_for_user" label="Заголовок примечания" title="Альтернативный способ для заголовка" description="Текст примечания" class="col-12 alert alert-info" heading="h1" close="true" />

heading - указывать уровень заголовка.
close - позволяет закрыть это примечание. В классе поля
libraries/src/Form/Field/NoteField.php описана логика вывода. И в принципе оно нам подходит для нашей задачи. Но оно будет выводить сообщение всегда, а нам нужно только тогда, когда плагин отключён. Поэтому берём и создаём свой класс поля, который мы унаследуем от
NoteField. Это значит, что у нас в руках будет весь инструментарий стандартного поля
Note + то, что мы сами добавим. В XML-манифест добавляем наше поле

<field type="systempluginstatus" name="systempluginstatus" addfieldprefix="Joomla\Module\Wtquicklinks\Site\Fields"/>

-

type - имя файла и класса,-
addfieldprefix - указываем namespace к нашему классу, может быть любой нам нужный-
name - нельзя полю без имени...Это означает, что Joomla будет использовать класс поля из файла
modules/mod_wt_quick_links/src/Fields/SystempluginstatusField.php.А в классе поля будет написано следующее:

<?php // namespace для атрибута addfieldprefix namespace Joomla\Module\Wtquicklinks\Site\Fields; // нельзя напрямую обращаться к этому файлу defined('_JEXEC') or die; // подключаем родительский класс для переопределения use Joomla\CMS\Form\Field\NoteField; use Joomla\CMS\Language\Text; use Joomla\CMS\Plugin\PluginHelper; // имя класса и имя файла точь-в-точь class SystempluginstatusField extends NoteField { protected $type = 'Systempluginstatus'; protected function getLabel() { // если плагин не включён if(PluginHelper::isEnabled('system','wtquicklinks')) { // меняем свойства родительского класса $this->class = 'alert alert-danger w-100'; $this->element['label'] = '⚠️ А-а-а-а!'; $this->element['description'] = 'Плагин не включён!!'; // и просто рендерим его с нашими свойствами return parent::getLabel(); } // А иначе всё хорошо, скрываем поле из виду. $this->parentclass = 'd-none'; return ''; } }

Просто и удобно. И людям приятно, что о них позаботились и рассказали почему что-то не работает. @webtolkru#joomla #php #webdev #разработка

0 Пользователей и 1 Гость просматривают эту тему.
  • 106 Ответов
  • 21997 Просмотров
*

fale

  • Осваиваюсь на форуме
  • 46
  • 1 / 0
не работает на Joomla 2.5 . Обращался к разработчику - он сказал что времени у него нет и пока не планирует. Возможно будет, но когда неизвестно. Я вот думаю а переделать под Joomla 3 - не так ведь сложно. Они ведь похожи.
*

Arsik

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Яндекс при загрузке выдал ошибку:

Фатальная ошибка: Ошибка парсинга XML: Error parsing XML feed: Not allowed value "" for the attribute "id": XML tag "currency" (строка 12, столбец 25)

Что нужно заменить во вкладке "Шаблон":

$xml .= "<currency id=\"RUB\" rate=\"1\"/>\n";
вместо
Код:
$xml .= "<currency id=\"{$currency}\" rate=\"1\"/>\n";

вместо:
Код:
$xml .= "<currencyId>{$product->product_currency}</currencyId>\n";
вот так:
Код:
$xml .= "<currencyId>RUB</currencyId>\n";

Огромное спасибо, разработчику!

Joomla Версия 1.5.14
VirtueMart 1.1.3
« Последнее редактирование: 17.09.2015, 21:58:35 от Arsik »
*

slava_m

  • Новичок
  • 1
  • 0 / 0
Подскажите, пожалуйста, в файле выгрузки для товара стоит нулевая цена. Хотя в VirtueMart она проставлена. В чем может быть ошибка?
*

softman_xp

  • Захожу иногда
  • 318
  • 32 / 0
  • Разработка для Joomla
Подскажите, пожалуйста, в файле выгрузки для товара стоит нулевая цена. Хотя в VirtueMart она проставлена. В чем может быть ошибка?
Возможно, как-то необычно цены проставлены у вас, а данный компонент такой способ не предполагает.
Компоненты/модули/плагины для Joomla
(skype: navipoint)(mail: softman(собака)inbox(точка)ru)
*

mailrev

  • Захожу иногда
  • 182
  • 17 / 0
Если у товара стоит наценка по производителю, то компонент её не учитывает. Есть решение?
3.14здец
*

softman_xp

  • Захожу иногда
  • 318
  • 32 / 0
  • Разработка для Joomla
Нет, не учитывает.
Компоненты/модули/плагины для Joomla
(skype: navipoint)(mail: softman(собака)inbox(точка)ru)
*

andpuxa

  • Захожу иногда
  • 158
  • 4 / 5
  • Делаю сайты. Старательно и ответственно.
А подскажите пожалуйста, как на лету переконвертировать валюту? У меня все цены в долларах...
*

softman_xp

  • Захожу иногда
  • 318
  • 32 / 0
  • Разработка для Joomla
А подскажите пожалуйста, как на лету переконвертировать валюту? У меня все цены в долларах...
Виртумарт 2 ? Цена конвертиурется автоматом в ту, которая выводится на сайте (валюта продавца)
Компоненты/модули/плагины для Joomla
(skype: navipoint)(mail: softman(собака)inbox(точка)ru)
*

andpuxa

  • Захожу иногда
  • 158
  • 4 / 5
  • Делаю сайты. Старательно и ответственно.
Виртумарт 2 ? Цена конвертиурется автоматом в ту, которая выводится на сайте (валюта продавца)
Цена на сайте как вводится, так и выводится в долларах (особенности товара). Яндекс в долларах отказывается принимать, соответственно есть необходимость при формировании файла сразу все цены переводить в рубли... Вот я и прошу помощи.
*

softman_xp

  • Захожу иногда
  • 318
  • 32 / 0
  • Разработка для Joomla
Цена на сайте как вводится, так и выводится в долларах (особенности товара). Яндекс в долларах отказывается принимать, соответственно есть необходимость при формировании файла сразу все цены переводить в рубли... Вот я и прошу помощи.
А с чего вы взяли, что маркет примет ваш сайт ? Думаете модераторы вручную будут пересчитывать рублевые цены в прайсе в доларовые в магазине ?)
Раз в прайсе баксы отказывается принимать, то и на сайте их не должно быть
Компоненты/модули/плагины для Joomla
(skype: navipoint)(mail: softman(собака)inbox(точка)ru)
*

andpuxa

  • Захожу иногда
  • 158
  • 4 / 5
  • Делаю сайты. Старательно и ответственно.
Я с маркетом ни разу не сталкивался раньше, соответственно знаний по нему нет.
Т.е. вы хотите сказать, что на сайте должны быть строго рублёвые цены?
*

Liss

  • Захожу иногда
  • 238
  • 10 / 0
*

softman_xp

  • Захожу иногда
  • 318
  • 32 / 0
  • Разработка для Joomla
Я с маркетом ни разу не сталкивался раньше, соответственно знаний по нему нет.
Т.е. вы хотите сказать, что на сайте должны быть строго рублёвые цены?
Я не знаю, судя по ссылке выше - поддерживает, а по вашему утверждению - не принимает. Напишите им, чем догадки строить.
Компонент выводит те же цены что на сайте, в файл выгрузки и в той же валюте.
Компоненты/модули/плагины для Joomla
(skype: navipoint)(mail: softman(собака)inbox(точка)ru)
*

Лёша

  • Новичок
  • 9
  • 0 / 0
Да нет, есть просто обычная скидка, которая распространяется на определенную категорию товара. На сайте все отображается нормально, то есть нужная категория товаров отображается со скидкой, остальные нет. А вот в XML эта скидка действует на все товары.
Аналогичная проблема((
*

icec0ld

  • Новичок
  • 1
  • 0 / 0
Здравствуйте!
Joomla 3.5, WM 3, можно сделать, чтобы компонент работал?
*

Tellarius

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
....
В платной версии выгрузку по расписанию сделать нельзя, однако есть некоторые наработки в этом направлении и думаю в ближайшее время реализую это. Основная проблема - время выполнения скрипта при большом количестве товаров.
 .....
Подскажите, есть ли какие продвижения в этом направлении?
*

dron

  • Завсегдатай
  • 1581
  • 16 / 10
Народ, привет! Кто-то еще юзает этот компонент? Есть корректо работающий шаблон?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Выгрузка товаров в Яндекс.Маркет для VirtueMart 3.x, VirtueMart 4

Автор icom

Ответов: 791
Просмотров: 139899
Последний ответ 03.07.2023, 10:02:04
от strongest
Привязка товаров к категориям при импорте из csv

Автор max_max

Ответов: 8
Просмотров: 2963
Последний ответ 16.08.2021, 18:45:19
от max_max
csvi Pro 7.3.0. Игнорирование существующих полей пи импорте товаров

Автор Viktor

Ответов: 2
Просмотров: 2787
Последний ответ 13.12.2019, 22:44:43
от AlexB
CSVI импорт товаров - Ну никак.(РЕШЕНО!)

Автор vtrcmert

Ответов: 129
Просмотров: 51223
Последний ответ 13.09.2019, 16:05:21
от forlan
Расширения для импорта/экспорта

Автор fireman

Ответов: 0
Просмотров: 2513
Последний ответ 25.04.2019, 13:00:54
от fireman