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;
 }