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

pH43

  • Захожу иногда
  • 335
  • 8 / 1
Вывожу на одной из страниц список производителей, по умолчанию они отображаются в один слобец.

Смотрел в коде: для каждого производителя назначается отдельная строка в таблице:

Код
<?php if ($this->params->get('show_page_heading') && $this->params->get('page_heading')) {?>    
<div class="shophead<?php print $this->params->get('pageclass_sfx');?>"><h1><?php print $this->params->get('page_heading')?></h1></div>
<?php }?>
<div class="jshop">
<?php print $this->manufacturer->description?>

<?php if (count($this->rows)){?>
<div class="jshop_list_manufacturer">
<table class = "jshop">
    <?php foreach($this->rows as $k=>$row){?>
        <?php if ($k%$this->count_manufacturer_to_row==0) print "<tr>";?>
        <td class = "jshop_categ" width = "<?php print (100/$this->count_manufacturer_to_row)?>%">
          <table class = "manufacturer">
             <tr>
               <td class="image">
                    <a href = "<?php print $row->link;?>"><img class = "jshop_img" src = "<?php print $this->image_manufs_live_path;?>/<?php if ($row->manufacturer_logo) print $row->manufacturer_logo; else print $this->noimage;?>" alt="<?php print htmlspecialchars($row->name);?>" /></a>
               </td>
               <td>
                   <a class = "product_link" href = "<?php print $row->link?>"><?php print $row->name?></a>
                   <p class = "manufacturer_short_description"><?php print $row->short_description?></p>
                   <?php if ($row->manufacturer_url!=""){?>
                   <div class="manufacturer_url">
                        <a target="_blank" href="<?php print $row->manufacturer_url?>"><?php print _JSHOP_MANUFACTURER_INFO?></a>
                   </div>
                   <?php }?>
               </td>
             </tr>
           </table>
        </td>    
        <?php if ($k%$this->count_manufacturer_to_row==$this->count_manufacturer_to_row-1) print "</tr>";?>
<?php } ?>
     <?php if ($k%$this->count_manufacturer_to_row!=$this->count_manufacturer_to_row-1) print "</tr>";?>
</table>
</div>
<?php } ?>
</div>

Подскажите пожалуйста, как сделать, чтобы производители отображались в 2 или 3 колонки. Можно просто убрать "безболезненно"  добавление тегов <tr> и </tr> для производителей. Тогда получится таблица с одной большой ячейкой, в которой все производители. Но как это сделать?

Возможно в админке не нашел, где выставить количество колонок для производителей...
« Последнее редактирование: 28.05.2013, 17:59:27 от pH43 »
*

Vitos

  • Захожу иногда
  • 161
  • 6 / 0
Re: JoomShopping производители в 3 столбца
« Ответ #1 : 27.05.2013, 19:42:00 »
В админке невозможно столбцы выставлять. CSS шаблона смотри.
Я когда-то тоже пытался вывести колонками, но задача была немного иной, только на javascript получилось реализовать кроссбраузерно.
*

pH43

  • Захожу иногда
  • 335
  • 8 / 1
Re: JoomShopping производители в 3 столбца
« Ответ #2 : 27.05.2013, 20:29:59 »
я как раз хочу в CSS реализовать, но получается, что каждый блок с мануфактурой располагается в отдельной строке, поэтому без редактирования шаблона никак. Разве что модуль с производителями отдельный поставить, там редактирование попроще.
*

Vitos

  • Захожу иногда
  • 161
  • 6 / 0
Re: JoomShopping производители в 3 столбца
« Ответ #3 : 28.05.2013, 17:11:47 »
Переведите <table class = "manufacturer"> в divы или spanы, будет проще ;)
*

pH43

  • Захожу иногда
  • 335
  • 8 / 1
Re: JoomShopping производители в 3 столбца
« Ответ #4 : 28.05.2013, 17:59:10 »
спасибо, я поставил модуль JoomShopping_manufacturer-3.0 , а там как раз всё в дивах, даже переделывать ничего не пришлось, только в таблице стилей пару исправлений внёс и всё
*

