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

zaur111

  • Захожу иногда
  • 233
  • 6 / 0
  • Заур Магомедов
Re: Проблемы с корзиной
« Ответ #60 : 08.02.2016, 12:28:28 »
то, что он это выдает - это понятно. ошибка добавления в корзину есть при этом? то, что выдает фаирбаг, на процесс добавления в корзину никак не влияет.

Я не стал снова проходиться по всем товарам. Но что есть ошибки мне уже хватило, чтобы сделать выводы и заказчик сказал что теперь все в норме.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Проблемы с корзиной
« Ответ #61 : 08.02.2016, 14:44:16 »
А чем понятно-то? Откуда такая ссылка берётся?
Только из-за добавления слэша такого быть не должно. Где-то значит редирект есть.
почему не может? со слешем - ссылка от корня сайта. без слеша - от текущего, от kupit-dlya-bani в данном случае. второй случай - получается неверная ссылка и 404.

но вопрос в том, что кроме ошибки (не)изменения цены в зависимости от количества (если заданы разные цены в товаре для разного количества) это на само добавление товара в корзину никак не влияет. вот вообще никак. я имею в виду в стандартной ситуации. соответственно, тут было что то локальное. думается мне что связанное именно с теми неверными редиректами. но судя по
Я не стал снова проходиться по всем товарам. Но что есть ошибки мне уже хватило, чтобы сделать выводы и заказчик сказал что теперь все в норме.
мы не узнаем, что же именно :) ну и ладно :)

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

Brooksus

  • Давно я тут
  • 641
  • 169 / 0
  • Ща спою...
Re: Проблемы с корзиной
« Ответ #62 : 08.02.2016, 15:04:46 »
почему не может? со слешем - ссылка от корня сайта. без слеша - от текущего, от kupit-dlya-bani в данном случае. второй случай - получается неверная ссылка и 404.
Это понятно. Мне не понятно почему чаще отсутствие этого слэша ведет к ссылке вида http://сайт//........... , а не к http://сайт/категория/......
Или + или YM41001160794290, или WMR R189734255107, а лучше все сразу и много.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Проблемы с корзиной
« Ответ #63 : 08.02.2016, 15:16:35 »
теперь и мне непонятно :) что значит "чаще"? :) я до этого был уверен, что отсутствие слеша всегда ведет к текущему расположению, а не к корню. а со слешем - всегда от корня сайта. нет? :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Brooksus

  • Давно я тут
  • 641
  • 169 / 0
  • Ща спою...
Re: Проблемы с корзиной
« Ответ #64 : 08.02.2016, 15:35:07 »
теперь и мне непонятно :) что значит "чаще"? :) я до этого был уверен, что отсутствие слеша всегда ведет к текущему расположению, а не к корню. а со слешем - всегда от корня сайта. нет? :)
http://pastenow.ru/J801
http://pastenow.ru/J80B
« Последнее редактирование: 08.02.2016, 15:41:00 от Brooksus »
Или + или YM41001160794290, или WMR R189734255107, а лучше все сразу и много.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Проблемы с корзиной
« Ответ #65 : 08.02.2016, 15:43:26 »
та нее :) вы не поняли :) у вас Category All - какой пункт меню? А на пациенте - kupit-dlya-bani. оттуда и ссылка начинает строится

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

Brooksus

  • Давно я тут
  • 641
  • 169 / 0
  • Ща спою...
Re: Проблемы с корзиной
« Ответ #66 : 08.02.2016, 15:48:07 »
та нее :) вы не поняли :) у вас Category All - какой пункт меню? А на пациенте - kupit-dlya-bani. оттуда и ссылка начинает строится
P.S. точнее даже не так. у вас главная - это ЖШ? а у пациента - нет
Нее... Главная - это обычные избранные материалы
Категори all - http://joomla3.brooksite.ru/kategorii.html (Категории)
Или + или YM41001160794290, или WMR R189734255107, а лучше все сразу и много.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Проблемы с корзиной
« Ответ #67 : 08.02.2016, 16:01:59 »
ну вот тут четкое описание ссылок со слешем или без



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

Brooksus

  • Давно я тут
  • 641
  • 169 / 0
  • Ща спою...
Re: Проблемы с корзиной
« Ответ #68 : 08.02.2016, 16:06:25 »
не могу сказать, возможно это еще зависит и от серверных настроек.
Вот. А хочется точно знать от чего зависит. Ну, ладно. Будем искать...
Или + или YM41001160794290, или WMR R189734255107, а лучше все сразу и много.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Проблемы с корзиной
« Ответ #69 : 08.02.2016, 16:07:00 »
самый правильный вариант - это вообще использовать Juri::base(true) в начале, а не слеш. потому что со слешем будет ошибка если Joomla расположена не в корне сайта, а в категории. со слешем - запрос будет к корню сайта, а там не будет этого скрипта. а Juri::base(true) сделает ссылку правильной в любом случае
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Brooksus

  • Давно я тут
  • 641
  • 169 / 0
  • Ща спою...
Re: Проблемы с корзиной
« Ответ #70 : 08.02.2016, 16:12:40 »
более того, самый правильный вариант - это вообще использовать Juri::base(true) в начале, а не слеш. потому что со слешем будет ошибка если Joomla расположена не в корне сайта, а в категории. со слешем - запрос будет к корню сайта, а там не будет этого скрипта.
Ну, да я сейчас стараюсь везде задавать Juri::base(), даже не Juri::base(true)

