Пример #1
0
 public static function order($name, $email = '', $phone = '', $address = '', $comment = '', $adminNotifyTplID = 'admin_purchase_notify', $customerNotifyTplID = 'user_purchase_notify')
 {
     global $db;
     $user = \cf\User::getLoggedIn();
     $productList = '';
     $products = \cf\api\cart\getList();
     if (!array_key_exists('contents', $products) || !count($products['contents'])) {
         return false;
     }
     $tpl = new MailTemplate('order');
     execQuery("\n\t\t\tINSERT INTO cf_orders (created,customer_name, customer_email, customer_phone, customer_address, customer_comments, comments)\n\t\t\tVALUES(NOW(),:name, :email, :phone, :address, :comments, :contents)", array('name' => $name, 'email' => $email, 'phone' => $phone, 'address' => $address, 'comments' => $comment, 'contents' => $tpl->parseBody(array('cart' => $products))));
     $orderId = $db->lastInsertId();
     $msgParams = array('name' => $name, 'email' => $email, 'phone' => $phone, 'address' => $address, 'comment' => $comment, 'order' => $orderId, 'total' => $products['total'], 'products' => $products['contents']);
     \cf\api\cart\clear();
     $mail = new \PHPMailer();
     $mail->CharSet = 'UTF-8';
     if ($adminNotifyTplID) {
         $tpl = new MailTemplate($adminNotifyTplID);
         $mail->Subject = $tpl->parseSubject($msgParams);
         $mail->MsgHTML($tpl->parseBody($msgParams));
         foreach ($tpl->recipients() as $address) {
             $mail->addAddress($address);
         }
         $mail->Send();
     }
     $mail->clearAddresses();
     if ($customerNotifyTplID && $email) {
         $tpl = new MailTemplate($customerNotifyTplID);
         $mail->Subject = $tpl->parseSubject($msgParams);
         $mail->MsgHTML($tpl->parseBody($msgParams));
         $mail->addAddress($email);
         $mail->Send();
     }
     return $orderId;
 }
Пример #2
0
 /**
  * Display the form
  * @param $request Request
  * @param $dispatcher Dispatcher
  */
 function display($request, $dispatcher)
 {
     $templateMgr =& TemplateManager::getManager($request);
     // Add extra style sheets required for ajax components
     // FIXME: Must be removed after OMP->OJS backporting
     $templateMgr->addStyleSheet($request->getBaseUrl() . '/styles/ojs.css');
     // Add extra java script required for ajax components
     // FIXME: Must be removed after OMP->OJS backporting
     $templateMgr->addJavaScript('lib/pkp/js/grid-clickhandler.js');
     $templateMgr->addJavaScript('lib/pkp/js/modal.js');
     $templateMgr->addJavaScript('lib/pkp/js/lib/jquery/plugins/validate/jquery.validate.min.js');
     $templateMgr->addJavaScript('lib/pkp/js/jqueryValidatorI18n.js');
     import('classes.mail.MailTemplate');
     $mail = new MailTemplate('SUBMISSION_ACK');
     if ($mail->isEnabled()) {
         $templateMgr->assign('submissionAckEnabled', true);
     }
     // Citation editor filter configuration
     //
     // 1) Check whether PHP5 is available.
     if (!checkPhpVersion('5.0.0')) {
         Locale::requireComponents(array(LOCALE_COMPONENT_PKP_SUBMISSION));
         $citationEditorError = 'submission.citations.editor.php5Required';
     } else {
         $citationEditorError = null;
     }
     $templateMgr->assign('citationEditorError', $citationEditorError);
     if (!$citationEditorError) {
         // 2) Add the filter grid URLs
         $parserFilterGridUrl = $dispatcher->url($request, ROUTE_COMPONENT, null, 'grid.filter.ParserFilterGridHandler', 'fetchGrid');
         $templateMgr->assign('parserFilterGridUrl', $parserFilterGridUrl);
         $lookupFilterGridUrl = $dispatcher->url($request, ROUTE_COMPONENT, null, 'grid.filter.LookupFilterGridHandler', 'fetchGrid');
         $templateMgr->assign('lookupFilterGridUrl', $lookupFilterGridUrl);
         // 3) Create a list of all available citation output filters.
         $router =& $request->getRouter();
         $journal =& $router->getContext($request);
         import('lib.pkp.classes.metadata.MetadataDescription');
         $inputSample = new MetadataDescription('lib.pkp.classes.metadata.nlm.NlmCitationSchema', ASSOC_TYPE_CITATION);
         $outputSample = 'any string';
         $filterDao =& DAORegistry::getDAO('FilterDAO');
         $metaCitationOutputFilterObjects =& $filterDao->getCompatibleObjects($inputSample, $outputSample, $journal->getId());
         foreach ($metaCitationOutputFilterObjects as $metaCitationOutputFilterObject) {
             $metaCitationOutputFilters[$metaCitationOutputFilterObject->getId()] = $metaCitationOutputFilterObject->getDisplayName();
         }
         $templateMgr->assign_by_ref('metaCitationOutputFilters', $metaCitationOutputFilters);
     }
     $currencyDao =& DAORegistry::getDAO('CurrencyDAO');
     $currencies =& $currencyDao->getCurrencies();
     $currenciesArray = array();
     foreach ($currencies as $currency) {
         $currenciesArray[$currency->getCodeAlpha()] = $currency->getName() . ' (' . $currency->getCodeAlpha() . ')';
     }
     $templateMgr->assign('currencies', $currenciesArray);
     $originalSourceCurrencyAlpha = $journal->getSetting('sourceCurrency');
     $originalSourceCurrency = $currencyDao->getCurrencyByAlphaCode($originalSourceCurrencyAlpha);
     $templateMgr->assign('originalSourceCurrency', $originalSourceCurrency->getName() . ' (' . $originalSourceCurrencyAlpha . ')');
     $proposalSourceDao =& DAORegistry::getDAO('ProposalSourceDAO');
     $templateMgr->assign('countSources', $proposalSourceDao->countSources());
     parent::display($request, $dispatcher);
 }
Пример #3
0
 /**
  * Author requests a book for review.
  */
 function requestBookForReview($args = array(), $request)
 {
     $this->setupTemplate($request);
     if (empty($args)) {
         $request->redirect(null, 'user');
     }
     $bfrPlugin = PluginRegistry::getPlugin('generic', BOOKS_FOR_REVIEW_PLUGIN_NAME);
     $journal = $request->getJournal();
     $journalId = $journal->getId();
     $bookId = (int) $args[0];
     $bfrDao = DAORegistry::getDAO('BookForReviewDAO');
     // Ensure book for review is for this journal
     if ($bfrDao->getBookForReviewJournalId($bookId) == $journalId) {
         import('lib.pkp.classes.mail.MailTemplate');
         $email = new MailTemplate('BFR_BOOK_REQUESTED');
         $send = $request->getUserVar('send');
         // Author has filled out mail form or decided to skip email
         if ($send && !$email->hasErrors()) {
             // Update book for review as requested
             $book = $bfrDao->getBookForReview($bookId);
             $status = $book->getStatus();
             $bfrPlugin->import('classes.BookForReview');
             // Ensure book for review is avaliable
             if ($status == BFR_STATUS_AVAILABLE) {
                 $user = $request->getUser();
                 $userId = $user->getId();
                 $book->setStatus(BFR_STATUS_REQUESTED);
                 $book->setUserId($userId);
                 $book->setDateRequested(date('Y-m-d H:i:s', time()));
                 $bfrDao->updateObject($book);
                 $email->send();
                 import('classes.notification.NotificationManager');
                 $notificationManager = new NotificationManager();
                 $notificationManager->createTrivialNotification($userId, NOTIFICATION_TYPE_BOOK_REQUESTED);
             }
             $request->redirect(null, 'author', 'booksForReview');
             // Display mail form for author
         } else {
             if (!$request->getUserVar('continued')) {
                 $book = $bfrDao->getBookForReview($bookId);
                 $status = $book->getStatus();
                 $bfrPlugin->import('classes.BookForReview');
                 // Ensure book for review is avaliable
                 if ($status == BFR_STATUS_AVAILABLE) {
                     $user = $request->getUser();
                     $userId = $user->getId();
                     $editorFullName = $book->getEditorFullName();
                     $editorEmail = $book->getEditorEmail();
                     $paramArray = array('editorName' => strip_tags($editorFullName), 'bookForReviewTitle' => '"' . strip_tags($book->getLocalizedTitle()) . '"', 'authorContactSignature' => String::html2text($user->getContactSignature()));
                     $email->addRecipient($editorEmail, $editorFullName);
                     $email->assignParams($paramArray);
                 }
                 $returnUrl = $request->url(null, 'author', 'requestBookForReview', $bookId);
                 $email->displayEditForm($returnUrl);
             }
         }
     }
     $request->redirect(null, 'booksForReview');
 }
Пример #4
0
 /**
  * @copydoc Form::fetch()
  */
 function fetch($request, $params = null)
 {
     $templateMgr = TemplateManager::getManager($request);
     import('lib.pkp.classes.mail.MailTemplate');
     $mail = new MailTemplate('SUBMISSION_ACK');
     $templateMgr->assign('submissionAckDisabled', !$mail->isEnabled());
     return parent::fetch($request, $params);
 }
Пример #5
0
 /**
  * Display the form
  */
 function display()
 {
     import('mail.MailTemplate');
     $mail = new MailTemplate('SUBMISSION_ACK');
     if ($mail->isEnabled()) {
         $templateMgr =& TemplateManager::getManager();
         $templateMgr->assign('submissionAckEnabled', true);
     }
     parent::display();
 }
Пример #6
0
 function _getBody($name_template, $params)
 {
     // Cargar Template y setear parametros
     $template = new MailTemplate($name_template, $path);
     // Cargar los parametros y obtener el cuerpo del mensaje
     $template->setParams($params);
     $body = $template->getTemplate();
     // Devolver string con el c�digo HTML con los par�metros seteados
     return $body;
 }
 function sendReminder($subscription, $journal, $emailKey)
 {
     $userDao = DAORegistry::getDAO('UserDAO');
     $subscriptionTypeDao = DAORegistry::getDAO('SubscriptionTypeDAO');
     $journalName = $journal->getLocalizedName();
     $user = $userDao->getById($subscription->getUserId());
     if (!isset($user)) {
         return false;
     }
     $subscriptionType = $subscriptionTypeDao->getSubscriptionType($subscription->getTypeId());
     $subscriptionName = $journal->getSetting('subscriptionName');
     $subscriptionEmail = $journal->getSetting('subscriptionEmail');
     $subscriptionPhone = $journal->getSetting('subscriptionPhone');
     $subscriptionMailingAddress = $journal->getSetting('subscriptionMailingAddress');
     $subscriptionContactSignature = $subscriptionName;
     AppLocale::requireComponents(LOCALE_COMPONENT_PKP_USER, LOCALE_COMPONENT_APP_COMMON);
     if ($subscriptionMailingAddress != '') {
         $subscriptionContactSignature .= "\n" . $subscriptionMailingAddress;
     }
     if ($subscriptionPhone != '') {
         $subscriptionContactSignature .= "\n" . AppLocale::Translate('user.phone') . ': ' . $subscriptionPhone;
     }
     $subscriptionContactSignature .= "\n" . AppLocale::Translate('user.email') . ': ' . $subscriptionEmail;
     $paramArray = array('subscriberName' => $user->getFullName(), 'journalName' => $journalName, 'subscriptionType' => $subscriptionType->getSummaryString(), 'expiryDate' => $subscription->getDateEnd(), 'username' => $user->getUsername(), 'subscriptionContactSignature' => $subscriptionContactSignature);
     import('lib.pkp.classes.mail.MailTemplate');
     $mail = new MailTemplate($emailKey, $journal->getPrimaryLocale(), $journal, false);
     $mail->setReplyTo($subscriptionEmail, $subscriptionName);
     $mail->addRecipient($user->getEmail(), $user->getFullName());
     $mail->setSubject($mail->getSubject($journal->getPrimaryLocale()));
     $mail->setBody($mail->getBody($journal->getPrimaryLocale()));
     $mail->assignParams($paramArray);
     $mail->send();
 }
Пример #8
0
 /**
  * Helper Function - set mail from address
  * @param MailTemplate $mail 
  */
 function _setMailFrom(&$mail)
 {
     $site =& Request::getSite();
     $journal =& Request::getJournal();
     // Set the sender based on the current context
     if ($journal && $journal->getSetting('supportEmail')) {
         $mail->setFrom($journal->getSetting('supportEmail'), $journal->getSetting('supportName'));
     } else {
         $mail->setFrom($site->getLocalizedContactEmail(), $site->getLocalizedContactName());
     }
 }
 /**
  * Helper Function - set mail from address
  * @param $request PKPRequest
  * @param MailTemplate $mail
  */
 function _setMailFrom($request, &$mail)
 {
     $site = $request->getSite();
     $press = $request->getPress();
     // Set the sender based on the current context
     if ($press && $press->getSetting('supportEmail')) {
         $mail->setReplyTo($press->getSetting('supportEmail'), $press->getSetting('supportName'));
     } else {
         $mail->setReplyTo($site->getLocalizedContactEmail(), $site->getLocalizedContactName());
     }
 }
