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) { $id = $request->get_int('id', 0); $id_stream = $request->get_int('id_stream', 0); if ($this->archive_exist($id) || $id_stream !== 0 && $id !== 0) { if (!NewsletterAuthorizationsService::id_stream($id_stream)->moderation_subscribers()) { NewsletterAuthorizationsService::get_errors()->moderation_archives(); } NewsletterService::delete_archive($id); AppContext::get_response()->redirect($request->get_url_referrer() ? $request->get_url_referrer() : NewsletterUrlBuilder::archives($id_stream), LangLoader::get_message('newsletter.message.success.delete', 'common', 'newsletter')); } else { $controller = new UserErrorController(LangLoader::get_message('error', 'status-messages-common'), $this->lang['error-archive-not-existed']); DispatchManager::redirect($controller); } }
private function build_form($request) { $pagination = $this->get_pagination(); $result = PersistenceContext::get_querier()->select('SELECT @id_stream:= id, newsletter_streams.*, (SELECT COUNT(*) FROM ' . NewsletterSetup::$newsletter_table_subscriptions . ' subscriptions LEFT JOIN ' . NewsletterSetup::$newsletter_table_subscribers . ' subscribers ON subscriptions.subscriber_id = subscribers.id LEFT JOIN ' . DB_TABLE_MEMBER . ' member ON subscribers.user_id = member.user_id WHERE (subscribers.mail <> \'\' OR member.email <> \'\') AND subscriptions.stream_id = @id_stream ) AS subscribers_number FROM ' . NewsletterSetup::$newsletter_table_streams . ' newsletter_streams LIMIT :number_items_per_page OFFSET :display_from', array('number_items_per_page' => $pagination->get_number_items_per_page(), 'display_from' => $pagination->get_display_from())); while ($row = $result->fetch()) { if (NewsletterAuthorizationsService::id_stream($row['id'])->read()) { $this->view->assign_block_vars('streams_list', array('C_VIEW_ARCHIVES' => NewsletterAuthorizationsService::id_stream($row['id'])->read_archives(), 'C_VIEW_SUBSCRIBERS' => NewsletterAuthorizationsService::id_stream($row['id'])->read_subscribers(), 'IMAGE' => Url::to_rel($row['image']), 'NAME' => $row['name'], 'DESCRIPTION' => $row['description'], 'SUBSCRIBERS_NUMBER' => $row['subscribers_number'], 'U_VIEW_ARCHIVES' => NewsletterUrlBuilder::archives($row['id'], $row['rewrited_name'])->absolute(), 'U_VIEW_SUBSCRIBERS' => NewsletterUrlBuilder::subscribers($row['id'], $row['rewrited_name'])->absolute())); } } $this->view->put_all(array('C_SUSCRIBE' => NewsletterAuthorizationsService::check_authorizations()->subscribe(), 'C_STREAMS' => $result->get_rows_count() != 0, 'C_PAGINATION' => $pagination->has_several_pages(), 'PAGINATION' => $pagination->display())); $result->dispose(); }
protected function get_category_url(Category $category) { return NewsletterUrlBuilder::archives($category->get_id(), $category->get_rewrited_name()); }
private function build_response(View $view) { $body_view = new FileTemplate('newsletter/NewsletterBody.tpl'); $body_view->add_lang($this->lang); $body_view->put('TEMPLATE', $view); $response = new SiteDisplayResponse($body_view); $breadcrumb = $response->get_graphical_environment()->get_breadcrumb(); $breadcrumb->add($this->lang['newsletter'], NewsletterUrlBuilder::home()->rel()); $breadcrumb->add($this->lang['archives.list'], NewsletterUrlBuilder::archives()->rel()); if ($this->stream->get_id() > 0) { $stream = NewsletterStreamsCache::load()->get_stream($this->stream->get_id()); $breadcrumb->add($stream->get_name(), NewsletterUrlBuilder::archives($this->stream->get_id(), $this->stream->get_rewrited_name())->rel()); } $graphical_environment = $response->get_graphical_environment(); $graphical_environment->set_page_title($this->lang['archives.list'], $this->lang['newsletter']); $graphical_environment->get_seo_meta_data()->set_canonical_url(NewsletterUrlBuilder::archives($this->stream->get_id(), $this->stream->get_rewrited_name())); return $response; }