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

tomclancys

  • Захожу иногда
  • 152
  • 3 / 0
Добрый день.

Как вывести модуль Joomla 2.5 только на главной странице через шаблон? Решение нашёл только для версии 1.5 и 1.0.

Через выбор в админке вариант не помогает. В некоторых компонентах он опять же вылазит.
*

Tref_mast

  • Захожу иногда
  • 126
  • 0 / 0
http://joomlaforum.ru/index.php/topic,67278.0.html - это вам поможет, они и на 2,5 работают
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Посмотрите на новый велосипед  ^-^
Код: php-brief
<?php if (JURI::current() == JURI::base()) : ?>
<h1>Вы где?</h1>
<?php endif; ?>
*

tomclancys

  • Захожу иногда
  • 152
  • 3 / 0
Тоже не помогает. После отправки сообщения из компонента. Опять всплывает баннер из модуля.

<?php
$app = JFactory::getApplication();
$menu = $app->getMenu();
if ($menu->getActive() == $menu->getDefault()) {
   echo '<jdoc:include type="modules" name="banner" style="none" />';
}
?>
*

Tref_mast

  • Захожу иногда
  • 126
  • 0 / 0
*

tomclancys

  • Захожу иногда
  • 152
  • 3 / 0
Без эхо не работает вообщше.
*

Tref_mast

  • Захожу иногда
  • 126
  • 0 / 0
если вам надо только этот модуль на главной а остальное на остальных то попробуйте так
$menu = & JSite::getMenu();
if ($menu->getActive() == $menu->getDefault()) {
// на главной
} else {
// тут всё что не на главной
}
Сам такой конструкцией пользуюсь
*

tomclancys

  • Захожу иногда
  • 152
  • 3 / 0
Сайт вообще не открывается с таким кодом, белый экран:
<?php
$menu = & JSite::getMenu();
if ($menu->getActive() == $menu->getDefault()) {
<jdoc:include type="modules" name="banner" style="none" />
} else {
// тут всё что не на главной
}
?>
*

tomclancys

  • Захожу иногда
  • 152
  • 3 / 0

Код: php-brief
<?php if (JURI::current() == JURI::base()) : ?>
<h1>Вы где?</h1>
<?php endif; ?>
Помогло. Спасибо! =)
*

Ragivort

  • Завсегдатай
  • 1154
  • 58 / 2
  • Такая Life
Я делаю двумя способоами:
1. <?php if($_GET['Itemid']==112) { тут блок с модулем на главной } ?> Itemid только главной страницы своей.
2. <?php if ($this->countModules('position-15')==1): ?>
Тут блок с модулем
<?php endif; ?>

Позиция соотв своего модуля и в его натсройках ставим только на главной странице
Дозволь мне свершить то добро, которое я способен свершить, теперь, ибо я могу более не вернуться сюда.
*

tamaz

  • Захожу иногда
  • 119
  • 8 / 0
Помогло. Спасибо! =)

А мне, что-то нет :).

У меня sh404SEF стоит, может из-за него ?
*

benelli

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Подскажите как грамотно прописать два модуля тут?
<?php if (JURI::current() == JURI::base()) : ?>
"Модуль HTML стандартный J2.5" и "Модуль news_pro_gk4"
<?php endif; ?>
*

The_One

  • Новичок
  • 3
  • 0 / 0
Прошу помочь разобраться!
Хочу опубликовать модуль слайдшоу только на главной. Для этого в привязках настроил отображение только на главной.
Нашел на форуме вот этот код:
<?php if (JURI::current() == JURI::base()) : ?>
код модуля
<?php endif; ?>
Модуль слайдшоу выводиться так
Спойлер
[свернуть]
Если я правильно понял, мне надо вставить код модуля в условия проверки. Получившийся код вставить в index.php шаблона.
Подскажите пожалуйста, многого еще не знаю.
*

RazarioAgro

  • Захожу иногда
  • 473
  • 4 / 0
Ответ простой, не надо ничего прописывать, просто установите плагин Advanced Module Manager и будет вам счастье. Расширенные настройки позиционирования модуля, решил все мои проблемы!

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

Создание страниц сайта по шаблону Joomla

Автор romanln2016

Ответов: 0
Просмотров: 10535
Последний ответ 13.08.2025, 16:25:06
от romanln2016
Изменение шаблона Joomla! 2.5.24

Автор SecondPC

Ответов: 0
Просмотров: 4219
Последний ответ 26.03.2021, 18:09:33
от SecondPC
Как в Joomla 3 отключить позицию вывода или убрать надпись?

Автор Алексей Лоскутов

Ответов: 2
Просмотров: 7631
Последний ответ 10.04.2020, 19:07:02
от Алексей Лоскутов
Как сделать свой шаблон quickstart?

Автор saiskyi

Ответов: 3
Просмотров: 6722
Последний ответ 19.02.2020, 19:29:01
от Bozhkov2
Руководство - создание шаблона для Joomla 2.5

Автор dynamit

Ответов: 6
Просмотров: 30669
Последний ответ 02.02.2020, 22:28:15
от AlinaBut