Новости Joomla

Совет по Joomla: несколько значений по умолчанию в XML-формах для стандартных полей типа list

👩‍💻 Совет по Joomla: несколько значений по умолчанию в XML-формах для стандартных полей типа list.При работе над плагином возникла необходимость указать стандартный набор из нескольких элементов стандартного поля списка. И хотелось указать их в стандартном же атрибуте default для полей. Когда это нужно?Когда Ваши пользователи устанавливают плагин и НЕ заходят в настройки - в коде вы можете использовать значения по умолчанию с помощью класса Registry (писал об этом ранее) и всегда быть уверенным, что хоть какие-то жизненно необходимые параметры к вам придут всегда. 🧐 Но как сделать то же самое для интерфейса админки?Пользователя нужно направлять, предлагать очевидный работоспособный сценарий для начала, а дальше он уже сам разберется. Когда человек заходит в параметры свежеустановленного плагина в Form ещё нет данных и параметры по умолчанию выставляются из атрибутов default в xml-полях.
<field name="showdesc" type="radio"                       label="PLG_CFI_PARAM_SHOWDESC"                       class="btn-group btn-group-yesno"                       default="1">                    <option value="0">JNO</option>                    <option value="1">JYES</option>                </field>
Здесь по умолчанию будет включено "Да". И если пользователь не переключит параметр, то при сохранении мы ожидаемо получим "да" в params плагина.Для поля списков type=&quot;list&quot; можно указать значение по умолчанию и многие знают, что его можно указать только одно.
<field type="list"                       name="article_fields"                       label="article_fields"                       description="article_fields_desc"                       layout="joomla.form.field.list-fancy-select"                       multiple="true"                       default="id"                >                    <option value="id">id</option>                    <option value="title">title</option>                    <option value="alias">alias</option>                    <option value="introtext">introtext</option>                    <option value="fulltext">fulltext</option>                    <option value="state">state</option></field>
Но у нас поле с множественным выбором (атрибут multiple) и хотелось бы указать несколько значений по умолчанию...Оказывается, так можно сделать. Для этого в атрибуте default нужно указать json с нужными параметрами в виде {int}key : {string} value.Например, default='{"0":"id","1":"title"}'.
<field type="list"                       name="article_fields"                       label="article_fields"                       description="article_fields_desc"                       layout="joomla.form.field.list-fancy-select"                       multiple="true"                       default='{"0":"id","1":"title"}'                >                    <option value="id">id</option>                    <option value="title">title</option>                    <option value="alias">alias</option>                    <option value="introtext">introtext</option>                    <option value="fulltext">fulltext</option>                    <option value="state">state</option></field>
⚠️ Обратите внимание на кавычки! Поскольку json_decode не понимает одинарные кавычки собственно json нужно писать с двойными, а значение для атрибута default писать в одинарные.🙏 За подсказанное решение огромное спасибо участникам нашего сообщества - разработчикам Дмитрию Васюкову (@fictionlabs) и Игорю Бердичевскому (@septdir).@joomlafeed#joomla #разработка #webdev #development

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

nevigen

  • Легенда
  • 10451
  • 863 / 25
  • http://n*****n.com
Генератор купонов на следующие покупки JoomShopping



Любой покупатель становится более лояльным к магазину, при получении каких либо приятных мелочей за покупки.
Пусть это будет брелок, открытка или открывалка для бутылок.
Любой подарок будет уместным и существенно повлияет на окончательное мнение. Ведь последние слова запоминаются лучше всего.
А можно использовать последние слова как стимул к повторной покупке, например выдав не просто брелок и отпустить клиента,
а дать ему купон и возможность сэкономить на покупках у Вас же в следующий раз

Данный аддон позволяет:

  • задать статус заказа при котором генерируется купон
  • задать пре- и пост-суффикс для купона
  • задать разрядность купона (кол-во знаков)
  • принцип формирования процент или значение (с указанием самого значения)
  • задать формирование одноразового или многоразового купона
  • задать срок действия купона (от текущей даты, в днях)
  • задать персонализацию купона (для всех/для клиента)
  • отправить отдельное письмо клиенту
  • задать группы для которых купоны не генерируются (планируется)
  • задать минимальную сумму заказа, при которой купоны генерируются (планируется)
  • задать способы оплаты, при которых купоны генерируются (планируется)
  • задать выдачу купона на конкретный товар/категорию/производителя (планируется)
  • работает с любым способом оплаты  ^-^

Купон сохраняется в списке купонов, и может быть отражен покупателю при использовании "Расширенного профиля клиента"

Стоимость $25.00
Лицензия: на домен
НЕ ИСПОЛЬЗУЮТСЯ Zend/IonCube.

Более подробно почитать а также приобрести.
« Последнее редактирование: 11.04.2013, 20:04:21 от nevigen »
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

jorevo

  • Давно я тут
  • 595
  • 13 / 1
Данный аддон позволяет:
...
  • отправить отдельное письмо клиенту

