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

kamit

  • Захожу иногда
  • 90
  • 2 / 0
Установлен интернет-магазин JoomShopping на Joomla 1.5.
В качестве способа оплаты товаров/услуг выбрана - Робокасса (http://www.robokassa.ru/ru/)
Но возникла такая задача: сделать чтоб за разные товары/услуги можно было оплачивать на разные аккаунты в Робокассе?

Например:
В интернет-магазине есть категории:
1. Печатная продукция (организация ООО "Васькин").
2. Электронная продукция (ИП Курочкин).

В магазине-то только можно один аккаунт Робокассы привязать..
Кто что сможет подсказать?
Заранее спасибо!
*

altvvc

  • Давно я тут
  • 523
  • 23 / 0
Re: 2 продавца в JoomShopping+Робокасса
« Ответ #1 : 21.06.2012, 10:30:58 »
Да, скорее всего один акк... А Продавцы будут как филиалы главного магазина.
Красота спасет мир, а пофигизм спасет нервы.
*

kamit

  • Захожу иногда
  • 90
  • 2 / 0
Re: 2 продавца в JoomShopping+Робокасса
« Ответ #2 : 29.06.2012, 08:49:06 »
поподробнее можно?
я просто понимаю вроде что этим хочешь сказать.. но вот технически как.. :-/
*

Geetler

  • Осваиваюсь на форуме
  • 45
  • 4 / 0
Re: 2 продавца в JoomShopping+Робокасса
« Ответ #3 : 29.06.2012, 09:52:03 »
Да, скорее всего один акк... А Продавцы будут как филиалы главного магазина.
поподробнее можно?
я просто понимаю вроде что этим хочешь сказать.. но вот технически как.. :-/
Все уже придумано за вас:
http://www.webdesigner-profi.de/joomla-webdesign/shop/addons/product-payment.html?lang=en
и второй модуль оплаты и вторая регистрация юр.лица в платежной системе.
*

Очередной вебмастер

  • Давно я тут
  • 768
  • 55 / 0
  • лысый умный дядя
Re: 2 продавца в JoomShopping+Робокасса
« Ответ #4 : 29.06.2012, 09:59:04 »
 :o
Вот и у меня примерно такая же проблема.
Начальство хочет магаз.
Но продавать надо
физикам - с ИП Иванова,
а юрикам - ООО Рога и копыта.
Как мне разделить это на этапе оформления покупки?

P.S. Не стал создавать новую тему, вопрос похожий, если надо отдельно пусть модеры поправят.
Сайты на Joomla, разработка и поддержка
----------
Помог ответ - жми плюс!
*

kamit

  • Захожу иногда
  • 90
  • 2 / 0
Re: 2 продавца в JoomShopping+Робокасса
« Ответ #5 : 29.06.2012, 12:08:24 »
Придумать-то может и придумано. но как брать товар, если демки даже нету посмотреть.
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Re: 2 продавца в JoomShopping+Робокасса
« Ответ #6 : 30.06.2012, 08:55:23 »
Все уже придумано за вас:
http://www.webdesigner-profi.de/joomla-webdesign/shop/addons/product-payment.html?lang=en
и второй модуль оплаты и вторая регистрация юр.лица в платежной системе.
А можете уточнить? Если у одного товара отмечена платежная система PayPal а у второго Debit, и клиент положил в корзину эти два товара, что будет? Как клиент будет оплачивать свою покупку?
Maxx как всегда не дает никакого описания. :(
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

antom

  • Захожу иногда
  • 59
  • 0 / 0
Re: 2 продавца в JoomShopping+Робокасса
« Ответ #7 : 09.09.2012, 16:47:58 »
Ребят тоже очень надо, может кто то сталкивался или покупал с подобным, опишите пожалуйста решение

Или может кто-то покупал этот модуль, опишите его функционал, а то покупать кота в мешке не особо хочется
http://www.webdesigner-profi.de/joomla-webdesign/shop/addons/product-payment.html?lang=en

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

Думал это решается путем добавления продавцов, но это вообще не решение, не могу понять зачем эта функция "Продавцы"
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
Re: 2 продавца в JoomShopping+Робокасса
« Ответ #8 : 09.09.2012, 17:28:29 »
Вы для начала бы поинтересовались у той же робокассы или любой другой платёжной системы - можно ли зарегистрировать для одного и того же сайта разные аккаунты в них.
А уж на стороне магазина технически это сделать вполне реально.
*

antom

  • Захожу иногда
  • 59
  • 0 / 0
Re: 2 продавца в JoomShopping+Робокасса
« Ответ #9 : 09.09.2012, 18:07:26 »
Ребят спасибо за оперативность, вопрос решил.  ^-^
Да обязательно поинтересуюсь.

Поковырял "Продавцы" и чудо свершилось   ;D ;D ;D

Единственное если выбирается товары разных продавцов, то счет выставляется от продавца по умолчанию, но это уже не важно, главное работает....
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Re: 2 продавца в JoomShopping+Робокасса
« Ответ #10 : 09.09.2012, 20:28:00 »
А можете уточнить? Если у одного товара отмечена платежная система PayPal а у второго Debit, и клиент положил в корзину эти два товара, что будет? Как клиент будет оплачивать свою покупку?
Maxx как всегда не дает никакого описания. :(
для такой ситуации, в  плагине - настройка default payment

*

antom

  • Захожу иногда
  • 59
  • 0 / 0
Re: 2 продавца в JoomShopping+Робокасса
« Ответ #11 : 09.09.2012, 20:55:07 »
для такой ситуации, в  плагине - настройка default payment



А где можно выбрать каким образом оплачивать тот или иной товар, я имею ввиду в настройках, т.е. этот товар можно оплатить только через "банк", а вот этот только "Яндекс деньгами".

Или для этого нужно покупать модуль?
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
Re: 2 продавца в JoomShopping+Робокасса
« Ответ #13 : 10.09.2012, 10:08:22 »
для такой ситуации, в  плагине - настройка default payment

Делал в своё время аналогичное решение - поступил по-другому.
При попытке положить в корзину товар с другим способом оплаты выдаётся alert, что эти товары нельзя оформить в один заказ и товар кладётся в wishlist чтобы покупатель мог потом оформить его отдельным заказом, не бегая снова по списку товаров.
*

obmorok

  • Новичок
  • 8
  • 0 / 0
Re: 2 продавца в JoomShopping+Робокасса
« Ответ #14 : 23.10.2012, 04:10:06 »
Вы для начала бы поинтересовались у той же робокассы или любой другой платёжной системы - можно ли зарегистрировать для одного и того же сайта разные аккаунты в них.
А уж на стороне магазина технически это сделать вполне реально.
пользуюсь payanyway он же монета ру, там можно привязать дочерние
*

SashaDP

  • Осваиваюсь на форуме
  • 17
  • 4 / 0
Re: 2 продавца в JoomShopping+Робокасса
« Ответ #15 : 23.05.2014, 12:19:47 »
Почему то не могу понять людей которые место того чтобы сказать как они это сделали они просто хвастаются тем что они это сделали

Тоже решаю проблему разных способов оплаты для разных товаров, решил пойти по пути разных продавцов, на данный момент решил как не допустить добавление в корзину товаров от разных продавцов одновременно.
Для этого открываем файл /components/com_jshopping/models/cart.php
В нем ищем проверку
Код
if ($new_product)
внутри которой есть цикл
Код
foreach ($this->products as $key2 => $value2)
в начало этого цикла добавляем следующий код:
Код
if ($value2['vendor_id']!=$product->vendor_id && $value2['vendor_id']+$product->vendor_id!=1){
JError::raiseWarning('', sprintf('Товары от разных продавцов нельзя добавлять и оплачивать одновременно, пожалуйста, оформите желаемый товар разными заказами'));
return 0;
}

Далее планирую в опциях продавца добавить дополнительное поле куда планирую вписывать id допустимых для него способов оплаты например через запятую и на этапе выбора способа оплаты скрывать недопустимые способы для данного продавца
Если план удастся то отпишусь как сделать
Использую JoomShopping 3.5.1
« Последнее редактирование: 28.05.2014, 23:44:50 от SashaDP »
*

SashaDP

  • Осваиваюсь на форуме
  • 17
  • 4 / 0
Re: 2 продавца в JoomShopping+Робокасса
« Ответ #16 : 29.05.2014, 00:22:05 »
В общем знаний в PHP мало поэтому не ругайтесь если что-то где-то будет сделано нерационально
Довести до какого-то более менее универсального вида времени особо нет, довел до вида устраивающего заказчика (2 продавца для каждого по одному способу оплаты)

Добавляем новое поле в продавца:
- добавляем новое поле в структуру SQL таблицы ваш_префикс_jshopping_vendors, называем например его pmetod, тип VARCHAR длина 255

- добавляем нужное поле в шаблон редактирования продавца - открываем /administrator/components/com_jshopping/views/vendors/tmpl/edit.php и в таблицу
Код
<table class="admintable">
в желаемое место вставляем строку:
Код
<tr>
  <td class="key">
    <?php echo 'id способа оплаты, одна цифра';?>
  </td>
  <td>
    <input type = "text" class = "inputbox" size="40" name = "pmetod" value = "<?php echo $vendor->pmetod ?>" />
  </td>
</tr>

Теперь нужно не выводить лишние способы оплаты, для этого открываем шаблон вывода способов оплаты /components/com_jshopping/templates/default/checkout/payments.php
и в начале файла перед строкой
Код
<div class="jshop">
вставляем код:
Код
<?php
$session = JFactory::getSession();
$vendid = $session->get('vendid');
$db=&JFactory::getDBO();
$q="SELECT `pmetod` FROM `#__jshopping_vendors` WHERE `id` = '$vendid'";
$db->setQuery($q);
$pmetod=$db->loadResult();
?>
В этом же файле чуть ниже находим строки:
Код
foreach($this->payment_methods as  $payment){
  if ($this->active_payment==$payment->payment_id) $payment_class = $payment->payment_class;
и сразу за ними вставляем проверку:
Код
if ($payment->payment_id==$pmetod) {
не забываем найти конец этого цикла foreach и добавить скобку }

- осталось сохранить в сессию id продавца товаров в корзине (знаний и времени не хватило найти другой способ получить эту информацию), открываем файл /components/com_jshopping/templates/default/cart/cart.php
Находим в нем код:
Код
</tr>
  <?php
  $i++;
  }?>
  </table>
и приводим его к виду:
Код
</tr>
  <?php
   $i++;
   $vendid=$prod['vendor_id'];
  }
  $session = JFactory::getSession(); 
  $session->set('vendid', $vendid);
  ?>
  </table>

Еще раз попрошу не ругаться за убогость кода)
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Re: 2 продавца в JoomShopping+Робокасса
« Ответ #17 : 29.05.2014, 00:36:46 »
если товары обоих продавцов в корзине.
какой способ будет доступен и занесен в итоге в заказ ?
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

SashaDP

  • Осваиваюсь на форуме
  • 17
  • 4 / 0
Re: 2 продавца в JoomShopping+Робокасса
« Ответ #18 : 29.05.2014, 11:46:04 »
если товары обоих продавцов в корзине.
какой способ будет доступен и занесен в итоге в заказ ?
на пост выше я написал как я сделал чтобы товары разных продавцов не добавлялись в корзину: если в корзине есть товар продавца1 то при добавлении товара от продавца2 (или любого отличного от продавца1) выводится сообщение с просьбой оформить заказы отдельно
Конечно многим покажется что для клиента это дополнительные неудобства, но такова воля заказчика) (оплата уходит на разные счета)
*

Виталик

  • Завсегдатай
  • 1244
  • 130 / 0
Re: 2 продавца в JoomShopping+Робокасса
« Ответ #19 : 29.05.2014, 13:49:03 »
можно ещё при подтверждении заказа делить заказ на два, но тогда в магазине должна быть доработана оплата заказов
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

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

Автор sergeytolkachyov

Ответов: 25
Просмотров: 35703
Последний ответ 23.09.2025, 11:22:23
от Alex_gs
Атрибуты полей при оформлении заказа в JoomShopping

Автор goga_pgasovav

Ответов: 1
Просмотров: 623
Последний ответ 12.08.2025, 11:21:29
от kit2m2
Конфликт js шаблонов JoomShaper helix3 J5 с JoomShopping 5

Автор heartlink

Ответов: 6
Просмотров: 1399
Последний ответ 22.07.2025, 12:40:12
от heartlink
Модуль карусели товаров JoomShopping на Swiper.js для Joomla

Автор sergeytolkachyov

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

Автор goga_pgasovav

Ответов: 3
Просмотров: 1354
Последний ответ 13.02.2025, 00:11:20
от goga_pgasovav