Новости Joomla

Модификация WT JShopping products anywhere - Uikit макетИтак, дано: музыкальный журнал, в котором...

Модификация WT JShopping products anywhere - Uikit макетИтак, дано: музыкальный журнал, в котором...

Модификация WT JShopping products anywhere - Uikit макетИтак, дано: музыкальный журнал, в котором представлены новости, интервью, рецензии и есть небольшой магазин на JoomShopping. Возникла необходимость внутри Joomla статей вставлять упоминание релиза и кнопочку «добавить в корзину». Я взял плагин WT JShopping products anywhere Сергея Толкачева (@webtolkru). Плагин отображает название товара и ссылку. При помощи напильника, ИИ и навыков вёрстки появился Uikit макет для шаблонов на базе Yootheme Pro.Учитываается мобильная версия - телефоны и ipad.Кнопка добавления в корзину работает по Ajax и появляется всплывающее окно (Notification Bar от Uikit) с информацией.Пока это базовый вариант, требующий доведения до лоска, однако он уже работает и его можно применять на проектах.Взять макет можно здесь.А плагин вставки товаров в материалы можно забрать здесь.Приветствуется доведение до ума и оформление в виде PR.

WT Content Image Gallery v.1.2.3 - плагин галереи изображений для Joomla

WT Content Image Gallery v.1.2.3 - плагин галереи изображений для Joomla

👩‍💻 WT Content Image Gallery v.1.2.3 - плагин галереи изображений для Joomla.Пакет плагинов галереи изображений и видео для вставки в материалы и модули Joomla, а так же везде, где работают плагины группы content. Поддержка собственных макетов вывода для галерей. Смешанные фото+видео галереи. Плагин создан как замена Simple Image Gallery и поддерживает синтаксис {gallery}{/gallery}.👩‍💻 v.1.2.3. Что нового?- Обработка вступительного и полного текста для материалов Joomla. Добавлена обработка шорткодов в полном и вступительном текстах материалов Joomla.- Системные требования. Повышены минимальные требования до Joomla 5 и PHP 8.1.- Мелкие правки. Исправлена ошибка работы макета по умолчанию в плагине контента.- Joomla 6. Пакет плагинов успешно протестирован на Joomla 6.Страница расширения.GitHub расширенияJoomla Extensions Directory@joomlafeed#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 Гость просматривают эту тему.
  • 2 Ответов
  • 3412 Просмотров
*

hudoy

  • Захожу иногда
  • 136
  • 5 / 0
Добрый день! Заказчик попросил накопительную систему скидок, с автоматическим изменением % скидки если сумма по доставленным заказам у клиента перешла очередной порог. Почитал темы на форуме и в инете, но законченного бесплатного варианта как-то не встретил, тогда решил допилить тот вариант ,что рассматривался здесь http://www.redsimple.ru/blog/63-skidka , на основе групп пользователей. Суть в том, что пользователь перемещается в другую группу, не при оформлении очередного заказа , а только когда в админке меняется статус заказа на Shipped(Доставлен) и общая сумма заказов с таким-же статусом переваливает за очередной порог.
Что нужно сделать:
1. Создать группы пользователей и запомнить их ID (можно увидеть ID в URL когда вы находитесь в редактировании этой группы (что-то типа &shopper_group_id=9), или через phpmyadmin)
для каждой группы проставляем % скидки
2. Редактируем файл /administrator/components/com_virtuemart/classes/ps_order.php
Находим кусок кода:
Код
if( ($curr_order_status=="P" || $curr_order_status=="C") && $d["order_status"]=="S") {
$q = "SELECT order_number,payment_class,order_payment_trans_id FROM #__{vm}_payment_method,#__{vm}_order_payment,#__{vm}_orders WHERE ";
$q .= "#__{vm}_order_payment.order_id='".$db->getEscaped($d['order_id'])."' ";
$q .= "AND #__{vm}_orders.order_id='".$db->getEscaped($d['order_id'])."' ";
$q .= "AND #__{vm}_order_payment.payment_method_id=#__{vm}_payment_method.payment_method_id";
$db->query( $q );
$db->next_record();
$payment_class = $db->f("payment_class");
if( $payment_class=="payflow_pro" ) {
require_once( CLASSPATH."payment/payflow_pro.cfg.php");
if( PFP_TYPE == 'A' ) {
require_once( CLASSPATH."payment/payflow_pro.php");
$pfp = new ps_pfp();
$d["order_number"] = $db->f("order_number");
if( !$pfp->capture_payment( $d )) {
return false;
}
}
}
}

