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

Rako

  • Новичок
  • 5
  • 0 / 0
Добрый день.

Пожалуйста подскажите - где и что нужно поправит (прописать), чтобы ЖШ родной фильтр по категориям/подкатегориям невыводил все категории и подкатегории, но только необходимые/заданные.

Спасибо
« Последнее редактирование: 13.11.2013, 17:35:23 от Rako »
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
*

Rako

  • Новичок
  • 5
  • 0 / 0
Спасибо за ответ!
... переформулирую
Где и что нужно поправит (прописать) чтобы на странице, когда категория/подкатегория не имеет товаров для отображения (к примеру цена выше 100.00), и после выбора такой категории в фильтре, в место „полной пустаты ” вывести текст (к примеру <?php print _JSHOP_BIRTHDAY. ?>  ^-^)
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
components\com_jshopping\templates\default\category\products.php
Код
    if (count($this->rows)){
        include(dirname(__FILE__)."/../".$this->template_block_list_product);
    } else {
        print _JSHOP_BIRTHDAY;
    }
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Rako

  • Новичок
  • 5
  • 0 / 0
Спасибо, мысль понятна. Как понимаю в моём случае за вывод отвечает файл list_products.php в
components\com_jshopping\templates\default\list_products\list_products.php
… подскажите, как “пристроить”

Код
} else {
        print _JSHOP_BIRTHDAY;
    }
К данному коду:
Код
<?php defined('_JEXEC') or die(); ?>
<table class="jshop list_product">
<?php foreach ($this->rows as $k=>$product){?>
<?php if ($k%$this->count_product_to_row==0) print "<tr>";?>
    <td width="<?php print 100/$this->count_product_to_row?>%" class="block_product">
        <?php include(dirname(__FILE__)."/".$product->template_block_product);?>
    </td>
    <?php if ($k%$this->count_product_to_row==$this->count_product_to_row-1){?>
    </tr>
    <tr>
        <td colspan="<?php print $this->count_product_to_row?>"><div class="product_list_hr"></div></td>
    </tr>               
    <?php }?>
<?php }?>
<?php if ($k%$this->count_product_to_row!=$this->count_product_to_row-1) print "</tr>";?>
</table>
*

dmitry_stas

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

Rako

  • Новичок
  • 5
  • 0 / 0
Ну как сказать – потому что пробовал print _JSHOP_BIRTHDAY добавить в
components\com_jshopping\templates\default\category\products.php
и также
templates \ МОЯ TEMPLATE\html\com_jshopping\category\products.php
потом оба products.php переименовал на products_1.php и увидел, и также соответственно понял  ^-^ , что они никак не влияют на вывод товаров с фильтра категорий ?!
*

dmitry_stas

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

Rako

  • Новичок
  • 5
  • 0 / 0
...с Вашей поддержкой, наконец получилась в
components\com_jshopping\templates\default\products\products.php
Код
if (count($this->rows)){
    include(dirname(__FILE__)."/../".$this->template_block_form_filter);
    } else {
    include(dirname(__FILE__)."/../".$this->template_block_form_filter);// чтобы „не пропал” фильтр       
    print _JSHOP_BIRTHDAY;
    }
остается только прилична оформит...

Спасибо !
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

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

Автор Napst3r

Ответов: 2
Просмотров: 1085
Последний ответ 10.01.2025, 14:54:21
от Napst3r
JoomShopping, вывод всех категории к которым принадлежит товар

Автор Valent777

Ответов: 12
Просмотров: 2467
Последний ответ 01.11.2024, 14:57:28
от kit2m2
JoomShopping как вывести фильтр в наличии

Автор thevaca

Ответов: 4
Просмотров: 1639
Последний ответ 15.08.2024, 17:41:20
от thevaca
[JoomShopping 5] вывод товаров из дочерних категорий

Автор v42bis

Ответов: 15
Просмотров: 2664
Последний ответ 14.06.2024, 11:43:28
от denistischenko
Фильтр товаров для JoomShopping 5

Автор Lemonez

Ответов: 14
Просмотров: 2535
Последний ответ 25.04.2024, 14:11:25
от dron