سلام دوستان .
من پلاگین پرداخت rsmembership رو روی جوملا 2.5 سازگار کردم ... الان همه چی کار میکنه، تنها مشکل اینه که وقتی پلاگین فعال میشه توی بخش ادمین مشکل ampersand به وجود میاد. یعنی توی لینک ها amp; زاید تو بعضی قسمت ها مثل ویرایش مطلب و غیره بوجود میاد. JRoute های بکار رفته هم همگی false ئه ... کسی ایده ای داره که از کجا میتونه باشه ؟؟؟
<?php
defined('_JEXEC') or die('Restricted access');
jimport( 'joomla.plugin.plugin' );jimport( 'joomla.html.parameter' );
if (file_exists(JPATH_ADMINISTRATOR.DS.'components'.DS.'com_rsmembership'.DS.'helpers'.DS.'rsmembership.php')) require_once(JPATH_ADMINISTRATOR.DS.'components'.DS.'com_rsmembership'.DS.'helpers'.DS.'rsmembership.php');
class plgSystemRSMembershipzarin extends JPlugin{ var $_db; function canRun() { return file_exists(JPATH_ADMINISTRATOR.DS.'components'.DS.'com_rsmembership'.DS.'helpers'.DS.'rsmembership.php'); } function plgSystemRSMembershipzarin(&$subject, $config) { parent::__construct($subject, $config); $this->_plugin =& JPluginHelper::getPlugin('system', 'rsmembershipzarin'); $this->_params = new JParameter($this->_plugin->params); if (!$this->canRun()) return; RSMembership::addPlugin('Zarinpal', 'rsmembershipzarin'); $this->_db = JFactory::getDBO(); }
function onMembershipPayment($plugin, $data, $extra, $membership, $transaction) { if (!$this->canRun()) return; if ($plugin != $this->_plugin->name) return false; $tax_value = $this->_params->get('tax_value'); if (!empty($tax_value)) { $tax_type = $this->_params->get('tax_type'); // percent ? if ($tax_type == 0) $tax_value = $transaction->price * ($tax_value / 100); $transaction->price = $transaction->price + $tax_value; } $transaction->custom = time(); $url = $this->_params->get('routine') ? 'https://www.2checkout.com/checkout/purchase' : 'https://www.2checkout.com/checkout/spurchase'; $html = ''; $html .= '
'.JText::_('RSM_PLEASE_WAIT_REDIRECT').''; $html .= ''; $html .= ''; $html .= ''; $html .= ''; $html .= ''; $html .= ''; $html .= ''; return $html; } function onAfterRender() { $mainframe =& JFactory::getApplication(); $app =& JFactory::getApplication(); if($app->getName() != 'site') return;
$zarinpayment = JRequest::getVar('zarinpayment', ''); if (!empty($zarinpayment)) $this->onPaymentNotification(); } function onPaymentNotification() { if (!$this->canRun()) return; $custom = JRequest::getVar('custom', ''); $this->_db->setQuery("SELECT * FROM #__rsmembership_transactions WHERE `custom`='".$this->_db->getEscaped($custom)."' AND `status`!='completed' AND `gateway`='Zarinpal'"); $transaction = $this->_db->loadObject(); // transaction exists if (empty($transaction)) return;
RSMembership::approve($transaction->id); ?>
<?php } function _convertNumber($number) { return number_format($number, 2, '.', ''); }}