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

marmax

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
ребят подскажите как это сделать!Уже не могу !мозги кипят! !
*

marmax

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

marmax

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
ребяяяятаааа!пожалуйста!помогите!
 ! ! !
*

motokraft

  • Завсегдатай
  • 1326
  • 72 / 13
ребят подскажите как это сделать!Уже не могу !мозги кипят! !

Если у тебя используется макет default, то....
Файл: default.php (/modules/mod_sp_portfolio\tmpl)
Текст: MORE (49 строка)
Текст: Show All (66 строка)

Аналогично и в других файлах, только там будут номера строк разные...
И кстати, текст на этих кнопках находится в самих файлах!
...
*

marmax

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Да, да, да,!спасибо!разобрался уже!ужас, пойду напьюсь!Все гораздо просто, чем я мудрил!
*

lyunya

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
Re: Как русифицировать кнопки?
« Ответ #5 : 27.02.2020, 15:55:58 »
Спасибо за ответ.
Ещё волнует вопрос как переименовать кнопку "view all" "zoom" и "view"
Расскажите пожалуйста
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Re: Как русифицировать кнопки?
« Ответ #6 : 27.02.2020, 16:01:06 »
Ещё волнует вопрос как переименовать кнопку "view all" "zoom" и "view"
Если у тебя используется макет default, то....
Файл: default.php (/modules/mod_sp_portfolio\tmpl)
Есть текст, который вам нужно перевести ?
*

lyunya

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
Re: Как русифицировать кнопки?
« Ответ #7 : 27.02.2020, 16:16:41 »
Только сейчас обратила внимание, что ветка 1 версии модуля.
Я работаю в последней.
Вместо "zoom" планирую написать "увеличить" (или убрать)
Вместо "view" - "просмотр"
Вместо "show all" - "все виды" (или убрать)

Так же внутри материала есть "Date" и "tags"
Не пойму как  их убрать.
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Re: Как русифицировать кнопки?
« Ответ #8 : 27.02.2020, 16:21:15 »
Только сейчас обратила внимание, что ветка 1 версии модуля.
А в последней версии нет такого файла макета модуля ? Открыть файл, найти нужный текст и заменить на свой. А лучше уже в переопределенном макете в свой шаблон.
Я не спрашивал текст перевода .
*

lyunya

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
В вышеупомянотом файле defauit.php есть только такой текст касательно слова "show"

<div id="mod-sp-simpleportfolio" class="sp-simpleportfolio sp-simpleportfolio-view-items layout-<?php echo str_replace('_', '-', $layout_type); ?> <?php echo $moduleclass_sfx; ?>">
   <?php if($params->get('show_filter', 1)) { ?>
      <div class="sp-simpleportfolio-filter">
         <ul>
            <li class="active" data-group="all"><a href="#"><?php echo JText::_('MOD_SPSIMPLEPORTFOLIO_SHOW_ALL'); ?></a></li>
            <?php foreach ($tagList as $filter) { ?>
                  <li data-group="<?php echo $filter->alias; ?>"><a href="#"><?php echo $filter->title; ?></a></li>
            <?php } ?>
         </ul>
      </div>
   <?php } ?>
*

lyunya

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
Re: Как русифицировать кнопки?
« Ответ #10 : 27.02.2020, 16:35:56 »
не пойму о чем Вы написал
1. что такое "макет модуля"? Где его искать
2.  что такое "переопределенный макет"?

Может есть документация где я могу об этом почитать.
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Re: Как русифицировать кнопки?
« Ответ #11 : 27.02.2020, 16:42:27 »
<?php echo JText::_('MOD_SPSIMPLEPORTFOLIO_SHOW_ALL'); ?>
Думаю это и есть нужное значение для перевода. Можно в админке, но я привык через файловую систему.
Предлагаю перейти в вашу тему . А то тут старая ветка.
п.с.
Simple portfolio Переименование кнопок &quot;View&quot; и &quot;zoom&quot;  и другие вопросы
« Последнее редактирование: 27.02.2020, 16:48:29 от draff »
*

RomaFokin

  • Новичок
  • 1
  • 0 / 1
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

как сделать кнопки меню!

Автор Millenium_3000

Ответов: 10
Просмотров: 11499
Последний ответ 17.08.2017, 17:24:12
от Intrande
Слегка не удалась позиция в модуле

Автор reg-ad-site

Ответов: 15
Просмотров: 7398
Последний ответ 19.11.2014, 22:39:43
от roosr
Как поменять шаблон нажатием кнопки на сайте(не в админке)?

Автор natashalina

Ответов: 20
Просмотров: 6486
Последний ответ 01.09.2014, 06:46:26
от natashalina
Как вставить кнопки социальных сетей в шапку каждой новой новости?

Автор ChupVulf

Ответов: 4
Просмотров: 3023
Последний ответ 07.12.2013, 00:11:57
от ChupVulf
Настроить кнопки соцсетей шаблона GK Gamebox

Автор peper0000

Ответов: 2
Просмотров: 2394
Последний ответ 23.10.2012, 01:14:23
от peper0000