Новости 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 Ответов
  • 2557 Просмотров
*

koljamedia

  • Новичок
  • 5
  • 0 / 0
Разговор идет о новой версии JomSocial. Начал работать над дизайном стандартного шаблона, там многое не устраивает, например когда нужно удалить сообщение на стене и наводиш курсор на иконку "удалить" не меняется состояние. Тоесть в более ранних версиях на стене, когда там наводишь курсор на иконку у нее меняется состояние (пример: с серого на красный - если говорить об иконке "удалить"). Другой вопрос, он может относится к другой теме, но касается и этой, когда я взглянул в папку стандартного шаблона, то был очень удевлен, сколько там разных неиспользуемых (!) иконок (к слову посмотрел папку "assets" тоже самое, иконок/картинок вагон, и многое неиспользуется, зачем эти старые зеленые аватарки?), и вот в папке "default" как раз то и есть иконка "удаление сообщений" старой стены... Понятно, что надо править код, но я не спец, если кто знает как переделать, или где можна подкоректировать код подскажите пожалуйста, буду очень благодарен. На мой взгляд присутствие состояний при наводке курсора на иконку - актуально.
« Последнее редактирование: 18.06.2011, 01:49:55 от koljamedia »
*

rustava

  • Осваиваюсь на форуме
  • 12
  • 2 / 0
*

koljamedia

  • Новичок
  • 5
  • 0 / 0
rustava, спасибо за подсказку, сначала мне казалось что надо будет еще и с javascript возится, а обошлось добавлением одного свойства(opacity) в css
Всем кому интересно, пишу что надо было сделать:
открываем style.css (конечно если это стандартный шаблон, com_community\templates\default\css\style.css), находим body #community-wrap a.remove:hover (266 строка), додаем:
Код
filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30);-moz-opacity: 0.3;-khtml-opacity: 0.3;opacity: 0.3;
или заменяем строку полностью:
Код
body #community-wrap a.remove{background:transparent url(../images/icons/delete.png) no-repeat 0 0; height: 16px; width: 16px;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30);-moz-opacity: 0.3;-khtml-opacity: 0.3;opacity: 0.3;}

сразу ниже создаем новою строку:

Код
body #community-wrap a.remove:hover{background:transparent url(../images/icons/delete.png) no-repeat 0 0;height: 16px; width: 16px;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=100);-moz-opacity: 1;-khtml-opacity: 1;opacity: 1;}

сохраняем, и проверяем. *DRINK*
*

kharol

  • Moderator
  • 1721
  • 217 / 0
Похвально, что Вы сами решили свою задачу, но я не понял, смысла... Ведь иконки "удалить" не видно по умолчанию и лишь только при наведении на запись, появляется delete.png
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

koljamedia

  • Новичок
  • 5
  • 0 / 0
на мой взгляд это красиво и удобно в первую очередь для пользователя, подчеркивает функциональность то й же кнопки...
*

kharol

  • Moderator
  • 1721
  • 217 / 0
Ну если только Вам нравится это... :)
А по большому счету, функциональность рациональная как раз в том, что иконка появляется лишь при наведении на строку
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Можно ли сделать Закладку "Профиль" главной страницей JS?

Автор Nattramn

Ответов: 1
Просмотров: 1710
Последний ответ 16.10.2012, 20:58:52
от ggad
Посоветуйте, как сделать?

Автор Evgeny50

Ответов: 2
Просмотров: 1626
Последний ответ 29.06.2012, 16:38:56
от Demias
Как сделать форму регистрации на главной?

Автор 321

Ответов: 3
Просмотров: 2821
Последний ответ 16.04.2012, 07:19:19
от rodion
как сделать вывод видео как на youtube?

Автор romapad

Ответов: 1
Просмотров: 2781
Последний ответ 12.01.2012, 17:53:04
от leo78
Типы профилей-Группы в профиле. Сделать ссылками или возможность вывести в меню.

Автор chernblx

Ответов: 5
Просмотров: 2200
Последний ответ 22.12.2011, 03:38:01
от chernblx