Пример #10
0
 /**
  * Helper Function - set mail from address
  * @param MailTemplate $mail 
  */
 function _setMailFrom(&$mail)
 {
     $site =& Request::getSite();
     $conference =& Request::getConference();
     $schedConf =& Request::getSchedConf();
     // Set the sender to one of three different settings, based on context
     if ($schedConf && $schedConf->getSetting('supportEmail')) {
         $mail->setFrom($schedConf->getSetting('supportEmail'), $schedConf->getSetting('supportName'));
     } elseif ($conference && $conference->getSetting('contactEmail')) {
         $mail->setFrom($conference->getSetting('contactEmail'), $conference->getSetting('contactName'));
     } else {
         $mail->setFrom($site->getLocalizedContactEmail(), $site->getLocalizedContactName());
     }
 }
Пример #11
0
 /**
  * Display the form
  */
 function display()
 {
     $templateMgr =& TemplateManager::getManager();
     import('mail.MailTemplate');
     $mail = new MailTemplate('SUBMISSION_ACK');
     if ($mail->isEnabled()) {
         $templateMgr->assign('submissionAckEnabled', true);
     }
     if ($this->_data['reviewDeadlineType'] == REVIEW_DEADLINE_TYPE_ABSOLUTE) {
         $templateMgr->assign('absoluteReviewDate', $this->_data['numWeeksPerReviewAbsolute']);
     }
     if (Config::getVar('general', 'scheduled_tasks')) {
         $templateMgr->assign('scheduledTasksEnabled', true);
     }
     parent::display();
 }
 /**
  * Возвращает модель по указанному идентификатору
  * Если модель не будет найдена - возникнет HTTP-исключение.
  *
  * @param integer $id - идентификатор нужной модели
  *
  * @return class $model
  *
  * @throws CHttpException
  */
 public function loadModel($id)
 {
     if (($model = MailTemplate::model()->findByPk($id)) === null) {
         throw new CHttpException(404, Yii::t('MailModule.mail', 'Requested page was not found'));
     }
     return $model;
 }
Пример #13
0
 public function raise($alias, $recipients, $params = array(), $subject = '')
 {
     if (!is_array($recipients)) {
         $recipients = array($recipients);
     }
     Toolkit::i()->mail->ClearAddresses();
     Toolkit::i()->mail->From = $this->fromEmail;
     Toolkit::i()->mail->FromName = $this->fromName;
     foreach ($recipients as $email) {
         Toolkit::i()->mail->AddAddress($email);
     }
     Toolkit::i()->mail->Subject = $subject;
     $emailTemplate = new MailTemplate($params);
     Toolkit::i()->mail->SetHtmlBody($emailTemplate->fetch($alias));
     return Toolkit::i()->mail->Send();
 }
 /**
  * Send email to a book for review author
  */
 function sendReminder($book, $journal, $emailKey)
 {
     $journalId = $journal->getId();
     $paramArray = array('authorName' => strip_tags($book->getUserFullName()), 'bookForReviewTitle' => '"' . strip_tags($book->getLocalizedTitle()) . '"', 'bookForReviewDueDate' => date('l, F j, Y', strtotime($book->getDateDue())), 'submissionUrl' => Request::url(null, 'author', 'submit'), 'editorialContactSignature' => strip_tags($book->getEditorContactSignature()));
     import('classes.mail.MailTemplate');
     $mail = new MailTemplate($emailKey);
     $mail->setReplyTo($book->getEditorEmail(), $book->getEditorFullName());
     $mail->addRecipient($book->getUserEmail(), $book->getUserFullName());
     $mail->setSubject($mail->getSubject($journal->getPrimaryLocale()));
     $mail->setBody($mail->getBody($journal->getPrimaryLocale()));
     $mail->assignParams($paramArray);
     $mail->send();
 }
