Новости 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 Ответов
  • 1778 Просмотров
*

kefla

  • Захожу иногда
  • 87
  • 4 / 0
  • Учусь, учусь, все время учусь, а края не видно...
Рискну обратиться с вопросом
очень надеюсь, что кто-то из гуру поможет почистить, т.к. уперся и дальше...

В свое время при различных экспериментах доигрался с установкой разнообразных слайдеров до того, что один из них оставил следы, которые мешают при загрузке страницы, запуская скрипты со ссылкой на удаленный компонент - плагин ArtNiceBox (притом ошибок целых три.. см рисунок).

По толчку от ELLE смог самостоятельно очистить из 30 подгружаемых ранее скриптов 16, а с этими ну просто никак...
Заранее благодарен за толчок в нужном направлении.




[вложение удалено Администратором]
« Последнее редактирование: 18.02.2013, 18:35:43 от kefla »
*

nevigen

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

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
*

kefla

  • Захожу иногда
  • 87
  • 4 / 0
  • Учусь, учусь, все время учусь, а края не видно...
Это сделал самым первым  :(
В том-то и дело, что в директории пусто, думал что где-то ссылки остались, но где, понять не могу

[вложение удалено Администратором]
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
ну, вообще логично - консоль так и говорит, что 404 - "не найдено"
осталось только найти откуда подключатся эти скрипты.
попробуйте поиском по файлам воспользоваться
*

evpadallas

  • Захожу иногда
  • 171
  • 42 / 1
Вспомните, как Вы его устанавливали, почитайте Readme и сделайте все в обратном порядке. Посмотрите, может автоматом установился компонент, может вместе с контентными плагинами легли где-то системные. Покажите архивы, в распакованном виде, которые устанавливали, может будет видно сразу.
*

kefla

  • Захожу иногда
  • 87
  • 4 / 0
  • Учусь, учусь, все время учусь, а края не видно...
Последовал совету ELLE, нашел записи о ссылке на этот плагин в сейчас работающем модуле mod_artimagecycle
Закомментировал кусок в mod_artimagecycle.php.
Как итог - функционал работающего модуля не потерян, а 6 или даже больше ошибок ушли в небытие.
ELLE "+"

P.S.: к сожалению вспомнить: "Когда, что и как ставил" - чрезвычайно сложно, дневник не веду, а видать следовало бы, тогда не пришлось бы задавать глупые вопросы сообществу.
P.P.S: Остались последние две ошибки, которые пока не ищутся
Дерзаю, если кто поможет еще и их побороть, буду весьма признателен.
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
У вас магазин вроде не самой последней версии...а Jquery грузите самую последнюю - v1.9.1
Попробуйте понизить - 1.8, 1.7 . По умолчанию в магазине 1.6.3 вроде
*

kefla

  • Захожу иногда
  • 87
  • 4 / 0
  • Учусь, учусь, все время учусь, а края не видно...
ELLE, Вы правы  ^-^ yes!
понизился до 1.6.3, одна из двух ошибок ушла!
Осталась последняя, связанная с отсуствием font.swf.
Если я правильно понял суть, то этот шрифт(шрифты) связаны с модулями, где такие шрифты используются. В моем случае это видать "Vinaora Cu3er 3D Slideshow". Когда его отключаю, ошибка пропадает. Пока хочу использовать и дальше, т.к. не совсем готов к переходу на аналогичный видеофункционал на CSS.

И еще один вопрос около текущей темы очистки от лишнего.
У меня продолжает подгружаться jquery.media.js - дважды из одного и того же места: http://www.папка.com.ua/components/com_jshopping/js/jquery/jquery.media.js
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
На самом деле ошибок ушло больше с понижением версии, вы видимо только главную смотрите, а в товаре еще + 2 ошибки было...(с рейтингом и media)
теперь с font...поищите такое в своем модуле слайдере -

и думаю эту строчку можно как минимум закомментировать...

Насчет jquery.media.js вижу только один раз подключается

- на нескольких страницах проверила
« Последнее редактирование: 17.02.2013, 23:55:42 от ELLE »
*

kefla

  • Захожу иногда
  • 87
  • 4 / 0
  • Учусь, учусь, все время учусь, а края не видно...
Нашел, закомментировал, все равно вроде как ничего и не сделал
"<script type="text/javascript">
   var flashvars = {};
      flashvars.xml = "<?php echo $config_name; ?>";
/*      flashvars.font = "<?php echo $font_path; ?>"; */
   var attributes = {};
      attributes.wmode = "<?php echo $flash_wmode; ?>";
      attributes.id = "slider<?php echo $module_id; ?>";
   swfobject.embedSWF(<?php echo "\"$slideshow_path\", \"$container\", \"$width\", \"$height\", \"$flash_version\", \"$expressInstall_path\""; ?>, flashvars, attributes);
</script>"
Ну да ладно, покопаюсь еще, Вы ведь направление задали!

Про jquery понял, спасибо. Значит почти всю настроенную лабуду победил у себя.
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
оно не закомментировалось, попробуйте удалить эту строчку

*

kefla

  • Захожу иногда
  • 87
  • 4 / 0
  • Учусь, учусь, все время учусь, а края не видно...
удалил, все равно ошибка.
видать где-то еще есть ссылка на шрифты, отправляет на все тот же несуществуюший
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться