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

sakor

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Атрибуты Select в корзине
« : 07.10.2019, 18:01:01 »
Добрый день, подскажите кто сможет
если есть несколько независимых атрибутов в виде селектов,
1-выберите цвет: -нет; красный; синий
2-выберите размер: -нет; 36; 40; 50
3-выберите вес: -нет; 2кг; 3кг; 5кг

подскажите, как можно перенести и отобразить в корзине только выбранный атрибут, а то сейчас переносятся ->
выберите цвет: красный
выберите размер: нет
выберите вес: нет

а правильнее в корзине отобразить так->
выберите цвет: красный

JoomShopping-4.16
вариант:
foreach($atribute as $attr){
    if ($attr->value == 'нет') continue;
почему-то не работает......, или просто не хватает знаний, как правильно добавить эту функцию
*

ProtectYourSite

  • Живу я здесь
  • 2366
  • 138 / 4
  • Безопасность вебсайтов
Re: Атрибуты Select в корзине
« Ответ #1 : 07.10.2019, 23:45:10 »
Print_r или var_dump от $attr->value что выдает ?
*

kit2m2

  • Живу я здесь
  • 3366
  • 276 / 0
  • Беру сайты на полное сопровождение
Re: Атрибуты Select в корзине
« Ответ #2 : 08.10.2019, 05:29:50 »
В настройках JoomShopping - Редактировать конфигурацию / Товар поставьте галочку - Первое значение атрибута (пусто)

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

sakor

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Атрибуты Select в корзине
« Ответ #3 : 08.10.2019, 10:07:53 »
Print_r или var_dump от $attr->value что выдает ?

К сожалению вопрос сложный и непонятный
*

sakor

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Атрибуты Select в корзине
« Ответ #4 : 08.10.2019, 10:31:03 »
В настройках JoomShopping - Редактировать конфигурацию / Товар поставьте галочку - Первое значение атрибута (пусто)

А опции "-нет" в ваших атрибутах удалите. И будет только выбранные значения передаваться в корзину.

Спасибо, что откликнулись.
При включении "Товар поставьте галочку - Первое значение атрибута (пусто)" -> при выборе опции атрибута появляется - "Внимание
Пожалуйста, выберите параметры"

Наверное "Товар поставьте галочку - Первое значение атрибута (пусто)" должно быть с
"foreach($atribute as $attr){
    if ($attr->value == 'нет') continue;"
- непонятно где добавить, или
1) com_jshopping / templates / default / cart - результата нет,
или
2) com_jshopping / lib/functions.php - выходит ошибка на странице,

подскажите правильное решение
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Re: Атрибуты Select в корзине
« Ответ #5 : 08.10.2019, 11:11:35 »
К сожалению вопрос сложный и непонятный
что сложного, посмотреть синтаксис рнр ?
Код
print_r($attr->value)
что выдает ?

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

kit2m2

  • Живу я здесь
  • 3366
  • 276 / 0
  • Беру сайты на полное сопровождение
Re: Атрибуты Select в корзине
« Ответ #6 : 08.10.2019, 11:18:33 »
при выборе опции атрибута появляется - "Внимание
Пожалуйста, выберите параметры"

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

Не нужно ничего городить в шаблоне. если сделаете как я написал то у вас будет так:

1-Цвет: -Выберите; красный; синий
2-Размер: -Выберите; 36; 40; 50
3-Вес: Выберите; 2кг; 3кг; 5кг

В корзину будет передаваться только выбранное значение конкретного атрибута, остальные передаваться не будут.

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

sakor

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Атрибуты Select в корзине
« Ответ #7 : 08.10.2019, 12:59:59 »
Появляется наверно потому, что ваш конфликтует, уберите его. При независимых атрибутах не должно появляться, на то они и независимые

Не нужно ничего городить в шаблоне. если сделаете как я написал то у вас будет так:

1-Цвет: -Выберите; красный; синий
2-Размер: -Выберите; 36; 40; 50
3-Вес: Выберите; 2кг; 3кг; 5кг

В корзину будет передаваться только выбранное значение конкретного атрибута, остальные передаваться не будут.

Представленный результат тот, который нужен - "В корзину будет передаваться только выбранное значение конкретного атрибута, остальные передаваться не будут".

Есть один зависимый атрибут, его отключение и отключение свободных атрибутов не помогает.
default незначительно изменён - удаленно выбор кол-ва, может причина в этом

Спасибо за ответ

может есть другое решение (может через CSS или шаблон-?)
*