Пример #15
0
 /**
  * Display the form
  * @param $request Request
  * @param $dispatcher Dispatcher
  */
 function display($request, $dispatcher)
 {
     $templateMgr =& TemplateManager::getManager($request);
     // Add extra style sheets required for ajax components
     // FIXME: Must be removed after OMP->OJS backporting
     $templateMgr->addStyleSheet($request->getBaseUrl() . '/styles/ojs.css');
     // Add extra java script required for ajax components
     // FIXME: Must be removed after OMP->OJS backporting
     $templateMgr->addJavaScript('lib/pkp/js/functions/grid-clickhandler.js');
     $templateMgr->addJavaScript('lib/pkp/js/functions/modal.js');
     $templateMgr->addJavaScript('lib/pkp/js/lib/jquery/plugins/validate/jquery.validate.min.js');
     $templateMgr->addJavaScript('lib/pkp/js/functions/jqueryValidatorI18n.js');
     import('classes.mail.MailTemplate');
     $mail = new MailTemplate('SUBMISSION_ACK');
     if ($mail->isEnabled()) {
         $templateMgr->assign('submissionAckEnabled', true);
     }
     // Citation editor filter configuration
     //
     // 1) Check whether PHP5 is available.
     if (!checkPhpVersion('5.0.0')) {
         Locale::requireComponents(array(LOCALE_COMPONENT_PKP_SUBMISSION));
         $citationEditorError = 'submission.citations.editor.php5Required';
     } else {
         $citationEditorError = null;
     }
     $templateMgr->assign('citationEditorError', $citationEditorError);
     if (!$citationEditorError) {
         // 2) Add the filter grid URLs
         $parserFilterGridUrl = $dispatcher->url($request, ROUTE_COMPONENT, null, 'grid.filter.ParserFilterGridHandler', 'fetchGrid');
         $templateMgr->assign('parserFilterGridUrl', $parserFilterGridUrl);
         $lookupFilterGridUrl = $dispatcher->url($request, ROUTE_COMPONENT, null, 'grid.filter.LookupFilterGridHandler', 'fetchGrid');
         $templateMgr->assign('lookupFilterGridUrl', $lookupFilterGridUrl);
         // 3) Create a list of all available citation output filters.
         $router =& $request->getRouter();
         $journal =& $router->getContext($request);
         $filterDao =& DAORegistry::getDAO('FilterDAO');
         /* @var $filterDao FilterDAO */
         $metaCitationOutputFilterObjects =& $filterDao->getObjectsByGroup('nlm30-element-citation=>plaintext', $journal->getId());
         foreach ($metaCitationOutputFilterObjects as $metaCitationOutputFilterObject) {
             $metaCitationOutputFilters[$metaCitationOutputFilterObject->getId()] = $metaCitationOutputFilterObject->getDisplayName();
         }
         $templateMgr->assign_by_ref('metaCitationOutputFilters', $metaCitationOutputFilters);
     }
     parent::display($request, $dispatcher);
 }
Пример #16
0
 /**
  * @see parent::send()
  * @param $request PKPRequest optional (used for logging purposes)
  */
 function send($request = null)
 {
     if (parent::send(false)) {
         $this->log($request);
         return true;
     } else {
         return false;
     }
 }
 function actionPerform(&$skin, $moduleID)
 {
     $usernameError = '';
     if (isset($_POST["event"]) && $_POST["event"] == 'forgetPassword') {
         //Check username
         //Inorder to avoid sql injection attacks both
         //should contains characters form a to z and/or numbers only
         if (isset($_POST["username"]) && (!$skin->main->checkString('[^a-zA-Z0-9]', $_POST["username"]) || $_POST["username"] == "")) {
             $usernameError = "Username must contains numbers and/or character from a to z only";
         } else {
             $query = "SELECT * FROM {$skin->main->databaseTablePrefix}users WHERE username="******"username"]);
             $recordSet = $skin->main->databaseConnection->Execute($query);
             $password = $this->randomNumber();
             $record = array('password' => md5($password));
             //Start Update Transaction
             $skin->main->databaseConnection->StartTrans();
             $updateSQL = $skin->main->databaseConnection->GetUpdateSQL($recordSet, $record);
             $skin->main->databaseConnection->Execute($updateSQL);
             $recordSet2 = $skin->main->databaseConnection->Execute("SELECT * FROM {$skin->main->databaseTablePrefix}templates \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype='mail'\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAND\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname = 'forgetPasswordSubject'\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tOR\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname = 'forgetPasswordBody'\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)");
             $templates = array('forgetPasswordSubject' => '', 'forgetPasswordBody' => '');
             while (!$recordSet2->EOF) {
                 $templates[$recordSet2->fields["name"]] = $recordSet2->fields["content"];
                 $recordSet2->MoveNext();
             }
             $mailer = new Mailer($skin->main);
             $mailTemplate = new MailTemplate($skin->main);
             $mailTemplate->assign('username', $_POST["username"]);
             $mailTemplate->assign('password', $password);
             $mailer->addUserAddress($_POST["username"]);
             $mailer->Subject = $mailTemplate->fetch('mail/forgetPasswordSubject');
             $mailer->Body = $mailTemplate->fetch('mail/forgetPasswordBody');
             $mailer->Send();
             if ($mailer->ErrorInfo) {
                 //Transaction failed
                 $skin->main->databaseConnection->FailTrans();
                 trigger_error("Unable to send password remind mail. Reason is : " . $mailer->ErrorInfo);
             }
             //Complete update transaction
             $skin->main->databaseConnection->CompleteTrans();
         }
     }
     //Assign codeBehind variables
     $skin->main->controlVariables["forgetPassword"] = array('usernameError' => $usernameError);
 }
