• Main Page
  • Modules
  • Classes
  • Files
  • File List

plugins/paymethod/manual/ManualPaymentPlugin.inc.php

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       // Make sure that all settings form fields have been filled in
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       // if the queued payment doesn't exist, redirect away from payments
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); // Don't know what to do with it
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 ?>

Generated on Mon Sep 17 2012 13:58:56 for Open Monograph Press by  doxygen 1.7.1