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

Maxum

  • Давно я тут
  • 689
  • 32 / 1
Такой вопрос: при заполнении поля "Старая цена" в самом товаре эти слова есть. А в категории с товарами есть только сама перечёркнутая цена, а вот этих слов - Старая цена: - их нет. Не могу найти, где их прописать, чтобы выводились в категории с товарами.
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Re: "Старая цена:" - в категории
« Ответ #1 : 19.09.2012, 14:16:59 »
Должно выводится
Это надо смотреть и искать здесь /components/com_jshopping/templates/default/list_products/product.php
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

Maxum

  • Давно я тут
  • 689
  • 32 / 1
Re: "Старая цена:" - в категории
« Ответ #2 : 19.09.2012, 16:01:26 »
Это надо смотреть и искать здесь /components/com_jshopping/templates/default/list_products/product.php

После дописывания этих слов (выделено жирным) непосредственно в код, они появились:
Цитировать
<?php if ($product->product_old_price > 0){?><div style="float:left;">Старая цена:&nbsp;</div>
            <div class="old_price"><?php if ($this->config->product_list_show_price_description) print _JSHOP_OLD_PRICE.": ";?><?php print formatprice($product->product_old_price)?></div>........

А так их в категории товаров нет, только сама перечёркнутая цена.
JS 3.7.2.
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
Re: "Старая цена:" - в категории
« Ответ #3 : 19.09.2012, 16:11:57 »
administrator/index.php?option=com_jshopping&controller=config&task=catprod
Показывать описание цены - ДА

Код
print _JSHOP_OLD_PRICE
- это и есть вывод словосочетания "Старая цена" - вы просто в настройках не включили и не надо было ничего от себя писать ;)
*

Maxum

  • Давно я тут
  • 689
  • 32 / 1
Re: "Старая цена:" - в категории
« Ответ #4 : 19.09.2012, 17:00:16 »
administrator/index.php?option=com_jshopping&controller=config&task=catprod
Показывать описание цены - ДА
Код
print _JSHOP_OLD_PRICE
- это и есть вывод словосочетания "Старая цена" - вы просто в настройках не включили и не надо было ничего от себя писать ;)

О, точно. Но сделано это было целенаправленно, теперь вспоминаю: нужно было для слов "Цена" и "Старая цена" сделать стиль, отличный от самой цены. Цену сделать жирным и другого цвета.
Спасибо, что помогли разобраться.
« Последнее редактирование: 19.09.2012, 17:04:16 от Maxum »
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
Re: "Старая цена:" - в категории
« Ответ #5 : 19.09.2012, 17:03:37 »
нужно было для слов "Цена" и "Старая цена" сделать стиль, отличный от самой цены. Цену сделать жирным и другого цвета.
так это вообще не проблема :)
в <span> берете и стилизуете как надо)) к чему это лишняя писанина в php шаблоне
*

Maxum

  • Давно я тут
  • 689
  • 32 / 1
Re: "Старая цена:" - в категории
« Ответ #6 : 19.09.2012, 17:05:30 »
в <span> берете и стилизуете как надо)) к чему это лишняя писанина в php шаблоне
Не обладаю, поэтому вот так. А где и что нужно заключить в <span>?
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
Re: "Старая цена:" - в категории
« Ответ #7 : 19.09.2012, 17:21:31 »
Код
<?php if ($product->product_old_price > 0){?><div style="float:left;">Старая цена:&nbsp;</div>
  <div><span class="bl"><?php if ($this->config->product_list_show_price_description) print _JSHOP_OLD_PRICE.": ";?></span>
<span class="red"><?php print formatprice($product->product_old_price)?></span>
</div>...............
- допустим так...
потом в css
Код: css
.bl {color:#000;}
.red {color: red;}
*

Maxum

  • Давно я тут
  • 689
  • 32 / 1
Re: "Старая цена:" - в категории
« Ответ #8 : 19.09.2012, 17:39:53 »
Код
<?php if ($product->product_old_price > 0){?><div style="float:left;">Старая цена:&nbsp;</div>
  <div><span class="bl"><?php if ($this->config->product_list_show_price_description) print _JSHOP_OLD_PRICE.": ";?></span>
<span class="red"><?php print formatprice($product->product_old_price)?></span>
</div>...............

В Вашем примере, наверное, не должно быть вот этой моей вставки?
Код
<div style="float:left;">Старая цена:&nbsp;</div>
А то получается, что и она есть, и <span> в придачу...

*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
Re: "Старая цена:" - в категории
« Ответ #9 : 19.09.2012, 18:11:14 »
нет, не нужно ничего более вставлять - у вас все есть (было и так), каждый нужный вам блок выводится отдельно, оборачивайте просто в теги именуйте своими классами и дальше стилизуйте как надо средствами CSS.
*

Maxum

  • Давно я тут
  • 689
  • 32 / 1
Re: "Старая цена:" - в категории
« Ответ #10 : 19.09.2012, 18:19:32 »
Теперь-то вижу, что всё было :). Но знаний не хватило, чтобы понять, где там слово "Цена", а где сами цифры этой цены.
Всё получилось. Спасибо!
Пойду-ка из других php попереношу всё в CSS.
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Re: "Старая цена:" - в категории
« Ответ #11 : 19.09.2012, 21:35:17 »
В настройках "Show description price "
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вывести заголовок прописанный в пункте меню вместо названия категории

Автор anatolij

Ответов: 13
Просмотров: 2269
Последний ответ 04.12.2024, 15:20:00
от kit2m2
В описании категории не работает плагин Jshortcodes

Автор SLV

Ответов: 1
Просмотров: 1189
Последний ответ 09.09.2024, 17:35:29
от kit2m2
Сортировка товаров внутри категории

Автор oslyabya

Ответов: 1
Просмотров: 1306
Последний ответ 02.08.2024, 22:06:39
от nevigen
Сравнить общее количество товаров категории с количеством на странице

Автор goga_pgasovav

Ответов: 6
Просмотров: 1381
Последний ответ 25.01.2023, 20:12:58
от goga_pgasovav
Получить код верхней категории?

Автор mag_num83

Ответов: 5
Просмотров: 1006
Последний ответ 16.12.2022, 16:27:58
от kit2m2