Пример #18
0
 public static function order($name, $email = '', $phone = '', $address = '', $comment = '', $notifyGroup = 'admin', $notifyCustomer = true)
 {
     global $db;
     $user = \cf\User::getLoggedIn();
     $productList = '';
     $products = \cf\api\cart\getList();
     if (count($products) < 2) {
         return false;
     }
     for ($i = 1; $i < count($products); ++$i) {
         $productList .= "{$products[$i]['id']} {$products[$i]['name']} [{$products[$i]['price']}] - {$products[$i]['amount']} <br>";
     }
     $productList .= "<br><strong>Итого</strong>: {$products[0]['total_price']}";
     execQuery("\n\t\t\tINSERT INTO cf_orders (created,customer_name, customer_email, customer_phone, customer_address, customer_comments, comments)\n\t\t\tVALUES(NOW(),:name, :email, :phone, :address, :comments, :products)", array('name' => $name, 'email' => $email, 'phone' => $phone, 'address' => $address, 'comments' => $comment, 'products' => $productList));
     $orderId = $db->lastInsertId();
     \cf\api\cart\clear();
     $msgParams = array('name' => $name, 'email' => $email, 'phone' => $phone, 'address' => $address, 'comment' => $comment, 'order' => $orderId, 'total' => array_shift($products), 'products' => $products);
     if ($notifyGroup) {
         $emails = query2vector("SELECT email FROM cf_users INNER JOIN cf_user_roles ON cf_users.id=cf_user_roles.user_id WHERE cf_user_roles.role_id=:id", array('id' => $notifyGroup));
         if (!empty($emails)) {
             $tpl = new MailTemplate('admin_purchase_notify');
             $mail = new \PHPMailer();
             $mail->CharSet = 'UTF-8';
             $mail->Subject = $tpl->parseSubject($msgParams);
             $mail->MsgHTML($tpl->parseBody($msgParams));
             foreach ($emails as $a) {
                 $mail->AddAddress($a);
             }
             $mail->Send();
         }
     }
     if ($notifyCustomer && $email) {
         $tpl = new MailTemplate('user_purchase_notify');
         $mail = new \PHPMailer();
         $mail->CharSet = 'UTF-8';
         $mail->Subject = $tpl->parseSubject($msgParams);
         $mail->MsgHTML($tpl->parseBody($msgParams));
         $mail->AddAddress($email);
         @$mail->Send();
     }
     return $orderId;
 }
Пример #19
0
 /**
  * @see parent::send()
  */
 function send()
 {
     if (parent::send()) {
         if (!isset($this->skip) || !$this->skip) {
             $this->log();
         }
         return true;
     } else {
         return false;
     }
 }
Пример #20
0
 /**
  * Send an email to a user or group of users.
  */
 function email($args)
 {
     $this->validate();
     $this->setupTemplate(true);
     $templateMgr =& TemplateManager::getManager();
     $templateMgr->assign('helpTopicId', 'journal.users.emailUsers');
     $userDao =& DAORegistry::getDAO('UserDAO');
     $site =& Request::getSite();
     $journal =& Request::getJournal();
     $user =& Request::getUser();
     import('classes.mail.MailTemplate');
     $email = new MailTemplate(Request::getUserVar('template'), Request::getUserVar('locale'));
     if (Request::getUserVar('send') && !$email->hasErrors()) {
         $email->send();
         Request::redirect(null, Request::getRequestedPage());
     } else {
         $email->assignParams();
         // FIXME Forces default parameters to be assigned (should do this automatically in MailTemplate?)
         if (!Request::getUserVar('continued')) {
             if (($groupId = Request::getUserVar('toGroup')) != '') {
                 // Special case for emailing entire groups:
                 // Check for a group ID and add recipients.
                 $groupDao =& DAORegistry::getDAO('GroupDAO');
                 $group =& $groupDao->getById($groupId);
                 if ($group && $group->getAssocId() == $journal->getId() && $group->getAssocType() == ASSOC_TYPE_JOURNAL) {
                     $groupMembershipDao =& DAORegistry::getDAO('GroupMembershipDAO');
                     $memberships =& $groupMembershipDao->getMemberships($group->getId());
                     $memberships =& $memberships->toArray();
                     foreach ($memberships as $membership) {
                         $user =& $membership->getUser();
                         $email->addRecipient($user->getEmail(), $user->getFullName());
                     }
                 }
             }
             if (count($email->getRecipients()) == 0) {
                 $email->addRecipient($user->getEmail(), $user->getFullName());
             }
         }
         $email->displayEditForm(Request::url(null, null, 'email'), array(), 'manager/people/email.tpl');
     }
 }
