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

fusionsg

  • Осваиваюсь на форуме
  • 15
  • 3 / 0
Округление цен
« : 16.07.2012, 19:23:27 »
Доброго дня!
Цены на сайт вносятся в долларах. Основная валюта - рубли.
Естественно цена получается такого вида: "13 257 руб."
Подскажите, возможно как то сделать округление до 100 руб.
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Re: Округление цен
« Ответ #1 : 16.07.2012, 21:09:00 »
Доброго дня!
Цены на сайт вносятся в долларах. Основная валюта - рубли.
Естественно цена получается такого вида: "13 257 руб."
Подскажите, возможно как то сделать округление до 100 руб.
Белоруссия. Первое место в мире по инфляции в 2011 году.
Вносить цены в рублях. Вы наверняка используете импорт. Так почему бы в csv файле сразу не сделать округление до 100?
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

fusionsg

  • Осваиваюсь на форуме
  • 15
  • 3 / 0
Re: Округление цен
« Ответ #2 : 16.07.2012, 21:26:15 »
в csv цены в долларах
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Re: Округление цен
« Ответ #3 : 16.07.2012, 21:56:41 »
в csv цены в долларах
MS Excel 2007 = ОКРУГЛТ(Сумма в баксах;100) Сохранить. Открыть OpenOffice, сохранить как CSV (Кодировка = UTF-8)
Делов то...
Другой способ = хакать ядро ЖШ в контроллерах Категории и товары. Хотя там наверное и корзину надо будет хакать.
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
Re: Округление цен
« Ответ #4 : 16.07.2012, 22:06:48 »
Да вот интересное кино.

Ради эксперимента в настройках установил точность цены продукта -2

В админке в карточке товара цены округлились.
А вот в списке товаров в админке и в дефолтных шаблонах на фронте - нет.
*

fusionsg

  • Осваиваюсь на форуме
  • 15
  • 3 / 0
Re: Округление цен
« Ответ #5 : 17.07.2012, 00:07:13 »
MS Excel 2007 = ОКРУГЛТ(Сумма в баксах;100) Сохранить. Открыть OpenOffice, сохранить как CSV (Кодировка = UTF-8)
Делов то...
Понял, но это слишком муторная процедура когда не одна тысяча товаров.
*

ViktorMah

  • Захожу иногда
  • 252
  • 30 / 0
Re: Округление цен
« Ответ #6 : 17.07.2012, 08:56:59 »
Я тут поднимал такой вопрос для настроек Белорусских курсов - http://joomlaforum.ru/index.php/topic,220022.msg1153274.html
получилось. теперь достаточно просто в админке зайти в настройки курсов валют и поправить на нужный курс.

Расчёт курса Российского рубля - 1 / 33 = 0.0303030303(калькулятор Google). Курс ЦБ РФ на 17.07.2012 = 32,621 . В пересчёте он составляет 1 / 32.62100 = 0.0306550995
« Последнее редактирование: 17.07.2012, 09:05:08 от ViktorMah »
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Re: Округление цен
« Ответ #7 : 17.07.2012, 10:42:28 »
Понял, но это слишком муторная процедура когда не одна тысяча товаров.
Правда? А у меня это получается за 10 сек. 9 на написание формулы и 1 секунда на двойной клик по нижнему правому углу этой ячейки. И все 1400 товаров приобретают необходимую цену.
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

fusionsg

  • Осваиваюсь на форуме
  • 15
  • 3 / 0
Re: Округление цен
« Ответ #8 : 17.07.2012, 21:53:40 »
Я тут поднимал такой вопрос для настроек Белорусских курсов
Не выходит так с рублями, попробовал с вашими курсами все округляется, но у вас миллионы, видимо поэтому.
*

fusionsg

  • Осваиваюсь на форуме
  • 15
  • 3 / 0
Re: Округление цен
« Ответ #9 : 17.07.2012, 22:06:50 »
Правда? А у меня это получается за 10 сек.
В любом случае такой вариант не подходит, т.к. импорт будет в долларах, а округление рублей должно быть уже в самом JS.
Спасибо за предложение.
*

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
Re: Округление цен
« Ответ #10 : 17.07.2012, 22:30:14 »
В самом коде можно прописать округление
http://www.php.su/functions/?round
Создание сайтов, шаблонов, помощь в решении проблем.
*

fusionsg

  • Осваиваюсь на форуме
  • 15
  • 3 / 0
Re: Округление цен
« Ответ #11 : 18.07.2012, 00:02:34 »
В самом коде можно прописать округление
http://www.php.su/functions/?round
Думал об этом, но не могу осилить как прикрутить.
*

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
Re: Округление цен
« Ответ #12 : 18.07.2012, 00:12:29 »
Цена выводится какой-то переменной, например $price
Просто меняете на round($price)
Создание сайтов, шаблонов, помощь в решении проблем.
*

Pazys

  • Завсегдатай
  • 1738
  • 241 / 4
  • <a>А где я ошибся-то?</b>
