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

avantyrist

  • Захожу иногда
  • 228
  • 3 / 0
Общая сумма заказов
« : 04.04.2014, 01:53:20 »
Подскажите пожалуйста, в Админке есть раздел "Клиенты", в нём можно посмотреть какие заказы совершал клиент, вроде нету никакого вывода Общей суммы заказов О_о
Ето действительно так, или я чегото не понимаю... >:(
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Общая сумма заказов
« Ответ #1 : 04.04.2014, 08:21:08 »
это действительно так. статистика очень страдает в ЖШ
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

avantyrist

  • Захожу иногда
  • 228
  • 3 / 0
Re: Общая сумма заказов
« Ответ #2 : 04.04.2014, 13:16:12 »
Ох ёмаё...
Чёто много всего страдает :((
Этож блин элементарная функция, которая ну впринципе должна быть в магазине. Сортировку по покупкам клиента сделали, а деньги подсчитать забыли. Называется сидите сами с калькулятором считайте  

И естественно в раздели "мои  заказы"  клиенту также никак не показать на  сколько денег  он скупился ??

За спасибо, для сообщества  никто такое сделать не сможет ??
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Общая сумма заказов
« Ответ #3 : 04.04.2014, 13:37:10 »
Цитировать
Этож блин элементарная функция, которая ну впринципе должна быть в магазине
я за. напишите в Что нужно доделать в ЖШ, может сделают.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

avantyrist

  • Захожу иногда
  • 228
  • 3 / 0
Re: Общая сумма заказов
« Ответ #4 : 04.04.2014, 13:46:35 »
Ето какой раздел   ?
*

dmitry_stas

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

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Re: Общая сумма заказов
« Ответ #6 : 04.04.2014, 14:03:56 »
я за. напишите в Что нужно доделать в ЖШ, может сделают.
Ето какой раздел   ?
в трамвае:
- я до вокзала доеду?
- да
- а я ?
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

avantyrist

  • Захожу иногда
  • 228
  • 3 / 0
Re: Общая сумма заказов
« Ответ #7 : 19.04.2014, 16:08:28 »
Ребята может  поможете пожалуйста вывести Общую сумму всех Заказов в разделе Мой акаунт, на странице "Мои заказы"  - .../orders.
Долго и нудно пытаюсь разобраться, ну никак не получается.

в БД таблица  _orders   содержит поля:   order_total.  На странице Мои заказы - .../orders  уже идёт выборка по ID клиента
Как составить выражение - масив, или бог его знает что, Для сумирования order_total в соответствии с - user_id 
и вывести ето дело
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
Re: Общая сумма заказов
« Ответ #8 : 19.04.2014, 16:37:08 »
Ребята может  поможете пожалуйста вывести Общую сумму всех Заказов в разделе Мой акаунт, на странице "Мои заказы"  - .../orders.
Долго и нудно пытаюсь разобраться, ну никак не получается.

в БД таблица  _orders   содержит поля:   order_total.  На странице Мои заказы - .../orders  уже идёт выборка по ID клиента
Как составить выражение - масив, или бог его знает что, Для сумирования order_total в соответствии с - user_id 
и вывести ето дело


откройте шаблон страницы со всеми заказами, там есть цикл foreach в нем можете посчитать общую сумму заказов

$sum = 0;
foreach(...) {
$sum += тут_само_значение, которое нужно суммировать;
}
echo $sum;
*

avantyrist

  • Захожу иногда
  • 228
  • 3 / 0
Re: Общая сумма заказов
« Ответ #9 : 19.04.2014, 17:26:45 »
ELLE благадарю вас ! и плюс в карму
 yes!
Спойлер
[свернуть]
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
Re: Общая сумма заказов
« Ответ #10 : 19.04.2014, 18:05:17 »
можете еще в зависимости от статуса заказа, например, посчитать сумму только оплаченных заказов
опять же там есть значения статуса

if(статус == 'оплачен'){
// тогда суммируем
$sum += $order->order_total;
}

*

avantyrist

  • Захожу иногда
  • 228
  • 3 / 0
Re: Общая сумма заказов
« Ответ #11 : 19.04.2014, 20:01:38 »
ELLE ну вобщемто так правилнее делать ! Я чёто даже не думал изначально об етом моменте  crazy!
Спойлер
[свернуть]

if($order->order_status == '7'){
'7'  --  ето значение берётся из БД, таблицы  _order

ELLE можно ешё немножко развить тему, ?
Каким образом можно просумировать поля  в таблице с определённым значением. Тоесть если order_status == '7'  посчитать сколько полей(строчек) имеют значение  7, и вывести количество етих полей(строчек)
Тоесть добиться вывод типа:
Оплаченных: 6 заказов
Не оплаченных: 3 заказа
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Общая сумма заказов
« Ответ #12 : 19.04.2014, 20:11:54 »
суммируйте в массив:

Код: php
$sum[$order->order_status] += $order->order_total;
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

avantyrist

  • Захожу иногда
  • 228
  • 3 / 0
Re: Общая сумма заказов
« Ответ #13 : 19.04.2014, 20:37:37 »
Дмитрий непойму вас  :(
А зачем для подсчёта оплаченныч, и не оплаченных полей   --   order_total;   ?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Общая сумма заказов
« Ответ #14 : 19.04.2014, 20:42:13 »
вы попробовали сделать, и не получилось? или вы просто не поймете?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Re: Общая сумма заказов
« Ответ #15 : 19.04.2014, 20:46:27 »
а вот здесь /administrator/index.php?option=com_jshopping&controller=statistic если взять и посмотреть код
наврено можно многое понять и найти
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

avantyrist

  • Захожу иногда
  • 228
  • 3 / 0
Re: Общая сумма заказов
« Ответ #16 : 20.04.2014, 00:00:44 »
Я не знаю как сделать, не знаю как ето "сумировать в масиве"
и не пойму примера Вашего   $sum[$order->order_status] += $order->order_total;  Для интереса вставил, получил " 0 "
тоесть непойму связи между  order_status (в котором записан Статус заказа) и  order_total (в котором записана общая сумма заказа)  Не пойму к чему зацепиться

нашёл файл  \administrator\components\com_jshopping\views\statistic\tmpl\default.php  - вчитывался толку аж ноль,

Помогите пожалуйста !, с етим уже не первый день сижу, ELLE на "легке" показала пример условия. то над чем я парился чёрт знает сколько времени, зарываясь в папке Контролёрс и в БД
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Общая сумма заказов
« Ответ #17 : 20.04.2014, 09:02:23 »
Цитировать
Для интереса вставил, получил " 0 "

что "0"?

Цитировать
непойму связи между  order_status (в котором записан Статус заказа) и  order_total (в котором записана общая сумма заказа)

после цикла массив будет содержать суммы заказов по статусам. например, если ид статуса заказа Оплачен = 7, то значит $sum[7] = сумме заказов со статусом оплачен
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

avantyrist

  • Захожу иногда
  • 228
  • 3 / 0
Re: Общая сумма заказов
« Ответ #18 : 20.04.2014, 15:12:10 »
Дмитрий я прошу прощения но из последнего вашего сообщения мне кажется Вы не так меня поняли, хотя м.б. и я не о том думаю.
Цитировать
после цикла массив будет содержать суммы заказов по статусам.
,

Я спрашивал не про суммы заказов по статусу, а про количество заказов со статусом:
Оплаченых заказов: 5 
Неоплаченных заказов: 2

P/S  На форуме по КСС вопросам отправляют на htmlbook.ru ,   Может подскажите какойнить PHPbook.ru для отсталых... :)
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Общая сумма заказов
« Ответ #19 : 20.04.2014, 16:17:44 »
Цитировать
из последнего вашего сообщения мне кажется Вы не так меня поняли

Не так, но сути это не меняет. прибавляйте значит не сумму заказа, а просто увеличивайте на единицу. и будет количество.

Код: php
$sum[$order->order_status] = $sum[$order->order_status] + 1;

или сокращенная запись

Код: php
$sum[$order->order_status]++;
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

avantyrist

  • Захожу иногда
  • 228
  • 3 / 0
Re: Общая сумма заказов
« Ответ #20 : 21.04.2014, 20:41:20 »
Дмитрий не понял я, как делать через массив
ELLE подсказала использовать просто счетчик:

Спойлер
[свернуть]

Где 1 и 7 соответствуют статусам заказа  берутся из таблицы _orders.
Незнаю на сколько ето правильно, но хоть както... :)
 
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Общая сумма заказов
« Ответ #21 : 21.04.2014, 21:09:21 »
разницы нет особо. так значит так. в массив просто проще, не надо было бы условий.

Код: php
$sum = array();
foreach($this->orders as $order) {
$sum[$order->order_status]++;
}
echo $sum[7]; //сколько всего оплаченных заказов
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вывод номера телефона в списке заказов

Автор sifoz

Ответов: 8
Просмотров: 2824
Последний ответ 25.11.2023, 00:58:54
от nevigen
Скидка + итоговая сумма в корзине

Автор Simply

Ответов: 14
Просмотров: 1499
Последний ответ 15.03.2023, 18:43:59
от kit2m2
Какое событие для плагина срабатывает в админке в списке заказов?

Автор Dolphin4ik_1

Ответов: 1
Просмотров: 494
Последний ответ 12.04.2022, 21:53:00
от kit2m2
Комментарий при смене статуса заказа в список заказов

Автор semak85

Ответов: 0
Просмотров: 721
Последний ответ 06.10.2021, 13:13:20
от semak85
JoomShopping "Бесплатная доставка для заказов больше" + использование купонов

Автор xxvovan88xx

Ответов: 1
Просмотров: 1160
Последний ответ 18.05.2021, 15:23:00
от xxvovan88xx