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

sashgera

  • Захожу иногда
  • 113
  • 0 / 0
Скидка в способе оплаты
« : 09.12.2015, 21:36:54 »
Здравствуйте
При добавлении способа оплаты можно сделать процентную (относительную) скидку.
При выборе покупателем этого способа оплаты - будет начисляться скидка в процентах от суммы товара.
Пожалуйста, подскажите, в каком файле и где именно рассчитывается эта скидка в процентах?
*

CaHeK_pk

  • Захожу иногда
  • 114
  • 2 / 0
Re: Скидка в способе оплаты
« Ответ #1 : 11.12.2015, 00:43:40 »
Такого в стандартных функциях я не встречал, искать плагины только...
*

sashgera

  • Захожу иногда
  • 113
  • 0 / 0
Re: Скидка в способе оплаты
« Ответ #2 : 11.12.2015, 11:04:01 »
Такого в стандартных функциях я не встречал, искать плагины только...
CaHeK_pk, все есть в стандартных функциях: Компоненты-Virtuemart-Способы оплаты
создаем новый способ оплаты
вот скрин:

ну и сам вопрос - в каком файле и где именно рассчитывается эта скидка в процентах?
*

CaHeK_pk

  • Захожу иногда
  • 114
  • 2 / 0
Re: Скидка в способе оплаты
« Ответ #3 : 11.12.2015, 15:06:03 »
CaHeK_pk, все есть в стандартных функциях: Компоненты-Virtuemart-Способы оплаты
неправильно вас понял, думал идет речь о накопительной скидке покупателя.
не знаю как в VirtueMart 1. на втором идут расчеты с плагинов VirtueMart. "plugins\vmpayment\"
либо \administrator\components\com_virtuemart\plugins\vmpsplugin.php
что именно вам нужно?
---
Кстати, на сколько помню, в скидке нужно указывать положительные значения. т.е не "-10.00" а "10.00"
*

sashgera

  • Захожу иногда
  • 113
  • 0 / 0
Re: Скидка в способе оплаты
« Ответ #4 : 11.12.2015, 15:42:45 »
что именно вам нужно?
CaHeK_pk, хочу сделать так, чтобы скидка начислялась от общей суммы заказа (включая стоимость доставки)
Кстати, на сколько помню, в скидке нужно указывать положительные значения. т.е не "-10.00" а "10.00"
положительное значение - это скидка
отрицательное значение - это доплата (у меня в одном из способов оплаты - доплата 10 процентов)
*

fsv

  • Moderator
  • 2781
  • 411 / 2
Re: Скидка в способе оплаты
« Ответ #5 : 11.12.2015, 19:25:22 »
в каком файле и где именно рассчитывается эта скидка в процентах?
\administrator\components\com_virtuemart\classes\ps_checkout.php
function get_payment_discount()

Если надо изменить этот момент в отдельных способах оплаты, то их класс должен содержать "кастомную" функцию расчета скидки - get_payment_rate(). В дефолтных оплатах нашел только одно вхождение - в оплате "ps_cashondel.php". Если такой функции в вашем классе оплаты нет, используется функционал расчета скидки  от "субтотал":
Код
$value = (float) ($discount/100) * $subtotal;

У вас на скрине ps_payment. Это класс-заглушка с пустыми функциями. Если будете писать get_payment_rate(), не трогайте его. Клонируйте, переобзовите и используйте клон.
Если требуемое изменение надо во всех оплатах, можно и базовый класс хакнуть. Только не забыть, что и где меняли.
Веб-разработка: заказ. Только новая разработка.
*

sashgera

  • Захожу иногда
  • 113
  • 0 / 0
Re: Скидка в способе оплаты
« Ответ #6 : 11.12.2015, 22:48:46 »
fsv, сделал так:
\administrator\components\com_virtuemart\classes\ps_checkout.php
в функции get_payment_discount
Код: php
$shipping_total = $db->f('shipping_total');
$zzz = $shipping_total + $subtotal;
$value = (float) ($discount/100) * $zzz;
ничего не получилось, наверное, неправильно сделал запрос:
Код: php
$shipping_total = $db->f('shipping_total');
Поможете?
*

fsv

  • Moderator
  • 2781
  • 411 / 2
Re: Скидка в способе оплаты
« Ответ #7 : 12.12.2015, 14:24:06 »
Если у вас выбор оплат на следующей странице после выбора доставок, попробуйте получить стоимость доставки из
Код: php
global $vars;
$ship_arr = explode("|", $vars["shipping_rate_id"]);
echo "<pre>".print_r($ship_arr, true)."</pre>";
Если на одной странице, сложнее, вряд ли даже с подсказками справитесь.

Предполагаю, вы вообще не с того конца подходите к решению вопроса. Опишите подробно. Тему читал. Там не раскрыто. Складывается впечатление, что вы хотите привести отображение на сайте к нужной картинке, бессистемно внося правки в разных местах. После получения картинки не факт, что получите функционал.
« Последнее редактирование: 12.12.2015, 23:50:01 от fsv »
Веб-разработка: заказ. Только новая разработка.
*

sashgera

  • Захожу иногда
  • 113
  • 0 / 0
Re: Скидка в способе оплаты
« Ответ #8 : 12.12.2015, 18:51:41 »
Если у вас выбор оплат на следующей странице после выбора доставок, попробуйте получить стоимость доставки из
Код: php
global $vars;
$ship_arr = explode("|", $var["shipping_rate_id"]);
echo "<pre>".print_r($ship_arr, true)."</pre>";

fsv, не получилось
на последнем шаге оформления заказа:
Код: html4strict
Array
(
    [0] =>
)

