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

Bozhkov2

  • Захожу иногда
  • 427
  • 12 / 0
Re: Создание меню в JoomShopping
« Ответ #30 : 06.04.2015, 13:30:10 »
Какая настройка? Вы ее как-то настраивали?
*

Bozhkov2

  • Захожу иногда
  • 427
  • 12 / 0
Re: Создание меню в JoomShopping
« Ответ #31 : 06.04.2015, 13:31:10 »
Почему до обновления? Задайте файлу с новым кодом новое имя, например, new.php  и в модуле переопределите макет вывода - выберите в альтернативном свой новый файл. Ничего при обновлении не затрется.
Сделал, спасибо.
*

Bozhkov2

  • Захожу иногда
  • 427
  • 12 / 0
Re: Создание меню в JoomShopping
« Ответ #32 : 06.04.2015, 13:38:39 »
У меня вопрос к тем, у кого все ок. У вас Joomla 3.4.1? Потому как только что пробовал делать то же самое на 3.0.2 , все ок. После обновления до 3.4.1 лайоут появился.
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Re: Создание меню в JoomShopping
« Ответ #33 : 06.04.2015, 14:23:07 »
У меня вопрос к тем, у кого все ок. У вас Joomla 3.4.1? Потому как только что пробовал делать то же самое на 3.0.2 , все ок. После обновления до 3.4.1 лайоут появился.

Подтверждаю, проблема в самой Joomla, в новой версии!В старых всё ок.Может в новой обнове что-то исправят.
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Создание меню в JoomShopping
« Ответ #34 : 06.04.2015, 14:48:26 »
версия текущая. увидел проблему. вопрос был в том, что пункт меню Магазин у меня был создан в более старой версии ЖШ (когда не сохранялся пункт меню). с таким раскладом все норм. а если изначально все создавать в новых версиях ЖШ (после исправления меню), то да, есть проблема.

P.S. решение

Цитата: \components\com_jshopping\router.php function jshoppingBuildRoute(&$query){
    if (isset($query['controller'])){
        $controller = $query['controller'];
    }else{
        $controller = "";
    }
    if (!isset($query['task'])){
        $query['task'] = '';
    }
    unset($query['layout']);
   
    if (isset($query['Itemid']) && $query['Itemid'] && isset($query['controller']) && $query['task']==""){
        $menuItem = $menu->getItem($query['Itemid']);
        $micontroller = $menuItem->query['controller'];
        if (!$micontroller) {
            $micontroller = $menuItem->query['view'];
         }
        if ($micontroller && $query['controller'] && $micontroller==$query['controller']){
            unset($query['controller']);       
        }
    }
« Последнее редактирование: 06.04.2015, 15:08:44 от dmitry_stas »
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Bozhkov2

  • Захожу иногда
  • 427
  • 12 / 0
Re: Создание меню в JoomShopping
« Ответ #35 : 06.04.2015, 15:01:00 »
Ну если все равно лезть в код, так не проще ли в крошки?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Создание меню в JoomShopping
« Ответ #36 : 06.04.2015, 15:09:15 »
нет, не проще. потому что это вопрос ЖШ и решать надо в ЖШ
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Bozhkov2

  • Захожу иногда
  • 427
  • 12 / 0
Re: Создание меню в JoomShopping
« Ответ #37 : 06.04.2015, 15:13:22 »
А при обновлении опять дописывать?
*

Bozhkov2

  • Захожу иногда
  • 427
  • 12 / 0
Re: Создание меню в JoomShopping
« Ответ #38 : 06.04.2015, 15:19:55 »
P.S. решение

Это нужно добавить или заменить какую-то часть кода?
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Re: Создание меню в JoomShopping
« Ответ #39 : 06.04.2015, 15:20:54 »
А при обновлении опять дописывать?
нет, можете не дописывать.
не надо ? не пользуйте ;)
и обновляться будете нормально.
а можете тыкнуть разработчиков ЖШ чтобы включили в апдейт.
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

Bozhkov2

  • Захожу иногда
  • 427
  • 12 / 0
Re: Создание меню в JoomShopping
« Ответ #40 : 06.04.2015, 15:27:58 »
Я к тому, что шаблон крошек переопределен и после обновления все останется. А в роутер опять придется лезть. Другое дело, что там не только category вылазит.
В любом случае, спасибо за решение. Наконец то я достучался :) А то верблюдом себя чувствовал.
Я разработчикам не тыкну. (может Вы? ;))
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Создание меню в JoomShopping
« Ответ #41 : 06.04.2015, 15:45:12 »
может Вы?

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

