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

Asubos

  • Новичок
  • 8
  • 0 / 0
Всем привет, заранее извиняюсь если продублирую тему, но что-то не нашел похожую либо правильно спросить не могу у поиска. Ситуация следующая:

1. Есть пункт меню "Каталог", при клике на котором переходим собственно в магазин.
2. Есть категории и подкатегории каталога, которые открываются, содержат в себе товары и ведут себя в принципе хорошо.

Проблемы в том, что если я добавляю для пункта меню "Каталог" подпунктами категории каталога, то они продолжают отрываться, но перестают открываться категории/подкатегории для которых я пункты меню не делаю. Просто белая страница. При этом если отключаю ЧПУ в настройках Joomla - все начинает работать корректно. В логи ничего не пишется, ошибок не валится.

Вопросы: что это за беда и как с ней бороться? Вариант остаться без ЧПУ не вариант, объяснять клиенту что при создании новой категории ему нужно создавать еще и пункт меню тож не катит. В общем -  !
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
включите отображение ошибок и поймете в чем проблема.
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

Asubos

  • Новичок
  • 8
  • 0 / 0
Отображение ошибок включено, если выставляю уровень "Для разработчиков (все ошибки PHP)", то предупреждение связанное с jSequre появляется и больше ничего, пустая белая страница.
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
ну так и отключайте это жсекуре.

а вообще на кофейной гуще те кто гадают, тут редко бывают.
без пациента помочь сложно.
ссылки ?
« Последнее редактирование: 04.04.2014, 10:55:41 от nevigen »
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
не, скорее всего жсекуре не при чем. либо делайте пункты меню на все категории, либо не делайте ни на какие.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Asubos

  • Новичок
  • 8
  • 0 / 0
Отключил - сообщение пропало, работа сайта не изменилась.
*

Asubos

  • Новичок
  • 8
  • 0 / 0
Сори, нужно было сразу ссылки кинуть.

Работает, т.к. есть в меню - http://odd.by/catalog/shtory/vualevye-komplekty-dlya-kukhni
Не работает, т.к. в меню нету - http://odd.by/catalog/shtory/vlozhennaya-kategoriya-2

jSecure теоретически нипричем - практически всякое бывает.

Цитировать
либо делайте пункты меню на все категории, либо не делайте ни на какие.
Ну это самое простое, но не верное решение как мне кажется. Проблему нужно попытаться решить, а если не получилось, то конечно же так и делать.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Цитировать
Ну это самое простое, но не верное решение как мне кажется

это единственное верное решение. так работает Joomla. /catalog/shtory/ - пункт меню. соответственно, про вложенный пункт vualevye-komplekty-dlya-kukhni она знает. но с чего бы ей знать, что vlozhennaya-kategoriya-2 - это по вашей задумке тоже аля пункт меню ?

Цитировать
нужно попытаться решить, а если не получилось, то конечно же так и делать.

будете править роутер Joomla и жш?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Asubos

  • Новичок
  • 8
  • 0 / 0
Цитировать
что vlozhennaya-kategoriya-2 - это по вашей задумке тоже аля пункт меню ?

Мне не нужно, что бы это был пункт меню, мне нужно чтобы данная категория/подкатегория открывалась вне зависимости есть она в меню или нет. Я, похоже, плохо представляю работу роутера. Почему тогда если у меня есть только корневой пункт "/catalog/" и больше ничего - все нормально открывается. Это получается стандартная работа? Но это же бред. Почему при отключенном ЧПУ все нормально работает?

Работу роутера Joomla и жш не буду пока править, не дорос еще  ;D
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
1. не чпу формирование ссылок, работает по другому
2. делайте пункты меню внешними ссылками и вставляйте ссылку, которую выдает модуль категорий.

пути в Joomla строятся либо по меню (приоритет)
если нет пункта меню то по роутеру Joomla или компонента.
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
Вы лучше с белым экраном разберитесь. белый экран.
Я уже столько экспериментировал, чуть ли не через уровень пункты меню создавал (:)) и всё работало...
Создание сайтов, шаблонов, помощь в решении проблем.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Вы лучше с белым экраном разберитесь.