DamianTrash

  • Захожу иногда
  • 169
  • 4 / 0
RE: JoomShopping производители в 3 столбца
« Ответ #5 : 29.01.2014, 22:15:10 »
спасибо, я поставил модуль JoomShopping_manufacturer-3.0 , а там как раз всё в дивах, даже переделывать ничего не пришлось, только в таблице стилей пару исправлений внёс и всё
Добрый день. Если не секрет, как удалось поправить CSS и сделать в 3 стобца-то? Там же все div'ы с одинаковыми классами jshop_menu_level_0
*

DamianTrash

  • Захожу иногда
  • 169
  • 4 / 0
RE: JoomShopping производители в 3 столбца
« Ответ #6 : 29.01.2014, 22:21:14 »
Ааа... Ну да, совсем забыл про свойство column-count)))
*

pH43

  • Захожу иногда
  • 335
  • 8 / 1
RE: JoomShopping производители в 3 столбца
« Ответ #7 : 29.01.2014, 22:35:58 »
Ааа... Ну да, совсем забыл про свойство column-count)))

Всё проще гораздо :)

float:left
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
RE: JoomShopping производители в 3 столбца
« Ответ #8 : 29.01.2014, 22:39:11 »
:)
Это для ДИВного шаблона ;)
дефолтному так не помочь :)
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

pH43

  • Захожу иногда
  • 335
  • 8 / 1
RE: JoomShopping производители в 3 столбца
« Ответ #9 : 29.01.2014, 22:42:52 »
Это да)
*

DamianTrash

  • Захожу иногда
  • 169
  • 4 / 0
RE: JoomShopping производители в 3 столбца
« Ответ #10 : 29.01.2014, 22:43:05 »
Честно говоря, уже не помню что там на дефолтном. На divном можно просто добавить 3 свойства: column-count, column-gap и column-rule
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Re: JoomShopping производители в 3 столбца
« Ответ #11 : 29.01.2014, 22:47:29 »
можно и так,
можно лефтом
можно дисплеем.
а можно жестко задать в шаблоне
или задать значение переменной $this->count_manufacturer_to_row

ДИВный он потому и удобен ;)
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

Senturov

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
У меня расползаются производители. Куда копать?
Самый первый производитель уползает влево.
http://tehnomag52.ru/proizvoditeli.html
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
CSS смотрите
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

Senturov

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Это понятно. А что изменить?
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
в смысле ?
вы хотите чтоб вашу работу сделали вместо вас ? или вам просто нужно было понять как сделать ?
возьмите и посмотрите разницу в стилях для блоков http://prntscr.com/gkiaqy
фаирбаг знакомое слово ?
« Последнее редактирование: 13.09.2017, 08:23:59 от nevigen »
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

WT JoomShopping Favorite - кнопки избранного в категории товаров и карточке тов

Автор sergeytolkachyov

Ответов: 25
Просмотров: 35714
Последний ответ 23.09.2025, 11:22:23
от Alex_gs
Атрибуты полей при оформлении заказа в JoomShopping

Автор goga_pgasovav

Ответов: 1
Просмотров: 629
Последний ответ 12.08.2025, 11:21:29
от kit2m2
Конфликт js шаблонов JoomShaper helix3 J5 с JoomShopping 5

Автор heartlink

Ответов: 6
Просмотров: 1404
Последний ответ 22.07.2025, 12:40:12
от heartlink
Модуль карусели товаров JoomShopping на Swiper.js для Joomla

Автор sergeytolkachyov

Ответов: 2
Просмотров: 2049
Последний ответ 04.07.2025, 10:30:36
от sergeytolkachyov
[Решено] Сбросить счётчик ID товаров JoomShopping

Автор goga_pgasovav

Ответов: 3
Просмотров: 1359
Последний ответ 13.02.2025, 00:11:20
от goga_pgasovav