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

FBM

  • Захожу иногда
  • 60
  • 0 / 0
Всем привет. Подскажите пожалуйста, как добавить еще одну позиция чтоб отображалась  сразу же после контента (на скрине)? https://pastenow.ru/cf09d285a91a204e48754daf8fdac425  В index.php ставлю но почему то отображается либо выше контента либо в подвале.

Можно еще один модуль добавить в этом же позиции но так же отображается выше контента. Порядок не могу настроит. Помогите пожалуйста :( :( :( :( :( :( :( :( :(
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Вы лучше страницу сайта покажите - без кода тут никак.
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

FBM

  • Захожу иногда
  • 60
  • 0 / 0
Вы лучше страницу сайта покажите - без кода тут никак.

К примеру, на этой странице добавить модуль сразу же после текста.. https://fxbullmarket.com
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Вставляйте в div с классом component

ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

FBM

  • Захожу иногда
  • 60
  • 0 / 0
Спасибо большое )  попробую..
*

FBM

  • Захожу иногда
  • 60
  • 0 / 0
Вставляйте в div с классом component



Добрый человек, можно чуть по подробнее(( не знаю куда именно добавить ( вот тут кусочек кода

   
   
Код
<?php if($this->countModules('menu')):?>
    <div id="menu" class="hmenu" onclick="this.className = (this.className == 'hmenu' ? 'mobilemenu' : 'hmenu')">
        <div class="layout">
            <jdoc:include type="modules" name="menu" style="none" />
        </div>
    </div>
    <?php endif; ?>
   
    <div id="content">
        <div class="layout">
            <?php if($this->countModules('slider')):?>
            <div id="slide">
                <jdoc:include type="modules" name="slider" style="xhtml" />
            </div>     
            <?php endif; ?>
                 
            <?php include 'layout/layout.php'; ?>
            </div>
           
        </div>
    </div>
   
     <?php if($this->countModules('reklama')):?>
            <div id="reklama">
                <jdoc:include type="modules" name="reklama" style="xhtml" />
            </div>     
            <?php endif; ?>         
             
             
    <?php if($this->countModules('aftertext')):?>
    <div id="aftertext">
        <div class="layout">
            <jdoc:include type="modules" name="aftertext" style="xhtml" />
        </div>
    </div>
    <?php endif; ?>
   

« Последнее редактирование: 20.05.2019, 18:52:29 от Taatshi »
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
По идее вот сюда

ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

FBM

  • Захожу иногда
  • 60
  • 0 / 0
туда же  добавляю но все равно отображается в самом низу  https://pastenow.ru/013e330beb46aef9444a6a7d2c69cd3c

может в коде есть ошибка?  https://pastenow.ru/2bdc26d16a9990e0e3e3a3f2a659af67
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
По-моему, Вы влепили модуль, который по ширине не влезает в ширину компонентного блока. Вот он у Вас и cъехал.

Если хотите на белом фоне под розовым - вставьте ПОСЛЕ того дива, что я указала. На один закрывающий </div> ниже
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

FBM

  • Захожу иногда
  • 60
  • 0 / 0
По-моему, Вы влепили модуль, который по ширине не влезает в ширину компонентного блока. Вот он у Вас и cъехал.

Если хотите на белом фоне под розовым - вставьте ПОСЛЕ того дива, что я указала. На один закрывающий </div> ниже

посмотрите код страницы еще раз пожалуйста,  вроде ширина такой же как контент https://fxbullmarket.com

или может в этом коде где то я ошибся:
<div id="reklama">
                <div class="component">
                <jdoc:include type="modules" name="reklama" style="xhtml" />
            </div>     
            <?php endif; ?>
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Эмм.. дайте код рекламного блока и компонент дива - как Вы их вместе пишете.

И не называйте блок реклама - адблок будет банить
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

FBM

  • Захожу иногда
  • 60
  • 0 / 0
Вы наверно неправильно поняли или я неправильно написал. на белом фоне сразу же под розовым хочу добавить еже одну модуль (html код)
А рекламу я как пример хотель поставит..  там будет таблица которое отображается на всех страницах сайта
*

FBM

  • Захожу иногда
  • 60
  • 0 / 0
reklama  - это название позиция которое сам добавил  https://pastenow.ru/a0159b3da7489afe55255ec735cf029b
*

FBM

  • Захожу иногда
  • 60
  • 0 / 0
Можно ли ставит эту позицию (reklama) на белом фоне сразу же под розовым?(( :(
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Под розовым у Вас не получится - цвет задается контейнеру, в который нужно вставлять позицию. Но, поскольку модуль будет занимать всю ширину, Вы можете именно этой позиции задать белый фон и визуально все будет как Вы хотите.

Код: php
<div id="content">
        <div class="layout">
            <?php if($this->countModules('slider')):?>
            <div id="slide">
                <jdoc:include type="modules" name="slider" style="xhtml" />
            </div>     
            <?php endif; ?>
                 
            <?php include 'layout/layout.php'; ?>
            </div>
           
        </div>
            <?php if($this->countModules('reklama')):?>
            <div id="reklama">
                <jdoc:include type="modules" name="reklama" style="xhtml" />
            </div>     
            <?php endif; ?>
    </div>

Код: css
 #reklama {background-colot: #fff;}
« Последнее редактирование: 20.05.2019, 23:17:15 от Taatshi »
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

FBM

  • Захожу иногда
  • 60
  • 0 / 0
Спасибо большое)  technik320 tech, Вам огромное спасибо за помощь.. решил задачку всего за несколько минут)) а я три дня не мог)).
Спасибо и Разработчикам и модераторам форума) ^-^ Тему можно закрыть.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как убрать карандашик (изменить материал)?

Автор spanchermen

Ответов: 18
Просмотров: 15936
Последний ответ 04.03.2018, 13:47:23
от Mega-e
Как добавить класс "active" псевдониму пункта меню?

Автор Uman

Ответов: 10
Просмотров: 12964
Последний ответ 13.08.2017, 10:34:42
от midav
Как добавить всплывающую подсказку на сайт?

Автор Ирина Поехали

Ответов: 3
Просмотров: 2804
Последний ответ 22.06.2017, 08:03:33
от rkron
Добавить позицию модуля в шаблоне traction

Автор amaddeus

Ответов: 1
Просмотров: 2022
Последний ответ 27.04.2017, 22:23:31
от darkghost
Как понять где находится файл который надо поправить чтобы изменить элемент? Вопрос по "Просмотр ко?

Автор vovchikku

Ответов: 0
Просмотров: 1473
Последний ответ 16.07.2016, 14:11:05
от vovchikku