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(); }
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()); $name_page = $this->lang['newsletter.subscribers'] . ' : ' . $this->stream->get_name(); $breadcrumb->add($name_page, NewsletterUrlBuilder::subscribers($this->stream->get_id(), $this->stream->get_rewrited_name())->rel()); $graphical_environment = $response->get_graphical_environment(); $graphical_environment->set_page_title($name_page, $this->lang['newsletter']); $graphical_environment->get_seo_meta_data()->set_canonical_url(NewsletterUrlBuilder::subscribers($this->stream->get_id(), $this->stream->get_rewrited_name())); return $response; }