00001 <?php
00002
00015 import('classes.plugins.PaymethodPlugin');
00016
00017 class ManualPaymentPlugin extends PaymethodPlugin {
00021 function ManualPaymentPlugin() {
00022 parent::PaymethodPlugin();
00023 }
00024
00028 function getName() {
00029 return 'ManualPayment';
00030 }
00031
00035 function getDisplayName() {
00036 return __('plugins.paymethod.manual.displayName');
00037 }
00038
00042 function getDescription() {
00043 return __('plugins.paymethod.manual.description');
00044 }
00045
00049 function register($category, $path) {
00050 if (parent::register($category, $path)) {
00051 $this->addLocaleData();
00052 return true;
00053 }
00054 return false;
00055 }
00056
00060 function getSettingsFormFieldNames() {
00061 return array('manualInstructions');
00062 }
00063
00067 function isConfigured() {
00068 $press =& Request::getPress();
00069 if (!$press) return false;
00070
00071
00072 foreach ($this->getSettingsFormFieldNames() as $settingName) {
00073 $setting = $this->getSetting($press->getId(), $settingName);
00074 if (empty($setting)) return false;
00075 }
00076
00077 return true;
00078 }
00079
00083 function displayPaymentForm($queuedPaymentId, &$queuedPayment, &$request) {
00084 if (!$this->isConfigured()) return false;
00085 $press =& $request->getPress();
00086 AppLocale::requireComponents(LOCALE_COMPONENT_APPLICATION_COMMON);
00087 $templateMgr =& TemplateManager::getManager();
00088 $user =& $request->getUser();
00089
00090 $templateMgr->assign('itemName', $queuedPayment->getName());
00091 $templateMgr->assign('itemDescription', $queuedPayment->getDescription());
00092 if ($queuedPayment->getAmount() > 0) {
00093 $templateMgr->assign('itemAmount', $queuedPayment->getAmount());
00094 $templateMgr->assign('itemCurrencyCode', $queuedPayment->getCurrencyCode());
00095 }
00096 $templateMgr->assign('manualInstructions', $this->getSetting($press->getId(), 'manualInstructions'));
00097 $templateMgr->assign('queuedPaymentId', $queuedPaymentId);
00098
00099 $templateMgr->display($this->getTemplatePath() . 'paymentForm.tpl');
00100 }
00101
00107 function handle($args, &$request) {
00108 $press =& $request->getPress();
00109 $templateMgr =& TemplateManager::getManager();
00110 $user =& $request->getUser();
00111 $op = isset($args[0])?$args[0]:null;
00112 $queuedPaymentId = isset($args[1])?((int) $args[1]):0;
00113
00114 import('classes.payment.omp.OMPPaymentManager');
00115 $ompPaymentManager = new OMPPaymentManager($request);
00116 $queuedPayment =& $ompPaymentManager->getQueuedPayment($queuedPaymentId);
00117
00118 if (!$queuedPayment) return $request->redirect(null, 'index');
00119
00120 switch ($op) {
00121 case 'notify':
00122 import('classes.mail.MailTemplate');
00123 AppLocale::requireComponents(LOCALE_COMPONENT_APPLICATION_COMMON);
00124 $contactName = $press->getSetting('contactName');
00125 $contactEmail = $press->getSetting('contactEmail');
00126 $mail = new MailTemplate('MANUAL_PAYMENT_NOTIFICATION');
00127 $mail->setFrom($contactEmail, $contactName);
00128 $mail->addRecipient($contactEmail, $contactName);
00129 $mail->assignParams(array(
00130 'pressName' => $press->getLocalizedName(),
00131 'userFullName' => $user?$user->getFullName():('(' . __('common.none') . ')'),
00132 'userName' => $user?$user->getUsername():('(' . __('common.none') . ')'),
00133 'itemName' => $queuedPayment->getName(),
00134 'itemCost' => $queuedPayment->getAmount(),
00135 'itemCurrencyCode' => $queuedPayment->getCurrencyCode()
00136 ));
00137 $mail->send();
00138
00139 $templateMgr->assign(array(
00140 'currentUrl' => $request->url(null, null, 'payment', 'plugin', array('notify', $queuedPaymentId)),
00141 'pageTitle' => 'plugins.paymethod.manual.paymentNotification',
00142 'message' => 'plugins.paymethod.manual.notificationSent',
00143 'backLink' => $queuedPayment->getRequestUrl(),
00144 'backLinkLabel' => 'common.continue',
00145 ));
00146 return $templateMgr->display('common/message.tpl');
00147 }
00148 return parent::handle($args, $request);
00149 }
00150
00154 function getInstallEmailTemplatesFile() {
00155 return ($this->getPluginPath() . DIRECTORY_SEPARATOR . 'emailTemplates.xml');
00156 }
00157
00161 function getInstallEmailTemplateDataFile() {
00162 return ($this->getPluginPath() . '/locale/{$installedLocale}/emailTemplates.xml');
00163 }
00164 }
00165
00166 ?>