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

avantyrist

  • Захожу иногда
  • 228
  • 3 / 0
Скрипты и атрибуты
« : 22.02.2015, 01:51:34 »
Подскажите пожалуйста, я пытаюсь Скрипты собрать в в один файл, и вот заступорился я с атрибутами :=\\
Приведу пример на скрипте карусели:

Есть функция Карусели:
function initSlider(){
 ....... тут скрип
}

//  <!--- ТУТ ТО ЧТО ДОЛЖНО РАБОТАТЬ В РЕДИ  --->
jQuery(document).ready(function(){
initSlider();    //Запускается скрипт при загрузки страници
})

Так как атрибуты подгружаются на лету пытаюсь сделать так...
jQuery('.produkt_attributes input[id^=jshop_attr_id]').live('click', function(){
initSlider();
})

И никакого результата, ступор блин  :(

Но зато если прописать в файле /components/com_jshopping/js/functions.js
в функции:  function reloadAttribSelectAndPrice(id_select){
в конце:                  initSlider();

То всё работает, блин :(  А почему не работает на лайф клике в маём файле я непойму :((
Помогите пожалуйста, Я на етот ЛайфКлик ращитавал, а тут такая запара.... :((

Таким образом тоже не срабатывает, :(((
jQuery('.produkt_attributes').on('click','input[id^=jshop_attr_id]', function(){
initSlider();
})
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Скрипты и атрибуты
« Ответ #1 : 22.02.2015, 02:18:27 »
а как именно по вашей задумке оно должно работать?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

avantyrist

  • Захожу иногда
  • 228
  • 3 / 0
Re: Скрипты и атрибуты
« Ответ #2 : 22.02.2015, 09:35:11 »
Кликаеш на атрибут перезагружаются картинки товара, активируется скрипт слайдера
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Скрипты и атрибуты
« Ответ #3 : 22.02.2015, 10:12:54 »
угу. вы сами и отвечаете на свой вопрос. у вас почти тоже самое:
Кликаеш на атрибут, активируется скрипт слайдера, перезагружаются картинки товара
вопрос в "почти" :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

avantyrist

  • Захожу иногда
  • 228
  • 3 / 0
Re: Скрипты и атрибуты
« Ответ #4 : 22.02.2015, 11:42:49 »
А каким образом  можно ето реализовать ??  Хотя бы просто принцип действий 
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Скрипты и атрибуты
« Ответ #5 : 22.02.2015, 12:04:29 »
при смене атрибута вызывается initJSlightBox(). в чем проблема определить вашу функцию не как initSlider(), а как initJSlightBox()?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

avantyrist

  • Захожу иногда
  • 228
  • 3 / 0
Re: Скрипты и атрибуты
« Ответ #6 : 22.02.2015, 13:32:15 »
У меня вырезана ета фуункция в Функшен.js :)  

Просто когда делал AJAX быстрый просмотр товара из категории,  У меня оно вызывало конфликты (Товар загружался И происходила ошибка  initJSlightBox()  , На странице категорий, скрипт Lightbox подгружался, прописывал вручную  ),      

 Подключать буду ФансиБокс как основу, Но вот из-за ступора описаного выше, у меня посыпались все планы :(

Каким образом можно привязать инициализацию карусели, да и других скриптов, связанных с атрибутами из своего файла,    а не основного магазинного Функшен.js   :'(
« Последнее редактирование: 22.02.2015, 13:35:47 от avantyrist »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Скрипты и атрибуты
« Ответ #7 : 22.02.2015, 14:02:46 »
и что, что она вырезана у вас в function.js? в чем проблема определить вашу функцию не как initSlider(), а как initJSlightBox()? отключив родной Lightbox понятное дело в настройках ЖШ
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

avantyrist

  • Захожу иногда
  • 228
  • 3 / 0
Re: Скрипты и атрибуты
« Ответ #8 : 22.02.2015, 17:24:17 »
Чтото я не пойму.
Если отключить Lightbox в настройках  ЖШ, то вылазит ошибка файла Функшен.js      initJSlightBox();   О_о
Uncaught ReferenceError: initJSlightBox is not defined
(anonymous function)
v.Callbacks.l
v.Callbacks.c.fireWith
T
v.support.ajax.v.ajaxTransport.send.r

Ето у всех так ?  зачем тогда такое отключение из админки нужно ?


*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Скрипты и атрибуты
« Ответ #9 : 22.02.2015, 17:29:29 »
:) я не могу понять, кому и для чего я пишу
определить вашу функцию не как initSlider(), а как initJSlightBox()
? :)
или вы будете это делать, или смысла дальше писать нет
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

avantyrist

  • Захожу иногда
  • 228
  • 3 / 0
Re: Скрипты и атрибуты
« Ответ #10 : 22.02.2015, 17:39:43 »
Да я сделал так !! :)  Работает всё initJSlightBox();    описал как свою функцию,   ето я понял ! :)

Но Хоть убейте, непойму чё не работает так как я выше описывал :)
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Скрипты и атрибуты
« Ответ #11 : 22.02.2015, 18:24:25 »
с live ? ну так я ж вам сказал почему. потому что сначала запускается инициализация слайдера, а потом меняются картинки. и слайдера опять нет
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Атрибуты полей при оформлении заказа в JoomShopping

Автор goga_pgasovav

Ответов: 1
Просмотров: 625
Последний ответ 12.08.2025, 11:21:29
от kit2m2
Атрибуты в functions.js

Автор avantyrist

Ответов: 31
Просмотров: 12445
Последний ответ 19.10.2024, 16:48:10
от newalex
Атрибуты - "Внимание выберите параметры"?

Автор konsty

Ответов: 16
Просмотров: 4809
Последний ответ 12.05.2023, 13:57:21
от art22
Не сохраняются добавленные атрибуты

Автор Alex_iPod

Ответов: 3
Просмотров: 914
Последний ответ 17.04.2023, 22:41:07
от victorantoniak
Характеристики, атрибуты, свободные атрибуты.

Автор Geetler

Ответов: 20
Просмотров: 7679
Последний ответ 24.11.2022, 20:47:04
от Mister Shadow