та не надо. белый экран - это просто результат работы специфического шаблона скорее всего. ну вернее как... надо конечно :) только к этому вопросу отношения не имеет. потому что в данном случае это обычный 404
Спойлер
[свернуть]

Я уже столько экспериментировал, чуть ли не через уровень пункты меню создавал (:)) и всё работало...

я тоже :) вы правы, варианты есть. но вот это

http://odd.by/catalog/shtory/vlozhennaya-kategoriya-2

не способно работать принципе. потому что catalog/shtory - это пункт меню. а поскольку вложенного пункта с алиасом vlozhennaya-kategoriya-2 для него нет, то будет 404 однозначно. тут до роутера ЖШ даже дело не дойдет. работать будет /catalog/vlozhennaya-kategoriya-2, но /catalog/shtory/vlozhennaya-kategoriya-2 - нет
« Последнее редактирование: 04.04.2014, 12:36:22 от dmitry_stas »
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
Дайте лучше линку на full_category_path и всё будет работать
Создание сайтов, шаблонов, помощь в решении проблем.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
с ним так работает? я просто не пробовал именно вот так с ним :)

Asubos, попробуйте поставьте Плагин построения полного пути к товару JoomShopping . Может поможет :)
« Последнее редактирование: 04.04.2014, 12:55:16 от dmitry_stas »
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
Работает, я специально попробовал. Просто не знал, что это он влияет и без него не будет работать :)
Так бы сейчас с пеной у рта доказывал бы что-то :)
Создание сайтов, шаблонов, помощь в решении проблем.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
понял. какой хороший плагин :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Asubos

  • Новичок
  • 8
  • 0 / 0
Поставил плагин, результаты:

Товар открывается - http://odd.by/catalog/postelnoe-bele/komplekt-2-spalnyj/opticheskij-obman
Категория с данным товаром - нет. http://odd.by/catalog/postelnoe-bele/komplekt-2-spalnyj
А без родительской категории все нормально - http://odd.by/catalog/komplekt-2-spalnyj

Получается что вот эта логика не верна:

Цитировать
Цитата: Asubos от Сегодня в 11:02:09
http://odd.by/catalog/shtory/vlozhennaya-kategoriya-2

не способно работать принципе. потому что catalog/shtory - это пункт меню. а поскольку вложенного пункта с алиасом vlozhennaya-kategoriya-2 для него нет, то будет 404 однозначно. тут до роутера ЖШ даже дело не дойдет. работать будет /catalog/vlozhennaya-kategoriya-2, но /catalog/shtory/vlozhennaya-kategoriya-2 - нет

Потому что при ссылке вида "http://odd.by/catalog/postelnoe-bele/komplekt-2-spalnyj/opticheskij-obman" в пути встречается категория "komplekt-2-spalnyj", на которую ссылки в меню нету. Причем это не зависит от того, опубликован плагин полного пути или нет. Ну или я продолжаю что-то не догонять.

Вариант
Цитировать
делайте пункты меню внешними ссылками и вставляйте ссылку, которую выдает модуль категорий.
не помог, тоже поведение.

dmitry_stas, за 404 отдельное спасибо, поправлю, совсем что-то рассеянный стал...
« Последнее редактирование: 04.04.2014, 13:39:11 от Asubos »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вывести заголовок прописанный в пункте меню вместо названия категории

Автор anatolij

Ответов: 13
Просмотров: 2271
Последний ответ 04.12.2024, 15:20:00
от kit2m2
В описании категории не работает плагин Jshortcodes

Автор SLV

Ответов: 1
Просмотров: 1191
Последний ответ 09.09.2024, 17:35:29
от kit2m2
Сортировка товаров внутри категории

Автор oslyabya

Ответов: 1
Просмотров: 1308
Последний ответ 02.08.2024, 22:06:39
от nevigen
Сравнить общее количество товаров категории с количеством на странице

Автор goga_pgasovav

Ответов: 6
Просмотров: 1382
Последний ответ 25.01.2023, 20:12:58
от goga_pgasovav
Получить код верхней категории?

Автор mag_num83

Ответов: 5
Просмотров: 1007
Последний ответ 16.12.2022, 16:27:58
от kit2m2