Это нужно добавить или заменить какую-то часть кода?

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

Good_user

  • Захожу иногда
  • 149
  • 5 / 1
Re: Создание меню в JoomShopping
« Ответ #42 : 12.05.2015, 21:58:54 »
версия текущая. увидел проблему. вопрос был в том, что пункт меню Магазин у меня был создан в более старой версии ЖШ (когда не сохранялся пункт меню). с таким раскладом все норм. а если изначально все создавать в новых версиях ЖШ (после исправления меню), то да, есть проблема.

P.S. решение

Большое спасибо за решение! Тоже столкнулся с этим косяком, но с Вашей помощью решилось :-) Будьте здоровы!
*

Bozhkov2

  • Захожу иногда
  • 427
  • 12 / 0
Re: Создание меню в JoomShopping
« Ответ #43 : 11.05.2016, 16:55:56 »
Ну вот, опять вылезло ?layout=category после обновления Joomla до 3.5.1
==
P.S.
Опять добавил строку
unset($query['layout']);
из решения выше, окончание пропало. Ее наверное забыли, так как вторая часть дополнения в коде есть.
« Последнее редактирование: 11.05.2016, 17:13:42 от Bozhkov2 »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Создание меню в JoomShopping
« Ответ #44 : 11.05.2016, 17:48:39 »
навряд ли забыли. убрали видимо по какой то причине. Виктор, почему убрали? где то была нестыковка?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Re: Создание меню в JoomShopping
« Ответ #45 : 12.05.2016, 09:09:49 »
Некоторые аддоны используюют layout.
Неправильно удалать что-то из  URL.

Не понимаю как у вас вылазит ошибка.

Если вы создали меню например
index.php?option=com_jshopping&view=category&layout=category&task=view&category_id=1
на фронте все нормально
только Алиас например
cat1
*

Bozhkov2

  • Захожу иногда
  • 427
  • 12 / 0
Re: Создание меню в JoomShopping
« Ответ #46 : 12.05.2016, 10:04:06 »
Цитировать
Не понимаю как у вас вылазит ошибка.
Она не вылазит, она просто есть.
При переходе по ссылкам меню и категориям все хорошо. Ошибка только при переходе по крошкам.
« Последнее редактирование: 12.05.2016, 10:15:27 от Bozhkov2 »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Создание меню в JoomShopping
« Ответ #47 : 12.05.2016, 10:16:41 »
например /категория/подкатегория/товар, находясь в товаре посмотрите ссылки на категории в модуле Breadcrumbs
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Re: Создание меню в JoomShopping
« Ответ #48 : 13.05.2016, 09:23:38 »
В новой версии будет
router.php
row ~ 38

if (in_array($controller, array('category', 'manufacturer', 'vendor'))){
   unset($query['layout']);
}
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Re: Создание меню в JoomShopping
« Ответ #49 : 13.05.2016, 09:33:29 »
например /категория/подкатегория/товар, находясь в товаре посмотрите ссылки на категории в модуле Breadcrumbs
Странно... У меня нет таких проблем...
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

WT JoomShopping Favorite - кнопки избранного в категории товаров и карточке тов

Автор sergeytolkachyov

Ответов: 25
Просмотров: 35716
Последний ответ 23.09.2025, 11:22:23
от Alex_gs
Атрибуты полей при оформлении заказа в JoomShopping

Автор goga_pgasovav

Ответов: 1
Просмотров: 629
Последний ответ 12.08.2025, 11:21:29
от kit2m2
Конфликт js шаблонов JoomShaper helix3 J5 с JoomShopping 5

Автор heartlink

Ответов: 6
Просмотров: 1405
Последний ответ 22.07.2025, 12:40:12
от heartlink
Модуль карусели товаров JoomShopping на Swiper.js для Joomla

Автор sergeytolkachyov

Ответов: 2
Просмотров: 2049
Последний ответ 04.07.2025, 10:30:36
от sergeytolkachyov
[Решено] Сбросить счётчик ID товаров JoomShopping

Автор goga_pgasovav

Ответов: 3
Просмотров: 1359
Последний ответ 13.02.2025, 00:11:20
от goga_pgasovav