Пример #21
0
 public function raise($alias, $recipients, $params = array())
 {
     Loader::import('Modules.Main');
     if (!is_array($recipients)) {
         $recipients = array($recipients);
     }
     $event = Manager::getInstance()->getMapper('EmailObjectMapper')->findFirst(array('Criteria' => array('IsActive' => true, 'Alias' => $alias)));
     if ($event->getId()) {
         Toolkit::getInstance()->mail->ClearAddresses();
         Toolkit::getInstance()->mail->From = Manager::getInstance()->getModule('Main')->config('FromEmail');
         Toolkit::getInstance()->mail->FromName = Manager::getInstance()->getModule('Main')->config('FromName');
         foreach ($recipients as $email) {
             Toolkit::getInstance()->mail->AddAddress($email);
         }
         Toolkit::getInstance()->mail->Subject = $event->getSubject();
         $emailTemplate = new MailTemplate($params);
         Toolkit::getInstance()->mail->SetHtmlBody($emailTemplate->fetch($event->getAlias()));
         return Toolkit::getInstance()->mail->Send();
     }
     return false;
 }
Пример #22
0
 /**
  * Display the form
  */
 function display()
 {
     $templateMgr =& TemplateManager::getManager();
     import('mail.MailTemplate');
     $mail = new MailTemplate('SUBMISSION_ACK');
     if ($mail->isEnabled()) {
         $templateMgr->assign('submissionAckEnabled', true);
     }
     if ($this->_data['reviewDeadlineType'] == REVIEW_DEADLINE_TYPE_ABSOLUTE) {
         $templateMgr->assign('absoluteReviewDate', $this->_data['numWeeksPerReviewAbsolute']);
     }
     if (Config::getVar('general', 'scheduled_tasks')) {
         $templateMgr->assign('scheduledTasksEnabled', true);
     }
     import('manager.form.TimelineForm');
     $schedConf =& Request::getSchedConf();
     list($earliestDate, $latestDate) = TimelineForm::getOutsideDates($schedConf);
     $templateMgr->assign('firstYear', strftime('%Y', $earliestDate));
     $templateMgr->assign('lastYear', strftime('%Y', $latestDate));
     parent::display();
 }
Пример #23
0
 /**
  * sendTemplate:
  *
  * @param string $code - код
  * @param array  $data - данные
  * @return bool
  * @throws CException
  **/
 public function sendTemplate($code, array $data)
 {
     $template = MailTemplate::model()->find(array('condition' => 't.code = :code', 'params' => array(':code' => $code)));
     if (!$template) {
         throw new CException(Yii::t('MailModule.mail', 'Template with "{code}" was not found!'), array('{code}' => $code));
     }
     $parsedData = $this->parseTemplate($template, $data);
     if (!$this->getMailComponent()->send($parsedData['from'], $parsedData['to'], $parsedData['theme'], $parsedData['body'])) {
         throw new CException(Yii::t('MailModule.mail', 'Error when sending mail!'));
     }
     return true;
 }
 /**
  * Send email to object for review author
  * @param $ofrAssignment ObjectForReviewAssignment
  * @param $journal Journal
  * @param $emailKey string
  */
 function sendReminder($ofrAssignment, $journal, $emailKey)
 {
     $journalId = $journal->getId();
     $author =& $ofrAssignment->getUser();
     $objectForReview =& $ofrAssignment->getObjectForReview();
     $editor =& $objectForReview->getEditor();
     $paramArray = array('authorName' => strip_tags($author->getFullName()), 'objectForReviewTitle' => '"' . strip_tags($objectForReview->getTitle()) . '"', 'objectForReviewDueDate' => date('l, F j, Y', strtotime($ofrAssignment->getDateDue())), 'submissionUrl' => Request::url($journal->getPath(), 'author', 'submit'), 'editorialContactSignature' => strip_tags($editor->getContactSignature()));
     import('classes.mail.MailTemplate');
     $mail = new MailTemplate($emailKey);
     $mail->setReplyTo($editor->getEmail(), $editor->getFullName());
     $mail->addRecipient($author->getEmail(), $author->getFullName());
     $mail->setSubject($mail->getSubject($journal->getPrimaryLocale()));
     $mail->setBody($mail->getBody($journal->getPrimaryLocale()));
     $mail->assignParams($paramArray);
     $mail->send();
     $ofrAssignment->setDateReminded(Core::getCurrentDate());
     $ofrAssignmentDao =& DAORegistry::getDAO('ObjectForReviewAssignmentDAO');
     $ofrAssignmentDao->updateObject($ofrAssignment);
 }
