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

tomas_morgam

  • Захожу иногда
  • 126
  • 0 / 0
Здравствуйте! Добавлял новое поле "видео" для категории в админку и соответственно выводить на сайт, но не работает на этапе сохранения в БД, когда через БД задаю значение - все хорошо выводит. Помогите найти проблему.

1) Добавление формы редактирования в админке:
administrator\components\com_jshopping\views\category\tmpl\edit.php
      <tr>
      <td class="key">Видео </td>
      <td><input type = "text" name = "category_video" id = "category_video" value = "<?php echo $row->category_video;?>" size="20" maxlength="59" />  </td>
   </tr>

2) Добавление контроллера для формы в админке:
administrator\components\com_jshopping\controllers\categories.php

в функцию function save()
   $post['category_video'] = JRequest::getVar('category_video','','post',"string", 2);

3) Добавление полей в базу данных
В таблицу *_jshopping_categories добавил поле
   category_video   varchar(255)   utf8_general_ci   
   
4) Получение значения поля
\components\com_jshopping\tables\product.php
      $category_video = $lang->get('category_video');
        $this->category_video = $this->$category_video;
      
5) Вывод поля в шаблон
$this->category->category_video
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
либо 2 и 4 лишнее, либо вы делали для каждого из языков свое поле, но не доделали.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

tomas_morgam

  • Захожу иногда
  • 126
  • 0 / 0
либо 2 и 4 лишнее, либо вы делали для каждого из языков свое поле, но не доделали.
Забросил поле возле краткое-описание категории, а оно находится в Языках. Просто перенес поле на вкладку Параметры - все заработало, спасибо!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не сохраняются товары при большом количество атрибутов

Автор creogroup

Ответов: 9
Просмотров: 1006
Последний ответ 11.01.2020, 21:22:33
от Taatshi
Проверка полей при оформлении заказа. (пробел в поле телефон и e-mail)

Автор Grione

Ответов: 4
Просмотров: 910
Последний ответ 02.08.2019, 11:36:12
от Grione
Передать значение цены товара

Автор yurykom

Ответов: 16
Просмотров: 1063
Последний ответ 07.05.2019, 22:26:16
от dmitry_stas
e-mail дублируется в поле Имя

Автор Kugata

Ответов: 10
Просмотров: 1030
Последний ответ 24.02.2019, 14:42:28
от Kugata
Заказы с большим количеством позиций не сохраняются в админке

Автор virtucom

Ответов: 2
Просмотров: 762
Последний ответ 19.02.2018, 16:40:29
от virtucom