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

specnazov

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Всем привет! Собственно весь вопрос в заголовке. По аналогии например с новостями на сайте - внизу указана дата обновления новости/акции. Нужно, чтобы покупатель видел внизу карточки товара дату обновления (в частности дату обновления наличия). Это поможет избежать какого-то процента ненужных вопросов. Например если человек видит, что наличие и цена обновилась сегодня - он не будет спрашивать актуальна ли цена, в спросит только в каком магазине можно этот товар приобрести.
*

kit2m2

  • Живу я здесь
  • 3366
  • 276 / 0
  • Беру сайты на полное сопровождение
В шаблоне карточки товара так:
Код
<?php print formatdate($product->date_modify, 1);?>

1 = Дата и Время
0 = Дата
« Последнее редактирование: 23.12.2020, 11:47:49 от kit2m2 »
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

Simply

  • Захожу иногда
  • 71
  • 7 / 1
А как сделать чтоб во всех карточках, стояла дата или время обновления любой последней карточки. Т.е. обновилось у меня сегодня 10 карточек, а остальные не обновились, но информация там актуальна на сегодняшний день, поэтому и дату хотелось бы отобразить сегодняшнюю.
*

kit2m2

  • Живу я здесь
  • 3366
  • 276 / 0
  • Беру сайты на полное сопровождение
Перечитал ваш пост несколько раз, так и не понял что Вы хотите:

1. Выводить во всех карточках Дату и Время (сегодняшнего обновления), не зависимо от того, обновлялся данный товар или нет?

2. Выводить только в обновленных карточках Дату и Время (на сегодня), то есть сегодняшнюю текущую дату?
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

Simply

  • Захожу иногда
  • 71
  • 7 / 1
да, первый пункт)
Просто есть позиции которые обновляются очень редко, но при этом там цена и наличие актуально и сейчас.
Сайт обновляется весь, каждый час, и если карточка не редактировалась, это не значит что там не нужно обновить дату, как то так.
*

kit2m2

  • Живу я здесь
  • 3366
  • 276 / 0
  • Беру сайты на полное сопровождение
А не проще тогда просто выводить текущую дату, если дата обновления все равно фиктивная?

Код
<?php
use Joomla\CMS\Factory;
echo Factory::getDate()->format('d F');// Формат даты можно изменить
?>
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

arma

  • Завсегдатай
  • 1752
  • 81 / 3
А разве не так? Или у вас переопределено?
*

arma

  • Завсегдатай
  • 1752
  • 81 / 3
Намудрили наверное
*

kit2m2

  • Живу я здесь
  • 3366
  • 276 / 0
  • Беру сайты на полное сопровождение
Намудрили наверное
Вы вообще о чем?
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

Simply

  • Захожу иногда
  • 71
  • 7 / 1
А не проще тогда просто выводить текущую дату, если дата обновления все равно фиктивная?

Код
<?php
use Joomla\CMS\Factory;
echo Factory::getDate()->format('d F');// Формат даты можно изменить
?>

нужно прикинуть, но скорее всего нужна привязка ко времени обновления
просто очень надоедают звонки с вопросами, а у вас точно есть в наличии, а цена актуальна, и вот как с этим бороться не понятно)
*

AlexB

  • Завсегдатай
  • 1973
  • 54 / 2
Так по наличию склад используйте
*

kit2m2

  • Живу я здесь
  • 3366
  • 276 / 0
  • Беру сайты на полное сопровождение
просто очень надоедают звонки с вопросами, а у вас точно есть в наличии, а цена актуальна, и вот как с этим бороться не понятно)
Такие звонки будут всегда, если раньше часто своих клиентов вводили в заблуждение... Они заказывали, а им говорили - "уже нет в наличии"

Тут нужно разбираться в вашем конкретном случае, как убедить своих клиентов делая заказ, не беспокоится...

нужно прикинуть, но скорее всего нужна привязка ко времени обновления

Еще смотря как Вы обновляете товар, импортом или вручную. Делал плагин для одного клиента (правда для админки) выводит дату последнего обновления (дату срабатывания импорта), но у него работает ежедневный автоматический импорт (обновления товаров).
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

kit2m2

  • Живу я здесь
  • 3366
  • 276 / 0
  • Беру сайты на полное сопровождение
Так по наличию склад используйте
Может так решит ваш вопрос:

Включить склад в настройках магазина и указать в каждом товаре конкретное количество, если товара на складе магазина = 0, то будет выводиться сообщение: "Нет в наличии".
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

AlexB

  • Завсегдатай
  • 1973
  • 54 / 2
Может так решит ваш вопрос:

Включить склад в настройках магазина и указать в каждом товаре конкретное количество, если товара на складе магазина = 0, то будет выводиться сообщение: "Нет в наличии".
Я к тому и написал
*

kit2m2

  • Живу я здесь
  • 3366
  • 276 / 0
  • Беру сайты на полное сопровождение
Я к тому и написал
Я просто пояснил, по подробнее
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

Simply

  • Захожу иногда
  • 71
  • 7 / 1
К сожалению показывать сколько товара в наличии не выйдет, конкуренты от зависти будут плохо спать))
На сайте сделал вывод надписи "в наличии", если остаток 0 надпись меняется на "нет в наличии", но это не работает потому что люди не доверят таким надписям, и правильно делают. Сам пару раз нарывался на такое, смотришь цену и наличие, приезжаешь в магазин, а там или цена другая или нет в наличии.
Так вот чтоб у людей было больше доверия хочется прикрутить надпись типо "актуально на дату время"
Сайт обновляется весь, автоматом, каждые 3 часа, интеграция с 1С.
*

AlexB

  • Завсегдатай
  • 1973
  • 54 / 2
Так количество и не выводится
И выводится для заказа онлайн
А так выкиньте запись уточняйте у оператора или бронируйте для офлайна
*

kit2m2

  • Живу я здесь
  • 3366
  • 276 / 0
  • Беру сайты на полное сопровождение
Так вот чтоб у людей было больше доверия хочется прикрутить надпись типо "актуально на дату время"
Так прикручивайте и выводите текущую дату и время

Как я Вам уже написал - Смотрим здесь

Форматы - https://docs.joomla.org/How_to_use_JDate/ru
« Последнее редактирование: 28.12.2020, 17:34:31 от kit2m2 »
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

WT JoomShopping Favorite - кнопки избранного в категории товаров и карточке тов

Автор sergeytolkachyov

Ответов: 25
Просмотров: 35700
Последний ответ 23.09.2025, 11:22:23
от Alex_gs
Атрибуты полей при оформлении заказа в JoomShopping

Автор goga_pgasovav

Ответов: 1
Просмотров: 622
Последний ответ 12.08.2025, 11:21:29
от kit2m2
Конфликт js шаблонов JoomShaper helix3 J5 с JoomShopping 5

Автор heartlink

Ответов: 6
Просмотров: 1398
Последний ответ 22.07.2025, 12:40:12
от heartlink
Модуль карусели товаров JoomShopping на Swiper.js для Joomla

Автор sergeytolkachyov

Ответов: 2
Просмотров: 2041
Последний ответ 04.07.2025, 10:30:36
от sergeytolkachyov
[Решено] Сбросить счётчик ID товаров JoomShopping

Автор goga_pgasovav

Ответов: 3
Просмотров: 1353
Последний ответ 13.02.2025, 00:11:20
от goga_pgasovav