public function get_actions_tree_links()
 {
     $lang = LangLoader::get('common', 'newsletter');
     $tree = new ModuleTreeLinks();
     $manage_newsletter_link = new AdminModuleLink($lang['newsletter.streams.manage'], NewsletterUrlBuilder::manage_streams());
     $manage_newsletter_link->add_sub_link(new AdminModuleLink($lang['newsletter.streams.manage'], NewsletterUrlBuilder::manage_streams()));
     $manage_newsletter_link->add_sub_link(new AdminModuleLink($lang['stream.add'], NewsletterUrlBuilder::add_stream()));
     $tree->add_link($manage_newsletter_link);
     $tree->add_link(new AdminModuleLink(LangLoader::get_message('configuration', 'admin'), NewsletterUrlBuilder::configuration()));
     $tree->add_link(new ModuleLink($lang['newsletter-add'], NewsletterUrlBuilder::add_newsletter(), NewsletterAuthorizationsService::default_authorizations()->create_newsletters()));
     $tree->add_link(new ModuleLink($lang['newsletter.archives'], NewsletterUrlBuilder::archives(), NewsletterAuthorizationsService::default_authorizations()->read_archives()));
     return $tree;
 }
 public function execute(HTTPRequestCustom $request)
 {
     if (!NewsletterAuthorizationsService::default_authorizations()->moderation_subscribers()) {
         NewsletterAuthorizationsService::get_errors()->moderation_subscribers();
     }
     $id = $request->get_getint('id', 0);
     $this->init();
     $verificate_is_edit = PersistenceContext::get_querier()->count(NewsletterSetup::$newsletter_table_subscribers, "WHERE id = '" . $id . "' AND user_id = -1") > 0;
     if (!$this->subscriber_exist($id) || !$verificate_is_edit) {
         $controller = new UserErrorController(LangLoader::get_message('error', 'status-messages-common'), LangLoader::get_message('error-subscriber-not-existed', 'common', 'newsletter'));
         DispatchManager::redirect($controller);
     }
     $this->build_form($id);
     $tpl = new StringTemplate('# INCLUDE MSG # # INCLUDE FORM #');
     $tpl->add_lang($this->lang);
     if ($this->submit_button->has_been_submited() && $this->form->validate()) {
         $this->save($id);
         $tpl->put('MSG', MessageHelper::display(LangLoader::get_message('process.success', 'status-messages-common'), MessageHelper::SUCCESS, 4));
     }
     $tpl->put('FORM', $this->form->display());
     return $this->build_response($tpl);
 }
 public function execute(HTTPRequestCustom $request)
 {
     if (!NewsletterAuthorizationsService::default_authorizations()->create_newsletters()) {
         NewsletterAuthorizationsService::get_errors()->create_newsletters();
     }
     $type = $request->get_value('type', '');
     $this->init();
     $this->build_form($type);
     $tpl = new StringTemplate('# INCLUDE MSG # # INCLUDE FORM #');
     $tpl->add_lang($this->lang);
     if ($this->submit_button->has_been_submited() && $this->form->validate()) {
         $this->send_mail($type);
         $tpl->put('MSG', MessageHelper::display($this->lang['newsletter.message.success.add'], MessageHelper::SUCCESS, 5));
     } else {
         if ($this->send_test_button->has_been_submited() && $this->form->validate()) {
             $this->send_test($type);
             $tpl->put('MSG', MessageHelper::display($this->lang['newsletter.success-send-test'], MessageHelper::SUCCESS, 5));
         }
     }
     $tpl->put('FORM', $this->form->display());
     return $this->build_response($tpl, $type);
 }
 private function check_authorizations()
 {
     if (!NewsletterAuthorizationsService::default_authorizations()->create_newsletters()) {
         NewsletterAuthorizationsService::get_errors()->create_newsletters();
     }
 }