Пример #25
0
 protected function getMailTemplate($session)
 {
     if ($this->mailtemplate != null) {
         return $this->mailtemplate;
     }
     if ($session->hasVariable("mailtemplatecode")) {
         $mailtemplate = unserialize(base64_decode($session->getVariable("mailtemplatecode")));
         $mailtemplate->setStorage($session->getStorage());
         return $mailtemplate;
     }
     if ($session->hasVariable("body")) {
         $mailtemplate = new MailTemplate($session->getStorage());
         $headers = array_combine($session->getListVariable("headerfields"), $session->getListVariable("headervalues"));
         foreach ($headers as $field => $value) {
             if (!empty($field)) {
                 $mailtemplate->setHeader($field, $value);
             }
         }
         $mailtemplate->setBody($session->getVariable("body"));
         return $mailtemplate;
     }
     return null;
 }
Пример #26
0
 public static function factory(Storage $storage, $row)
 {
     $mailtemplate = new MailTemplate($storage);
     $mailtemplate->setTemplateID($row["templateid"]);
     $mailtemplate->setGliederungID($row["gliederungid"]);
     $mailtemplate->setLabel($row["label"]);
     $mailtemplate->setBody($row["body"]);
     return $mailtemplate;
 }
Пример #27
0
 public function sendCodes($controller)
 {
     if (!($student = Student::model()->findByAttributes(array('email' => $this->email)))) {
         return false;
     }
     $exercises = Exercise::model()->with('assignment')->sortByDuedate()->findAllByAttributes(array('student_id' => $student->id));
     foreach ($exercises as $exercise) {
         $exercise->link = Yii::app()->controller->createAbsoluteSslUrl('exercise/info', array('k' => $exercise->generateAckKey()));
     }
     $options = array();
     if (Helpers::getYiiParam('addOriginatingIP')) {
         $options['originating_IP'] = sprintf('[%s]', Yii::app()->request->userHostAddress);
     }
     return MailTemplate::model()->mailFromTemplate('send_codes', array($student->email => $student->name), array('student' => $student, 'exercises' => $exercises), $options);
 }
 function actionPerform($eventName, $args)
 {
     $mailer = new Mailer($this->main);
     $mailTemplate = new MailTemplate($this->main);
     $mailTemplate->assign('username', $args);
     $mailer->addSystemAddress();
     if ($eventName == "login_fail") {
         $mailer->Subject = $mailTemplate->fetch('event/loginFailSubject');
         $mailer->Body = $mailTemplate->fetch('event/loginFaildBody');
         $mailer->Send();
     } elseif ($eventName == "login_succeed") {
         $mailer->Subject = $mailTemplate->fetch('event/loginSucceedSubject');
         $mailer->Body = $mailTemplate->fetch('event/loginSucceedBody');
         $mailer->Send();
     } elseif ($eventName == "user_activate") {
         $mailer->Subject = $mailTemplate->fetch('event/userActivateSubject_Admin');
         $mailer->Body = $mailTemplate->fetch('event/userActivateBody_Admin');
         $mailer->Send();
     } elseif ($eventName == "user_deactivate") {
         $mailer->Subject = $mailTemplate->fetch('event/userDeactivateSubject_Admin');
         $mailer->Body = $mailTemplate->fetch('event/userDeactivateBody_Admin');
         $mailer->Send();
     }
 }
Пример #29
0
 /**
  * @see parent::send()
  */
 function send()
 {
     if (parent::send(false)) {
         if (!isset($this->skip) || !$this->skip) {
             $this->log();
         }
         $user =& Request::getUser();
         if ($this->attachmentsEnabled) {
             $this->_clearAttachments($user->getId());
         }
         return true;
     } else {
         return false;
     }
 }
Пример #30
0
 public function prepareMessages($students)
 {
     $result = array('prepared' => 0, 'failed' => 0);
     foreach ($students as $student) {
         if (!$student->email) {
             $result['failed']++;
             continue;
         }
         if (MailTemplate::model()->messageFromTemplate('direct_message', $student->id, array('student' => $student, 'subject' => $this->subject, 'body' => $this->body), $this->confirmed, $this->acknowledgement)) {
             $result['prepared']++;
         } else {
             $result['failed']++;
         }
     }
     return $result;
 }