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

avantyrist

  • Захожу иногда
  • 228
  • 3 / 0
Купон в корзине
« : 11.07.2014, 12:05:46 »
Доброго времени суток.
Подскажите пожалуйста, в корзине, /cart/view   Доступна информация о купоне, после его активации ?? Интерисует вывод  номера купона, и какую скидку он даёт ---   №323-324-545  скидка20%
смотрел в print_r (&this)  Там етой инфы нету :(   
*

avantyrist

  • Захожу иногда
  • 228
  • 3 / 0
Re: Купон в корзине
« Ответ #1 : 13.07.2014, 00:40:17 »
никак не выходит !
я в шаблоне корзины сделал вставку:

Код
<?php 
$cart = JModel::getInstance('cart', 'jshop');
$cart->load("cart");
print_r ($cart);
?>

Потом в Файле  /components/com_jshopping/models/cart.php
Продублировал  rabatt_value   для получение rabatt_code
Но не выводит ничего

тоесть если посмотреть print_r ($cart);  у меня стал доступен  мой   rabatt_code, но там пусто.
Поможет кто чем сможет ?
Может тут чтото неправильно делаю: ?

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

Единственное не делал дублирования в етом месте function reloadRabatValue(){, т.к. я понял там идёт определение Процент или Число..
« Последнее редактирование: 13.07.2014, 00:48:12 от avantyrist »
*

avantyrist

  • Захожу иногда
  • 228
  • 3 / 0
Re: Купон в корзине
« Ответ #2 : 13.07.2014, 14:46:19 »
Ети Купоны военная тайна покрытая мраком ??

Ну неужеле нельзя для общего доступа поделиться такой информацией :( елементарная вещь которая должна,  как по мне, присутсвовать на начальной стадии создания магазина,
 Да понимаю  расширения от Невигена и от Разработчиков расширяющие возможности купонов, они класные, но для начала ХОТЬ КАКОЙТО минимум должен быть.
Клиент нигде не может увидеть какие купоны присвоены ему лично,  Нигде не может посмотреть какой именно  купон был  присвоен к Заказу,
Не на момент формирования  его в корзине, не в "СчётФактурах"  вооооообще нигде.... Как так О_о  ?

На днях перечитывал все темы по запросу "купоны"  была одна в которой Виктор обещал  что появится вывод купона в  заказе, щас я етой темы найти не магу, и точного текста не помню,  ночные посиделки.....    В общем я к тому что  етой информации досихпор нигде нету, или я не прав ?
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Re: Купон в корзине
« Ответ #3 : 13.07.2014, 20:11:03 »
если при заказе вводился купон, то вроде да Виктор говорил и делал чтобы он отображался какой купон использован.
Нy не скажу точно... не проверял... но помню было такое в хотелках.
нуу... решение достаточно простое :)
есть расширенный профиль клиента у нас там все отображается.
а почему разработчики сделали это в таком "обрезанном" состоянии мне лично тоже не понятно именно потому профиль и делали.
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

avantyrist

  • Захожу иногда
  • 228
  • 3 / 0
Re: Купон в корзине
« Ответ #4 : 13.07.2014, 21:49:07 »
Невиген дело в том что из того разрешения мне нужна только одна функция, Посмотреть свои КУПОНЫ, я на одну страницу смог вытащить Профиль, Информацию о заказах (список заказов), и информацию о том к какой группе клиентов принадлежит человек, и засунуть ето всё в табы.  Не получается только с КУПОНАМИ.

Но в общем то тема о том чтобы вывести инфу о Купоне в КОРЗИНЕ,
В шаблоне корзины в массиве $this   содержится только вот ета информация о купоне   [discount] => 20 [free_discount] => 0 [use_rabatt] => 1
[discount]  -  там разница, тоесть сколько скинул купон
[free_discount]  --  ваабще непойму что ето
[use_rabatt]  -   я как понял использование Етих  самых дисконтов.
Всё....

Хоть  какуюто связку смог найти так:
<?php
$cart = JModel::getInstance('cart', 'jshop');
$cart->load("cart");
print_r ($cart);
?>
и правя файл  /components/com_jshopping/models/cart.php
Но в ней не получается сделать :( я сегодня пробовал  пол дня опять, чтото вышло, но не то.. :)  там почемуто значения присваиваются разным переменным, щас посижу ешё ночку... Опишу что делал и какой глюк выходит  Х_х
*

avantyrist

  • Захожу иногда
  • 228
  • 3 / 0
Re: Купон в корзине
« Ответ #5 : 23.07.2014, 15:25:45 »
Опять поднимаю тему, начал по новой плясать с купонами в Корзине:
в Шаблоне корзины добавил:

<?php
$tableCoupon = JTable::getInstance('coupon', 'jshop');
$tableCoupon->load($coupon->coupon_id);
$cupon = $tableCoupon->getExistCode();   
print_r($cupon);
?>

Результат показывает --- 0  
Пачему так ? :( непонимаю....
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
Re: Купон в корзине
« Ответ #6 : 23.07.2014, 15:33:14 »
аха, че-то типа такого я делала, я помню чел мне еще не заплатил за работу, хотела еще гневный отзыв написать, потом как всегда забыла :) :)

в общем тут можно глянуть http://demo.joomext.ru/joomshopping что-нибудь закиньте в корзину (через быстрый просмотр, а то в карточке сломался js)))) и перейдите в нее сразу, купон JS15 или JS30 :)

задача звучала примерно так: увидеть код введенного купона и возможность его отменить (чтобы потом ввести другой)

нада?)
« Последнее редактирование: 23.07.2014, 15:49:45 от ELLE »
*