kit2m2

  • Живу я здесь
  • 3366
  • 276 / 0
  • Беру сайты на полное сопровождение
Re: Атрибуты Select в корзине
« Ответ #8 : 08.10.2019, 13:10:09 »
default незначительно изменён - удаленно выбор кол-ва, может причина в этом
Никто не знает что и как у Вас шаблоне изменено... Поэтому верните все по дефолту и все заработает.

Зачем убирать выбор кол-ва?

Есть один зависимый атрибут, его отключение и отключение свободных атрибутов не помогает.
Вы же ранее писали что у Вас только независимые атрибуты? Независимые и Свободные атрибуты это не одно и тоже.

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

sakor

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Атрибуты Select в корзине
« Ответ #9 : 08.10.2019, 13:28:57 »
что сложного, посмотреть синтаксис рнр ?
Код
print_r($attr->value)
что выдает ?

Может здесь ответ,
<?php } ?>   
                <?php print sprintAtributeInCart($prod['attributes_value']); ?>   
                <?php print sprintFreeAtributeInCart($prod['free_attributes_value']); ?>   
                <?php print sprintFreeExtraFiledsInCart($prod['extra_fields']); ?>   
                <?php print $prod['_ext_attribute_html'] ?>   
   
или
   
<?php if ($this->discount > 0){ ?>   
            <tr class="discount">   
                <td class="name">   
                    <?php print _JSHOP_RABATT_VALUE ?><?php print $this->_tmp_ext_discount_text?>   
                </td>   
                <td class="value">   
                    <?php print formatprice(-$this->discount);?><?php print $this->_tmp_ext_discount?>   
                </td>   
            </tr>   
        <?php } ?>   

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

*

sakor

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Атрибуты Select в корзине
« Ответ #10 : 08.10.2019, 14:25:16 »
Никто не знает что и как у Вас шаблоне изменено... Поэтому верните все по дефолту и все заработает.

Зачем убирать выбор кол-ва?
Вы же ранее писали что у Вас только независимые атрибуты? Независимые и Свободные атрибуты это не одно и тоже.

Вообщем хотите помощи покажите сайт.

Сайт пока не открыт, только начинает заполняется (похвалится нечем).
Ваше решение правильное, только не совсем подходит в данном случае.

Возможно добавить функцию, только как правильно реализовать непонятно -
JoomShopping и товары с атрибутами

Для не специалиста, иногда бывает трудно разобраться, где и куда добавить
*

kit2m2

  • Живу я здесь
  • 3366
  • 276 / 0
  • Беру сайты на полное сопровождение
Re: Атрибуты Select в корзине
« Ответ #11 : 08.10.2019, 15:19:39 »
Сайт пока не открыт, только начинает заполняется (похвалится нечем).
Ваше решение правильное, только не совсем подходит в данном случае.
Причем здесь "хвалиться", чтобы помочь нужно глянуть на пациента.

Не подходит в каком случае?

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

sakor

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Атрибуты Select в корзине
« Ответ #12 : 08.10.2019, 16:48:57 »
Причем здесь "хвалиться", чтобы помочь нужно глянуть на пациента.

Не подходит в каком случае?

Вообще если ждете решения вашей специфической задачи, то Вам в коммерческий раздел. Тут могут задать только направление и Вам уже два раза его дали, но Вы ждете решения ваших проблем...

вроде вопросы простые и есть готовые решения, которые нужно просто правильно добавить

всем откликнувшимся спасибо
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как добавить 2 налога на один товар + отображение 2-х налогов в корзине?

Автор tigra-uki

Ответов: 3
Просмотров: 2329
Последний ответ 05.05.2023, 13:03:22
от kit2m2
Как создать (суб)атрибуты для части (для некоторых) атрибутов?

Автор ltdmercury

Ответов: 3
Просмотров: 2589
Последний ответ 25.02.2023, 12:42:02
от kit2m2
Зависимые свободные атрибуты

Автор Evgen63

Ответов: 8
Просмотров: 2758
Последний ответ 04.01.2022, 15:58:13
от Evgen63
Как выделить в отдельный блок атрибуты из одной группы в карточке товара?

Автор tigra-uki

Ответов: 6
Просмотров: 1220
Последний ответ 01.07.2020, 21:24:21
от tigra-uki
Свободный атрибут в корзине

Автор anny_k

Ответов: 7
Просмотров: 1420
Последний ответ 22.02.2020, 10:17:01
от anny_k