P.S. Надо наверное Nevigen попросить почистить тему, если автор не возражает.
Или + или YM41001160794290, или WMR R189734255107, а лучше все сразу и много.
*

zaur111

  • Захожу иногда
  • 233
  • 6 / 0
  • Заур Магомедов
Re: Проблемы с корзиной
« Ответ #71 : 08.02.2016, 16:15:17 »
самый правильный вариант - это вообще использовать Juri::base(true) в начале, а не слеш. потому что со слешем будет ошибка если Joomla расположена не в корне сайта, а в категории. со слешем - запрос будет к корню сайта, а там не будет этого скрипта. а Juri::base(true) сделает ссылку правильной в любом случае

Согласен. И все адреса станут абсолютными, а просто со слешем - относительные.
*

zaur111

  • Захожу иногда
  • 233
  • 6 / 0
  • Заур Магомедов
Re: Проблемы с корзиной
« Ответ #72 : 08.02.2016, 16:16:21 »
P.S. Надо наверное Nevigen попросить почистить тему, если автор не возражает.

Как понять почистить? Здесь разве есть что то не по теме?
*

Brooksus

  • Давно я тут
  • 641
  • 169 / 0
  • Ща спою...
Re: Проблемы с корзиной
« Ответ #73 : 08.02.2016, 16:26:21 »
Как понять почистить? Здесь разве есть что то не по теме?
Проблему-то вы решили еще на 2ой странице :)
Или + или YM41001160794290, или WMR R189734255107, а лучше все сразу и много.
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Re: Проблемы с корзиной
« Ответ #74 : 08.02.2016, 16:27:14 »
так корзина уже нормально работает или нет? :)
смотрю тема такая ГоРяЧаЯ )
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

zaur111

  • Захожу иногда
  • 233
  • 6 / 0
  • Заур Магомедов
Re: Проблемы с корзиной
« Ответ #75 : 08.02.2016, 16:28:19 »
Мне кажется все эти обсуждения касаются темы. Проблема то была в адресе и именно из-за слеш. По крайней мере проблема так решилась.
*

zaur111

  • Захожу иногда
  • 233
  • 6 / 0
  • Заур Магомедов
Re: Проблемы с корзиной
« Ответ #76 : 08.02.2016, 16:29:29 »
так корзина уже нормально работает или нет? :)
смотрю тема такая ГоРяЧаЯ )

Да, все работает нормально теперь. Еще раз - всем спасибо за помощь и ответы. Без вас бы точно не решил.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Проблемы с корзиной
« Ответ #77 : 08.02.2016, 16:45:14 »
Проблема то была в адресе и именно из-за слеш
в том то и дело, что 99.99% нет :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Re: Проблемы с корзиной
« Ответ #78 : 08.02.2016, 17:47:41 »
тема познавательная. чистить не будем ;)
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

Brooksus

  • Давно я тут
  • 641
  • 169 / 0
  • Ща спою...
Re: Проблемы с корзиной
« Ответ #79 : 08.02.2016, 21:11:26 »
в том то и дело, что 99.99% нет :)
В общем проверил. Действительно без слэша будет неверная страница (у меня работало из-за того, что был перехват функции reloadPriceInList).
Верное решение на мой взгляд вот такое:
Код
$script = '
function reloadPriceInList(product_id, qty){
var data = {};
data["change_attr"] = 0;
data["qty"] = qty;
if (prevAjaxHandler){
prevAjaxHandler.abort();
}
prevAjaxHandler = jQuery.getJSON(
"'.Juri::base().'index.php?option=com_jshopping&controller=product&task=ajax_attrib_select_and_price&product_id=" + product_id + "&ajax=1",
data,
function(json){
jQuery(".product.productitem_"+product_id+" .jshop_price span").html(json.price);
}
);
}
';
JFactory::getDocument()->addScriptDeclaration($script);

P.S. Дмитрий, прошу прощения, что ввёл в заблуждение.
« Последнее редактирование: 08.02.2016, 21:15:09 от Brooksus »
Или + или YM41001160794290, или WMR R189734255107, а лучше все сразу и много.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Проблемы с корзиной
« Ответ #80 : 08.02.2016, 22:02:54 »
ну зато выяснили этот момент :) хотя откровенно говоря я до вашего вопроса и предоставленного проблемного примера в этом и не сомневался :) ну значит будем считать что лишний раз убедился, что это именно так :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Проблемы с регистрацией и авторизацией

Автор Lemonez

Ответов: 3
Просмотров: 548
Последний ответ 01.12.2020, 01:43:14
от gartes
Проблемы с оформлением заказа

Автор misteri27

Ответов: 46
Просмотров: 2769
Последний ответ 16.11.2020, 22:48:28
от nevigen
Проблемы с JoomShopping

Автор kirill`1

Ответов: 5
Просмотров: 983
Последний ответ 22.06.2019, 17:14:25
от passer
Проблемы с оформлением заказа в корзине при включенном ЧПУ

Автор oslyabya

Ответов: 64
Просмотров: 2725
Последний ответ 14.06.2019, 10:31:03
от oslyabya
Проблемы с фильром и поиском

Автор leha111

Ответов: 3
Просмотров: 703
Последний ответ 09.06.2018, 10:23:18
от leha111