avantyrist

  • Захожу иногда
  • 228
  • 3 / 0
Re: Купон в корзине
« Ответ #7 : 23.07.2014, 16:04:06 »
 ELLE
Да я хоччу вывести в корзину, информацию о купоне : сам купон, срок действия купона, одноразовый ли он

Попробовал на вашем сайте. Там не показывает инфу о купоне, а кнопочка отменить купон работает


Ой извиняюсь, Код купона отображается в самом поле, Увидел.

О! у меня кажется получилось....... 
« Последнее редактирование: 23.07.2014, 16:29:17 от avantyrist »
*

avantyrist

  • Захожу иногда
  • 228
  • 3 / 0
Re: Купон в корзине
« Ответ #8 : 23.07.2014, 17:04:12 »
/models/cart.php   добавляем то что выделенно жирным
Спойлер
[свернуть]


/controllers/cart.php   добавляем то что выделенно жирным
Спойлер
[свернуть]

в Шаблон корзины вставляем:
<?php
$cart = JModel::getInstance('cart', 'jshop');
$cart->load("cart");
print_r ($cart);
?>

Теперь в  $cart   содержится [rabatt_code] => 123

после такой правки, если у вас установлены какието модули для корзины, то ети данные также будут активны в них, покрайней мере у меня активно...

Есть вопрос, функция     function checkCoupon(){     какую роль играет ?  просто если убрать оттуда || ($coupon->type == 1 && $coupon->coupon_code < $this->rabatt_code)   то также всё работает, для чего она ?,
Спрашиваю из-за того что нада вытащить еш как минимум 2 поля, из таблицы  Купонов,  и дублирование всего етого кода как-то не впечетляет.
-------------------
Есть агромная просьба к Людям которые разбираются, скажите пожалуйсто, какие могут быть ньюансы данного решения,  можно всё ето сделать каким либо другим способом?
« Последнее редактирование: 23.07.2014, 17:11:23 от avantyrist »
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
Re: Купон в корзине
« Ответ #9 : 23.07.2014, 17:08:43 »
жуть, сколько хаков, но хоть так :)

вообще, есть событие onAfterDiscountSave, через него можно в корзине всё что нужно получить о введенном купоне ;)
*

avantyrist

  • Захожу иногда
  • 228
  • 3 / 0
Re: Купон в корзине
« Ответ #10 : 23.07.2014, 17:19:50 »
ето вот ета вещь ? ---            $dispatcher->trigger('onAfterDiscountSave', array(&$coupon, &$cart) );
Как с "событиеми" работать-обращаться ? :(
Так тоесть ето событие даёт возможность написания плагина ? в котором  можно вытянуть всю ету инфу ?

У меня извилин не хватает для плагинов, пробовал разобраться - безтолку
« Последнее редактирование: 23.07.2014, 17:26:44 от avantyrist »
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
Re: Купон в корзине
« Ответ #11 : 23.07.2014, 17:23:23 »
через плагины группы jshoppingcheckout
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Скидка + итоговая сумма в корзине

Автор Simply

Ответов: 14
Просмотров: 1499
Последний ответ 15.03.2023, 18:43:59
от kit2m2
Количество товара в корзине в мега-меню [решено]

Автор jesus

Ответов: 13
Просмотров: 2068
Последний ответ 08.10.2021, 21:42:27
от Mister Shadow
Автообновление суммы в корзине от количество товаров

Автор V1RTUS

Ответов: 4
Просмотров: 2660
Последний ответ 30.06.2021, 21:32:09
от driverXP
Цена в корзине без НДС для стран

Автор misteri27

Ответов: 1
Просмотров: 628
Последний ответ 02.06.2021, 13:51:09
от misteri27
Выбор цены в корзине

Автор Winger

Ответов: 16
Просмотров: 742
Последний ответ 18.03.2021, 08:09:28
от nevigen