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

Anton shop

  • Захожу иногда
  • 261
  • 1 / 0
Подскажите, пожалуйста, в каком файле, в какой именно строке (или строках) и какой именно код нужно вставить,
чтобы на странице МОИ ДАННЫЕ отображалась информация, которая была введена при регистрации в Дополнительное поле 1?

JoomShopping 4.10.3

« Последнее редактирование: 29.07.2015, 06:40:26 от Anton shop »
*

ХайВей

  • Осваиваюсь на форуме
  • 39
  • 2 / 0
А помню такое в дефолтном выводится всего около 5-ти строк Посмотрите в шаблоне Мульти
multi\user\myaccount.php

в строчке будет типа ext_faile_1  вроди
*

Anton shop

  • Захожу иногда
  • 261
  • 1 / 0
А помню такое в дефолтном выводится всего около 5-ти строк Посмотрите в шаблоне Мульти
multi\user\myaccount.php

в строчке будет типа ext_faile_1  вроди

И что нужно сделать с кодом?
*

Anton shop

  • Захожу иногда
  • 261
  • 1 / 0
Я так понимаю, что в шаблоне аккаунта components\com_jshopping\templates\default\user\myaccount.php нужно добавить код:

Код
<?php print $this->user->ext_field_1?>

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

Нужно, чтобы введённая при регистрации информация из Дополнительного поля 1 отображалась в Профиле клиента сразу под электронной почтой клиента.

Вот код стандартного шаблона аккаунта JoomShopping:

Спойлер
[свернуть]

Пожалуйста, подскажите правильный весь код.
« Последнее редактирование: 29.07.2015, 12:21:16 от Anton shop »
*

ХайВей

  • Осваиваюсь на форуме
  • 39
  • 2 / 0
Код
<?php if ($this->user->ext_field_1):?>
    <div class="myaccount_block">
        <div class="name"><?php echo _JSHOP_EXT_FIELD_1?></div>
        <div class="value"><?php echo $this->user->ext_field_1?></div>
    </div>
<?php endif?>
И на будущее в дефолтном шаблоне в корзине и еще где то, тоже выводятся не все поля. Поэтому я вам и посоветовал шаблон Мульти
*

Anton shop

  • Захожу иногда
  • 261
  • 1 / 0
Код
<?php if ($this->user->ext_field_1):?>
    <div class="myaccount_block">
        <div class="name"><?php echo _JSHOP_EXT_FIELD_1?></div>
        <div class="value"><?php echo $this->user->ext_field_1?></div>
    </div>
<?php endif?>

Вставил данный код (хотя наверно неправильно).

Нужно, чтобы цифры, которые на скриншоте расположены под словом Дополнительное поле 1,
были расположены в той же строке, что и само слово Дополнительное поле, только после двоеточия. То есть должно выглядеть именно так:

Дополнительное поле 1: 5555333377778888




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

Вот оригинальный код МОЕГО ШАБЛОНА:
Спойлер
[свернуть]
« Последнее редактирование: 29.07.2015, 12:32:50 от Anton shop »
*

LyalyaChornaya

  • Захожу иногда
  • 236
  • 15 / 1
И на будущее в дефолтном шаблоне в корзине и еще где то, тоже выводятся не все поля. Поэтому я вам и посоветовал шаблон Мульти
А можно прочитать этот совет про шаблон Мульти, меня очень заинтересовал такой шаблон, но в теме я не увидела
*

ХайВей

  • Осваиваюсь на форуме
  • 39
  • 2 / 0
Вставил данный код (хотя наверно неправильно).

Нужно, чтобы цифры, которые на скриншоте расположены под словом Дополнительное поле 1, были расположены в той же строке
Все Вы правильно вставили все остальное это вопрос стилей. Файл стиля JoomShopping лежи:
Код
\components\com_jshopping\css\default.css 
и мануал это все.

но в теме я не увидела
а шаблон вот Мульти
*

LyalyaChornaya

  • Захожу иногда
  • 236
  • 15 / 1
а шаблон вот Мульти
Ой, спасибо! Все, я на сайте зависла, даже не знала про такой. ХайВей, плюс в карму!
*

Садко

  • Осваиваюсь на форуме
  • 14
  • 7 / 0
Что-то я не пойму в каком-то стороннем шаблоне выводится больше строк чем в дефолтном
А в самом JoomShopping шаблон обновляют? Обычно все наоборот
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

JShopping 5: отображение всех подкатегорий

Автор Napst3r

Ответов: 2
Просмотров: 1083
Последний ответ 10.01.2025, 14:54:21
от Napst3r
Получить данные пользователя из сессии или...

Автор Dewis

Ответов: 5
Просмотров: 1355
Последний ответ 27.10.2023, 02:16:39
от Dewis
Отображения описании категории только на первой странице

Автор graf

Ответов: 5
Просмотров: 1563
Последний ответ 04.05.2023, 18:52:08
от kit2m2
Несколько категорий на одной странице

Автор geral

Ответов: 4
Просмотров: 915
Последний ответ 21.04.2023, 16:15:49
от geral
Отобразить данные из БД на шаге выбора доставки

Автор Dolphin4ik_1

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