public function execute(HTTPRequestCustom $request) { $module_id = $request->get_getstring('module_id', ''); if (empty($module_id)) { AppContext::get_response()->redirect(Environment::get_home_page()); } $this->init(); $module_category_id = $request->get_getint('module_category_id', 0); $feed_name = $request->get_getstring('feed_name', Feed::DEFAULT_FEED_NAME); $feed = new ATOM($module_id, $feed_name, $module_category_id); if ($feed !== null && $feed->is_in_cache()) { $this->tpl->put('SYNDICATION', $feed->read()); } else { $eps = AppContext::get_extension_provider_service(); if ($eps->provider_exists($module_id, FeedProvider::EXTENSION_POINT)) { $provider = $eps->get_provider($module_id); $feeds = $provider->feeds(); $data = $feeds->get_feed_data_struct($module_category_id, $feed_name); if ($data === null) { AppContext::get_response()->set_header('content-type', 'text/html'); DispatchManager::redirect(PHPBoostErrors::unexisting_element()); } else { $feed->load_data($data); $feed->cache(); $this->tpl->put('SYNDICATION', $feed->export()); } } else { DispatchManager::redirect(PHPBoostErrors::module_not_installed()); } } return $this->build_response($this->tpl); }
public function execute(HTTPRequestCustom $request) { $id = $request->get_getint('id', 0); if (!empty($id) && AppContext::get_current_user()->check_level(User::MEMBER_LEVEL)) { try { $this->downloadfile = DownloadService::get_downloadfile('WHERE download.id = :id', array('id' => $id)); } catch (RowNotFoundException $e) { $error_controller = PHPBoostErrors::unexisting_page(); DispatchManager::redirect($error_controller); } } if ($this->downloadfile !== null && $this->downloadfile->is_visible()) { if (!PersistenceContext::get_querier()->row_exists(PREFIX . 'events', 'WHERE id_in_module=:id_in_module AND module=\'download\' AND current_status = 0', array('id_in_module' => $this->downloadfile->get_id()))) { $contribution = new Contribution(); $contribution->set_id_in_module($this->downloadfile->get_id()); $contribution->set_entitled(StringVars::replace_vars(LangLoader::get_message('contribution.deadlink', 'common'), array('link_name' => $this->downloadfile->get_name()))); $contribution->set_fixing_url(DownloadUrlBuilder::edit($this->downloadfile->get_id())->relative()); $contribution->set_description(LangLoader::get_message('contribution.deadlink_explain', 'common')); $contribution->set_poster_id(AppContext::get_current_user()->get_id()); $contribution->set_module('download'); $contribution->set_type('alert'); $contribution->set_auth(Authorizations::capture_and_shift_bit_auth(DownloadService::get_categories_manager()->get_heritated_authorizations($this->downloadfile->get_id_category(), Category::MODERATION_AUTHORIZATIONS, Authorizations::AUTH_CHILD_PRIORITY), Category::MODERATION_AUTHORIZATIONS, Contribution::CONTRIBUTION_AUTH_BIT)); ContributionService::save_contribution($contribution); } DispatchManager::redirect(new UserContributionSuccessController()); } else { $error_controller = PHPBoostErrors::unexisting_page(); DispatchManager::redirect($error_controller); } }
public function execute(HTTPRequestCustom $request) { $id = $request->get_getint('id', 0); if (!empty($id)) { try { $this->weblink = WebService::get_weblink('WHERE web.id = :id', array('id' => $id)); } catch (RowNotFoundException $e) { $error_controller = PHPBoostErrors::unexisting_page(); DispatchManager::redirect($error_controller); } } if ($this->weblink !== null && !DownloadAuthorizationsService::check_authorizations($this->weblink->get_id_category())->read()) { $error_controller = PHPBoostErrors::user_not_authorized(); DispatchManager::redirect($error_controller); } else { if ($this->weblink !== null && $this->weblink->is_visible()) { $this->weblink->set_number_views($this->weblink->get_number_views() + 1); WebService::update_number_views($this->weblink); WebCache::invalidate(); AppContext::get_response()->redirect($this->weblink->get_url()->absolute()); } else { $error_controller = PHPBoostErrors::unexisting_page(); DispatchManager::redirect($error_controller); } } }
private function check_authorizations() { if (!BugtrackerAuthorizationsService::check_authorizations()->read()) { $error_controller = PHPBoostErrors::user_not_authorized(); DispatchManager::redirect($error_controller); } }
public function execute(HTTPRequestCustom $request) { $id = $request->get_int('id', 0); $id_stream = $request->get_int('id_stream', 0); $db_querier = PersistenceContext::get_querier(); if ($this->subscriber_exist($id) || $id_stream !== 0 && $id !== 0) { if (!NewsletterAuthorizationsService::id_stream($id_stream)->moderation_subscribers()) { NewsletterAuthorizationsService::get_errors()->moderation_subscribers(); } $condition = "WHERE subscriber_id = :id AND stream_id = :id_stream"; $parameters = array('id' => $id, 'id_stream' => $id_stream); $db_querier->delete(NewsletterSetup::$newsletter_table_subscriptions, $condition, $parameters); $condition = "WHERE subscriber_id = :id"; $parameters = array('id' => $id); $is_last = PersistenceContext::get_querier()->count(NewsletterSetup::$newsletter_table_subscriptions, $condition, $parameters) == 0; if ($is_last) { $condition = "WHERE id = :id"; $parameters = array('id' => $id); $db_querier->delete(NewsletterSetup::$newsletter_table_subscribers, $condition, $parameters); } NewsletterStreamsCache::invalidate(); $controller = new UserErrorController(LangLoader::get_message('success', 'status-messages-common'), LangLoader::get_message('process.success', 'status-messages-common'), UserErrorController::SUCCESS); DispatchManager::redirect($controller); } else { $controller = new UserErrorController(LangLoader::get_message('error', 'status-messages-common'), LangLoader::get_message('error-subscriber-not-existed', 'common', 'newsletter')); DispatchManager::redirect($controller); } }
private function check_authorizations() { if (!NewsletterAuthorizationsService::check_authorizations()->subscribe()) { $error_controller = PHPBoostErrors::user_not_authorized(); DispatchManager::redirect($error_controller); } }
public function execute(HTTPRequestCustom $request) { $id = $request->get_getint('id'); $this->init(); $extended_field = new ExtendedField(); $extended_field->set_id($id); $exist_field = ExtendedFieldsDatabaseService::check_field_exist_by_id($extended_field); if ($exist_field) { $this->extended_field = ExtendedFieldsCache::load()->get_extended_field($id); $this->build_form($request); } else { $error_controller = PHPBoostErrors::unexisting_page(); DispatchManager::redirect($error_controller); } $this->tpl = new StringTemplate('# INCLUDE MSG # # INCLUDE FORM # <script> jQuery(document).ready(function() { ' . $this->get_events_select_type() . '}); </script>'); $this->tpl->add_lang($this->lang); $this->tpl->put_all(array('FIELD_TYPE' => $this->extended_field['field_type'])); if ($this->submit_button->has_been_submited() && $this->form->validate()) { $extended_field = $this->save($id); $error = ExtendedFieldsService::get_error(); if (!empty($error)) { $this->tpl->put('MSG', MessageHelper::display($error, MessageHelper::ERROR, 5)); } else { AppContext::get_response()->redirect($this->form->get_value('referrer') ? $this->form->get_value('referrer') : AdminExtendedFieldsUrlBuilder::fields_list(), StringVars::replace_vars($this->lang['message.success.edit'], array('name' => $extended_field->get_name()))); } } $this->tpl->put('FORM', $this->form->display()); return new AdminExtendedFieldsDisplayResponse($this->tpl, $this->lang['extended-field-edit']); }
public function execute(HTTPRequestCustom $request) { AppContext::get_session()->csrf_get_protect(); $config = BugtrackerConfig::load(); $parameter = $request->get_string('parameter', ''); if (in_array($parameter, array('type', 'category', 'severity', 'priority', 'version'))) { switch ($parameter) { case 'type': $config->set_default_type(0); break; case 'category': $config->set_default_category(0); break; case 'severity': $config->set_default_severity(0); break; case 'priority': $config->set_default_priority(0); break; case 'version': $config->set_default_version(0); break; } BugtrackerConfig::save(); AppContext::get_response()->redirect(BugtrackerUrlBuilder::configuration()); } else { $controller = new UserErrorController(LangLoader::get_message('error', 'status-messages-common'), LangLoader::get_message('error.e_unexist_parameter', 'common', 'bugtracker')); $controller->set_response_classname(UserErrorController::ADMIN_RESPONSE); DispatchManager::redirect($controller); } }
public function execute(HTTPRequestCustom $request) { $this->init(); if (!$this->user->check_level(User::MEMBER_LEVEL)) { $error_controller = PHPBoostErrors::user_not_authorized(); DispatchManager::redirect($error_controller); } $this->build_form(); return $this->build_response($this->tpl); }
private function check_authorizations() { if (!BugtrackerAuthorizationsService::check_authorizations()->moderation() && $this->current_user->get_id() != $this->bug->get_assigned_to_id()) { $error_controller = PHPBoostErrors::user_not_authorized(); DispatchManager::redirect($error_controller); } if (AppContext::get_current_user()->is_readonly()) { $controller = PHPBoostErrors::user_in_read_only(); DispatchManager::redirect($controller); } }
private function get_pagination($number_users_online) { $page = AppContext::get_request()->get_getint('page', 1); $pagination = new ModulePagination($page, $number_users_online, (int) $this->config->get_number_members_per_page()); $pagination->set_url(OnlineUrlBuilder::home('%d')); if ($pagination->current_page_is_empty() && $page > 1) { $error_controller = PHPBoostErrors::unexisting_page(); DispatchManager::redirect($error_controller); } return $pagination; }
private function check_authorizations(ShoutboxMessage $message) { if (!$message->is_authorized_to_delete()) { $error_controller = PHPBoostErrors::user_not_authorized(); DispatchManager::redirect($error_controller); } if (AppContext::get_current_user()->is_readonly()) { $controller = PHPBoostErrors::user_in_read_only(); DispatchManager::redirect($controller); } }
private function check_authorizations() { if (!$this->downloadfile->is_authorized_to_delete()) { $error_controller = PHPBoostErrors::user_not_authorized(); DispatchManager::redirect($error_controller); } if (AppContext::get_current_user()->is_readonly()) { $error_controller = PHPBoostErrors::user_in_read_only(); DispatchManager::redirect($error_controller); } }
private function get_pagination() { $nbr_streams = PersistenceContext::get_querier()->count(NewsletterSetup::$newsletter_table_streams); $page = AppContext::get_request()->get_getint('page', 1); $pagination = new ModulePagination($page, $nbr_streams, $this->nbr_streams_per_page); $pagination->set_url(NewsletterUrlBuilder::home('%d')); if ($pagination->current_page_is_empty() && $page > 1) { $error_controller = PHPBoostErrors::unexisting_page(); DispatchManager::redirect($error_controller); } return $pagination; }
private function get_article(HTTPRequestCustom $request) { $id = $request->get_getint('id', 0); if (!empty($id)) { try { return ArticlesService::get_article('WHERE articles.id=:id', array('id' => $id)); } catch (RowNotFoundException $e) { $error_controller = PHPBoostErrors::unexisting_page(); DispatchManager::redirect($error_controller); } } }
private function build_form($request) { $id = $request->get_int('id', 0); $archive_exist = PersistenceContext::get_querier()->count(NewsletterSetup::$newsletter_table_archives, "WHERE id = '" . $id . "'") > 0; if (!$archive_exist) { $controller = new UserErrorController(LangLoader::get_message('error', 'status-messages-common'), $this->lang['error-archive-not-existed']); DispatchManager::redirect($controller); } $id_stream = PersistenceContext::get_querier()->get_column_value(NewsletterSetup::$newsletter_table_archives, 'stream_id', "WHERE id = '" . $id . "'"); if (!NewsletterAuthorizationsService::id_stream($id_stream)->read_archives()) { NewsletterAuthorizationsService::get_errors()->read_archives(); } $this->contents = NewsletterService::display_newsletter($id); }
public function execute(HTTPRequestCustom $request) { $this->init(); $user_id = $request->get_getint('user_id', AppContext::get_current_user()->get_id()); try { $this->user_infos = PersistenceContext::get_querier()->select_single_row(PREFIX . 'member', array('*'), 'WHERE user_id=:user_id', array('user_id' => $user_id)); } catch (RowNotFoundException $e) { $error_controller = PHPBoostErrors::unexisting_element(); DispatchManager::redirect($error_controller); } $this->build_form($this->user_infos['user_id']); $this->tpl->put('FORM', $this->form->display()); return $this->build_response($this->tpl, $user_id); }
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 check_authorizations() { if (!$this->event->get_content()->is_registration_authorized()) { $error_controller = PHPBoostErrors::user_not_authorized(); DispatchManager::redirect($error_controller); } if (time() > $this->event->get_start_date()->get_timestamp()) { $error_controller = new UserErrorController(LangLoader::get_message('error', 'status-messages-common'), LangLoader::get_message('calendar.notice.unsuscribe.event_date_expired', 'common', 'calendar')); DispatchManager::redirect($error_controller); } if (AppContext::get_current_user()->is_readonly()) { $error_controller = PHPBoostErrors::user_in_read_only(); DispatchManager::redirect($error_controller); } }
private function check_activation($registration_pass) { $user_id = PHPBoostAuthenticationMethod::registration_pass_exists($registration_pass); if ($user_id) { PHPBoostAuthenticationMethod::update_auth_infos($user_id, null, true, null, ''); $session = AppContext::get_session(); if ($session != null) { Session::delete($session); } AppContext::set_session(Session::create($user_id, true)); AppContext::get_response()->redirect(Environment::get_home_page()); } else { $controller = new UserErrorController($this->lang['profile'], LangLoader::get_message('process.error', 'status-messages-common'), UserErrorController::WARNING); DispatchManager::redirect($controller); } }
public function execute(HTTPRequestCustom $request) { $this->init(); $user_id = $request->get_getint('user_id', 0); if (empty($user_id)) { AppContext::get_response()->redirect(UserUrlBuilder::home()); } try { $this->user = UserService::get_user($user_id); } catch (RowNotFoundException $e) { $error_controller = PHPBoostErrors::unexisting_element(); DispatchManager::redirect($error_controller); } $this->build_form(); return $this->build_response($this->tpl); }
public function execute(HTTPRequestCustom $request) { $user_id = $request->get_int('id', null); $user = UserService::get_user($user_id); if (!$user->is_admin() || $user->is_admin() && UserService::count_admin_members() > 1) { try { UserService::delete_by_id($user_id); } catch (RowNotFoundException $ex) { $error_controller = PHPBoostErrors::unexisting_element(); DispatchManager::redirect($error_controller); } AppContext::get_response()->redirect($request->get_url_referrer() ? $request->get_url_referrer() : AdminMembersUrlBuilder::management(), StringVars::replace_vars(LangLoader::get_message('user.message.success.delete', 'user-common'), array('name' => $user->get_display_name()))); } else { $error_controller = PHPBoostErrors::unauthorized_action(); DispatchManager::redirect($error_controller); } }
public function execute(HTTPRequestCustom $request) { $this->init(); $this->id = $request->get_value('id', null); if ($this->exists()) { $this->build_form(); if ($this->submit_button->has_been_submited() && $this->form->validate()) { $this->uninstall($this->form->get_value('drop_files')->get_raw_value()); AppContext::get_response()->redirect(AdminLangsUrlBuilder::list_installed_langs()); } $this->tpl->put('FORM', $this->form->display()); return new AdminLangsDisplayResponse($this->tpl, $this->lang['langs.delete_lang']); } else { $error_controller = PHPBoostErrors::unexisting_page(); DispatchManager::redirect($error_controller); } }
public function execute(HTTPRequestCustom $request) { $this->init(); $this->module_id = $request->get_string('id_module', null); if ($this->module_installed()) { $this->build_form(); if ($this->submit_button->has_been_submited() && $this->form->validate()) { $drop_files = $this->form->get_value('drop_files')->get_raw_value(); $this->delete_module($drop_files); } $this->tpl->put('FORM', $this->form->display()); return new AdminModulesDisplayResponse($this->tpl, $this->lang['modules.delete_module']); } else { $error_controller = PHPBoostErrors::module_not_installed(); DispatchManager::redirect($error_controller); } }
private function get_category() { if ($this->category === null) { $id = AppContext::get_request()->get_getint('id_category', 0); if (!empty($id)) { try { $this->category = CalendarService::get_categories_manager()->get_categories_cache()->get_category($id); } catch (CategoryNotFoundException $e) { $error_controller = PHPBoostErrors::unexisting_page(); DispatchManager::redirect($error_controller); } } else { $this->category = CalendarService::get_categories_manager()->get_categories_cache()->get_category(Category::ROOT_CATEGORY); } } return $this->category; }
public function execute(HTTPRequestCustom $request) { $this->init($request); $this->build_form(); if ($this->request->get_bool('disconnect', false)) { AppContext::get_session()->csrf_get_protect(); $session = AppContext::get_session(); Session::delete($session); AppContext::get_response()->redirect($this->get_redirect_url()); } if (AppContext::get_current_user()->check_level(User::MEMBER_LEVEL)) { if (!$this->maintain_config->is_under_maintenance() || $this->maintain_config->is_under_maintenance() && $this->maintain_config->is_authorized_in_maintenance()) { if ($this->request->get_value('redirect', '') || $this->redirect !== null) { AppContext::get_response()->redirect($this->get_redirect_url()); } else { AppContext::get_response()->redirect(Environment::get_home_page()); } } } $authenticate_type = $this->request->get_value('authenticate', false); if ($authenticate_type) { if ($authenticate_type == PHPBoostAuthenticationMethod::AUTHENTICATION_METHOD) { $login = $this->request->get_value('login', ''); $password = $this->request->get_value('password', ''); $autoconnect = $this->request->get_bool('autoconnect', false); $this->phpboost_authenticate($login, $password, $autoconnect); } else { try { $authentication = AuthenticationService::get_authentication_method($authenticate_type); } catch (Exception $e) { $error_controller = PHPBoostErrors::unexisting_page(); DispatchManager::redirect($error_controller); } $this->authenticate($authentication, true); } } if ($this->submit_button->has_been_submited() && $this->form->validate()) { $login = $this->form->get_value('login'); $password = $this->form->get_value('password'); $autoconnect = $this->form->get_value('autoconnect'); $this->phpboost_authenticate($login, $password, $autoconnect); } $this->init_vars_template(); return $this->build_view(); }
public function execute(HTTPRequestCustom $request) { $id = $request->get_getint('id', 0); if (!empty($id)) { try { $this->downloadfile = DownloadService::get_downloadfile('WHERE download.id = :id', array('id' => $id)); } catch (RowNotFoundException $e) { $error_controller = PHPBoostErrors::unexisting_page(); DispatchManager::redirect($error_controller); } } if ($this->downloadfile !== null && !DownloadAuthorizationsService::check_authorizations($this->downloadfile->get_id_category())->read()) { $error_controller = PHPBoostErrors::user_not_authorized(); DispatchManager::redirect($error_controller); } else { if ($this->downloadfile !== null && $this->downloadfile->is_visible()) { $this->downloadfile->set_number_downloads($this->downloadfile->get_number_downloads() + 1); DownloadService::update_number_downloads($this->downloadfile); DownloadCache::invalidate(); $status = 200; $file_headers = get_headers($this->downloadfile->get_url()->absolute(), true); if (is_array($file_headers)) { if (preg_match('/^HTTP\\/[12]\\.[01] (\\d\\d\\d)/', $file_headers[0], $matches)) { $status = (int) $matches[1]; } } if ($status == 200) { header('Content-Disposition: attachment; filename="' . urldecode(basename($this->downloadfile->get_url()->absolute())) . '"'); header('Content-Description: File Transfer'); header('Content-Transfer-Encoding: binary'); header('Accept-Ranges: bytes'); header('Content-Type: application/force-download'); set_time_limit(0); readfile($this->downloadfile->get_url()->absolute()); } else { $error_controller = new UserErrorController(LangLoader::get_message('error', 'status-messages-common'), LangLoader::get_message('download.message.error.file_not_found', 'common', 'download'), UserErrorController::WARNING); DispatchManager::redirect($error_controller); } } else { $error_controller = PHPBoostErrors::unexisting_page(); DispatchManager::redirect($error_controller); } } }
public function execute(HTTPRequestCustom $request) { $this->init(); $user_id = $request->get_getint('user_id', AppContext::get_current_user()->get_id()); try { $this->user = UserService::get_user($user_id); } catch (RowNotFoundException $e) { $error_controller = PHPBoostErrors::unexisting_element(); DispatchManager::redirect($error_controller); } try { $this->internal_auth_infos = PHPBoostAuthenticationMethod::get_auth_infos($user_id); } catch (RowNotFoundException $e) { } $this->user_auth_types = AuthenticationService::get_user_types_authentication($user_id); if (!$this->check_authorizations($user_id)) { $error_controller = PHPBoostErrors::user_not_authorized(); DispatchManager::redirect($error_controller); } $associate_type = $request->get_getvalue('associate', false); if ($associate_type) { if (!in_array($associate_type, $this->user_auth_types)) { $authentication_method = AuthenticationService::get_authentication_method($associate_type); AuthenticationService::associate($authentication_method, $user_id); AppContext::get_response()->redirect(UserUrlBuilder::edit_profile($user_id)); } } $dissociate_type = $request->get_getvalue('dissociate', false); if ($dissociate_type) { if (in_array($dissociate_type, $this->user_auth_types) && count($this->user_auth_types) > 1) { $authentication_method = AuthenticationService::get_authentication_method($dissociate_type); AuthenticationService::dissociate($authentication_method, $user_id); AppContext::get_response()->redirect(UserUrlBuilder::edit_profile($user_id)); } } $this->build_form(); if ($this->submit_button->has_been_submited() && $this->form->validate()) { $this->save($request); } $this->tpl->put('FORM', $this->form->display()); return $this->build_response(); }
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); }
private function build_form($request) { $field = $request->get_value('field', 'pseudo'); $sort = $request->get_value('sort', 'top'); $current_page = $request->get_int('page', 1); if (!NewsletterAuthorizationsService::id_stream($this->stream->get_id())->read_subscribers()) { NewsletterAuthorizationsService::get_errors()->read_subscribers(); } $mode = $sort == 'top' ? 'ASC' : 'DESC'; switch ($field) { case 'pseudo': $field_bdd = 'display_name'; break; default: $field_bdd = 'display_name'; } $subscribers_list = NewsletterService::list_subscribers_by_stream($this->stream->get_id()); $nbr_subscribers = count($subscribers_list); $pagination = new ModulePagination($current_page, $nbr_subscribers, $this->nbr_subscribers_per_page); $pagination->set_url(NewsletterUrlBuilder::subscribers($this->stream->get_id(), $this->stream->get_rewrited_name(), $field, $sort, '%d')); if ($pagination->current_page_is_empty() && $current_page > 1) { $error_controller = PHPBoostErrors::unexisting_page(); DispatchManager::redirect($error_controller); } $this->view->put_all(array('C_SUBSCRIBERS' => (int) $nbr_subscribers, 'C_SUBSCRIPTION' => NewsletterUrlBuilder::subscribe()->rel(), 'C_PAGINATION' => $pagination->has_several_pages(), 'SORT_PSEUDO_TOP' => NewsletterUrlBuilder::subscribers($this->stream->get_id(), $this->stream->get_rewrited_name(), 'pseudo', 'top', $current_page)->rel(), 'SORT_PSEUDO_BOTTOM' => NewsletterUrlBuilder::subscribers($this->stream->get_id(), $this->stream->get_rewrited_name(), 'pseudo', 'bottom', $current_page)->rel(), 'PAGINATION' => $pagination->display())); if (!empty($nbr_subscribers)) { $result = PersistenceContext::get_querier()->select("SELECT subscribers.id, subscribers.user_id, subscribers.mail, member.display_name, member.email\n\t\t\tFROM " . NewsletterSetup::$newsletter_table_subscribers . " subscribers\n\t\t\tLEFT JOIN " . DB_TABLE_MEMBER . " member ON subscribers.user_id = member.user_id\n\t\t\tWHERE subscribers.id IN :ids_list\n\t\t\tORDER BY " . $field_bdd . " " . $mode . "\n\t\t\tLIMIT :number_items_per_page OFFSET :display_from", array('ids_list' => array_keys($subscribers_list), 'number_items_per_page' => $pagination->get_number_items_per_page(), 'display_from' => $pagination->get_display_from())); while ($row = $result->fetch()) { $pseudo = $row['user_id'] > 0 ? '<a href="' . UserUrlBuilder::profile($row['user_id'])->rel() . '">' . $row['display_name'] . '</a>' : LangLoader::get_message('visitor', 'user-common'); $mail = $row['user_id'] > 0 ? $row['email'] : $row['mail']; if (!empty($mail)) { $this->view->assign_block_vars('subscribers_list', array('C_AUTH_MODO' => NewsletterAuthorizationsService::id_stream($this->stream->get_id())->moderation_subscribers(), 'C_EDIT' => $row['user_id'] == User::VISITOR_LEVEL, 'U_EDIT' => $row['user_id'] == User::VISITOR_LEVEL ? NewsletterUrlBuilder::edit_subscriber($row['id'])->rel() : '', 'U_DELETE' => NewsletterUrlBuilder::delete_subscriber($row['id'], $this->stream->get_id())->rel(), 'PSEUDO' => $pseudo, 'MAIL' => $mail)); } } $result->dispose(); } }