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

IrochkaStep

  • Захожу иногда
  • 183
  • 5 / 0
  • Настроение супер! Чего и всем желаю!
Все началось с того, что я решила обновить версию Joomla и js на своем магазине. Постепенно начала обновлять js но на одной из версии навылезало куча ошибок, сделала бэкап и вроде успокоилась. Магаз маленький около 100 товаров, стала добавлять новинки - кнопки сохранить и рядом стоящие перестали работать. Не добавляется товар и все тут.
Решила все заново на локале сделать(чтобы сайт пока работал). На денвере все было путем, поставила свежие версии Joomla и js, но после переноса на хост, стали неактивными поля для подробного описания товаров, производителей и т.п., и также не работают кнопки сохранить, отменить и другие. 

Помогите, в чем может быть причина? В хостере? Написала тикет им, пока молчат
*

nevigen

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

IrochkaStep

  • Захожу иногда
  • 183
  • 5 / 0
  • Настроение супер! Чего и всем желаю!
Re: Не работают некоторые функции
« Ответ #2 : 05.03.2013, 15:56:03 »
В общем на хосте толком не знают. Говорят давайте доступ к админке - посмотрим. Все нафиг снесла, установила сразу на хост, версии самые последние, вчера добавила часть товаров, сегодня стала доделовать - опять кнопки сохранить отменить не работают
*

IrochkaStep

  • Захожу иногда
  • 183
  • 5 / 0
  • Настроение супер! Чего и всем желаю!
Re: Не работают некоторые функции
« Ответ #3 : 05.03.2013, 16:21:54 »
Косяк был в включенном редакторе codemirror, фуф, щас бэкапну сайт и гора с плеч
*

nevigen

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

IrochkaStep

  • Захожу иногда
  • 183
  • 5 / 0
  • Настроение супер! Чего и всем желаю!
Re: Не работают некоторые функции
« Ответ #5 : 05.03.2013, 20:54:36 »
Я думала вы предлагаете установить какой-то другой редактор, и вы говорили о неактивном поле описания. А самое главное было что кнопки не работали
*

ven-til

  • Захожу иногда
  • 157
  • 3 / 0
Re: Не работают некоторые функции
« Ответ #6 : 10.03.2013, 15:38:38 »
на своем магазине заметил, что не работает:
1 кнопка "Обзор" при выборе сопутствующих товаров в одноименной вкладке
2. кнопка "Изменить статус" в Заказах
При нажатии на эти кнопки вообще никакой реакции.
*

nevigen

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

ven-til

  • Захожу иногда
  • 157
  • 3 / 0
Re: Не работают некоторые функции
« Ответ #8 : 10.03.2013, 19:33:53 »
Да, в админке сжатие включено.
Попробую отключить и проверить работу.
Спасибо.

***
Отключил сжатие в админке. Проблема не решилась.
Сторонних плагинов сжатия не использую.

В консоли есть 6 ошибок Uncaught ReferenceError: releted_product_search is not defined index.php:1219
Код
<input type = "button" class = "button" value = "Поиск" onclick="releted_product_search(0, '13');" />
« Последнее редактирование: 10.03.2013, 19:52:52 от ven-til »
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Re: Не работают некоторые функции
« Ответ #9 : 12.03.2013, 08:46:20 »
1. Не пишите красным. Если хотите сделать акцент на какой-нибудь фразе выделяйте жирным.
2. В админке не подгружается файл скрипта administrator\components\com_jshopping\js\functions.js
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

ven-til

  • Захожу иногда
  • 157
  • 3 / 0
Re: Не работают некоторые функции
« Ответ #10 : 12.03.2013, 10:18:08 »
1. Ок.
2. Как исправить ошибку чтоб скрипт подгружался?
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Re: Не работают некоторые функции
« Ответ #11 : 12.03.2013, 10:29:53 »
попробовать для начала просто перезаписать данный файл из инсталяции поверху.
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

ven-til

  • Захожу иногда
  • 157
  • 3 / 0
Re: Не работают некоторые функции
« Ответ #12 : 12.03.2013, 10:44:31 »
nevigen, спасибо, помогло. +
Ошибка была именно в этом файле скрипта.
Отличия были в отстутствии условий:
До:
Код
function SqueezeBox_init(product_images_width = 640, product_images_height = 480) {

После:
Код
function SqueezeBox_init(product_images_width, product_images_height){
    if (!product_images_width) product_images_width = 640;
    if (!product_images_height) product_images_height = 480;
После перезаписи файла работают сопутствующие товары и кнопка изменения статуса заказа.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться