282 lines
10 KiB
PHP
282 lines
10 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 stNewsletterBackendActions extends autoStNewsletterBackendActions {
|
|
|
|
public function executeSaveAndSendConfirm() {
|
|
$this -> forward('stNewsletterBackend', 'edit');
|
|
}
|
|
|
|
|
|
public function executeNewsletterSend() {
|
|
$newsletter = NewsletterMessagePeer::retrieveByPK($this -> getRequestParameter('id'));
|
|
|
|
|
|
$this->count = $newsletter->countUsers(new Criteria());
|
|
|
|
$newsletter->countGmailUsers(new Criteria(),$this -> getRequestParameter('id'));
|
|
|
|
stNewsletterProgressBar::setParam('id', $newsletter->getId());
|
|
}
|
|
|
|
public function executeSaveAndSend() {
|
|
return $this->forward('stNewsletterBackend', 'edit');
|
|
}
|
|
|
|
public function executeEditMessage()
|
|
{
|
|
|
|
$message_id = $this->getRequestParameter('id');
|
|
$message_draft_id = $this->getRequestParameter('draft_id');
|
|
|
|
$c = new Criteria();
|
|
$c->add(NewsletterDraftMessagePeer::ID, $message_draft_id);
|
|
$newsletterDraftMessage = NewsletterDraftMessagePeer::doSelectOne($c);
|
|
|
|
if ($newsletterDraftMessage) {
|
|
|
|
$c = new Criteria();
|
|
$c->add(NewsletterMessagePeer::ID, $message_id);
|
|
NewsletterMessagePeer::doDelete($c);
|
|
|
|
return $this -> redirect('stNewsletterDraftMessageBackend/edit?id=' . $message_draft_id);
|
|
|
|
} else{
|
|
|
|
$i18n = $this->getContext()->getI18n();
|
|
$this->setFlash('error', $i18n->__('Nie można edytować tej wiadomości.'));
|
|
|
|
return $this -> redirect('stNewsletterBackend/edit?id='. $message_id);
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
protected function saveNewsletterMessage($newsletter_message) {
|
|
|
|
|
|
if ($this -> hasRequestParameter('create_copy')) {
|
|
|
|
$newsletter_draft_message = new NewsletterDraftMessage();
|
|
|
|
$newsletter_draft_message->setCulture($this->getRequestParameter('culture'));
|
|
|
|
$newsletter_draft_message->setMainImage($newsletter_message->getMainImage());
|
|
|
|
$newsletter_draft_message->setMainImageUrl($newsletter_message->getMainImageUrl());
|
|
|
|
|
|
$newsletter_draft_message->setSubject($newsletter_message->getSubject());
|
|
|
|
$newsletter_draft_message->setContent($newsletter_message->getContent());
|
|
|
|
|
|
$newsletter_draft_message->setCtaButtonName($newsletter_message->getCtaButtonName());
|
|
|
|
$newsletter_draft_message->setCtaButtonUrl($newsletter_message->getCtaButtonUrl());
|
|
|
|
$newsletter_draft_message->setCtaButtonPosition($newsletter_message->getCtaButtonPosition());
|
|
|
|
$newsletter_draft_message->setCtaDescriptionHead($newsletter_message->getCtaDescriptionHead());
|
|
|
|
$newsletter_draft_message->setCtaDescriptionFoot($newsletter_message->getCtaDescriptionFoot());
|
|
|
|
|
|
$newsletter_draft_message->setRecommendsName($newsletter_message->getRecommendsName());
|
|
|
|
$newsletter_draft_message->setProductsName($newsletter_message->getProductsName());
|
|
|
|
|
|
$hash = md5(microtime());
|
|
$newsletter_draft_message->setHash($hash);
|
|
|
|
$newsletter_draft_message -> save();
|
|
|
|
$c = new Criteria();
|
|
$c->add(NewsletterMessageHasProductPeer::NEWSLETTER_MESSAGE_ID, $newsletter_message->getId());
|
|
$c->addJoin(ProductPeer::ID, NewsletterMessageHasProductPeer::PRODUCT_ID);
|
|
$c->addAscendingOrderByColumn(NewsletterMessageHasProductPeer::ID);
|
|
$products = ProductPeer::doSelect($c);
|
|
|
|
|
|
foreach ($products as $token_product) {
|
|
$nmhp = new NewsletterDraftMessageHasProduct();
|
|
$nmhp->setNewsletterDraftMessageId($newsletter_draft_message->getId());
|
|
$nmhp->setProductId($token_product->getId());
|
|
$nmhp->save();
|
|
}
|
|
|
|
$c = new Criteria();
|
|
$c->add(NewsletterMessageHasBlogPeer::NEWSLETTER_MESSAGE_ID, $newsletter_message->getId());
|
|
$c->addJoin(BlogPeer::ID, NewsletterMessageHasBlogPeer::BLOG_ID);
|
|
$c->addAscendingOrderByColumn(NewsletterMessageHasBlogPeer::ID);
|
|
$recommends = BlogPeer::doSelect($c);
|
|
|
|
foreach ($recommends as $token_blog) {
|
|
$nmhb = new NewsletterDraftMessageHasBlog();
|
|
$nmhb->setNewsletterDraftMessageId($newsletter_draft_message->getId());
|
|
$nmhb->setBlogId($token_blog->getId());
|
|
$nmhb->save();
|
|
}
|
|
|
|
return $this -> redirect('stNewsletterDraftMessageBackend/edit?id=' . $newsletter_draft_message -> getId());
|
|
}
|
|
|
|
|
|
|
|
parent::saveNewsletterMessage($newsletter_message);
|
|
|
|
|
|
if (!$newsletter_message->getHash()) {
|
|
|
|
$hash = md5(microtime());
|
|
|
|
$newsletter_message->setHash($hash);
|
|
|
|
$newsletter_message -> save();
|
|
|
|
}
|
|
|
|
|
|
$c = new Criteria();
|
|
|
|
$c -> add(NewsletterMessageHasNewsletterGroupPeer::NEWSLETTER_MESSAGE_ID, $newsletter_message -> getId());
|
|
|
|
BasePeer::doDelete($c, Propel::getConnection());
|
|
|
|
$newsletter_group = $this -> getRequestParameter('newsletter_message[newsletter_group]');
|
|
|
|
foreach ($newsletter_group as $id) {
|
|
$ng = new NewsletterMessageHasNewsletterGroup();
|
|
|
|
$ng -> setNewsletterGroupId($id);
|
|
|
|
$ng -> setNewsletterMessageId($newsletter_message -> getId());
|
|
|
|
$ng -> save();
|
|
}
|
|
|
|
if ($this -> hasRequestParameter('save_and_send')) {
|
|
return $this -> redirect('stNewsletterBackend/newsletterSend?id=' . $newsletter_message -> getId());
|
|
}
|
|
}
|
|
|
|
|
|
|
|
protected function updateConfigFromRequest() {
|
|
|
|
parent::updateConfigFromRequest();
|
|
|
|
$config = $this -> getRequestParameter('config');
|
|
|
|
$this -> config -> set('newsletter_enabled', $config['newsletter_enabled'], false);
|
|
|
|
$this -> config -> set('newsletter_on', $config['newsletter_on'], false);
|
|
|
|
$this -> config -> set('newsletter_default_culture', $config['newsletter_default_culture'], false);
|
|
|
|
$this -> config -> set('templates_responsive', $config['templates_responsive'], false);
|
|
|
|
$this -> config -> set('register_message_on', $config['register_message_on'], false);
|
|
|
|
$this -> config -> set('register_message_title', $config['register_message_title'], true);
|
|
|
|
$this -> config -> set('register_message_templates', $config['register_message_templates'], true);
|
|
|
|
$this -> config -> set('register_text_title', $config['register_text_title'], true);
|
|
|
|
$this -> config -> set('register_text_description', $config['register_text_description'], true);
|
|
|
|
$this -> config -> set('register_text_under_register', $config['register_text_under_register'], true);
|
|
|
|
$this -> config -> set('register_text_widget_title', $config['register_text_widget_title'], true);
|
|
|
|
$this -> config -> set('register_text_widget_description', $config['register_text_widget_description'], true);
|
|
|
|
|
|
|
|
$this -> config -> set('template_color_header', $config['template_color_header'], false);
|
|
|
|
$this -> config -> set('template_color_background_a', $config['template_color_background_a'], false);
|
|
|
|
$this -> config -> set('template_color_background_b', $config['template_color_background_b'], false);
|
|
|
|
$this -> config -> set('template_color_background_font', $config['template_color_background_font'], false);
|
|
|
|
$this -> config -> set('template_color_font_a', $config['template_color_font_a'], false);
|
|
|
|
$this -> config -> set('template_color_font_b', $config['template_color_font_b'], false);
|
|
|
|
$this -> config -> set('template_color_font_c', $config['template_color_font_c'], false);
|
|
|
|
$this -> config -> set('template_show_subject', $config['template_show_subject'], false);
|
|
|
|
$this -> config -> set('template_cta_font', $config['template_cta_font'], false);
|
|
|
|
$this -> config -> set('template_cta_background', $config['template_cta_background'], false);
|
|
|
|
}
|
|
|
|
protected function saveConfig()
|
|
{
|
|
|
|
parent::saveConfig();
|
|
|
|
WebpagePeer::clearCache();
|
|
|
|
stFastCacheManager::clearCache();
|
|
|
|
}
|
|
|
|
protected function addFiltersCriteria($c)
|
|
{
|
|
if ($this->forward_parameters['send']==0) {
|
|
unset($this->filters['sent_at']);
|
|
}else{
|
|
|
|
unset($this->filters['created_at']);
|
|
}
|
|
|
|
parent::addFiltersCriteria($c);
|
|
|
|
if ($this->forward_parameters['send'] && (!isset($this->filters['sent_at']['from']) || "" === $this->filters['sent_at']['from']) && (!isset($this->filters['sent_at']['to']) || "" === $this->filters['sent_at']['to'])) {
|
|
$c->add(NewsletterMessagePeer::SENT_AT, null, Criteria::ISNOTNULL);
|
|
}
|
|
elseif (!$this->forward_parameters['send'])
|
|
{
|
|
$c->add(NewsletterMessagePeer::SENT_AT, null, Criteria::ISNULL);
|
|
}
|
|
|
|
}
|
|
|
|
|
|
protected function newsletterTemplateMail($params)
|
|
{
|
|
$this->config = $params['config'];
|
|
}
|
|
|
|
|
|
}
|