function find_by_criteria($id_in_module = null, $type = null, $identifier = null) { global $Sql; $criterias = array(); if ($id_in_module != null) { $criterias[] = "id_in_module = '" . intval($id_in_module) . "'"; } if ($type != null) { $criterias[] = "type = '" . strprotect($type) . "'"; } if ($identifier != null) { $criterias[] = "identifier = '" . strprotect($identifier) . "'"; } if (!empty($criterias)) { $array_result = array(); $where_clause = "contribution_type = '" . ADMINISTRATOR_ALERT_TYPE . "' AND " . implode($criterias, " AND "); $result = $Sql->query_while("SELECT id, entitled, fixing_url, current_status, creation_date, identifier, id_in_module, type, priority, description\n\t\t\tFROM " . DB_TABLE_EVENTS . "\n\t\t\tWHERE " . $where_clause, __LINE__, __FILE__); while ($row = $Sql->fetch_assoc($result)) { $alert = new AdministratorAlert(); $alert->build($row['id'], $row['entitled'], $row['description'], $row['fixing_url'], $row['current_status'], new Date(DATE_TIMESTAMP, TIMEZONE_SYSTEM, $row['creation_date']), $row['id_in_module'], $row['identifier'], $row['type'], $row['priority']); $array_result[] = $alert; } return $array_result; } else { return AdministratorAlertService::get_all_alerts(); } }
public static function send_email_confirmation($user_id, $email, $pseudo, $login, $password, $registration_pass) { $lang = LangLoader::get('user-common'); $user_accounts_config = UserAccountsConfig::load(); $general_config = GeneralConfig::load(); $site_name = $general_config->get_site_name(); $subject = StringVars::replace_vars($lang['registration.subject-mail'], array('site_name' => $site_name)); switch ($user_accounts_config->get_member_accounts_validation_method()) { case UserAccountsConfig::AUTOMATIC_USER_ACCOUNTS_VALIDATION: $parameters = array('pseudo' => $pseudo, 'site_name' => $site_name, 'host' => $general_config->get_site_url(), 'login' => $login, 'password' => $password, 'accounts_validation_explain' => $lang['registration.email.automatic-validation'], 'signature' => MailServiceConfig::load()->get_mail_signature()); $content = StringVars::replace_vars($lang['registration.content-mail'], $parameters); AppContext::get_mail_service()->send_from_properties($email, $subject, $content); break; case UserAccountsConfig::MAIL_USER_ACCOUNTS_VALIDATION: $parameters = array('pseudo' => $pseudo, 'site_name' => $site_name, 'host' => $general_config->get_site_url(), 'login' => $login, 'password' => $password, 'accounts_validation_explain' => StringVars::replace_vars($lang['registration.email.mail-validation'], array('validation_link' => UserUrlBuilder::confirm_registration($registration_pass)->absolute())), 'signature' => MailServiceConfig::load()->get_mail_signature()); $content = StringVars::replace_vars($lang['registration.content-mail'], $parameters); AppContext::get_mail_service()->send_from_properties($email, $subject, $content); break; case UserAccountsConfig::ADMINISTRATOR_USER_ACCOUNTS_VALIDATION: $alert = new AdministratorAlert(); $alert->set_entitled($lang['registration.pending-approval']); $alert->set_fixing_url(UserUrlBuilder::edit_profile($user_id)->relative()); $alert->set_priority(AdministratorAlert::ADMIN_ALERT_MEDIUM_PRIORITY); $alert->set_id_in_module($user_id); $alert->set_type('member_account_to_approbate'); AdministratorAlertService::save_alert($alert); $parameters = array('pseudo' => $pseudo, 'site_name' => $site_name, 'host' => $general_config->get_site_url(), 'login' => $login, 'password' => $password, 'accounts_validation_explain' => $lang['registration.email.administrator-validation'], 'signature' => MailServiceConfig::load()->get_mail_signature()); $content = StringVars::replace_vars($lang['registration.content-mail'], $parameters); AppContext::get_mail_service()->send_from_properties($email, $subject, $content); break; } }
public function display($tpl = false) { global $LANG; if (!Url::is_current_url('/user/login')) { $tpl = new FileTemplate('connect/connect_mini.tpl'); $user = AppContext::get_current_user(); MenuService::assign_positions_conditions($tpl, $this->get_block()); if ($user->check_level(User::MEMBER_LEVEL)) { $unread_contributions = UnreadContributionsCache::load(); //Vaut 0 si l'utilisateur n'a aucune contribution. Est > 0 si on connait le nombre de contributions //Vaut -1 si l'utilisateur a au moins une contribution (mais on ne sait pas combien à cause des recoupements entre les groupes) $contribution_number = 0; if ($user->check_level(User::ADMIN_LEVEL)) { $contribution_number = $unread_contributions->get_admin_unread_contributions_number(); } elseif ($user->check_level(User::MODERATOR_LEVEL)) { if ($unread_contributions->have_moderators_unread_contributions()) { $contribution_number = -1; } } else { if ($unread_contributions->have_members_unread_contributions()) { $contribution_number = -1; } else { if ($unread_contributions->has_user_unread_contributions($user->get_id())) { $contribution_number = -1; } else { foreach ($user->get_groups() as $group_id) { if ($unread_contributions->has_group_unread_contributions($group_id)) { $contribution_number = -1; break; } } } } } $user_accounts_config = UserAccountsConfig::load(); $user_avatar = AppContext::get_session()->get_cached_data('user_avatar'); if (empty($user_avatar)) { $user_avatar = '/templates/' . AppContext::get_current_user()->get_theme() . '/images/' . $user_accounts_config->get_default_avatar_name(); } $total_alert = $user->get_unread_pm() + $contribution_number + ($user->check_level(User::ADMIN_LEVEL) ? AdministratorAlertService::get_number_unread_alerts() : 0); $user_group_color = User::get_group_color($user->get_groups(), $user->get_level(), true); $tpl->put_all(array('C_ADMIN_AUTH' => $user->check_level(User::ADMIN_LEVEL), 'C_MODERATOR_AUTH' => $user->check_level(User::MODERATOR_LEVEL), 'C_UNREAD_CONTRIBUTION' => $contribution_number != 0, 'C_KNOWN_NUMBER_OF_UNREAD_CONTRIBUTION' => $contribution_number > 0, 'C_UNREAD_ALERT' => (bool) AdministratorAlertService::get_number_unread_alerts(), 'C_HAS_PM' => $user->get_unread_pm() > 0, 'C_USER_GROUP_COLOR' => !empty($user_group_color), 'NUMBER_UNREAD_CONTRIBUTIONS' => $contribution_number, 'NUMBER_UNREAD_ALERTS' => AdministratorAlertService::get_number_unread_alerts(), 'NUMBER_PM' => $user->get_unread_pm(), 'NUMBER_TOTAL_ALERT' => $total_alert, 'PSEUDO' => $user->get_display_name(), 'USER_LEVEL_CLASS' => UserService::get_level_class($user->get_level()), 'USER_GROUP_COLOR' => $user_group_color, 'U_USER_PROFILE' => UserUrlBuilder::profile($user->get_id())->rel(), 'U_USER_PM' => UserUrlBuilder::personnal_message($user->get_id())->rel(), 'U_AVATAR_IMG' => Url::to_rel($user_avatar), 'L_NBR_PM' => $user->get_unread_pm() > 0 ? $user->get_unread_pm() . ' ' . ($user->get_unread_pm() > 1 ? $LANG['message_s'] : $LANG['message']) : $LANG['private_messaging'], 'L_PROFIL' => LangLoader::get_message('profile', 'user-common'), 'L_ADMIN_PANEL' => $LANG['admin_panel'], 'L_MODO_PANEL' => $LANG['modo_panel'], 'L_PRIVATE_PROFIL' => $LANG['my_private_profile'], 'L_DISCONNECT' => LangLoader::get_message('disconnect', 'user-common'), 'L_CONTRIBUTION_PANEL' => $LANG['contribution_panel'])); } else { $authentication_config = AuthenticationConfig::load(); $tpl->put_all(array('C_USER_NOTCONNECTED' => true, 'C_USER_REGISTER' => UserAccountsConfig::load()->is_registration_enabled(), 'C_FB_AUTH_ENABLED' => $authentication_config->is_fb_auth_available(), 'C_GOOGLE_AUTH_ENABLED' => $authentication_config->is_google_auth_available(), 'L_REQUIRE_PSEUDO' => $LANG['require_pseudo'], 'L_REQUIRE_PASSWORD' => $LANG['require_password'], 'L_CONNECT' => LangLoader::get_message('connection', 'user-common'), 'L_PSEUDO' => LangLoader::get_message('login', 'user-common'), 'L_PASSWORD' => LangLoader::get_message('password', 'user-common'), 'L_AUTOCONNECT' => LangLoader::get_message('autoconnect', 'user-common'), 'L_FORGOT_PASS' => LangLoader::get_message('forget-password', 'user-common'), 'L_REGISTER' => LangLoader::get_message('register', 'user-common'), 'U_CONNECT' => UserUrlBuilder::connect()->rel(), 'SITE_REWRITED_SCRIPT' => substr(REWRITED_SCRIPT, strlen(GeneralConfig::load()->get_site_path())))); } return $tpl->render(); } return ''; }
function connect_mini($position, $block) { global $User, $LANG, $CONFIG_USER, $CONTRIBUTION_PANEL_UNREAD, $ADMINISTRATOR_ALERTS, $Session; $tpl = new Template('connect/connect_mini.tpl'); import('core/menu_service'); MenuService::assign_positions_conditions($tpl, $block); if ($User->check_level(MEMBER_LEVEL)) { $contribution_number = 0; if ($User->check_level(ADMIN_LEVEL)) { $contribution_number = $CONTRIBUTION_PANEL_UNREAD['r2']; } elseif ($User->check_level(MODERATOR_LEVEL)) { $contribution_number = $CONTRIBUTION_PANEL_UNREAD['r1']; } else { if ($CONTRIBUTION_PANEL_UNREAD['r0'] > 0) { $contribution_number = -1; } if ($contribution_number == 0) { if (!empty($CONTRIBUTION_PANEL_UNREAD['m' . $User->get_attribute('user_id')]) && $CONTRIBUTION_PANEL_UNREAD['m' . $User->get_attribute('user_id')] == 1) { $contribution_number = -1; } } if ($contribution_number == 0) { foreach ($User->get_groups() as $id_group) { if (!empty($CONTRIBUTION_PANEL_UNREAD['g' . $id_group]) && $CONTRIBUTION_PANEL_UNREAD['g' . $id_group] == 1) { $contribution_number = -1; break; } } } } import('events/administrator_alert_service'); $tpl->assign_vars(array('C_ADMIN_AUTH' => $User->check_level(ADMIN_LEVEL), 'C_MODERATOR_AUTH' => $User->check_level(MODERATOR_LEVEL), 'C_UNREAD_CONTRIBUTION' => $contribution_number != 0, 'C_KNOWN_NUMBER_OF_UNREAD_CONTRIBUTION' => $contribution_number > 0, 'C_UNREAD_ALERT' => (bool) AdministratorAlertService::get_number_unread_alerts(), 'NUM_UNREAD_CONTRIBUTIONS' => $contribution_number, 'NUMBER_UNREAD_ALERTS' => AdministratorAlertService::get_number_unread_alerts(), 'IMG_PM' => $User->get_attribute('user_pm') > 0 ? 'new_pm.gif' : 'pm_mini.png', 'U_USER_PM' => TPL_PATH_TO_ROOT . '/member/pm' . url('.php?pm=' . $User->get_attribute('user_id'), '-' . $User->get_attribute('user_id') . '.php'), 'U_USER_ID' => url('.php?id=' . $User->get_attribute('user_id') . '&view=1', '-' . $User->get_attribute('user_id') . '.php?view=1'), 'U_DISCONNECT' => HOST . DIR . '/member/member.php?disconnect=true&token=' . $Session->get_token(), 'L_NBR_PM' => $User->get_attribute('user_pm') > 0 ? $User->get_attribute('user_pm') . ' ' . ($User->get_attribute('user_pm') > 1 ? $LANG['message_s'] : $LANG['message']) : $LANG['private_messaging'], 'L_PROFIL' => $LANG['profile'], 'L_ADMIN_PANEL' => $LANG['admin_panel'], 'L_MODO_PANEL' => $LANG['modo_panel'], 'L_PRIVATE_PROFIL' => $LANG['my_private_profile'], 'L_DISCONNECT' => $LANG['disconnect'], 'L_CONTRIBUTION_PANEL' => $LANG['contribution_panel'])); } else { $tpl->assign_vars(array('C_USER_REGISTER' => (bool) $CONFIG_USER['activ_register'], 'L_REQUIRE_PSEUDO' => $LANG['require_pseudo'], 'L_REQUIRE_PASSWORD' => $LANG['require_password'], 'L_CONNECT' => $LANG['connect'], 'L_PSEUDO' => $LANG['pseudo'], 'L_PASSWORD' => $LANG['password'], 'L_AUTOCONNECT' => $LANG['autoconnect'], 'L_FORGOT_PASS' => $LANG['forget_pass'], 'L_REGISTER' => $LANG['register'], 'U_CONNECT' => QUERY_STRING != '' ? '?' . str_replace('&', '&', QUERY_STRING) . '&' : '', 'U_REGISTER' => TPL_PATH_TO_ROOT . '/member/register.php' . SID)); } return $tpl->parse(TEMPLATE_STRING_MODE); }
* GNU General Public License for more details. * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ###################################################*/ define('PATH_TO_ROOT', '../..'); require_once PATH_TO_ROOT . '/admin/admin_begin.php'; define('TITLE', $LANG['administration']); require_once PATH_TO_ROOT . '/admin/admin_header.php'; $identifier = retrieve(GET, 'identifier', ''); $tpl = new FileTemplate('admin/updates/detail.tpl'); $tpl->put_all(array('L_WEBSITE_UPDATES' => $LANG['website_updates'], 'L_KERNEL' => $LANG['kernel'], 'L_MODULES' => $LANG['modules'], 'L_THEMES' => $LANG['themes'])); $app = null; if (($update = AdministratorAlertService::find_by_identifier($identifier, 'updates')) !== null) { $app = unserialize($update->get_properties()); } if ($app !== null && $app->check_compatibility()) { $authors = $app->get_authors(); $new_features = $app->get_new_features(); $improvments = $app->get_improvments(); $bug_corrections = $app->get_bug_corrections(); $security_improvments = $app->get_security_improvments(); $nb_authors = count($authors); $has_new_feature = count($new_features) > 0 ? true : false; $has_improvments = count($improvments) > 0 ? true : false; $has_bug_corrections = count($bug_corrections) > 0 ? true : false; $has_security_improvments = count($security_improvments) > 0 ? true : false; switch ($update->get_priority()) { case AdministratorAlert::ADMIN_ALERT_VERY_HIGH_PRIORITY:
$order = $order == 'desc' ? 'desc' : 'asc'; $alerts_list = AdministratorAlertService::get_all_alerts($criteria, $order, ($pagination->_get_var_page('p') - 1) * NUM_ALERTS_PER_PAGE, NUM_ALERTS_PER_PAGE); foreach ($alerts_list as $alert) { $img_type = ''; switch ($alert->get_priority()) { case ADMIN_ALERT_VERY_LOW_PRIORITY: $color = 'FFFFFF'; break; case ADMIN_ALERT_LOW_PRIORITY: $color = 'ECDBB7'; break; case ADMIN_ALERT_MEDIUM_PRIORITY: $color = 'F5D5C6'; break; case ADMIN_ALERT_HIGH_PRIORITY: $img_type = 'important.png'; $color = 'FFD5D1'; break; case ADMIN_ALERT_VERY_HIGH_PRIORITY: $img_type = 'errors_mini.png'; $color = 'F3A29B'; break; default: $color = 'FFFFFF'; } $creation_date = $alert->get_creation_date(); $template->assign_block_vars('alerts', array('C_PROCESSED' => $alert->get_status() == ADMIN_ALERT_STATUS_PROCESSED, 'FIXING_URL' => url(PATH_TO_ROOT . '/' . $alert->get_fixing_url()), 'NAME' => $alert->get_entitled(), 'PRIORITY' => $alert->get_priority_name(), 'STYLE' => 'background:#' . $color . ';', 'IMG' => !empty($img_type) ? '<img src="../templates/' . get_utheme() . '/images/admin/' . $img_type . '" alt="" class="valign_middle" />' : '', 'DATE' => $creation_date->format(DATE_FORMAT), 'ID' => $alert->get_id(), 'STATUS' => $alert->get_status())); } $template->assign_vars(array('C_EXISTING_ALERTS' => (bool) count($alerts_list), 'C_PAGINATION' => AdministratorAlertService::get_number_alerts() > NUM_ALERTS_PER_PAGE, 'PAGINATION' => $pagination->display('admin_alerts.php?p=%d&criteria=' . $criteria . '&order=' . $order, AdministratorAlertService::get_number_alerts(), 'p', NUM_ALERTS_PER_PAGE, 3), 'L_ADMIN_ALERTS' => $LANG['administrator_alerts'], 'L_TYPE' => $LANG['type'], 'L_DATE' => $LANG['date'], 'L_PRIORITY' => $LANG['priority'], 'L_ADMINISTRATOR_ALERTS_LIST' => $LANG['administrator_alerts_list'], 'L_ACTIONS' => $LANG['administrator_alerts_action'], 'L_NO_ALERT' => $LANG['no_administrator_alert'], 'L_CONFIRM_DELETE_ALERT' => $LANG['confirm_delete_administrator_alert'], 'L_DELETE' => $LANG['delete'], 'L_FIX' => $LANG['admin_alert_fix'], 'L_UNFIX' => $LANG['admin_alert_unfix'], 'C_ORDER_ENTITLED_ASC' => $criteria == 'entitled' && $order == 'asc', 'U_ORDER_ENTITLED_ASC' => url('admin_alerts.php?p=' . $pagination->_get_var_page('p') . '&criteria=entitled&order=asc'), 'C_ORDER_ENTITLED_DESC' => $criteria == 'entitled' && $order == 'desc', 'U_ORDER_ENTITLED_DESC' => url('admin_alerts.php?p=' . $pagination->_get_var_page('p') . '&criteria=entitled&order=desc'), 'C_ORDER_CREATION_DATE_ASC' => $criteria == 'creation_date' && $order == 'asc', 'U_ORDER_CREATION_DATE_ASC' => url('admin_alerts.php?p=' . $pagination->_get_var_page('p') . '&criteria=creation_date&order=asc'), 'C_ORDER_CREATION_DATE_DESC' => $criteria == 'creation_date' && $order == 'desc', 'U_ORDER_CREATION_DATE_DESC' => url('admin_alerts.php?p=' . $pagination->_get_var_page('p') . '&criteria=creation_date&order=desc'), 'C_ORDER_PRIORITY_ASC' => $criteria == 'priority' && $order == 'asc', 'U_ORDER_PRIORITY_ASC' => url('admin_alerts.php?p=' . $pagination->_get_var_page('p') . '&criteria=priority&order=asc'), 'C_ORDER_PRIORITY_DESC' => $criteria == 'priority' && $order == 'desc', 'U_ORDER_PRIORITY_DESC' => url('admin_alerts.php?p=' . $pagination->_get_var_page('p') . '&criteria=priority&order=desc'), 'C_ORDER_STATUS_ASC' => $criteria == 'current_status' && $order == 'asc', 'U_ORDER_STATUS_ASC' => url('admin_alerts.php?p=' . $pagination->_get_var_page('p') . '&criteria=current_status&order=asc'), 'C_ORDER_STATUS_DESC' => $criteria == 'current_status' && $order == 'desc', 'U_ORDER_STATUS_DESC' => url('admin_alerts.php?p=' . $pagination->_get_var_page('p') . '&criteria=current_status&order=desc'))); $template->parse(); require_once '../admin/admin_footer.php';
//Gestion des critères de tri $criteria = retrieve(GET, 'criteria', 'current_status'); $order = retrieve(GET, 'order', 'asc'); if (!in_array($criteria, array('entitled', 'current_status', 'creation_date', 'priority'))) { $criteria = 'current_status'; } $order = $order == 'desc' ? 'desc' : 'asc'; $page = AppContext::get_request()->get_getint('p', 1); $pagination = new ModulePagination($page, AdministratorAlertService::get_number_alerts(), NUM_ALERTS_PER_PAGE); $pagination->set_url(new Url('/admin/admin_alerts.php?p=%d&criteria=' . $criteria . '&order=' . $order)); if ($pagination->current_page_is_empty() && $page > 1) { $error_controller = PHPBoostErrors::unexisting_page(); DispatchManager::redirect($error_controller); } //On va chercher la liste des alertes $alerts_list = AdministratorAlertService::get_all_alerts($criteria, $order, ($page - 1) * NUM_ALERTS_PER_PAGE, NUM_ALERTS_PER_PAGE); foreach ($alerts_list as $alert) { $img_class = ''; switch ($alert->get_priority()) { case AdministratorAlert::ADMIN_ALERT_VERY_LOW_PRIORITY: $color = 'FFFFFF'; break; case AdministratorAlert::ADMIN_ALERT_LOW_PRIORITY: $color = 'ECDBB7'; break; case AdministratorAlert::ADMIN_ALERT_MEDIUM_PRIORITY: $color = 'F5D5C6'; break; case AdministratorAlert::ADMIN_ALERT_HIGH_PRIORITY: $img_class = 'fa fa-warning'; $color = 'FFD5D1';
$i = 0; $array_class = array('member', 'modo', 'admin'); $result = $Sql->query_while("SELECT c.idprov, c.idcom, c.timestamp, c.script, c.path, m.user_id, m.login as mlogin, m.level, m.user_groups, c.contents\nFROM " . DB_TABLE_COM . " c\nLEFT JOIN " . DB_TABLE_MEMBER . " m ON m.user_id = c.user_id\nGROUP BY c.idcom\nORDER BY c.timestamp DESC\n" . $Sql->limit(0, 8), __LINE__, __FILE__); while ($row = $Sql->fetch_assoc($result)) { $is_guest = empty($row['user_id']); $group_color = User::get_group_color($row['user_groups'], $row['level']); if (!$is_guest) { $com_pseudo = '<a href="../member/member' . url('.php?id=' . $row['user_id'], '-' . $row['user_id'] . '.php') . '" title="' . $row['mlogin'] . '" class="' . $array_class[$row['level']] . '"' . (!empty($group_color) ? ' style="color:' . $group_color . '"' : '') . '>' . wordwrap_html($row['mlogin'], 13) . '</a>'; } else { $com_pseudo = '<span style="font-style:italic;">' . (!empty($row['login']) ? wordwrap_html($row['login'], 13) : $LANG['guest']) . '</span>'; } $Template->assign_block_vars('com_list', array('ID' => $row['idcom'], 'CONTENTS' => ucfirst(second_parse($row['contents'])), 'COM_SCRIPT' => $row['script'], 'DATE' => $LANG['on'] . ': ' . gmdate_format('date_format', $row['timestamp']), 'USER_PSEUDO' => $com_pseudo, 'U_PROV' => $row['path'], 'U_USER_PM' => '<a href="../member/pm' . url('.php?pm=' . $row['user_id'], '-' . $row['user_id'] . '.php') . '"><img src="../templates/' . get_utheme() . '/images/' . get_ulang() . '/pm.png" alt="" /></a>', 'U_EDIT_COM' => preg_replace('`i=[0-9]+`', 'i=' . $row['idcom'], $row['path']) . '&editcom=1', 'U_DEL_COM' => preg_replace('`i=[0-9]+`', 'i=' . $row['idcom'], $row['path']) . '&delcom=1')); $i++; } $Sql->query_close($result); $Template->assign_vars(array('WRITING_PAD_CONTENT' => !empty($_writing_pad_content) ? $_writing_pad_content : $LANG['writing_pad_explain'], 'C_NO_COM' => $i == 0 ? $LANG['no_comment'] : '', 'C_UNREAD_ALERTS' => (bool) AdministratorAlertService::get_number_unread_alerts(), 'L_INDEX_ADMIN' => $LANG['administration'], 'L_ADMIN_ALERTS' => $LANG['administrator_alerts'], 'L_NO_UNREAD_ALERT' => $LANG['no_unread_alert'], 'L_UNREAD_ALERT' => $LANG['unread_alerts'], 'L_DISPLAY_ALL_ALERTS' => $LANG['display_all_alerts'], 'L_QUICK_LINKS' => $LANG['quick_links'], 'L_USERS_MANAGMENT' => $LANG['members_managment'], 'L_MENUS_MANAGMENT' => $LANG['menus_managment'], 'L_MODULES_MANAGMENT' => $LANG['modules_managment'], 'L_NO_COMMENT' => $LANG['no_comment'], 'L_LAST_COMMENTS' => $LANG['last_comments'], 'L_VIEW_ALL_COMMENTS' => $LANG['view_all_comments'], 'L_WRITING_PAD' => $LANG['writing_pad'], 'L_STATS' => $LANG['stats'], 'L_USER_ONLINE' => $LANG['user_online'], 'L_USER_IP' => $LANG['user_ip'], 'L_LOCALISATION' => $LANG['localisation'], 'L_LAST_UPDATE' => $LANG['last_update'], 'L_WEBSITE_UPDATES' => $LANG['website_updates'], 'L_BY' => $LANG['by'], 'L_UPDATE' => $LANG['update'], 'L_RESET' => $LANG['reset'])); $result = $Sql->query_while("SELECT s.user_id, s.level, s.session_ip, s.session_time, s.session_script, s.session_script_get, \ns.session_script_title, m.login \nFROM " . DB_TABLE_SESSIONS . " s\nLEFT JOIN " . DB_TABLE_MEMBER . " m ON s.user_id = m.user_id\nWHERE s.session_time > '" . (time() - $CONFIG['site_session_invit']) . "'\nORDER BY s.session_time DESC", __LINE__, __FILE__); while ($row = $Sql->fetch_assoc($result)) { $robot = $Session->_check_bot($row['session_ip']); switch ($row['level']) { case MEMBER_LEVEL: $class = 'member'; break; case MODERATOR_LEVEL: $class = 'modo'; break; case ADMIN_LEVEL: $class = 'admin'; break; } if (!empty($robot)) {
private function save(HTTPRequestCustom $request) { $has_error = false; $user_id = $this->user->get_id(); if ($this->form->get_value('delete_account')) { UserService::delete_by_id($user_id); } else { $approbation = $this->internal_auth_infos['approved']; if (AppContext::get_current_user()->is_admin()) { $old_approbation = $approbation; $approbation = $this->form->get_value('approbation'); $groups = array(); foreach ($this->form->get_value('groups') as $field => $option) { $groups[] = $option->get_raw_value(); } GroupsService::edit_member($user_id, $groups); $this->user->set_groups($groups); $this->user->set_level($this->form->get_value('rank')->get_raw_value()); } if ($this->form->has_field('theme')) { $this->user->set_theme($this->form->get_value('theme')->get_raw_value()); } $this->user->set_locale($this->form->get_value('lang')->get_raw_value()); $this->user->set_display_name($this->form->get_value('display_name')); $this->user->set_email($this->form->get_value('email')); $this->user->set_locale($this->form->get_value('lang')->get_raw_value()); $this->user->set_editor($this->form->get_value('text-editor')->get_raw_value()); $this->user->set_show_email(!$this->form->get_value('user_hide_mail')); $this->user->set_timezone($this->form->get_value('timezone')->get_raw_value()); try { UserService::update($this->user, $this->member_extended_fields_service); } catch (MemberExtendedFieldErrorsMessageException $e) { $has_error = true; $this->tpl->put('MSG', MessageHelper::display($e->getMessage(), MessageHelper::NOTICE)); } $login = $this->form->get_value('email'); if ($this->form->get_value('custom_login', false)) { $login = $this->form->get_value('login'); } $password = $this->form->get_value('password'); if ($this->internal_auth_infos === null && !empty($password)) { $authentication_method = new PHPBoostAuthenticationMethod($login, $password); AuthenticationService::associate($authentication_method, $user_id); } elseif (!empty($password)) { $old_password = $this->form->get_value('old_password'); if (!empty($old_password)) { $old_password_hashed = KeyGenerator::string_hash($old_password); if ($old_password_hashed == $this->internal_auth_infos['password']) { PHPBoostAuthenticationMethod::update_auth_infos($user_id, $login, $approbation, KeyGenerator::string_hash($password)); $has_error = false; } else { $has_error = true; $this->tpl->put('MSG', MessageHelper::display($this->lang['profile.edit.password.error'], MessageHelper::NOTICE)); } } } else { PHPBoostAuthenticationMethod::update_auth_infos($user_id, $login, $approbation); } if (AppContext::get_current_user()->is_admin()) { if ($old_approbation != $approbation && $old_approbation == 0) { //Recherche de l'alerte correspondante $matching_alerts = AdministratorAlertService::find_by_criteria($user_id, 'member_account_to_approbate'); //L'alerte a été trouvée if (count($matching_alerts) == 1) { $alert = $matching_alerts[0]; $alert->set_status(AdministratorAlert::ADMIN_ALERT_STATUS_PROCESSED); AdministratorAlertService::save_alert($alert); $site_name = GeneralConfig::load()->get_site_name(); $subject = StringVars::replace_vars($this->user_lang['registration.subject-mail'], array('site_name' => $site_name)); $content = StringVars::replace_vars($this->user_lang['registration.email.mail-administrator-validation'], array('pseudo' => $this->user->get_display_name(), 'site_name' => $site_name, 'signature' => MailServiceConfig::load()->get_mail_signature())); AppContext::get_mail_service()->send_from_properties($this->user->get_email(), $subject, $content); } } $user_warning = $this->form->get_value('user_warning')->get_raw_value(); if (!empty($user_warning) && $user_warning != $this->user->get_warning_percentage()) { MemberSanctionManager::caution($user_id, $user_warning, MemberSanctionManager::SEND_MP, str_replace('%level%', $user_warning, LangLoader::get_message('user_warning_level_changed', 'main'))); } elseif (empty($user_warning)) { MemberSanctionManager::cancel_caution($user_id); } $user_readonly = $this->form->get_value('user_readonly')->get_raw_value(); if (!empty($user_readonly) && $user_readonly != $this->user->get_delay_readonly()) { MemberSanctionManager::remove_write_permissions($user_id, time() + $user_readonly, MemberSanctionManager::SEND_MP, str_replace('%date%', $this->form->get_value('user_readonly')->get_label(), LangLoader::get_message('user_readonly_changed', 'main'))); } elseif (empty($user_readonly)) { MemberSanctionManager::restore_write_permissions($user_id); } $user_ban = $this->form->get_value('user_ban')->get_raw_value(); if (!empty($user_ban) && $user_ban != $this->user->get_delay_banned()) { MemberSanctionManager::banish($user_id, time() + $user_ban, MemberSanctionManager::SEND_MAIL); } elseif ($user_ban != $this->user->get_delay_banned()) { MemberSanctionManager::cancel_banishment($user_id); } } SessionData::recheck_cached_data_from_user_id($user_id); } if (!$has_error) { AppContext::get_response()->redirect($request->get_url_referrer() ? $request->get_url_referrer() : UserUrlBuilder::edit_profile($user_id), $this->lang['user.message.success.edit']); } }
private function save() { $now = new Date(); $pm_recipients_list = array(); $send_pm = true; $versions = array_reverse($this->config->get_versions_fix(), true); $status = $this->form->get_value('status')->get_raw_value(); if (count($versions)) { if (!$this->form->field_is_disabled('fixed_in')) { $fixed_in = $this->form->get_value('fixed_in')->get_raw_value() ? $this->form->get_value('fixed_in')->get_raw_value() : 0; if ($fixed_in != $this->bug->get_fixed_in()) { //Bug history update BugtrackerService::add_history(array('bug_id' => $this->bug->get_id(), 'updater_id' => $this->current_user->get_id(), 'update_date' => $now->get_timestamp(), 'updated_field' => 'fixed_in', 'old_value' => $this->bug->get_fixed_in(), 'new_value' => $fixed_in)); $this->bug->set_fixed_in($fixed_in); } } else { if (in_array($status, array(Bug::NEW_BUG, Bug::REJECTED))) { $this->bug->set_fixed_in(0); } } } if (!$this->form->field_is_disabled('assigned_to')) { $assigned_to = $this->form->get_value('assigned_to'); $assigned_to_id = UserService::user_exists("WHERE display_name = :display_name", array('display_name' => $assigned_to)); if ($this->bug->get_assigned_to_id()) { $old_user_assigned_id = UserService::user_exists("WHERE user_id = :user_id", array('user_id' => $this->bug->get_assigned_to_id())); $old_user_assigned = !empty($old_user_assigned_id) ? UserService::get_user($old_user_assigned_id) : 0; } else { $old_user_assigned = 0; } $new_user_assigned = !empty($assigned_to) && !empty($assigned_to_id) ? UserService::get_user($assigned_to_id) : 0; $new_assigned_to_id = !empty($new_user_assigned) ? $new_user_assigned->get_id() : 0; if ($new_assigned_to_id != $this->bug->get_assigned_to_id()) { //Bug history update BugtrackerService::add_history(array('bug_id' => $this->bug->get_id(), 'updater_id' => $this->current_user->get_id(), 'update_date' => $now->get_timestamp(), 'updated_field' => 'assigned_to_id', 'old_value' => $old_user_assigned ? $old_user_assigned->get_display_name() : $this->lang['notice.no_one'], 'new_value' => $new_user_assigned ? $new_user_assigned->get_display_name() : $this->lang['notice.no_one'])); //Bug update $this->bug->set_assigned_to_id($new_assigned_to_id); //The PM will only be sent to the assigned user if ($new_assigned_to_id != $this->current_user->get_id()) { $pm_recipients_list[] = $new_assigned_to_id; } else { $send_pm = false; } } } if ($status != $this->bug->get_status()) { //Bug history update BugtrackerService::add_history(array('bug_id' => $this->bug->get_id(), 'updater_id' => $this->current_user->get_id(), 'update_date' => $now->get_timestamp(), 'updated_field' => 'status', 'old_value' => $this->bug->get_status(), 'new_value' => $status)); //Bug update $this->bug->set_status($status); if ($this->bug->is_fixed() || $this->bug->is_rejected()) { $this->bug->set_fix_date($now); } else { $this->bug->set_fix_date(0); } } BugtrackerService::update($this->bug); Feed::clear_cache('bugtracker'); switch ($status) { case Bug::IN_PROGRESS: $is_pm_enabled = $this->config->are_pm_in_progress_enabled(); break; case Bug::PENDING: $is_pm_enabled = $this->config->are_pm_pending_enabled(); break; case Bug::ASSIGNED: $is_pm_enabled = $this->config->are_pm_assign_enabled(); break; case Bug::FIXED: $is_pm_enabled = $this->config->are_pm_fix_enabled(); break; case Bug::REOPEN: $is_pm_enabled = $this->config->are_pm_reopen_enabled(); break; case Bug::REJECTED: $is_pm_enabled = $this->config->are_pm_reject_enabled(); break; default: $is_pm_enabled = false; break; } //Add comment if needed $comment = $this->form->get_value('comments_message', ''); if (!empty($comment)) { $comments_topic = new BugtrackerCommentsTopic(); $comments_topic->set_id_in_module($this->bug->get_id()); $comments_topic->set_url(BugtrackerUrlBuilder::detail($this->bug->get_id() . '-' . $this->bug->get_rewrited_title())); CommentsManager::add_comment($comments_topic->get_module_id(), $comments_topic->get_id_in_module(), $comments_topic->get_topic_identifier(), $comments_topic->get_path(), $comment); //New line in the bug history BugtrackerService::add_history(array('bug_id' => $this->bug->get_id(), 'updater_id' => $this->current_user->get_id(), 'update_date' => $now->get_timestamp(), 'change_comment' => $this->lang['notice.new_comment'])); } //Send PM with comment to updaters if the option is enabled if (!$this->bug->is_new() && $this->config->are_pm_enabled() && $is_pm_enabled && $send_pm) { BugtrackerPMService::send_PM_to_updaters($status, $this->bug->get_id(), $comment, $pm_recipients_list); } if (in_array($status, array(Bug::NEW_BUG, Bug::REOPEN, Bug::REJECTED, Bug::FIXED)) && $this->config->are_admin_alerts_enabled() && in_array($this->bug->get_severity(), $this->config->get_admin_alerts_levels())) { $alerts = AdministratorAlertService::find_by_criteria($this->bug->get_id(), 'bugtracker'); if (!empty($alerts)) { $alert = $alerts[0]; if ($this->bug->is_new() || $this->bug->is_reopen()) { $alert->set_status(AdministratorAlert::ADMIN_ALERT_STATUS_UNREAD); AdministratorAlertService::save_alert($alert); } else { if ($this->config->is_admin_alerts_fix_action_fix()) { $alert->set_status(AdministratorAlert::ADMIN_ALERT_STATUS_PROCESSED); AdministratorAlertService::save_alert($alert); } else { AdministratorAlertService::delete_alert($alert); } } } } BugtrackerStatsCache::invalidate(); }
} $tpl = new Template('admin/updates/updates.tpl'); $updates_availables = 0; if (phpversion() > PHP_MIN_VERSION_UPDATES) { import('events/administrator_alert_service'); import('core/application'); $update_alerts = AdministratorAlertService::find_by_criteria(null, 'updates'); $updates = array(); foreach ($update_alerts as $update_alert) { $update = unserialize($update_alert->get_properties()); if ($update_type == '' || $update->get_type() == $update_type) { if ($update->check_compatibility()) { $updates[] = $update; } else { $update_alert->set_status(EVENT_STATUS_PROCESSED); AdministratorAlertService::save_alert($update_alert); } } } foreach ($updates as $update) { switch ($update->get_priority()) { case ADMIN_ALERT_VERY_HIGH_PRIORITY: $priority = 'priority_very_high'; break; case ADMIN_ALERT_HIGH_PRIORITY: $priority = 'priority_high'; break; case ADMIN_ALERT_MEDIUM_PRIORITY: $priority = 'priority_medium'; break; default:
private function save() { $now = new Date(); $current_user = AppContext::get_current_user(); if ($this->config->are_pm_enabled() && $this->config->are_pm_delete_enabled()) { //Add comment if needed $comment = !$this->form->field_is_disabled('comments_message') ? $this->form->get_value('comments_message', '') : ''; //Send PM with comment to updaters if the option is enabled BugtrackerPMService::send_PM_to_updaters('delete', $this->bug->get_id(), $comment); } //Delete bug BugtrackerService::delete("WHERE id=:id", array('id' => $this->bug->get_id())); //Delete bug history BugtrackerService::delete_history("WHERE bug_id=:id", array('id' => $this->bug->get_id())); //Delete comments CommentsService::delete_comments_topic_module('bugtracker', $this->bug->get_id()); //Delete admin alert if ($this->config->are_admin_alerts_enabled()) { $alerts = AdministratorAlertService::find_by_criteria($this->bug->get_id(), 'bugtracker'); if (!empty($alerts)) { AdministratorAlertService::delete_alert($alerts[0]); } } BugtrackerStatsCache::invalidate(); Feed::clear_cache('bugtracker'); }
/** * @desc Save an alert for Update Notification */ private function add_update_alert($app) { $identifier = $app->get_identifier(); // We verify that the alert is not already registered if (AdministratorAlertService::find_by_identifier($identifier, 'updates', 'kernel') === null) { $alert = new AdministratorAlert(); require_once PATH_TO_ROOT . '/lang/' . AppContext::get_current_user()->get_locale() . '/admin.php'; if ($app->get_type() == Application::KERNEL_TYPE) { $alert->set_entitled(sprintf(LangLoader::get_message('kernel_update_available', 'admin'), $app->get_version())); } else { $alert->set_entitled(sprintf(LangLoader::get_message('update_available', 'admin'), $app->get_type(), $app->get_name(), $app->get_version())); } $alert->set_fixing_url('admin/updates/detail.php?identifier=' . $identifier); $alert->set_priority($app->get_priority()); $alert->set_properties(serialize($app)); $alert->set_type('updates'); $alert->set_identifier($identifier); //Save AdministratorAlertService::save_alert($alert); } }
$com_pseudo = '<a href="' . UserUrlBuilder::profile($row['user_id'])->rel() . '" title="' . $row['display_name'] . '" class="' . UserService::get_level_class($row['level']) . '"' . (!empty($group_color) ? ' style="color:' . $group_color . '"' : '') . '>' . TextHelper::wordwrap_html($row['display_name'], 13) . '</a>'; } else { $com_pseudo = '<span style="font-style:italic;">' . (!empty($row['display_name']) ? TextHelper::wordwrap_html($row['display_name'], 13) : $LANG['guest']) . '</span>'; } $tpl->assign_block_vars('comments_list', array('CONTENT' => FormatingHelper::second_parse($row['message']), 'U_PSEUDO' => $com_pseudo, 'U_LINK' => Url::to_rel($row['path']) . '#com' . $row['id'])); $i++; } $result->dispose(); //Advises $advises_form = new HTMLForm('advises_list', '', false); AdminServerSystemReportController::get_advises($advises_form); //Header logo $theme = ThemesManager::get_theme(AppContext::get_current_user()->get_theme()); $customize_interface = $theme->get_customize_interface(); $header_logo_path = $customize_interface->get_header_logo_path(); $tpl->put_all(array('L_QUICK_ACCESS' => $LANG['quick_access'], 'L_ADD_CONTENT' => $LANG['add_content'], 'L_MODULES_MANAGEMENT' => $LANG['modules_management'], 'L_ADD_ARTICLES' => $LANG['add_articles'], 'L_ADD_NEWS' => $LANG['add_news'], 'L_CUSTOMIZE_SITE' => $LANG['customize_site'], 'L_ADD_TEMPLATE' => $LANG['add_template'], 'L_MENUS_MANAGEMENT' => $LANG['menus_management'], 'L_CUSTOMIZE_TEMPLATE' => $LANG['customize_template'], 'L_SITE_MANAGEMENT' => $LANG['site_management'], 'L_GENERAL_CONFIG' => $LANG['general_config'], 'L_EMPTY_CACHE' => $LANG['empty_cache'], 'L_SAVE_DATABASE' => $LANG['save_database'], 'L_WELCOME_TITLE' => $LANG['welcome_title'], 'L_WELCOME_DESC' => $LANG['welcome_desc'], 'WRITING_PAD_CONTENT' => WritingPadConfig::load()->get_content(), 'C_HEADER_LOGO' => !empty($header_logo_path), 'HEADER_LOGO' => Url::to_rel($header_logo_path), 'C_NO_COM' => $i == 0, 'C_UNREAD_ALERTS' => (bool) AdministratorAlertService::get_number_unread_alerts(), 'L_INDEX_ADMIN' => $LANG['administration'], 'L_ADMIN_ALERTS' => $LANG['administrator_alerts'], 'L_NO_UNREAD_ALERT' => $LANG['no_unread_alert'], 'L_UNREAD_ALERT' => $LANG['unread_alerts'], 'L_DISPLAY_ALL_ALERTS' => $LANG['display_all_alerts'], 'L_ADMINISTRATOR_ALERTS' => $LANG['administrator_alerts'], 'L_QUICK_LINKS' => $LANG['quick_links'], 'L_ACTION_USERS_MANAGEMENT' => $LANG['action.members_management'], 'L_ACTION_MENUS_MANAGEMENT' => $LANG['action.menus_management'], 'L_ACTION_MODULES_MANAGEMENT' => $LANG['action.modules_management'], 'L_ACTION_THEMES_MANAGEMENT' => $LANG['action.themes_management'], 'L_ACTION_LANGS_MANAGEMENT' => $LANG['action.langs_management'], 'L_NO_COMMENT' => LangLoader::get_message('no_item_now', 'common'), 'L_LAST_COMMENTS' => $LANG['last_comments'], 'L_VIEW_ALL_COMMENTS' => $LANG['view_all_comments'], 'L_WRITING_PAD' => $LANG['writing_pad'], 'L_STATS' => $LANG['stats'], 'L_USER_ONLINE' => $LANG['user_online'], 'L_USER_IP' => $LANG['user_ip'], 'L_LOCALISATION' => $LANG['localisation'], 'L_LAST_UPDATE' => $LANG['last_update'], 'L_WEBSITE_UPDATES' => $LANG['website_updates'], 'L_BY' => $LANG['by'], 'L_UPDATE' => $LANG['update'], 'L_RESET' => $LANG['reset'], 'ADVISES' => $advises_form->display())); //Liste des personnes en lignes. $result = PersistenceContext::get_querier()->select("SELECT s.user_id, s.ip, s.timestamp, s.location_script, s.location_title, m.display_name, m.groups, m.level\nFROM " . DB_TABLE_SESSIONS . " s\nLEFT JOIN " . DB_TABLE_MEMBER . " m ON s.user_id = m.user_id\nWHERE s.timestamp > :timestamp\nORDER BY s.timestamp DESC", array('timestamp' => time() - SessionsConfig::load()->get_active_session_duration())); while ($row = $result->fetch()) { //On vérifie que la session ne correspond pas à un robot. $robot = Robots::get_robot_by_ip($row['ip']); switch ($row['level']) { case User::MEMBER_LEVEL: $class = 'member'; break; case User::MODERATOR_LEVEL: $class = 'modo'; break; case User::ADMIN_LEVEL: $class = 'admin'; break;
private function save() { $bug = $this->get_bug(); if ($bug->get_id() === null) { $title = $this->form->get_value('title'); $bug->set_title($title); $bug->set_rewrited_title(Url::encode_rewrite($title)); $bug->set_contents($this->form->get_value('contents')); $bug->set_type($this->form->get_value('type') ? $this->form->get_value('type')->get_raw_value() : $this->config->get_default_type()); $bug->set_category($this->form->get_value('category') ? $this->form->get_value('category')->get_raw_value() : $this->config->get_default_category()); $bug->set_severity($this->form->get_value('severity') ? $this->form->get_value('severity')->get_raw_value() : $this->config->get_default_severity()); $bug->set_priority($this->form->get_value('priority') ? $this->form->get_value('priority')->get_raw_value() : $this->config->get_default_priority()); $bug->set_detected_in($this->form->get_value('detected_in') ? $this->form->get_value('detected_in')->get_raw_value() : $this->config->get_default_version()); $bug->set_reproductible($this->form->get_value('reproductible') ? true : 0); if ($bug->is_reproductible()) { $bug->set_reproduction_method($this->form->get_value('reproduction_method')); } //Bug creation $bug->set_id(BugtrackerService::add($bug)); if ($this->config->are_admin_alerts_enabled() && in_array($bug->get_severity(), $this->config->get_admin_alerts_levels())) { $alert = new AdministratorAlert(); $alert->set_entitled('[' . $this->lang['module_title'] . '] ' . $bug->get_title()); $alert->set_fixing_url(BugtrackerUrlBuilder::detail($bug->get_id() . '-' . $bug->get_rewrited_title())->relative()); switch ($bug->get_priority()) { case 1: switch ($bug->get_severity()) { case 1: $alert_priority = AdministratorAlert::ADMIN_ALERT_VERY_LOW_PRIORITY; break; case 2: $alert_priority = AdministratorAlert::ADMIN_ALERT_LOW_PRIORITY; break; default: $alert_priority = AdministratorAlert::ADMIN_ALERT_MEDIUM_PRIORITY; break; } break; case 2: switch ($bug->get_severity()) { case 1: $alert_priority = AdministratorAlert::ADMIN_ALERT_LOW_PRIORITY; break; default: $alert_priority = AdministratorAlert::ADMIN_ALERT_MEDIUM_PRIORITY; break; } break; case 3: switch ($bug->get_severity()) { case 1: $alert_priority = AdministratorAlert::ADMIN_ALERT_LOW_PRIORITY; break; case 2: $alert_priority = AdministratorAlert::ADMIN_ALERT_MEDIUM_PRIORITY; break; case 3: $alert_priority = AdministratorAlert::ADMIN_ALERT_HIGH_PRIORITY; break; default: $alert_priority = AdministratorAlert::ADMIN_ALERT_MEDIUM_PRIORITY; break; } break; case 4: switch ($bug->get_severity()) { case 2: $alert_priority = AdministratorAlert::ADMIN_ALERT_MEDIUM_PRIORITY; break; case 3: $alert_priority = AdministratorAlert::ADMIN_ALERT_HIGH_PRIORITY; break; default: $alert_priority = AdministratorAlert::ADMIN_ALERT_LOW_PRIORITY; break; } break; case 5: switch ($bug->get_severity()) { case 2: $alert_priority = AdministratorAlert::ADMIN_ALERT_HIGH_PRIORITY; break; case 3: $alert_priority = AdministratorAlert::ADMIN_ALERT_VERY_HIGH_PRIORITY; break; default: $alert_priority = AdministratorAlert::ADMIN_ALERT_MEDIUM_PRIORITY; break; } break; default: switch ($bug->get_severity()) { case 1: $alert_priority = AdministratorAlert::ADMIN_ALERT_LOW_PRIORITY; break; case 2: $alert_priority = AdministratorAlert::ADMIN_ALERT_MEDIUM_PRIORITY; break; case 3: $alert_priority = AdministratorAlert::ADMIN_ALERT_HIGH_PRIORITY; break; default: $alert_priority = AdministratorAlert::ADMIN_ALERT_MEDIUM_PRIORITY; break; } break; } $alert->set_priority($alert_priority); $alert->set_id_in_module($bug->get_id()); $alert->set_type('bugtracker'); AdministratorAlertService::save_alert($alert); } } else { $old_values = clone $bug; $now = new Date(); $types = $this->config->get_types(); $categories = $this->config->get_categories(); $severities = $this->config->get_severities(); $priorities = $this->config->get_priorities(); $versions = $this->config->get_versions(); $display_versions = count($versions) > 1; $status_list = $this->config->get_status_list(); $common_lang = LangLoader::get('common'); $title = $this->form->get_value('title', $old_values->get_title()); $bug->set_title($title); $bug->set_rewrited_title(Url::encode_rewrite($title)); $bug->set_contents($this->form->get_value('contents', $old_values->get_contents())); $bug->set_type($this->form->get_value('type') ? $this->form->get_value('type')->get_raw_value() : $old_values->get_type()); $bug->set_category($this->form->get_value('category') ? $this->form->get_value('category')->get_raw_value() : $old_values->get_category()); $bug->set_severity($this->form->get_value('severity') ? $this->form->get_value('severity')->get_raw_value() : $old_values->get_severity()); $bug->set_priority($this->form->get_value('priority') ? $this->form->get_value('priority')->get_raw_value() : $old_values->get_priority()); $bug->set_detected_in($this->form->get_value('detected_in') ? $this->form->get_value('detected_in')->get_raw_value() : $old_values->get_detected_in()); $bug->set_reproductible($this->form->get_value('reproductible') ? true : 0); if ($bug->is_reproductible()) { $bug->set_reproduction_method($this->form->get_value('reproduction_method', $old_values->get_reproduction_method())); } $pm_comment = ''; $modification = false; $fields = array('title', 'contents', 'type', 'category', 'severity', 'priority', 'detected_in', 'reproductible', 'reproduction_method'); $n_values = $bug->get_properties(); $o_values = $old_values->get_properties(); foreach ($fields as $field) { if ($o_values[$field] != $n_values[$field]) { $modification = true; $comment = ''; switch ($field) { case 'title': $new_value = stripslashes($n_values[$field]); $o_values[$field] = addslashes($o_values[$field]); $comment = ''; break; case 'contents': $o_values[$field] = ''; $n_values[$field] = ''; $comment = $this->lang['notice.contents_update']; break; case 'reproduction_method': $o_values[$field] = ''; $n_values[$field] = ''; $comment = $this->lang['notice.reproduction_method_update']; break; case 'type': $new_value = !empty($n_values[$field]) ? stripslashes($types[$n_values[$field]]) : $this->lang['notice.none']; break; case 'category': $new_value = !empty($n_values[$field]) ? stripslashes($categories[$n_values[$field]]) : $this->lang['notice.none_e']; break; case 'priority': $new_value = !empty($n_values[$field]) ? stripslashes($priorities[$n_values[$field]]) : $this->lang['notice.none_e']; break; case 'severity': $new_value = !empty($n_values[$field]) ? stripslashes($severities[$n_values[$field]]['name']) : $this->lang['notice.none']; break; case 'detected_in': $new_value = !empty($n_values[$field]) ? stripslashes($versions[$n_values[$field]]['name']) : $this->lang['notice.none_e']; break; case 'status': $new_value = $this->lang['status.' . $n_values[$field]]; break; case 'reproductible': $new_value = $n_values[$field] ? $common_lang['yes'] : $common_lang['no']; break; default: $new_value = $n_values[$field]; $comment = ''; } $pm_comment .= $field != 'contents' && $field != 'reproduction_method' ? $this->lang['labels.fields.' . $field] . ' : ' . stripslashes($new_value) . ' ' : ''; //Bug history update BugtrackerService::add_history(array('bug_id' => $bug->get_id(), 'updater_id' => $this->current_user->get_id(), 'update_date' => $now->get_timestamp(), 'updated_field' => $field, 'old_value' => $o_values[$field], 'new_value' => $n_values[$field], 'change_comment' => $comment)); } } if ($modification) { //Bug update BugtrackerService::update($bug); //Send PM to updaters if the option is enabled if ($this->config->are_pm_enabled() && $this->config->are_pm_edit_enabled() && !empty($pm_comment)) { BugtrackerPMService::send_PM_to_updaters('edit', $bug->get_id(), $pm_comment); } } } Feed::clear_cache('bugtracker'); BugtrackerStatsCache::invalidate(); AppContext::get_response()->redirect($this->form->get_value('referrer') ? $this->form->get_value('referrer') : BugtrackerUrlBuilder::unsolved(), StringVars::replace_vars($this->is_new_bug ? $this->lang['success.add'] : $this->lang['success.edit'], array('id' => $bug->get_id()))); }
function _add_update_alert(&$app) { import('events/administrator_alert_service'); $identifier = $app->get_identifier(); if (AdministratorAlertService::find_by_identifier($identifier, 'updates', 'kernel') === null) { $alert = new AdministratorAlert(); global $LANG, $CONFIG; require_once PATH_TO_ROOT . '/lang/' . get_ulang() . '/admin.php'; if ($app->get_type() == APPLICATION_TYPE__KERNEL) { $alert->set_entitled(sprintf($LANG['kernel_update_available'], $app->get_version())); } else { $alert->set_entitled(sprintf($LANG['update_available'], $app->get_type(), $app->get_name(), $app->get_version())); } $alert->set_fixing_url('admin/updates/detail.php?identifier=' . $identifier); $alert->set_priority($app->get_priority()); $alert->set_properties(serialize($app)); $alert->set_type('updates'); $alert->set_identifier($identifier); AdministratorAlertService::save_alert($alert); } }
private function build_form() { $contribution_number = $this->get_unread_contributions_number(); $is_authorized_files_panel = $this->user->check_auth(FileUploadConfig::load()->get_authorization_enable_interface_files(), FileUploadConfig::AUTH_FILES_BIT); $this->tpl->put_all(array('C_USER_AUTH_FILES' => $is_authorized_files_panel, 'C_USER_INDEX' => true, 'C_IS_MODERATOR' => $this->user->get_level() >= User::MODERATOR_LEVEL, 'C_UNREAD_CONTRIBUTION' => $contribution_number != 0, 'C_KNOWN_NUMBER_OF_UNREAD_CONTRIBUTION' => $contribution_number > 0, 'C_UNREAD_ALERT' => (bool) AdministratorAlertService::get_number_unread_alerts(), 'C_HAS_PM' => $this->user->get_unread_pm() > 0, 'COLSPAN' => $is_authorized_files_panel ? 3 : 2, 'PSEUDO' => $this->user->get_display_name(), 'NUMBER_UNREAD_ALERTS' => AdministratorAlertService::get_number_unread_alerts(), 'NUMBER_UNREAD_CONTRIBUTIONS' => $contribution_number, 'NUMBER_PM' => $this->user->get_unread_pm(), 'MSG_MBR' => FormatingHelper::second_parse(UserAccountsConfig::load()->get_welcome_message()), 'U_USER_ID' => UserUrlBuilder::profile($this->user->get_id())->rel(), 'U_USER_PM' => UserUrlBuilder::personnal_message($this->user->get_id())->rel(), 'U_CONTRIBUTION_PANEL' => UserUrlBuilder::contribution_panel()->rel(), 'U_MODERATION_PANEL' => UserUrlBuilder::moderation_panel()->rel(), 'U_UPLOAD' => UserUrlBuilder::upload_files_panel()->rel(), 'U_VIEW_PROFILE' => UserUrlBuilder::profile($this->user->get_id())->rel())); }
$error = 'e_upload_failed_unwritable'; } $error = !empty($error) ? '?error=' . $error : ''; if (!empty($error)) { redirect(HOST . SCRIPT . $error); } else { redirect(HOST . SCRIPT . '?update=' . $module_name); } } else { $Template->set_filenames(array('admin_modules_update' => 'admin/admin_modules_update.tpl')); import('core/updates'); $updates_availables = 0; if (phpversion() > PHP_MIN_VERSION_UPDATES) { import('events/administrator_alert_service'); import('core/application'); $update_alerts = AdministratorAlertService::find_by_criteria(null, 'updates'); $updates = array(); $update_type = 'module'; foreach ($update_alerts as $update_alert) { $update = unserialize($update_alert->get_properties()); if ($update_type == '' || $update->get_type() == $update_type) { $updates[] = $update; } } foreach ($updates as $update) { switch ($update->get_priority()) { case ADMIN_ALERT_VERY_HIGH_PRIORITY: $priority = 'priority_very_high'; break; case ADMIN_ALERT_HIGH_PRIORITY: $priority = 'priority_high';
require_once PATH_TO_ROOT . '/kernel/header_no_display.php'; //On vérifie la validité du jeton AppContext::get_session()->csrf_get_protect(); if (!AppContext::get_current_user()->check_level(User::ADMIN_LEVEL)) { exit; } $change_status = retrieve(GET, 'change_status', 0); $id_to_delete = retrieve(GET, 'delete', 0); if ($change_status > 0) { $alert = new AdministratorAlert(); //If the loading has been successful if (($alert = AdministratorAlertService::find_by_id($change_status)) != null) { //We switch the status $new_status = $alert->get_status() != Event::EVENT_STATUS_PROCESSED ? Event::EVENT_STATUS_PROCESSED : Event::EVENT_STATUS_UNREAD; $alert->set_status($new_status); AdministratorAlertService::save_alert($alert); echo '1'; } else { echo '0'; } } elseif ($id_to_delete > 0) { $alert = new AdministratorAlert(); //If the loading has been successful if (($alert = AdministratorAlertService::find_by_id($id_to_delete)) != null) { AdministratorAlertService::delete_alert($alert); echo '1'; } else { echo '0'; } } require_once PATH_TO_ROOT . '/kernel/footer_no_display.php';
public static function __static() { self::$db_querier = PersistenceContext::get_querier(); }
function _get_member() { global $Sql; $config_member = 'global $CONFIG_USER, $CONTRIBUTION_PANEL_UNREAD, $ADMINISTRATOR_ALERTS;' . "\n"; $CONFIG_USER = unserialize((string) $Sql->query("SELECT value FROM " . DB_TABLE_CONFIGS . " WHERE name = 'member'", __LINE__, __FILE__)); foreach ($CONFIG_USER as $key => $value) { $config_member .= '$CONFIG_USER[\'' . $key . '\'] = ' . var_export($value, true) . ';' . "\n"; } import('events/contribution_service'); $config_member .= '$CONTRIBUTION_PANEL_UNREAD = ' . var_export(ContributionService::compute_number_contrib_for_each_profile(), true) . ';'; import('events/administrator_alert_service'); $config_member .= "\n" . '$ADMINISTRATOR_ALERTS = ' . var_export(AdministratorAlertService::compute_number_unread_alerts(), true) . ';'; return $config_member; }