00001 <?php
00002
00016 import('classes.plugins.PaymethodPlugin');
00017
00018 class ManualPaymentPlugin extends PaymethodPlugin {
00019
00020 function getName() {
00021 return 'ManualPayment';
00022 }
00023
00024 function getDisplayName() {
00025 return Locale::translate('plugins.paymethod.manual.displayName');
00026 }
00027
00028 function getDescription() {
00029 return Locale::translate('plugins.paymethod.manual.description');
00030 }
00031
00032 function register($category, $path) {
00033 if (parent::register($category, $path)) {
00034 $this->addLocaleData();
00035 return true;
00036 }
00037 return false;
00038 }
00039
00040 function getSettingsFormFieldNames() {
00041 return array('manualInstructions');
00042 }
00043
00044 function isConfigured() {
00045 $journal =& Request::getJournal();
00046 if (!$journal) return false;
00047
00048
00049 foreach ($this->getSettingsFormFieldNames() as $settingName) {
00050 $setting = $this->getSetting($journal->getJournalId(), $settingName);
00051 if (empty($setting)) return false;
00052 }
00053
00054 return true;
00055 }
00056
00057 function displayPaymentForm($queuedPaymentId, &$queuedPayment) {
00058
00059 if (!$this->isConfigured()) return false;
00060 $journal =& Request::getJournal();
00061 $templateMgr =& TemplateManager::getManager();
00062 $user =& Request::getUser();
00063
00064 $templateMgr->assign('itemName', $queuedPayment->getName());
00065 $templateMgr->assign('itemDescription', $queuedPayment->getDescription());
00066 if ($queuedPayment->getAmount() > 0) {
00067 $templateMgr->assign('itemAmount', $queuedPayment->getAmount());
00068 $templateMgr->assign('itemCurrencyCode', $queuedPayment->getCurrencyCode());
00069 }
00070 $templateMgr->assign('manualInstructions', $this->getSetting($journal->getJournalId(), 'manualInstructions'));
00071
00072 $templateMgr->display($this->getTemplatePath() . 'paymentForm.tpl');
00073
00074 if ($queuedPayment->getAmount() > 0) {
00075 import('mail.MailTemplate');
00076 $contactName = $journal->getSetting('contactName');
00077 $contactEmail = $journal->getSetting('contactEmail');
00078 $mail = &new MailTemplate('MANUAL_PAYMENT_NOTIFICATION');
00079 $mail->setFrom($contactEmail, $contactName);
00080 $mail->addRecipient($contactEmail, $contactName);
00081 $mail->assignParams(array(
00082 'journalName' => $journal->getJournalTitle(),
00083 'userFullName' => $user?$user->getFullName():('(' . Locale::translate('common.none') . ')'),
00084 'userName' => $user?$user->getUsername():('(' . Locale::translate('common.none') . ')'),
00085 'itemName' => $queuedPayment->getName(),
00086 'itemCost' => $queuedPayment->getAmount(),
00087 'itemCurrencyCode' => $queuedPayment->getCurrencyCode()
00088 ));
00089 $mail->send();
00090 }
00091 }
00092
00093 function getInstallDataFile() {
00094 return ($this->getPluginPath() . DIRECTORY_SEPARATOR . 'data.xml');
00095 }
00096 }
00097
00098 ?>