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

heller_andrei

  • Новичок
  • 1
  • 0 / 0
Добрый день

Долго искал платежный модуль Privat24 для Virtuemart2

Решил найти любой отечественный и переделать под свои нужды. Был найден плагин платежной системы Intellectmoney.
Он состоит из двух файлов, один собственно сам плагин, взаимодействующий с CMS, а второй это скрипт принимающий ответы со стороны банка и изменяющий статус заказа.
Статус у меня изменять получилось в таблице __virtuemart_orders, но вот оповещать клиента отправкой письма и добавлением в историю заказов проблема.
Я не силен в PHP и не знаю как правильно прицепить этот скрипт к joomle, что бы воспользоваться вот этим простым механизмом.
Код
if (!class_exists('VirtueMartModelOrders'))
   require( JPATH_VM_ADMINISTRATOR . DS . 'models' . DS . 'orders.php' );
      $modelOrder = new VirtueMartModelOrders();
      $order['order_status'] = 'C';
      $order['virtuemart_order_id'] = $order_info;
      $order['customer_notified'] = 1;    
      $modelOrder->updateStatusForOneOrder($order_info, $order, true);
    return TRUE;

Привожу ниже весь код слушающего ответы скрипта.
Код
<?php 

 error_reporting(E_ALL);
 ini_set('display_errors', 'On');
 
 header("HTTP/1.0 200 OK");
 
 $my_path = dirname(__FILE__);

if( file_exists($my_path."/../../../configuration.php")) {
$absolute_path = dirname( $my_path."/../../../configuration.php" );
require_once($my_path."/../../../configuration.php");
}
elseif( file_exists($my_path."/../../configuration.php")) {
$absolute_path = dirname( $my_path."/../../configuration.php" );
require_once($my_path."/../../configuration.php");
}
elseif( file_exists($my_path."/configuration.php")) {
$absolute_path = dirname( $my_path."/configuration.php" );
require_once( $my_path."/configuration.php" );
}
else {
die( "Joomla Configuration File not found!" );
}
$absolute_path = realpath( $absolute_path );

// Set up the appropriate CMS framework
if(class_exists( 'jconfig' ))
{
define('_JEXEC', 1);
define('JPATH_BASE', $absolute_path);
define('DS', DIRECTORY_SEPARATOR);
define('JPATH_VM_PLUGINS', $absolute_path. "/administrator/components/com_virtuemart/plugins");
define('JPATH_VM_ADMINISTRATOR', $absolute_path. "/administrator/components/com_virtuemart");
define('JPATH_VM_LIBRARIES', $absolute_path. "/libraries");

// Load the framework
require_once( JPATH_BASE . DS . 'includes' . DS . 'defines.php' );
require_once( JPATH_BASE . DS . 'includes' . DS . 'framework.php' );

// create the mainframe object
$mainframe = & JFactory::getApplication( 'site' );

// Initialize the framework
$mainframe->initialise();
}
else
{
define('_VALID_MOS', '1');
require_once($mosConfig_absolute_path. '/includes/joomla.php');
require_once($mosConfig_absolute_path. '/includes/database.php');
$database = new database( $mosConfig_host, $mosConfig_user, $mosConfig_password, $mosConfig_db, $mosConfig_dbprefix );
$mainframe = new mosMainFrame($database, 'com_virtuemart', $mosConfig_absolute_path );
}

$db =& JFactory::getDBO(); /// подключаемся к MySQL
$query = "SELECT * FROM #__virtuemart_paymentmethods WHERE payment_element LIKE 'Intellectmoney';";
$db->setQuery($query);
$row = $db->loadAssocList('payment_element');
$payment = $row['Intellectmoney']['payment_params'];
preg_match('#eshop_id="(.*)"#Uis',$payment,$shop);
preg_match('#debug="(.*)"#Uis',$payment,$debug_Stats);
preg_match('#secret_key="(.*)"#Uis',$payment,$skey);
preg_match('#status_pending="(.*)"#Uis',$payment,$pending);
preg_match('#status_success="(.*)"#Uis',$payment,$success);
preg_match('#status_canceled="(.*)"#Uis',$payment,$canceled);
$eshop_Id = $shop[1];
if ($debug_Stats[1]==0)
{
  $debug_State = 'ok';
}
else
     {
  $debug_State = 'test';
}
 
$pass = $skey[1]; //Получаем secret_key
$statuspending= $pending[1]; //Статус заказа для отложенных платежей
$statussuccess= $success[1]; //Статус заказа для успешной операции
$statuscanceled= $canceled[1]; //Статус заказа для неудавшихся сделок
 
 
$payment_p   = $_POST['payment'];
$signature_p = $_POST['signature'];

$signature = sha1(md5(htmlspecialchars_decode($payment_p, ENT_QUOTES)  . $pass)); 
$info = explode('&', htmlspecialchars_decode($payment_p, ENT_QUOTES));

foreach ($info as $value)
 {
  $z = explode('=', $value);
  $data[$z[0]] = $z[1];
 }
 if($signature == $signature_p AND $debug_State == $data["state"])
  { 
     $order_info = $data['order'];
 
   if ( !$order_info)
      {
return 0;
  }

if( $order_info == $data['order'])
  {
    $db->setQuery("UPDATE #__virtuemart_orders SET `order_status`='". $statussuccess. "' WHERE order_number LIKE '". $order_info. "'");
    $db->Query();    

    if (!class_exists('VirtueMartModelOrders'))
     require( JPATH_VM_ADMINISTRATOR . DS . 'models' . DS . 'orders.php' );
       $modelOrder = new VirtueMartModelOrders();
       $order['order_status'] = 'C';
       $order['virtuemart_order_id'] = $order_info;
       $order['customer_notified'] = 1;    
       $modelOrder->updateStatusForOneOrder($order_info, $order, true);
    return TRUE;
  }  
  }
 else
  {
    echo 'ERROR: не совпадает crc!';
return 0;
  }    
?>

Пожалуйста, помогите разобраться.
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Re: Платежный плагин для Virtuemart2
« Ответ #1 : 24.01.2014, 12:54:43 »
Ну зачем такие трудности!!
Купить не проще?
За ценой пиши договоримся

Цитировать
Я не силен в PHP

Ну и зачем тогда голову морочить себе??

В Joomla есть класс для работы с письмами.
 JFactory::getMailer()
Описание класса JFactory

С историей заказа тоже самое только класс уже в VM2 как звать не помню по моему orders или как то так.
и вот эта строчка
Цитировать
require( JPATH_VM_ADMINISTRATOR . DS . 'models' . DS . 'orders.php' );

по моему больше отношение к шаблонам имеет нежели к отправки писем или смене статуса.
В общем хочешь плагин оплаты приват24 пиши!
Успехов!!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Плагин оплаты по QR коду

Автор denism300

Ответов: 1
Просмотров: 2412
Последний ответ 17.02.2023, 19:50:16
от sivers
Добавить выбор города в плагин доставки?

Автор warlocksp

Ответов: 3
Просмотров: 3523
Последний ответ 13.02.2022, 15:48:14
от Evgen Kulibin
Плагин Onpay для VirtueMart!

Автор OnpayGuy

Ответов: 85
Просмотров: 13364
Последний ответ 06.07.2021, 10:47:59
от vmven
Vituemart платёжный модуль tinkoff

Автор PavelK

Ответов: 2
Просмотров: 3066
Последний ответ 24.10.2020, 12:02:32
от draff
Плагин для Robokassa не перенаправляет покупателя туда

Автор ЛюдмилаМир

Ответов: 1
Просмотров: 2795
Последний ответ 24.09.2019, 13:58:40
от draff