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

ProfessorDace

  • Осваиваюсь на форуме
  • 47
  • 5 / 0
  • Правила везде одни
Два часа рыскал форму, так и не нашёл топика, а платные решения меня не устраивают и не совсем-то, ближе к делу:
Мне необходимо на странице списка товаров вывести подробное описание товара, и сам файл товара (Это ссылка на электронный файл), но никак не могу додуматься как закинуть необходимую инфу в массив this.
Будьте добры, подскажите?!

Joomla 2.5, есть файлы ЖШ /com_jshopping/templates/default/product/product_default.php - с подробным описанием и
/com_jshopping/templates/default/list_products/product.php - со списком товаров и не полным описанием к каждому.
*

dmitry_stas

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

ProfessorDace

  • Осваиваюсь на форуме
  • 47
  • 5 / 0
  • Правила везде одни
Плагин таки кошерный, но где обещанный доллар?  :laugh:
*

dmitry_stas

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

ProfessorDace

  • Осваиваюсь на форуме
  • 47
  • 5 / 0
  • Правила везде одни
А ещё вопрос, плагин хороший, благодарен премного, но мне не столь нужно было описание, если даже вообще не нужно, сколько переменная $this->demofiles...
А она есть в demofiles.php, который в свою очередь инклудится в product_default.php (подробное описание товара).
*

ProfessorDace

  • Осваиваюсь на форуме
  • 47
  • 5 / 0
  • Правила везде одни
Хотя бы поверхностно намекните, я в пыхе и в Joomla плохо плаваю, не могу разобраться с плагиным вашим.
*

dmitry_stas

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

ProfessorDace

  • Осваиваюсь на форуме
  • 47
  • 5 / 0
  • Правила везде одни
А если брать айдишник у товара и делать выборку в БД в таблице li_jshopping_products_files по ID и брать оттуда имена файлов? Только вот что-то у меня нихера не вытягивает из БД, уже психую до матов, почему я такой ж...рук...
*

ProfessorDace

  • Осваиваюсь на форуме
  • 47
  • 5 / 0
  • Правила везде одни
Помогите пожалуйста найти хотя бы самый костыльный выход, ж...огонь, сайт надо сдавать вот вот...
*

ProfessorDace

  • Осваиваюсь на форуме
  • 47
  • 5 / 0
  • Правила везде одни
В общем, не стал искать трудных путей, сделал следующим образом:
В файле components/com_jshopping/templates/default/list_products/product.php беру прям из БД нужную инфу (да, я это делаю в видах, я му*ак  ;D )
Вставляем следующий код:
Код
<?php
            $query = "SELECT * FROM `#__jshopping_products_files` WHERE product_id = '".$product->product_id."' and demo!='' order by `ordering`";
            $db =& JFactory::getDBO();
            $db->setQuery($query);
            print_r($db->loadAssoc());
            ?>
Где $product->product_id - айдишник текущего товара и вуаля, костыльно, но без головняка.  ^-^
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
да, я это делаю в видах, я му*ак

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

ProfessorDace

  • Осваиваюсь на форуме
  • 47
  • 5 / 0
  • Правила везде одни
Точно, лучше одним запросом, об этом я не подумал, спасибо =)
А до плагинов я ещё не дорос, я пока только постигаю азы пыхи.
Хотя, в принципе, ничего сложного нет, вывести в отдельный плагин, но мне лень=)
« Последнее редактирование: 06.11.2014, 15:17:22 от ProfessorDace »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
в принципе, ничего сложного нет, вывести в отдельный плагин, но мне лень=)

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

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

Автор sergeytolkachyov

Ответов: 25
Просмотров: 35707
Последний ответ 23.09.2025, 11:22:23
от Alex_gs
Модуль карусели товаров JoomShopping на Swiper.js для Joomla

Автор sergeytolkachyov

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

Автор goga_pgasovav

Ответов: 3
Просмотров: 1355
Последний ответ 13.02.2025, 00:11:20
от goga_pgasovav
Плагин обновления цен и остатков товаров JoomShopping из CSV

Автор sergeytolkachyov

Ответов: 0
Просмотров: 1534
Последний ответ 24.12.2024, 14:50:42
от sergeytolkachyov
JoomShopping, вывод всех категории к которым принадлежит товар

Автор Valent777

Ответов: 12
Просмотров: 2467
Последний ответ 01.11.2024, 14:57:28
от kit2m2