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

yardobr

  • Новичок
  • 3
  • 0 / 0
Привет всем!
Создал интернет-магазин (http://ehose.in.ua).
Вопрос заключается в следующем.
При нажатии на пункт меню "Starbuzz E-Hose" открывается страница с ссылкой http://ehose.in.ua/index.php/starbuzz-e-hose.
Но, если нажать на ссылку "E-Hose" из выпадающего меню, посетителя переносит на дубль страницы, но с урлом http://ehose.in.ua/index.php/starbuzz-e-hose/e-hose.
Мало того, что мне это кажется нелогичным, так еще и подозреваю, что это плохо отразится на оптимизации сайта в поисковиках.
Сделать редирект с моей точки зрения - пахнет жлобством. Как по мне, лучше все сделать качественно раз и навсегда.
Буду рад любым советам.
Спасибо!
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
У родителя сделайте алиас на потомка (тип: Псевдоним пункта меню)
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Незнаю, жлобством или нет, но ты чего то намудрил, у тебе просто разные ссылки на одну и туже категорию.
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

yardobr

  • Новичок
  • 3
  • 0 / 0
Я об этом уже думал, но бэклинки ведут на родителя, есть ли способ сделать наоборот?
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Можно и наоборот, без разницы. Проработайте структуру тщательнее, у Вас дубляж изначально заложен в структуре всего сайта.
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
сделай верхний пункт seperatorom
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
сделай верхний пункт seperatorom
Ага, и бэк-линки на сепаратор ссылаться будут ))
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Ахах, нет, просто вложенные категории сделать не вложенными.. А родителя (как бы родителя) сделать сепаратором.
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
А если бэк-линки привязаны к id пункта? И при этом их больше сотни? Алиасом проще, однозначно, а если J3 - то rel=canonical однозначно дубли в частном случае исключит.
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Может ты и прав. Т.к. я не сталкивался с таким... Но в любом случае надо сразу продумывать структуру, чтобы таких вещей не было! Получается что у него товары добавлены не в одну категорию, а в две, т.е и в родительскую тоже, так ведь?
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Походу да, но в этом ничего страшного, разделять товар по видам лучше именно так, причем бывает товар без определенных характеристик или со множеством характеристик, подходящих для нескольких подкатегорий, такой товар как раз пихают в родительскую категорию. Просто проработать структуру. Алиасы в меню прии этом - вполне нормальная обычная вещь, и применимо это не только в магазинах, но и вообще везде.
ТС, решайте сами, советов надовали слихвой.
*

yardobr

  • Новичок
  • 3
  • 0 / 0
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Спасибо, ребят!

Что в итоге, ты решил проблему или нет?
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Что в итоге, ты решил проблему или нет?
Не так быстро) там на неделю работы со структурой
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться