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

D-Nik Lubny

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Здравствуйте. Сайт на Joomla.
В админпанели есть страница с объявлением. На этой странице есть кнопка "Опубликовать". При нажатии на эту кнопку открывается стандартная страница добавления материала на сайт.
Нужно чтобы при нажатии на кнопку "Опубликовать" не просто открывалась страница публикации материала, но и некоторые поля в ней были уже заполнены (Заголовок, Текст материала, Категория)

Скрины этих двух страниц прилагаются.


Нужно с первой страницы взять "Заголовок" и перенести его в поле "Заголовок" второй страницы, поле "Рубрика" - в поле "Категория", поле "Оголошення" - в редактор текста.

Сейчас код кнопки "Опублікувати оголошення" следующий:

Код
<a href="index.php?option=com_content&task=article.add" target="_blank" class="btn btn-success"><?php echo JText::_('Опублікувати оголошення');?></a>

Фрагмент кода первой страницы (отсюда нужно выбрать поля):

Код
<!-- Begin Content -->

<div class="row-fluid">
<div class="span12">
<div id="system-message-container">
</div>

<div class="row-fluid">
<div class="row-fluid">
<div>
<div class="span6">
<h2>Объявление</h2>
</div>
<div class="span6">
<p class="text-right"><a href="/index.php?option=com_joomlyform&amp;view=form&amp;form=advertisement" class="text-right">Вернуться к списку</a></p>
</div>
</div>
<div>
<table id="myTable" class="table table-striped">
<tbody>
<tr><th>id:</th><td> 1</td></tr><tr><th>Дата:</th><td> 2018-03-15 16:09:00</td></tr><tr><th>Страница:</th><td> /1-podati-ogoloshennya</td></tr><tr><th>IP:</th><td> 1.1.1.62</td></tr><tr><th>ФІО:</th><td> Иванов Иван Иванович </td></tr><tr><th>Email:</th><td> vanooo@gmail.com</td></tr><tr><th>Телефон:</th><td> 0000000000</td></tr><tr><th>Заголовок:</th><td> Няня</td></tr><tr><th>Рубрика:</th><td> Пропоную роботу</td></tr><tr><th>Оголошення:</th><td> Потрібна відповідальна дівчина  (няня) для шестирічного здорового хлопчика. </td></tr><tr><th>К-сть слів:</th><td> 8</td></tr><tr><th>Дублировать в газету, или нет:</th><td> </td></tr> </tbody>
</table>

<p><a href="index.php?option=com_content&amp;task=article.add" target="_blank" class="btn btn-success">Опублікувати оголошення</a></p>

</div>
</div>
</div>

</div>
</div>
<!-- End Content -->
                  
Фрагмент кода второй страницы (здесь нужно вставить поля):

Код панели с заголовком
Код
<div class="control-label"><label id="jform_title-lbl" for="jform_title" class="hasTooltip required invalid" title="" data-original-title="<strong>Заголовок</strong>">
Заголовок<span class="star">&nbsp;*</span></label>
</div>

Код выбора категории
Код
<div class="chzn-container chzn-container-single chzn-with-drop chzn-container-active" style="width: 220px;" title="" id="jform_catid_chzn"><a class="chzn-single"><span>Без категорії</span><div><b></b></div></a><div class="chzn-drop"><div class="chzn-search"><input autocomplete="off" type="text"></div><ul class="chzn-results"><li class="active-result result-selected" style="" data-option-array-index="0">Без категорії</li><li class="active-result" style="" data-option-array-index="1">Новини</li><li class="active-result" style="" data-option-array-index="2">- Новини 2</li><li class="active-result" style="" data-option-array-index="3">- Новини 3</li><li class="active-result" style="" data-option-array-index="4">Оголошення</li><li class="active-result" style="" data-option-array-index="5">- Куплю</li><li class="active-result" style="" data-option-array-index="6">- Продам</li><li class="active-result" style="" data-option-array-index="7">- Обміняю</li><li class="active-result" style="" data-option-array-index="8">- Здам</li><li class="active-result" style="" data-option-array-index="9">- Шукаю</li><li class="active-result" style="" data-option-array-index="10">- Пропоную</li><li class="active-result" style="" data-option-array-index="11">- Інше</li><li class="active-result" style="" data-option-array-index="12">Інформація</li></ul></div></div>

Код редактора текста
Код
<div class="mceIframeContainer"><iframe id="jform_articletext_ifr" src="javascript:&quot;&quot;" allowtransparency="true" title="Область оформленного текстаНажмите ALT F10 для вызова панели инструменов. Нажмите ALT 0 для вызова справки." style="height: 387px;" frameborder="0"></iframe></div>
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Сколько должна стоить разработка сайта?

Автор Мария13

Ответов: 5
Просмотров: 686
Последний ответ 03.08.2022, 14:32:42
от web3.0
Простенький калькулятор одной функции на JS (не Joomla)

Автор Dorfman

Ответов: 10
Просмотров: 1036
Последний ответ 23.11.2020, 13:39:14
от sivers
Настройка сайта на шаблоне Vina Orion

Автор Proka

Ответов: 15
Просмотров: 1393
Последний ответ 04.08.2020, 17:00:46
от khan-alex
[РЕШЕНО] Скроллинг страницы вниз?

Автор warlocksp

Ответов: 3
Просмотров: 961
Последний ответ 02.02.2020, 15:56:55
от warlocksp
На сайте страницы, которые я не создавал

Автор Андрей Купцов

Ответов: 0
Просмотров: 663
Последний ответ 18.12.2019, 10:22:27
от Андрей Купцов