Files
2025-03-12 17:06:23 +01:00

113 lines
4.3 KiB
PHP

<?php
/**
* SOTESHOP/stNewsletterPlugin
*
* Ten plik należy do aplikacji stNewsletterPlugin opartej na licencji (Professional License SOTE).
* Nie zmieniaj tego pliku, jeśli chcesz korzystać z automatycznych aktualizacji oprogramowania.
* Jeśli chcesz wprowadzać swoje modyfikacje do programu, zapoznaj się z dokumentacją, jak zmieniać
* oprogramowanie bez zmiany kodu bazowego http://www.sote.pl/modifications
*
* @package stNewsletterPlugin
* @subpackage actions
* @copyright SOTE (www.sote.pl)
* @license http://www.sote.pl/license/sote (Professional License SOTE)
* @version $Id: actions.class.php 13778 2011-06-21 12:01:22Z bartek $
* @author Bartosz Alejski <bartosz.alejski@sote.pl>
*/
/**
* Klasa stNewsletterFrontendActions.
*
* @package stNewsletterPlugin
* @subpackage actions
*/
class stNewsletterUserBackendActions extends autoStNewsletterUserBackendActions
{
protected function saveNewsletterUser($newsletter_user)
{
parent::saveNewsletterUser($newsletter_user);
$newsletter_user -> setLanguage($this -> getRequestParameter('newsletter_user[language]'));
$newsletter_user -> save();
$c = new Criteria();
$c -> add(NewsletterUserHasNewsletterGroupPeer::NEWSLETTER_USER_ID, $newsletter_user -> getId());
BasePeer::doDelete($c, Propel::getConnection());
$newsletter_group = $this -> getRequestParameter('newsletter_user[newsletter_group]');
foreach ($newsletter_group as $id) {
$ng = new NewsletterUserHasNewsletterGroup();
$ng -> setNewsletterGroupId($id);
$ng -> setNewsletterUserId($newsletter_user -> getId());
$ng -> save();
}
if ($this -> hasRequestParameter('save_and_send_confirm')) {
$c = new Criteria();
$c -> addJoin(NewsletterGroupPeer::ID, NewsletterUserHasNewsletterGroupPeer::NEWSLETTER_GROUP_ID);
$c -> add(NewsletterUserHasNewsletterGroupPeer::NEWSLETTER_USER_ID, $newsletter_user -> getId());
$c -> add(NewsletterGroupPeer::IS_PUBLIC, 1);
$choseGroup = NewsletterGroupPeer::doSelect($c);
return ($this -> sendMailConfirm($newsletter_user, $choseGroup, $newsletter_user -> getHash()));
}
}
protected function addFiltersCriteria($c)
{
parent::addFiltersCriteria($c);
if ($this->getRequestParameter('group')) {
$c -> addJoin(NewsletterUserHasNewsletterGroupPeer::NEWSLETTER_USER_ID, NewsletterUserPeer::ID);
$c -> add(NewsletterUserHasNewsletterGroupPeer::NEWSLETTER_GROUP_ID, $this->getRequestParameter('group'));
}
}
protected function savesfGuardUser($sf_guard_user)
{
if (!$sf_guard_user -> getId()) {
$sf_guard_user -> addGroupByName('user');
$sf_guard_user -> setHashCode(md5(microtime()));
}
parent::savesfGuardUser($sf_guard_user);
}
/**
* Obsługuje wysyłanie mail'i
*/
function SendMailConfirm($user, $group, $hash)
{
$mail_error = $this -> mailWithConfirmRegisterToUser($user, $group, $hash);
return $mail_error;
}
/**
* Wysyła mail z zamówieniem do administratora
*/
protected function mailWithConfirmRegisterToUser($user, $group, $hash)
{
$mail_config = stConfig::getInstance($this->getContext(), 'stMailAccountBackend');
$mailHead = stMailer::getHtmlMailDescription("header");
$mailFoot = stMailer::getHtmlMailDescription("footer");
$sendConfirmRegisterToUserHtmlMailMessage = stMailTemplate::render('confirmUserHtml', array('user' => $user, 'group' => $group, 'hash' => $hash, 'head' => $mailHead, 'foot' => $mailFoot, 'mail_config'=>$mail_config ));
$sendConfirmRegisterToUserPlainMailMessage = stMailTemplate::render('confirmUserPlain', array('user' => $user, 'group' => $group, 'hash' => $hash, ));
$mail = stMailer::getInstance();
return $mail -> setSubject($this -> getContext() -> getI18N() -> __('Rejestracja na liście subskrypcji.')) -> setHtmlMessage($sendConfirmRegisterToUserHtmlMailMessage) -> setPlainMessage($sendConfirmRegisterToUserPlainMailMessage) -> setTo($user -> getEmail()) -> sendToClient();
}
}