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

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Всем привет! Вопрос к опытным мастерам, и тем кто работает или работал один..

Дело в том, что я делаю для себя интернет магазин на JoomShopping, ничего сложного по идее.
Но вот такая беда - сижу делаю главную страницу, и тут мне приходит мысль сделать корзину, добавить функционал, но только я понял как это можно сделать, приходит мысль изменить шаблон страницы товара, меняю, понял что хочу сделать(общая картинка есть), придумываю подправить поиск, поправляю, опять не до конца, и дальше начинаю оформлять страницу заказа...

А еще бывает так - т.к. знаний не так много, я где то получаю еще один кусок информации, и сразу иду переделывать то что сделал ранее..
Как в случае с jquery, недавно посмотрел большой курс, и переделал вообще все что можно, но, опять таки не до конца, понял как и опять пошел делать другое..

Я незнаю почему так, в итоге ничего не доделывается до конца, а как хочу доделать, то приходится вспоминать че и в каких файлах я редактировал, и в нуотпаде открыто по 100+ файлов...

Кто и как справляется с этим делом (напастью)? ;D
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Практические советы новичку(ам)
« Ответ #1 : 30.09.2014, 15:57:34 »
Я незнаю почему так, в итоге ничего не доделывается до конца, а как хочу доделать, то приходится вспоминать че и в каких файлах я редактировал, и в нуотпаде открыто по 100+ файлов...

Если серьезно заниматся планируете разработкой заниматся то пора переходить на IDE однако..

Кто и как справляется с этим делом (напастью)?

Насколько я понял,  ваша проблема в том что вы занимаетесь практикой до конца не владея теорией. Может стоит еще поучится? Или мне одному кажутся эти проблемы надуманными?
интернет-блог: http://websiteprog.ru
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: Практические советы новичку(ам)
« Ответ #2 : 30.09.2014, 16:11:20 »
Насколько я понял,  ваша проблема в том что вы занимаетесь практикой до конца не владея теорией. Может стоит еще поучится? Или мне одному кажутся эти проблемы надуманными?
Надуманные не надуманные, но дело к концу не идет, концом даже не пахнет..
Смотрел я курсы php для "продвинутых пользователей", из всего, новое узнал только про константы..)

И дело наверно еще в том что меня как бы никто не торопит типа, вот и занимаюсь фигней всякой..
Может ТЗ написать, кто нибудь сам себе писал?)))


Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

fbr

  • Завсегдатай
  • 1675
  • 208 / 7
Re: Практические советы новичку(ам)
« Ответ #3 : 30.09.2014, 16:44:15 »
..
Я незнаю почему так, в итоге ничего не доделывается до конца, а как хочу доделать, то приходится вспоминать че и в каких файлах я редактировал, и в нуотпаде открыто по 100+ файлов...

Кто и как справляется с этим делом (напастью)? ;D

...

а никак.
это нормально))
тяга к новым знаниям - замечательная вещь
а то что постоянно отвлекаешься, неизбежный побочный эффект

...
Насколько я понял,  ваша проблема в том что вы занимаетесь практикой до конца не владея теорией. Может стоит еще поучится?
...

А кто ей владеет до конца?
Чем больше знаешь - тем меньше знаешь ...
*

Sven

  • Захожу иногда
  • 107
  • 6 / 5
Re: Практические советы новичку(ам)
« Ответ #4 : 30.09.2014, 17:03:31 »
Я тоже сразу учился и делал себе сайт. Но в дебри сразу не лез. Время тратил только на то, что действительно необходимо чтобы сайт заработал: привлекательный дизайн, выложить товар, тексты и описания, и чтобы человек мог этот товар заказать. Все. Т.е. главное запустить магазин. А уже дальше курил форум и потихоньку добавлял функционал.
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: Практические советы новичку(ам)
« Ответ #5 : 30.09.2014, 17:08:53 »
а никак.
это нормально))
тяга к новым знаниям - замечательная вещь
а то что постоянно отвлекаешься, неизбежный побочный эффект
Ну, тогда все нормально, буду говорить "Долго, дорого, охуенно"..)))

Чем больше знаешь - тем меньше знаешь ...
Вот это вы верно подметили, вроде почитал чтобы решить одно, решил, еще придумал как можно решить другое, опять читаешь..))
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Простые жизненные советы

Автор Efanych

Ответов: 15
Просмотров: 2119
Последний ответ 13.06.2013, 10:09:23
от Langoliers