добавил
Код: php
global $vars;
$ship_arr = explode("|", $var["shipping_rate_id"]);
$ship_arr = $ship_arr[0];
echo  $ship_arr;
ехо ничего не выводит
« Последнее редактирование: 12.12.2015, 19:38:04 от sashgera »
*

fsv

  • Moderator
  • 2781
  • 411 / 2
Re: Скидка в способе оплаты
« Ответ #9 : 12.12.2015, 23:49:35 »
$vars
Веб-разработка: заказ. Только новая разработка.
*

sashgera

  • Захожу иногда
  • 113
  • 0 / 0
Re: Скидка в способе оплаты
« Ответ #10 : 13.12.2015, 10:51:36 »
$vars
fsv, теперь в ехо хеш:
standard_shipping%7C%D0%9E%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0+%D0%B2+%D1%80%D0%B5%D0%B3%D0%B8%D0%BE%D0%BD%D1%8B%7C%2A%D0%B4%D0%BE+%D0%B4%D1%80%D1%83%D0%B3%D0%B8%D1%85+%D0%A2%D0%9A%7C1000.00%7C4
если декодировать, то:
standard_shipping|Отправка+в+регионы|*до+других+ТК|1000.00|4
*

fsv

  • Moderator
  • 2781
  • 411 / 2
Re: Скидка в способе оплаты
« Ответ #11 : 13.12.2015, 15:01:18 »
Так вопрос в чем? Выше же показал, как разобрать эту строку в массив. Четвертый элемент массива - стоимость доставки.
Веб-разработка: заказ. Только новая разработка.
*

sashgera

  • Захожу иногда
  • 113
  • 0 / 0
Re: Скидка в способе оплаты
« Ответ #12 : 13.12.2015, 19:17:44 »
fsv, да, я вижу, что четвертый элемент массива [3] - стоимость доставки, но все равно не получается
вот полностью изменения в файле ps_checkout.php

строку:
Код: php
$value = (float) ($discount/100) * $subtotal;
заменил на:
Код: php
global $vars;
$ship_arr = explode("|", $vars["shipping_rate_id"]);
$shippingtotal = $ship_arr[3]; // [3] элемент массива - стоимость доставки

$doplata = $shippingtotal + $subtotal;
$value = (float) ($discount/100) * $doplata;
*

fsv

  • Moderator
  • 2781
  • 411 / 2
Re: Скидка в способе оплаты
« Ответ #13 : 13.12.2015, 20:25:14 »
Причин сколько угодно. Такие изменения надо не заочно мне придумывать, а вам самому на сайте смотреть. Направление дано, далее "спасение утопающих...".
1) Что в логах?
2) Если привести к числу (int/float):    $shippingtotal = (int)$ship_arr[3];
3) функция get_payment_discount() вообще $vars["shipping_rate_id"] ловит?
Проверить:  в конце
Код
return $value;
заменить на
Код
global $vars;
return $vars["shipping_rate_id"];
Веб-разработка: заказ. Только новая разработка.
*

sashgera

  • Захожу иногда
  • 113
  • 0 / 0
Re: Скидка в способе оплаты
« Ответ #14 : 14.12.2015, 06:04:18 »
fsv, сделал немного по-другому:
administrator/components/com_virtuemart/classes/ps_checkout.php
Код: php
$shipping_rate_id = explode("|",urldecode($GLOBALS['vars']['shipping_rate_id'])); 
$shippingtotal = $shipping_rate_id[count($shipping_rate_id)-2];
$newsubtotal = $subtotal + $shippingtotal;
$value = (float) ($discount/100) * $newsubtotal;


Теперь осталось сделать изменения в лейбле способа оплаты.
В лейбле сделал, как мог,  работает криво. Сейчас в админке относительный тип доплаты и расчет ведется правильно. Но если, например, изменить на абсолютный тип – расчет будет неправильный.
administrator/components/com_virtuemart/classes/ps_payment_method.php
после строки
Код: php
$discount  = $ps_checkout->get_payment_discount( $db->f("payment_method_id") );
добавил
Код: php
$shipping_rate_id = explode("|",urldecode($GLOBALS['vars']['shipping_rate_id'])); 
$shippingtotal = $shipping_rate_id[count($shipping_rate_id)-2];
$payment_SkidkaDoplata = $GLOBALS['CURRENCY_DISPLAY']->getFullValue( $db->f("payment_method_discount") );
$label_SkidkaDoplata = ($shippingtotal / 100) * $payment_SkidkaDoplata - $discount;
и заменил переменную в
Код: php
echo " (+ ".$CURRENCY_DISPLAY->getFullValue(abs($label_SkidkaDoplata)).") \n";
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Скидка группы на товар, имеющий специальную цену для этой группы

Автор Disdain

Ответов: 1
Просмотров: 3440
Последний ответ 28.01.2016, 13:32:12
от Disdain
Автоматическая скидка на каждую третью покупку

Автор photograf

Ответов: 3
Просмотров: 2271
Последний ответ 15.11.2012, 20:51:19
от varX
Скидка дня

Автор avex

Ответов: 0
Просмотров: 1232
Последний ответ 19.06.2012, 13:10:08
от avex
Скидка на все товары или катагории товаров

Автор vadber

Ответов: 2
Просмотров: 1840
Последний ответ 10.02.2011, 00:23:08
от vadber
Разная скидка для разных групп покупателей. Помогите.

Автор black_crow

Ответов: 2
Просмотров: 1957
Последний ответ 25.01.2011, 18:55:35
от sliverr_free