Прежде чем продолжить нужно понимать ,что представляет из себя этот код:
Его суть в том , что если происходит смена статуса заказа из P(pending(ожидание)) или C(Confirmed(обработан)) на S(Shipped(Доставлен)), то выполняются некоторые действия. Соответственно мы добавим к тем действиям которые выполняются по умолчанию, те которые нужны нам для расчета скидки. А именно перед последней } вставим следующий код
Код
//Определяем user_id и сумму текущего заказа по текущему order_id  
$dbu = new ps_DB;
$q = "SELECT user_id,order_total FROM #__{vm}_orders WHERE ";
$q .= "#__{vm}_orders.order_id='".$db->getEscaped($d['order_id'])."' ";
$dbu->query($q);
$dbu->next_record();
//заносим то что определили в соответствующие переменные
$userid = $dbu->f("user_id");
$sumzakaz = $dbu->f("order_total");
//Определяем сумму заказов со статусом S у текущего пользователя
$database = & JFactory::getDBO();
$query = "SELECT sum(order_total) FROM jos_vm_orders WHERE ";
$query .= "jos_vm_orders.user_id='".$userid."' ";
$query .= "AND jos_vm_orders.order_status='S' ";
$database->setQuery($query);
$summa = $database->loadResult();
//Прибавляем сумму текущего заказа к тем что уже есть
$summa = $summa+$sumzakaz;

//далее идет перенос пользователя в соответствующую группу, в данном случае 8 если сумма заказов от 100 до 5000 рублей
if ($summa>=100 && $summa<5001) {
$query = "UPDATE #__vm_shopper_vendor_xref SET shopper_group_id=8 WHERE user_id=".$userid;
$database->setQuery($query);
//вывод уведомления для администратора
echo  "<strong>Сумма заказов ($summa). Предоставляется постаянная скидка в размере 3%.</strong>";
//описание ошибки запроса если она произошла
if (!$database->query()) { JError::raiseError( 500, $database->stderr()); }
}

//проверка на следующий порог скидки и таких проверок столько сколько нужно порогов скидки
if ($summa>=5001 && $summa<9001) {
$query = "UPDATE #__vm_shopper_vendor_xref SET shopper_group_id=9 WHERE user_id=".$userid;
$database->setQuery($query);

echo  "<strong>Сумма заказов ($summa). Предоставляется постаянная скидка в размере 4%.</strong>";

if (!$database->query()) { JError::raiseError( 500, $database->stderr()); }
}
Ну вроде все! Если у данного решения имеются известные минусы просьба отписать. Спасибо.
*

msv1975

  • Новичок
  • 1
  • 0 / 0
Подскажите, пжста, а как задать условие проверки текущей группы покупателя. У меня есть покупатели уже с высокой скидкой и меньшей суммой покупок. Не хотелось бы чтобы при следующем заказе их перенесли в группу с более низким % скидки. Заранее спасибо.
*

hudoy

  • Захожу иногда
  • 136
  • 5 / 0
Нужно для начала правильно завести группы пользователей, т.е. с повышением скидки группа бы тоже повышалась , а не в разнобой. Далее в следующем моменте "//Определяем user_id и сумму текущего заказа по текущему order_id" добавить :
Код
$dbj = new ps_DB;
$q2 = "SELECT shopper_group_id FROM #__vm_shopper_vendor_xref  WHERE user_id=".$userid;
$dbj->query($q2);
$dbj->next_record();
$usergroup = $dbj->f("shopper_group_id");
и далее в проверках добавлять  $usergroup<какой-то вашей группы
Код
//проверка на следующий порог скидки и таких проверок столько сколько нужно порогов скидки 
if ($summa>=5001 && $summa<9001 && $usergroup<какой-то ) {
$query = "UPDATE #__vm_shopper_vendor_xref SET shopper_group_id=9 WHERE user_id=".$userid;
$database->setQuery($query);

echo  "<strong>Сумма заказов ($summa). Предоставляется постаянная скидка в размере 4%.</strong>";

if (!$database->query()) { JError::raiseError( 500, $database->stderr()); }
}
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Запретить суммирование скидок в VirtueMart.

Автор orsy

Ответов: 0
Просмотров: 2202
Последний ответ 27.02.2012, 15:18:00
от orsy
Отключить суммирование скидок

Автор TyT

Ответов: 1
Просмотров: 1270
Последний ответ 25.06.2011, 20:57:55
от Mr. Brightside
Система управления товарами off-line

Автор riamax

Ответов: 9
Просмотров: 3595
Последний ответ 12.01.2011, 15:25:35
от Aleks_El_Dia
Накопительная система скидок.

Автор Даша

Ответов: 13
Просмотров: 7115
Последний ответ 25.03.2010, 08:28:58
от a3market