Новости Joomla

Вышли релизы Joomla 6.1 и Joomla 5.4.5: новые возможности и стабильность

Релиз Joomla 6.1.0

Проект Joomla! объявил о доступности Joomla 6.1 [Nyota] — новой минорной версии шестой серии, а также о выпуске релиза исправлений ошибок Joomla 5.4.5. Релиз 6.1 приносит ряд долгожданных функций, повышающих удобство управления контентом и защиту от спама.

👩‍💻 Компонент "CS Афиши" для Joomla.

👩‍💻 Компонент "CS Афиши" для Joomla.

Расширение "CS Афиши" позволяет выводить список мероприятий, фильтровать их по датам, поиск по заголовкам и описанию.

В состав пакета расширений входят:
- Компонент "CS Афиши"
- Модуль "Календарь событий"
- Модуль "Предстоящие события"
- Библиотека "ImgResize"

Расширение "CS Афиши" позволяет выводить список мероприятий, фильтровать их по датам, поиск по заголовкам и описанию.

Модуль "Календарь событий" отображает предстоящие и прошедшие мероприятие на календаре, с отображением мероприятий на конкретную дату во всплывающем окне.

Модуль "Предстоящие события" показывает список предстоящий событий по порядку их наступления.

P.S. Расширение платное, но плата символическая, чисто для отработки приема платежей. Ключи без ограничения по времени, купившие сейчас - смогут обновляться без ограничений.

Разработчик - участник нашего сообщества Дмитрий Денисов (@codersite).

Страница расширения
Демо

0 Пользователей и 1 Гость просматривают эту тему.
  • 1 Ответов
  • 2305 Просмотров
*

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
Просмотров: 2920
Последний ответ 17.02.2023, 19:50:16
от sivers
Добавить выбор города в плагин доставки?

Автор warlocksp

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

Автор OnpayGuy

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

Автор PavelK

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

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

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