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

Snip

  • Захожу иногда
  • 236
  • 14 / 1
Отключил регистрацию, товары добавляются в корзине и всё стандартно, появляется окно где нужно заполнить поля, а вот внизу предлагается "Адрес доставки другой?"
Как избавиться от того, что внизу, от этого предложения? Как скрыть или удалить? На скрине ниже



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

*

Snip

  • Захожу иногда
  • 236
  • 14 / 1
Эли, спасибо, по ссылке то, что надо, помогло "комментирование". Подсказали папку, а там сам разобрался.

Но осталась вторая проблема, и без подсказки тоже не получается.
На финишной странице, адрес доставки он пишет Имя/Фамилию и еще один параметр, а в конце к тому же не точка, а запатая. как будто чего-то не хватает, т.е. то что на втором скрине сверху.

Вроде понял, что берется код из файла previewfinish из папки с шаблоном и вроде понятно глядя на него почему он с "нехватками".

Код: php
<strong><?php print _JSHOP_FINISH_DELIVERY_ADRESS ?></strong>: 
<?php if ($this->delivery_info['firma_name']) print $this->delivery_info['firma_name'].", ";?> <?php print $this->delivery_info['f_name'] ?>
<?php print $this->delivery_info['l_name'] ?>, <?php if ($this->delivery_info['street']) print $this->delivery_info['street'].","; ?>
<?php if ($this->delivery_info['state']) print $this->delivery_info['state']."," ?>
<?php print $this->delivery_info['zip']." ".$this->delivery_info['city']." ".$this->delivery_info['country']?>

Конечно первая мысль прописать вместо параметров типа "firma_name", "street" и т.д. свои параметры, не не выйдет, т.к. не могу понять как сам его изменить.
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
какая-то область - это что у нас state?
тогда в предпоследней строке - в конце, уберите запятую
*

Snip

  • Захожу иногда
  • 236
  • 14 / 1
Суть вашу понимаю, как избавиться от запятой. Но все же, как туда вставить свое?

По сути полей в регистрации много, какие то включаем в админке, какие то отключаем, но все же их много.
Код который я привел из файла показывает всего 9 полей, начиная с фирмы и заканчивая страной, других там нет.
Соответственно какие бы при регистрации я поля не заполнил, в этой форме на последнем шаге высветятся только эти оорганиченные поля и то, если они присутствуют при реге. Я не понимаю, почему разработчики так сделали. Поэтому и хочется, чтобы вывелись все заполненные и телефон и т.д.
« Последнее редактирование: 14.09.2012, 23:34:13 от Snip »
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
открываете базу, таблица _jshopping_orders - смотрите поля какие надо (думаю по названию понятно будет?) и дописываете необходимое аналогично приведенным строчкам.
метод приблизительный, сработает на 99%))
*

Snip

  • Захожу иногда
  • 236
  • 14 / 1
База данных не помогла, слишком муторно. Переписал контроллер.

Эли спасибо за помощь.
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
да переписывать видимо надо
« Последнее редактирование: 16.09.2012, 13:34:23 от ELLE »
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
В настройках отключить можно поля (Поля регистрации) (отключите все поля для доставки)
*

Snip

  • Захожу иногда
  • 236
  • 14 / 1
В настройках отключить можно поля (Поля регистрации) (отключите все поля для доставки)
Данный метод поможет только в том случае, если не использовать вообще никакие поля, кроме дефолтных, поэтому он не подходит большинству пользователей.
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Я вас не понимаю. (почему)
*

brood

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
Вопрос наоборот, как мне оставить только "Адрес доставки другой?". Я знаю что в админке надо отключить все поля, но дело в том что по любому показывает вопрос "Адрес доставки другой?" и форма скрыта, как мне сделать чтоб форма сразу показывалась а вопроса чтобы не было! Help!
*

nevigen

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

sterveo

  • Захожу иногда
  • 60
  • 1 / 0
Может поздно, может и кому-то поможет.
Чтобы убрать "Адрес доставки другой" , достаточно его отключить через настройки, а именно : JS/Настройки/Поля регистрации/ там видим три колонки "Регистрация"--"Адрес"--"Изменить мои данные", в колонке "Адрес" смотрим и ищем второй блок колонки "Адрес доставки" и там снимаем все галочки, вот и все.
*

Uran_jf

  • Осваиваюсь на форуме
  • 22
  • 0 / 0
Re: Парни, как удалить
« Ответ #14 : 06.06.2018, 07:46:08 »
Вопрос наоборот, как мне оставить только "Адрес доставки другой?". Я знаю что в админке надо отключить все поля, но дело в том что по любому показывает вопрос "Адрес доставки другой?" и форма скрыта, как мне сделать чтоб форма сразу показывалась а вопроса чтобы не было! Help!
такой же вопрос, как решили?
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Re: Парни, как удалить
« Ответ #15 : 06.06.2018, 14:49:33 »
такой же вопрос, как решили?
может шаблоном ? думаю за 5 лет много чего измениллось...
или у вас верися ЖШ 2013года ?
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

dron

  • Завсегдатай
  • 1581
  • 16 / 10
Re: Парни, как удалить
« Ответ #16 : 18.04.2019, 15:38:17 »
Всем привет. А как в последней версии магазина отключить вывод "Other Delivery Address"?
У меня магазин без регистрации. Нужен только адрес (Страна, город, улица дом), что бы доставка рассчитывалась корректно.
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Re: Парни, как удалить
« Ответ #17 : 18.04.2019, 15:44:35 »
также как и раньше. снятием галовек в блоке адреса доставки.
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

dron

  • Завсегдатай
  • 1581
  • 16 / 10
Re: Парни, как удалить
« Ответ #18 : 18.04.2019, 15:49:43 »
Разобрался, благодарю!
« Последнее редактирование: 18.04.2019, 16:21:20 от dron »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

JoomShopping 5 в части браузеров не удалить товар

Автор oslyabya

Ответов: 3
Просмотров: 1511
Последний ответ 05.07.2024, 15:11:29
от kit2m2
Отобразить данные из БД на шаге выбора доставки

Автор Dolphin4ik_1

Ответов: 17
Просмотров: 1141
Последний ответ 17.01.2022, 08:59:55
от kit2m2
Адрес доставки

Автор Влад

Ответов: 3
Просмотров: 5411
Последний ответ 23.10.2021, 19:02:05
от nevigen
Вывод даты доставки и самовывоза

Автор dron

Ответов: 12
Просмотров: 4087
Последний ответ 27.02.2021, 09:56:08
от brandonlang
Как вывести в карточке сумму для бесплатной доставки?

Автор Dolphin4ik_1

Ответов: 4
Просмотров: 676
Последний ответ 18.02.2021, 00:06:27
от Dolphin4ik_1