О, наконец то! Спасибо! Тока чота я не вижу отдельного макета для красочного письма с рюшечками и завитушками.
*

nevigen

  • Легенда
  • 10451
  • 863 / 25
  • http://n*****n.com
отказались в пользу универсальности и мультиязычности.
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

jorevo

  • Давно я тут
  • 595
  • 13 / 1
А в чём тут может быть ущерб универсальности? Сделайте минималистический шаблон, чтобы в нём было только код купона, а остальное, кому надо сам нарисует... в принципе можно банальным инклюдом "тело письма" цеплять - тока надо как то предусмотреть, чтобы при установки обновленной версии файл шаблона не затирался, если он уже существует. А ещё лучше, если в настройках аддона можно будет указать файл шаблона.
*

nevigen

  • Легенда
  • 10451
  • 863 / 25
  • http://n*****n.com
универсальность для использования на мультиязычных сайтах.

будет отдельное решение которое будет решать вопрос в комплексе.
по всем расширениям сразу единым центром рассылки.
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

jorevo

  • Давно я тут
  • 595
  • 13 / 1
универсальность для использования на мультиязычных сайтах.

Может я как то не так понимаю мултиязычность, но юникод вроде никто не отменял... да и переменные в языковых файлах тоже

Цитировать
будет отдельное решение которое будет решать вопрос в комплексе.
по всем расширениям сразу единым центром рассылки.

это конечно хорошо, что оно решит всё в комплексе, плохо что будет это неизвестно когда )
*

dmitry_stas

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

jorevo

  • Давно я тут
  • 595
  • 13 / 1
Так я же с самого начала писал, что в качестве шаблона для тела письма можно использовать инклюд PHP кода, тогда и выдумывать нечего и ничего никуда передавать не надо. Хошь ленговые переменные, а хочешь прямо национальным алфавитом рубай в UTF-8.

И да, спасибо, что на "мульти" глаза открыли... а то прямо некому было сокровенным знанием поделиться! )
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Цитировать
Может я как то не так понимаю мултиязычность, но юникод вроде никто не отменял
открыл, потому что это прочел.

Цитировать
в качестве шаблона для тела письма можно использовать инклюд PHP кода
в чем принципиальная разница с тем, как сделано сейчас?

Неправильно вопрос задал. что вы хотите сделать такого, чего не позволяет текущая реализация?
« Последнее редактирование: 13.04.2013, 16:21:53 от dmitry_stas »
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

jorevo

  • Давно я тут
  • 595
  • 13 / 1
Неправильно вопрос задал. что вы хотите сделать такого, чего не позволяет текущая реализация?

Да собственно всё она позволяет, по живому то править не проблема... предложение проистекает из соображений удобства.

Выделить в отдельный файл код:
Код
$message = JText::sprintf('COUPON_AFTER_ORDER_MESSGE', $coupon_value, $coupon->coupon_code, $days_for_use);

Ну и соответственно следить за тем, чтобы это файлик устанавливался только при первой установке.

Собственно и получится темплейт для письма - дешево и сердито. ) Ну и наверное что то придётся изменить, чтобы тело письма не из одной текстовой строчки было, а кушало бы форматированный текст или даже HTML.

« Последнее редактирование: 13.04.2013, 18:10:16 от jorevo »
*

nevigen

  • Легенда
  • 10451
  • 863 / 25
  • http://n*****n.com
дополнительный апдейт

Теперь в настройках плагина можно задавать альтернативный шаблон, чтобы при обновлении не затрагивались изменения.
для этого надо в папке tmpl создать еще один файл (или скока угоднофайлов) шаблона и в настройках плагина выбрать этот шаблон
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

jorevo

  • Давно я тут
  • 595
  • 13 / 1
Теперь в настройках плагина можно задавать альтернативный шаблон

Спасибо, оперативно! Вроде всё как хотелось есть. )
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

SM WT Cdek аддон доставки для JoomShopping

Автор sergeytolkachyov

Ответов: 10
Просмотров: 7882
Последний ответ 22.09.2025, 12:08:38
от sergeytolkachyov
Nevigen Audit JoomShopping 5+

Автор nevigen

Ответов: 1
Просмотров: 4555
Последний ответ 10.09.2025, 18:35:12
от nevigen
WT JoomShopping Bitrix24 PRO, плагин отправки заказов в CRM Битрикс24

Автор sergeytolkachyov

Ответов: 8
Просмотров: 5982
Последний ответ 03.09.2025, 20:33:18
от sergeytolkachyov
Модуль ajax корзины для JoomShopping 5+

Автор nevigen

Ответов: 0
Просмотров: 775
Последний ответ 05.03.2025, 19:04:46
от nevigen
ARTIMEX - импорт экспорт товаров JoomShopping 5+

Автор nevigen

Ответов: 2
Просмотров: 2305
Последний ответ 15.12.2024, 20:14:35
от nevigen