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

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Итак, как и обещал - начал перевод на русский язык цикла статей на тему разработки плагина для Joomla 2.5.

Создание плагина для Joomla 2.5

P.S.
По мере выхода новой информации топик будет обновляться.


P.P.S.
Документация подходит и для Joomla 3.x.
*

Aeliot

  • Захожу иногда
  • 107
  • 2 / 0
У меня есть перевод статьи по созданию плагина для компонента attachents, чтоб его можно было легко подружить со своим компонентом.
Плюс есть наработки как вывести результаты его работы в свой компонент.
Могу поделиться.
« Последнее редактирование: 27.01.2013, 22:25:41 от Aeliot »
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
*

Aeliot

  • Захожу иногда
  • 107
  • 2 / 0
Это довольно специфично, но можете и поделиться. attachents  - attachments?
Да, attachments

И да, "специфично".
Но на этом можно сделать урок по работе своего компонента с плагинами.
Они, как оказалось, не срабатывают сами по себе. В своём компоненте их нужно специально вызывать.

Куда кинуть наработанное?
*

skinny

  • Осваиваюсь на форуме
  • 44
  • 0 / 0
не знаю будет ли вам полезна эта информация
но в последних версиях Joomla начала вылазить ошибка "xml файл не загружен"
после плясок с бубном выяснилось как это лечить, возможно что то переделали в новых версиях
а лечится так:

var $pluginName = 'procimage';

Код

<?php defined('_JEXEC') or die;

JLoader::register('K2Plugin', JPATH_ADMINISTRATOR.'/components/com_k2/lib/k2plugin.php');

class plgK2Procimage extends K2Plugin
{
    var $pluginName = 'procimage';
public function onBeforeK2Save(& $item, $isNew)

*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Видимо это специфично для К2, так как у них свой класс плагина K2Plugin.
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Видимо это специфично для К2, так как у них свой класс плагина K2Plugin.
Либо skinny что то напутал ) Ведь можно установить и плагин код которого будет пуст, или ошибки в коде, или с неправильным именем класса! и все ставится!
*

skinny

  • Осваиваюсь на форуме
  • 44
  • 0 / 0
я ничего не путал. Может и у меня что не так. НО у меня был плагин который я написал давным давно и он тупо работал. А потом вдруг перестал, после одного из обновлений. Пришлось садиться и выяснять в чём дело. Глубоко я не вникал, просто заставил его снова работать.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Документация по созданию модуля для Joomla 2.5 и Joomla 3.x

Автор b2z

Ответов: 1
Просмотров: 2301
Последний ответ 29.07.2015, 09:40:30
от b2z
JPluginHelper::importPlugin('content') в Joomla 1.7

Автор Dutch

Ответов: 2
Просмотров: 4763
Последний ответ 30.03.2015, 14:22:51
от twins717
Документация по созданию компонента для Joomla 2.5

Автор Sulpher

Ответов: 74
Просмотров: 57282
Последний ответ 17.11.2014, 13:43:07
от limon142
Как составить запрос по правилам Joomla ?

Автор mainet

Ответов: 7
Просмотров: 1750
Последний ответ 03.02.2014, 22:56:05
от Aleks.Denezh
Лучшие ресурсы по разработке расширений для Joomla 2.5

Автор sergvlask

Ответов: 2
Просмотров: 2100
Последний ответ 22.11.2013, 16:01:06
от b2z