Re: Округление цен
« Ответ #13 : 18.07.2012, 00:53:49 »
Я завтра попробую округлить. Ща спать.
Ишак меня нюхал ...
Если помог - плюсуйте в карму.
*

Pazys

  • Завсегдатай
  • 1738
  • 241 / 4
  • <a>А где я ошибся-то?</b>
Re: Округление цен
« Ответ #14 : 18.07.2012, 09:27:14 »
Код: php-brief
<?php print('Цена округленная до сотен: '); print formatprice(round($this->product->getPriceCalculate(), -2))?>

-2 в конце это и есть округление, ставим -3 - то до тыщи округляем
Ишак меня нюхал ...
Если помог - плюсуйте в карму.
*

fusionsg

  • Осваиваюсь на форуме
  • 15
  • 3 / 0
Re: Округление цен
« Ответ #15 : 18.07.2012, 11:40:01 »
Код: php-brief
<?php print('Цена округленная до сотен: '); print formatprice(round($this->product->getPriceCalculate(), -2))?>

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

Pazys

  • Завсегдатай
  • 1738
  • 241 / 4
  • <a>А где я ошибся-то?</b>
Re: Округление цен
« Ответ #16 : 18.07.2012, 11:47:22 »
Ну в ядре не советую изменять, т.к. при обновлении магазина все вернется в исходное положение.
Оптимальный вариант - изменить везде в своих шаблонах.

Автоматически везде: открыть все файлы шаблона в нотпад++, там есть функция Поиск и Замена (там где-то можно поставить галочку "во всех файлах") - и найти formatprice($this->product->getPriceCalculate()) и заменить на formatprice(round($this->product->getPriceCalculate(), -2))
Ишак меня нюхал ...
Если помог - плюсуйте в карму.
*

fusionsg

  • Осваиваюсь на форуме
  • 15
  • 3 / 0
Re: Округление цен
« Ответ #17 : 18.07.2012, 12:17:44 »

Автоматически везде: открыть все файлы шаблона в нотпад++,

Ок, понял, спасибо. Вопрос можно считать решенным.
*

sachek

  • Захожу иногда
  • 102
  • 1 / 0
  • Jamal*
Re: Округление цен
« Ответ #18 : 07.07.2013, 23:03:36 »
При ручном установлении цены, цена 1.12, а при импорте 1 !  Нужно ведь 1.12
*

nevigen

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

sachek

  • Захожу иногда
  • 102
  • 1 / 0
  • Jamal*
Re: Округление цен
« Ответ #20 : 08.07.2013, 10:11:44 »
вопрос по округлению ?
или по импорту ?
Извините, вопрос по округлению!  Округление происходит в меньшую сторону! Нужно один к одному как в импортируемом файле
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
Re: Округление цен
« Ответ #21 : 08.07.2013, 10:31:42 »
А в файле у вас разделитель дробной части точка или запятая?
*

sachek

  • Захожу иногда
  • 102
  • 1 / 0
  • Jamal*
Re: Округление цен
« Ответ #22 : 08.07.2013, 10:34:41 »
А в файле у вас разделитель дробной части точка или запятая?
Запятая!
*

sachek

  • Захожу иногда
  • 102
  • 1 / 0
  • Jamal*
Re: Округление цен
« Ответ #23 : 12.07.2013, 16:40:50 »
Догадываюсь, что где то должна быть точка....! Или..
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Re: Округление цен
« Ответ #24 : 12.07.2013, 22:00:33 »
или .....
"или" прячется в настройках "Другие параметры"
вот только это для цен, но для корзины пока все равно _____, хх
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

sachek

  • Захожу иногда
  • 102
  • 1 / 0
  • Jamal*
Re: Округление цен
« Ответ #25 : 13.07.2013, 11:09:19 »
или .....
"или" прячется в настройках "Другие параметры"
вот только это для цен, но для корзины пока все равно _____, хх
С ценой связано только "Точность цены продукта" , стоит 2!  Объясните пожалуйста принцип работы этого параметра.
*

nevigen

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

sachek

  • Захожу иногда
  • 102
  • 1 / 0
  • Jamal*
Re: Округление цен
« Ответ #27 : 13.07.2013, 11:16:02 »
 ^-^ тогда так и не нашел спрятанное "или"!
Как быть. Цена все равно 32.00 а не 32.13
*

nevigen

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

sachek

  • Захожу иногда
  • 102
  • 1 / 0
  • Jamal*
Re: Округление цен
« Ответ #29 : 13.07.2013, 12:41:10 »
в базе 32.13?
в базе также 32.00, кроме тех которые загружены вручную.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

округление цены в корзине

Автор alis2004

Ответов: 0
Просмотров: 890
Последний ответ 23.04.2016, 22:08:01
от alis2004
Округление цен в админке

Автор lalalag

Ответов: 7
Просмотров: 1700
Последний ответ 17.11.2014, 20:53:25
от lalalag
Округление суммы в корзине после скидки (сумма без копеек после ввода диконтного кода)

Автор Anton shop

Ответов: 5
Просмотров: 2424
Последний ответ 01.06.2013, 21:20:47
от elvis20072008