protected function main() { // Si le paramètre ID manque if (empty($_GET['id']) || !is_numeric($_GET['id'])) { header('Location: news-70.html'); } inc_lib('news/news_exists'); if (news_exists($_GET['id']) == false) { redir(Nw::$lang['news']['news_not_exist'], false, 'news-70.html'); } inc_lib('news/get_info_news'); $donnees_news = get_info_news($_GET['id']); // Ce membre a le droit d'éditer la news ? if ($donnees_news['n_etat'] != 3 && !is_logged_in()) { redir(Nw::$lang['news']['not_view_news_perm'], false, './'); } $this->set_tpl('mobile/news/view_news.html'); $this->load_lang_file('news'); inc_lib('news/has_voted_news'); Nw::$tpl->set(array('ID' => $_GET['id'], 'ETAT' => $donnees_news['n_etat'], 'CAT_ID' => $donnees_news['c_id'], 'CAT_TITRE' => $donnees_news['c_nom'], 'AUTEUR' => $donnees_news['u_pseudo'], 'AUTEUR_ALIAS' => $donnees_news['u_alias'], 'AUTEUR_AVATAR' => $donnees_news['u_avatar'], 'DATE' => date_sql($donnees_news['date_news'], $donnees_news['heures_date_news'], $donnees_news['jours_date_news']), 'NBR_COMS' => sprintf(Nw::$lang['news']['nbr_comments_news'], $donnees_news['n_nbr_coms'], $donnees_news['n_nbr_coms'] > 1 ? Nw::$lang['news']['add_s_comments'] : ''), 'COMS' => $donnees_news['n_nbr_coms'], 'NB_VOT_VALID' => Nw::$pref['nb_votes_valid_news'], 'VOTES' => $donnees_news['n_nb_votes'], 'VOTES_NEG' => $donnees_news['n_nb_votes_neg'], 'IMAGE_ID' => $donnees_news['i_id'], 'IMAGE_NOM' => $donnees_news['i_nom'], 'SOURCE' => !empty($donnees_news['n_src_url']) ? $donnees_news['n_src_url'] : '', 'SOURCE_NOM' => !empty($donnees_news['n_src_nom']) ? $donnees_news['n_src_nom'] : '', 'TITRE' => $donnees_news['n_titre'], 'REWRITE' => rewrite($donnees_news['n_titre']), 'CONTENU' => $donnees_news['v_texte'], 'HAS_VOTED' => is_logged_in() ? $donnees_news['v_id_membre'] : 0)); // Màj du nombre de visualisations inc_lib('news/update_pg_vues'); update_pg_vues($_GET['id']); Nw::$tpl->set('INC_HEAD', empty($_SERVER['HTTP_AJAX'])); }
protected function main() { // Seuls les membres peuvent créer des brouillons if (!is_logged_in()) { redir(Nw::$lang['common']['need_login'], false, 'users-10.html'); } // Si le paramètre ID manque if (empty($_GET['id']) || !is_numeric($_GET['id'])) { header('Location: ./'); } // Cette news existe vraiment ? inc_lib('news/news_exists'); if (news_exists($_GET['id']) == false) { redir(Nw::$lang['news']['news_not_exist'], false, './'); } // Pour rediriger le visiteur d'où il est venu if (!empty($_SERVER['HTTP_REFERER']) && strpos($_SERVER['HTTP_REFERER'], Nw::$site_url) !== false && strpos($_SERVER['HTTP_REFERER'], Nw::$site_url . 'news-25-' . $_GET['id'] . '.html') === false) { $_SESSION['nw_referer_edit'] = $_SERVER['HTTP_REFERER']; } $link_redir = !empty($_SESSION['nw_referer_edit']) ? $_SESSION['nw_referer_edit'] : 'news-10-' . intval($_GET['id']) . '.html'; inc_lib('news/get_info_news'); inc_lib('news/manage_fav'); $donnees_news = get_info_news($_GET['id']); $response = manage_fav($_GET['id']); // Nouveau favoris if ($response == 1) { $text_redir = Nw::$lang['news']['news_favorite_ok']; } elseif ($response == 2) { $text_redir = Nw::$lang['news']['news_defavorite_ok']; } redir($text_redir, true, $link_redir); }
protected function main() { if (!is_logged_in()) { redir(Nw::$lang['common']['need_login'], false, 'users-10.html'); } // Si le paramètre ID manque if (empty($_GET['id']) || !is_numeric($_GET['id']) || empty($_GET['id2']) || !is_numeric($_GET['id2'])) { header('Location: ./'); } // Cette news existe vraiment ? inc_lib('news/news_exists'); if (news_exists($_GET['id']) == false) { redir(Nw::$lang['news']['news_not_exist'], false, './'); } inc_lib('news/vrs_exists'); if (vrs_exists($_GET['id'], $_GET['id2']) == false) { redir(Nw::$lang['news']['version_not_exist'], false, 'news-16-' . $_GET['id'] . '.html'); } inc_lib('news/get_info_news'); $donnees_news = get_info_news($_GET['id']); // Le membre a le droit de restaurer une version de news if (Nw::$droits['can_change_version_my_news'] && $donnees_news['n_id_auteur'] == Nw::$dn_mbr['u_id'] || Nw::$droits['can_change_version_all_news']) { // La version actuelle n'est pas la même que celle que l'on veut restaurer.. if ($donnees_news['n_last_version'] != $_GET['id2']) { inc_lib('news/restore_vrs'); restore_vrs($_GET['id'], $_GET['id2']); redir(Nw::$lang['news']['vrs_restored'], true, 'news-16-' . $_GET['id'] . '.html'); } else { redir(Nw::$lang['news']['error_already_restored'], false, 'news-16-' . $_GET['id'] . '.html'); } } else { redir(Nw::$lang['news']['error_restore_vrs'], false, 'news-16-' . $_GET['id'] . '.html'); } }
protected function main() { if (!is_logged_in()) { redir(Nw::$lang['common']['need_login'], false, 'users-10.html'); } // Si le paramètre ID manque if (empty($_GET['id']) || !is_numeric($_GET['id'])) { header('Location: news-70.html'); } // Cette news existe vraiment ? inc_lib('news/news_exists'); if (news_exists($_GET['id']) == false) { redir(Nw::$lang['news']['news_not_exist'], false, 'news-70.html'); } inc_lib('news/get_info_news'); $donnees_news = get_info_news($_GET['id']); // Ce n'est pas l'auteur de la news, il ne peut la proposer if ($donnees_news['n_id_auteur'] != Nw::$dn_mbr['u_id']) { redir(Nw::$lang['news']['dont_propose_news'], false, 'news-70.html'); } // La news a déjà été proposée if ($donnees_news['n_etat'] == 2) { redir(Nw::$lang['news']['news_already_attente'], false, 'news-80.html'); } // Proposition de la news inc_lib('news/propose_news_votes'); propose_news_votes($_GET['id']); redir(Nw::$lang['news']['msg_news_attente'], true, 'news-80.html'); }
protected function main() { inc_lib('news/news_exists'); $count_news_existe = news_exists($_GET['id']); if ($count_news_existe == false && (is_logged_in() && !check_auth('view_histo_all_news'))) { redir(Nw::$lang['news']['news_not_exist'], false, './'); } inc_lib('news/get_info_news'); $donnees_news = get_info_news($_GET['id']); $this->set_title(Nw::$lang['news']['historique_news'] . ' | ' . $donnees_news['n_titre']); $this->set_tpl('news/log_news.html'); $this->add_css('code.css'); // Fil ariane if ($count_news_existe) { $this->set_filAriane(array(Nw::$lang['news']['news_section'] => array('news-70.html'), $donnees_news['c_nom'] => array($donnees_news['c_rewrite'] . '/'), $donnees_news['n_titre'] => array($donnees_news['c_rewrite'] . '/' . rewrite($donnees_news['n_titre']) . '-' . $_GET['id'] . '/'), Nw::$lang['news']['historique_news'] => array(''))); } else { $this->set_filAriane(array(Nw::$lang['news']['news_section'] => array('news-70.html'), Nw::$lang['news']['historique_news'] => array(''))); } /** * Affichage du logo **/ inc_lib('news/get_news_logs'); $donnees_logs = get_news_logs('l_id_news = ' . intval($_GET['id']), 'l_date DESC'); foreach ($donnees_logs as $donnees) { Nw::$tpl->setBlock('log', array('ACTION' => $donnees['l_action'], 'ACTION_LOG' => isset(Nw::$lang['news']['log_news_' . $donnees['l_action']]) ? Nw::$lang['news']['log_news_' . $donnees['l_action']] : '', 'TEXTE' => nl2br($donnees['l_texte']), 'TITRE' => $donnees['l_titre'], 'DATE' => date_sql($donnees['date'], $donnees['heures_date'], $donnees['jours_date']), 'AUTEUR' => $donnees['u_pseudo'], 'AUTEUR_ID' => $donnees['u_id'], 'AUTEUR_AVATAR' => $donnees['u_avatar'], 'AUTEUR_ALIAS' => $donnees['u_alias'], 'IP' => long2ip($donnees['l_ip']))); } Nw::$tpl->set(array('ID' => $_GET['id'], 'TITRE' => $donnees_news['n_titre'])); }
protected function main() { // Si le paramètre ID manque if (empty($_GET['id']) || !is_numeric($_GET['id'])) { header('Location: news-70.html'); } inc_lib('news/news_exists'); if (news_exists($_GET['id']) == false) { redir(Nw::$lang['news']['news_not_exist'], false, 'news-70.html'); } inc_lib('news/get_info_news'); $info_news = get_info_news($_GET['id']); if (!is_logged_in()) { redir(Nw::$lang['news']['error_cant_alert'], false, './'); } //Si on a envoyé des erreurs if (!empty($_POST['contenu'])) { inc_lib('news/add_alert_news'); add_alert_news(Nw::$dn_mbr['u_id'], $_GET['id'], $_POST['contenu'], $_POST['motif']); redir(Nw::$lang['news']['confirm_alert'], true, $info_news['c_rewrite'] . '/' . rewrite($info_news['n_titre']) . '-' . $_GET['id'] . '/'); } $this->set_title($info_news['n_titre'] . ' | ' . $info_news['c_nom']); $this->set_tpl('news/alert.html'); $this->add_css('forms.css'); $this->add_css('code.css'); $this->add_js('write.js'); $this->add_js('forms.js'); $this->add_form('contenu'); Nw::$tpl->set('ID', $info_news['n_id']); inc_lib('bbcode/clearer'); Nw::$tpl->set(array('ID' => $_GET['id'], 'BAL_CHAMP' => 'contenu', 'NEWS' => $info_news['n_titre'], 'RESUME' => CoupeChar(clearer($info_news['v_texte'])), 'CAT_REWRITE' => $info_news['c_rewrite'], 'REWRITE' => rewrite($info_news['n_titre']))); // Fil ariane $this->set_filAriane(array(Nw::$lang['news']['news_section'] => array('news-70.html'), $info_news['c_nom'] => array($info_news['c_rewrite'] . '/'), $info_news['n_titre'] => array($info_news['c_rewrite'] . '/' . rewrite($info_news['n_titre']) . '-' . $_GET['id'] . '/'), Nw::$lang['news']['alert'] => array(''))); }
protected function main() { // Seuls les membres peuvent créer des brouillons if (!is_logged_in()) { redir(Nw::$lang['common']['need_login'], false, 'users-10.html'); } // Si le paramètre ID manque if (empty($_GET['id']) || !is_numeric($_GET['id'])) { header('Location: ./'); } // Cette news existe vraiment ? inc_lib('news/news_exists'); if (news_exists($_GET['id']) == false) { redir(Nw::$lang['news']['news_not_exist'], false, './'); } // Pour rediriger le visiteur d'où il est venu if (!empty($_SERVER['HTTP_REFERER']) && strpos($_SERVER['HTTP_REFERER'], Nw::$site_url) !== false && strpos($_SERVER['HTTP_REFERER'], Nw::$site_url . 'news-26-' . $_GET['id'] . '.html') === false) { $_SESSION['nw_referer_edit'] = $_SERVER['HTTP_REFERER']; } $type_vote = true; // S'il s'agit d'un vote négatif (pour les news en attente) if (isset($_GET['id2']) && $_GET['id2'] == 0) { $type_vote = false; } inc_lib('news/get_info_news'); inc_lib('news/add_vote_news'); $donnees_news = get_info_news($_GET['id']); $response = add_vote_news($_GET['id'], $type_vote); $vote_redir_defaut = $donnees_news['n_etat'] == 2 ? 'news-80.html' : 'news-10-' . intval($_GET['id']) . '.html'; // Vote bien ajouté if ($response[0]) { // On publie la news automatiquement quand le nbr de votes nécessaires a été atteint if ($donnees_news['n_etat'] == 2 && $response[1] >= Nw::$pref['nb_votes_valid_news']) { if ($type_vote) { inc_lib('news/valid_news_direct'); valid_news_direct($_GET['id']); $text_redir = sprintf(Nw::$lang['news']['news_publiee_byvotes'], $response[1]); $vote_redir_defaut = './'; } else { inc_lib('news/archive_news'); archive_news($_GET['id']); $text_redir = sprintf(Nw::$lang['news']['news_archivee_byvotes'], $response[1]); $vote_redir_defaut = './'; } } else { $text_redir = Nw::$lang['news']['vote_news_ok']; } } else { $text_redir = Nw::$lang['news']['vote_news_pasok']; } $link_redir = !empty($_SESSION['nw_referer_edit']) ? $_SESSION['nw_referer_edit'] : $vote_redir_defaut; redir($text_redir, true, $link_redir); }
private function vote() { $id_news = (int) $_GET['id']; // Cette news existe vraiment ? inc_lib('news/news_exists'); if (!news_exists($_GET['id'])) { header('Location: mobile.html'); } $type_vote = True; if (isset($_GET['id2']) and $_GET['id2'] != '') { $type_vote = (int) $_GET['id2'] == 1; } inc_lib('news/add_vote_news'); add_vote_news($id_news, $type_vote); header('Location: mobile-10-' . $id_news . '.html'); }
protected function main() { if (!is_logged_in()) { redir(Nw::$lang['common']['need_login'], false, 'users-10.html'); } // Si le paramètre ID manque if (empty($_GET['id']) || !is_numeric($_GET['id'])) { header('Location: ./'); } inc_lib('news/news_exists'); $count_news_existe = news_exists($_GET['id']); if ($count_news_existe == false) { redir(Nw::$lang['news']['news_not_exist'], false, 'news-70.html'); } // Récupération des données de la news inc_lib('news/get_info_news'); $donnees_news = get_info_news($_GET['id']); $droit_delete_news = $donnees_news['n_id_auteur'] == Nw::$dn_mbr['u_id'] && Nw::$droits['can_delete_mynews'] || Nw::$droits['can_delete_news'] ? true : false; if (!$droit_delete_news) { redir(Nw::$lang['news']['not_allowed_delete'], false, 'news-70.html'); } // Pour rediriger le visiteur d'où il est venu if (!empty($_SERVER['HTTP_REFERER']) && strpos($_SERVER['HTTP_REFERER'], Nw::$site_url) !== false && strpos($_SERVER['HTTP_REFERER'], Nw::$site_url . 'news-65-' . $_GET['id'] . '.html') === false) { $_SESSION['nw_referer_edit'] = $_SERVER['HTTP_REFERER']; } $link_redir = !empty($_SESSION['nw_referer_edit']) ? $_SESSION['nw_referer_edit'] : 'news-70.html'; $this->set_title(sprintf(Nw::$lang['news']['title_del_news'], $donnees_news['n_titre'])); $this->set_tpl('news/delete.html'); $this->add_css('forms.css'); $this->add_js('ajax.js'); $this->add_js('admin.js'); $this->add_form('contenu'); // Fil ariane $this->set_filAriane(array(Nw::$lang['news']['news_section'] => array('news-70.html'), $donnees_news['c_nom'] => array($donnees_news['c_rewrite'] . '/'), $donnees_news['n_titre'] => array($donnees_news['c_rewrite'] . '/' . rewrite($donnees_news['n_titre']) . '-' . $_GET['id'] . '/'), Nw::$lang['news']['field_delete_news'] => array(''))); // Formulaire soumis if (isset($_POST['submit'])) { inc_lib('news/delete_news'); delete_news($_GET['id']); redir(Nw::$lang['news']['news_deleted'], true, rtrim(Nw::$site_url, '/') . '/news-70.html'); } if (isset($_POST['no'])) { header('Location: ' . $link_redir); } Nw::$tpl->set(array('ID' => $_GET['id'], 'TITRE' => $donnees_news['n_titre'], 'PHRASE_DEL' => sprintf(Nw::$lang['news']['phrase_del_news'], $donnees_news['c_rewrite'], rewrite($donnees_news['n_titre']), $_GET['id'], $donnees_news['n_titre']))); display_form(array('contenu' => '')); }
protected function main() { // Seuls les membres peuvent créer des brouillons if (!is_logged_in()) { redir(Nw::$lang['common']['need_login'], false, 'users-10.html'); } // Si le paramètre ID manque if (empty($_GET['id']) || !is_numeric($_GET['id']) || empty($_GET['id2']) || !is_numeric($_GET['id2'])) { header('Location: ./'); } // Cette news existe vraiment ? inc_lib('news/news_exists'); if (news_exists($_GET['id']) == false) { redir(Nw::$lang['news']['news_not_exist'], false, './'); } inc_lib('news/vrs_exists'); if (vrs_exists($_GET['id'], $_GET['id2']) == false) { redir(Nw::$lang['news']['version_not_exist'], false, 'news-16-' . $_GET['id'] . '.html'); } inc_lib('news/get_info_news'); $donnees_news = get_info_news($_GET['id']); // Le membre a le droit de restaurer une version de news if (Nw::$droits['can_delete_version']) { // La version actuelle n'est pas la même que celle que l'on veut restaurer.. if ($donnees_news['n_nb_versions'] > 1) { $this->set_tpl('news/delete_vrs.html'); $this->add_css('forms.css'); // Fil ariane $this->set_filAriane(array(Nw::$lang['news']['news_section'] => array('news-70.html'), $donnees_news['c_nom'] => array($donnees_news['c_rewrite'] . '/'), $donnees_news['n_titre'] => array($donnees_news['c_rewrite'] . '/' . rewrite($donnees_news['n_titre']) . '-' . $_GET['id'] . '/'), Nw::$lang['news']['gestion_vrs'] => array('news-16-' . $_GET['id'] . '.html'), Nw::$lang['news']['del_vrs_fil_ariane'] => array(''))); if (isset($_POST['submit'])) { inc_lib('news/delete_vrs'); delete_vrs($_GET['id'], $_GET['id2'], $donnees_news['n_last_version']); redir(Nw::$lang['news']['vrs_deleted'], true, 'news-16-' . $_GET['id'] . '.html'); } if (isset($_POST['no'])) { header('Location: news-16-' . $_GET['id'] . '.html'); } Nw::$tpl->set(array('TITRE' => $donnees_news['n_titre'], 'CAT_REWRITE' => $donnees_news['c_rewrite'], 'REWRITE' => rewrite($donnees_news['n_titre']), 'PHRASE_DEL' => sprintf(Nw::$lang['news']['phrase_del_vrs'], $donnees_news['c_rewrite'], rewrite($donnees_news['n_titre']), $_GET['id'], $_GET['id2'], $donnees_news['n_titre']))); } else { redir(Nw::$lang['news']['error_cant_delete_vrs'], false, 'news-16-' . $_GET['id'] . '.html'); } } else { redir(Nw::$lang['news']['error_droit_delete_vrs'], false, 'news-16-' . $_GET['id'] . '.html'); } }
protected function main() { if (!is_logged_in()) { redir(Nw::$lang['common']['need_login'], false, 'users-10.html'); } // Si le paramètre ID manque if (empty($_GET['id']) || !is_numeric($_GET['id']) || empty($_GET['id2'])) { header('Location: ./'); } // News existe pas inc_lib('news/news_exists'); if (news_exists($_GET['id']) == false) { redir(Nw::$lang['news']['news_not_exist'], false, 'news-70.html'); } // Commentaire existe pas inc_lib('news/get_info_cmt_news'); inc_lib('news/get_info_news'); $donnees_cmt = get_info_cmt_news($_GET['id2']); if (empty($donnees_cmt)) { redir(Nw::$lang['news']['cmt_no_exist'], false, $donnees_news['c_rewrite'] . '/' . rewrite($donnees_news['n_titre']) . '-' . $_GET['id'] . '/'); } $donnees_news = get_info_news($_GET['id']); $this->set_title(sprintf(Nw::$lang['news']['title_del_cmt_news'], $donnees_news['n_titre'])); $this->set_tpl('news/delete_cmt.html'); $this->add_css('forms.css'); if (Nw::$droits['can_del_my_comments'] && $donnees_cmt['c_id_membre'] == Nw::$dn_mbr['u_id'] || Nw::$droits['can_del_all_comments']) { // Fil ariane $this->set_filAriane(array(Nw::$lang['news']['news_section'] => array('news-70.html'), $donnees_news['c_nom'] => array($donnees_news['c_rewrite'] . '/'), $donnees_news['n_titre'] => array($donnees_news['c_rewrite'] . '/' . rewrite($donnees_news['n_titre']) . '-' . $_GET['id'] . '/'), Nw::$lang['news']['del_cmt_news'] => array(''))); // Formulaire soumis if (isset($_POST['submit'])) { inc_lib('news/delete_cmt_news'); delete_cmt_news($_GET['id'], $_GET['id2']); redir(Nw::$lang['news']['cmt_deleted'], true, $donnees_news['c_rewrite'] . '/' . rewrite($donnees_news['n_titre']) . '-' . $_GET['id'] . '/'); } if (Nw::$droits['can_del_all_comments']) { $phrase_del = sprintf(Nw::$lang['news']['phrase_del_cmt_modos'], $_GET['id'], $_GET['id2'], $_GET['id2'], $donnees_news['n_titre']); } else { $phrase_del = sprintf(Nw::$lang['news']['phrase_del_cmt'], $_GET['id'], $_GET['id2'], $_GET['id2'], $donnees_news['n_titre']); } Nw::$tpl->set(array('ID' => $_GET['id'], 'ID2' => $_GET['id2'], 'TITRE' => $donnees_news['n_titre'], 'PHRASE_DEL' => $phrase_del, 'IS_MODO' => Nw::$droits['can_del_all_comments'])); } else { redir(Nw::$lang['news']['no_drt_del_cmt'], false, 'news-10-' . $_GET['id'] . '-' . $_GET['id2'] . '.html#c' . $_GET['id2']); } }
protected function main() { // Si le paramètre ID manque if (empty($_GET['id']) || !is_numeric($_GET['id'])) { header('Location: news-70.html'); } inc_lib('news/news_exists'); if (news_exists($_GET['id']) == false) { redir(Nw::$lang['news']['news_not_exist'], false, 'news-70.html'); } inc_lib('news/get_info_news'); $donnees_news = get_info_news($_GET['id'], $id_version_load); $this->set_tpl('mobile/news/view_coms.html'); $this->load_lang_file('news'); /** * Liste des commentaires **/ if ($donnees_news['n_nbr_coms'] > 0) { // Pagination $page = isset($_GET['page']) ? intval($_GET['page']) : 1; $nombreDePages = ceil($donnees_news['n_nbr_coms'] / Nw::$pref['nb_cmts_page']); // On vérifie bien que la page existe if ($nombreDePages > 0 && $page > $nombreDePages) { redir(Nw::$lang['common']['pg_not_exist'], false, $donnees_news['c_rewrite'] . '/' . rewrite($donnees_news['n_titre']) . '-' . $_GET['id'] . '/'); } // L'utilisateur demande un commentaire particulier, on le redirige sur la bonne page if (!empty($_GET['id2']) && is_numeric($_GET['id2'])) { inc_lib('news/count_cmt_before_idc'); $nbr_cmts_before = count_cmt_before_idc($_GET['id'], $_GET['id2']); $page = ceil($nbr_cmts_before / Nw::$pref['nb_cmts_page']); } inc_lib('news/get_list_cmt_news'); $list_cmts = get_list_cmt_news($_GET['id'], 'c_date ASC', $page, Nw::$pref['nb_cmts_page']); $com_cours = 0; // Affichage de tous les commentaires de la page foreach ($list_cmts as $donnees_cmts) { ++$com_cours; $date_cmt = date_sql($donnees_cmts['date'], $donnees_cmts['heures_date'], $donnees_cmts['jours_date']); Nw::$tpl->setBlock('cmt', array('ID' => $donnees_cmts['c_id'], 'NUM' => ($page - 1) * Nw::$pref['nb_cmts_page'] + $com_cours, 'DATE' => $date_cmt, 'AVATAR' => $donnees_cmts['u_avatar'], 'LANG_AVATAR' => sprintf(Nw::$lang['news']['lang_avatar'], $donnees_cmts['u_pseudo']), 'AUTEUR' => $donnees_cmts['u_pseudo'], 'AUTEUR_ID' => $donnees_cmts['u_id'], 'AUTEUR_ALIAS' => $donnees_cmts['u_alias'], 'TEXTE' => $donnees_cmts['c_texte'])); } } Nw::$tpl->set(array('ID' => $_GET['id'], 'ETAT' => $donnees_news['n_etat'], 'TITRE' => $donnees_news['n_titre'], 'TITRE_REWRITE' => rewrite($donnees_news['n_titre']), 'LIST_PG' => $donnees_news['n_nbr_coms'] > 0 ? list_pg($nombreDePages, $page, 'news-10-' . $_GET['id'] . '%s.html#c') : '')); Nw::$tpl->set('INC_HEAD', empty($_SERVER['HTTP_AJAX'])); }
protected function main() { if (!is_logged_in() || !check_auth('solve_alertes')) { redir(Nw::$lang['news']['error_cant_solve_alerts'], false, './'); } inc_lib('news/get_list_alerts_news'); //Si on veut trier selon le statut if (isset($_GET['solved']) && in_array($_GET['solved'], array(0, 1))) { $solved = $_GET['solved']; Nw::$tpl->set('SOLVED', $solved); } else { $solved = null; Nw::$tpl->set('SOLVED', -1); } //Si on veut voir les alertes d'une news précise if (!empty($_GET['id']) && is_numeric($_GET['id'])) { inc_lib('news/news_exists'); if (news_exists($_GET['id']) == false) { redir(Nw::$lang['news']['news_not_exist'], false, 'news-70.html'); } inc_lib('news/get_info_news'); $info_news = get_info_news($_GET['id']); $this->set_title($info_news['n_titre'] . ' | ' . Nw::$lang['news']['alerts_list']); $list_alerts = get_list_alerts_news($_GET['id'], $solved); Nw::$tpl->set('ID_NEWS', $_GET['id']); Nw::$tpl->set('NEWS', $info_news['n_titre']); // Fil ariane $this->set_filAriane(array(Nw::$lang['news']['news_section'] => array('news-70.html'), $info_news['c_nom'] => array($info_news['c_rewrite'] . '/'), $info_news['n_titre'] => array($info_news['c_rewrite'] . '/' . rewrite($info_news['n_titre']) . '-' . $_GET['id'] . '/'), Nw::$lang['news']['alerts_list'] => array(''))); Nw::$tpl->set(array('CAT_REWRITE' => $info_news['c_rewrite'], 'REWRITE' => rewrite($info_news['n_titre']))); } else { $this->set_title(Nw::$lang['news']['alerts_list']); $list_alerts = get_list_alerts_news(null, $solved); Nw::$tpl->set('ID_NEWS', null); // Fil ariane $this->set_filAriane(array(Nw::$lang['news']['news_section'] => array('news-70.html'), Nw::$lang['news']['alerts_list'] => array(''))); } $this->set_tpl('news/list_alerts.html'); $this->add_css('code.css'); foreach ($list_alerts as $a) { Nw::$tpl->setBlock('alerts', array('ID' => $a['a_id'], 'AUTEUR' => $a['pseudo_auteur'], 'ALIAS' => $a['u_alias'], 'ADMIN' => $a['pseudo_admin'], 'ID_ADMIN' => $a['a_admin'], 'SOLVED' => $a['a_solved'], 'DATE' => $a['date'], 'RAISON' => $a['a_texte'], 'MOTIF' => !empty($a['a_motif']) ? Nw::$lang['news']['motifs_list'][$a['a_motif']] : '-', 'IP' => long2ip($a['a_ip']), 'ID_NEWS' => $a['a_id_news'], 'NEWS' => $a['n_titre'], 'REWRITE' => rewrite($a['n_titre']), 'CAT_REWRITE' => rewrite($a['c_rewrite']), 'SOLVED_BY' => $a['a_solved'] ? sprintf(Nw::$lang['news']['alert_solved_by'], $a['pseudo_admin']) : '')); } }
protected function main() { if (!is_logged_in()) { redir(Nw::$lang['common']['need_login'], false, 'users-10.html'); } if (!Nw::$droits['can_post_comment']) { redir(Nw::$lang['news']['acn_droit_comment'], false, './'); } // Si le paramètre ID manque if (empty($_GET['id']) || !is_numeric($_GET['id'])) { header('Location: ./'); } inc_lib('news/news_exists'); $edit = false; if (news_exists($_GET['id']) == false) { redir(Nw::$lang['news']['news_not_exist'], false, 'news-70.html'); } inc_lib('news/get_info_news'); $donnees_news = get_info_news($_GET['id']); $this->set_title(sprintf(Nw::$lang['news']['title_cmt_news'], $donnees_news['n_titre'])); $this->set_tpl('news/post_cmt.html'); $this->add_css('forms.css'); $this->add_css('code.css'); $this->add_js('ajax.js'); $this->add_js('write.js'); $this->add_form('contenu'); inc_lib('bbcode/unparse'); inc_lib('bbcode/parse'); $content_defaut_cmt = ''; $title_last_cmts = ''; $edition_invisible = false; $last_item_fa = Nw::$lang['news']['nv_cmt_fil_ariane']; $id2 = 0; $donnees_antiflood = array(); /** * Édition de commentaire **/ if (!empty($_GET['id2']) && is_numeric($_GET['id2'])) { // Le commentaire existe-t-il ? inc_lib('news/cmt_news_exists'); if (cmt_news_exists($_GET['id2']) == true) { inc_lib('news/get_info_cmt_news'); $donnees_cmt = get_info_cmt_news($_GET['id2']); // Le membre a le droit d'éditer le commentaire? if (Nw::$droits['can_edit_my_comments'] && $donnees_cmt['c_id_membre'] == Nw::$dn_mbr['u_id'] || Nw::$droits['can_edit_all_comments']) { if (Nw::$droits['edit_hidden_comments']) { $edition_invisible = true; } $edit = true; $content_defaut_cmt = unparse($donnees_cmt['c_texte']); $id2 = $_GET['id2']; $last_item_fa = Nw::$lang['news']['update_comment']; } else { redir(Nw::$lang['news']['no_drt_edit_cmt'], false, 'news-10-' . $_GET['id'] . '-' . $_GET['id2'] . '.html#c' . $_GET['id2']); } } else { redir(Nw::$lang['news']['cmt_no_exist'], false, $donnees_news['c_rewrite'] . '/' . rewrite($donnees_news['n_titre']) . '-' . $_GET['id'] . '/'); } } /** * Citation d'un commentaire **/ if (!empty($_GET['qid']) && is_numeric($_GET['qid'])) { // Le commentaire existe-t-il ? inc_lib('news/cmt_news_exists'); if (cmt_news_exists($_GET['qid']) == true) { inc_lib('news/get_info_cmt_news'); $donnees_cmt = get_info_cmt_news($_GET['qid']); $content_defaut_cmt = '<citation auteur="' . $donnees_cmt['u_pseudo'] . '">' . unparse($donnees_cmt['c_texte']) . '</citation>'; } } // Fil ariane $this->set_filAriane(array(Nw::$lang['news']['news_section'] => array('news-70.html'), $donnees_news['c_nom'] => array($donnees_news['c_rewrite'] . '/'), $donnees_news['n_titre'] => array($donnees_news['c_rewrite'] . '/' . rewrite($donnees_news['n_titre']) . '-' . $_GET['id'] . '/'), $last_item_fa => array(''))); // On affiche les x derniers commentaires if (!$edit) { inc_lib('news/get_list_cmt_news'); $page = 1; $list_cmts = get_list_cmt_news($_GET['id'], 'c_date DESC', $page, Nw::$pref['nb_cmts_page']); $com_cours = 0; $title_last_cmts = sprintf(Nw::$lang['news']['title_last_cmts'], Nw::$pref['nb_cmts_page']); // Affichage de tous les commentaires de la page foreach ($list_cmts as $donnees_cmts) { if (count($donnees_antiflood) == 0) { $donnees_antiflood = array('c_id' => $donnees_cmts['c_id'], 'c_id_membre' => $donnees_cmts['u_id'], 'c_texte' => $donnees_cmts['c_texte']); } ++$com_cours; $droit_edit = false; $droit_delete = false; if (is_logged_in()) { $droit_edit = (bool) (Nw::$droits['can_edit_my_comments'] && $donnees_cmts['u_id'] == Nw::$dn_mbr['u_id']) || Nw::$droits['can_edit_all_comments']; $droit_delete = (bool) (Nw::$droits['can_del_my_comments'] && $donnees_cmts['u_id'] == Nw::$dn_mbr['u_id']) || Nw::$droits['can_del_all_comments']; } $date_cmt = date_sql($donnees_cmts['date'], $donnees_cmts['heures_date'], $donnees_cmts['jours_date']); $masque_motif = ''; if ($donnees_cmts['c_masque']) { $date_cmt = sprintf(Nw::$lang['news']['del_cmt_with_reason'], strtolower(date_sql($donnees_cmts['date'], $donnees_cmts['heures_date'], $donnees_cmts['jours_date']))); if (!empty($donnees_cmts['c_masque_raison'])) { $masque_motif = ' (' . sprintf(Nw::$lang['news']['motif_delete_cmt'], $donnees_cmts['c_masque_raison']) . ')'; } } Nw::$tpl->setBlock('cmt', array('ID' => $donnees_cmts['c_id'], 'NUM' => ($page - 1) * Nw::$pref['nb_cmts_page'] + $com_cours, 'DATE' => $date_cmt, 'AVATAR' => $donnees_cmts['u_avatar'], 'LANG_AVATAR' => sprintf(Nw::$lang['news']['lang_avatar'], $donnees_cmts['u_pseudo']), 'AUTEUR' => $donnees_cmts['u_pseudo'], 'AUTEUR_ID' => $donnees_cmts['u_id'], 'AUTEUR_ALIAS' => $donnees_cmts['u_alias'], 'TEXTE' => $donnees_cmts['c_texte'], 'PLUSSOIE' => $donnees_cmts['c_plussoie'], 'GRP_TITRE' => $donnees_cmts['g_titre'], 'GRP_ICON' => $donnees_cmts['g_icone'], 'IP' => long2ip($donnees_cmts['c_ip']), 'MASQUE' => $donnees_cmts['c_masque'], 'MASQUE_MOTIF' => $masque_motif, 'EDIT' => $droit_edit, 'DELETE' => $droit_delete)); } } // Formulaire soumis if (isset($_POST['submit'])) { $array_post = array('contenu' => $_POST['contenu']); // Les champs titre & contenu ne sont pas vides if (!multi_empty(trim($_POST['contenu']))) { /** * Edition d'un commentaire **/ if ($edit) { inc_lib('news/edit_cmt_news'); edit_cmt_news($_GET['id'], $_GET['id2']); redir(Nw::$lang['news']['msg_edit_cmt'], true, 'news-10-' . $_GET['id'] . '-' . $_GET['id2'] . '.html#c' . $_GET['id2']); } else { $contenu_cmt = Nw::$DB->real_escape_string(parse(htmlspecialchars(trim($_POST['contenu'])))); // Si le dernier commentaire est exactement le même que celui que le membre est en train de poster : on affiche un message d'erreur if (count($donnees_antiflood) > 0 && $donnees_antiflood['c_texte'] == $contenu_cmt && $donnees_antiflood['c_id_membre'] == Nw::$dn_mbr['u_id']) { redir(Nw::$lang['news']['antispam_post_cmt'], false, $donnees_news['c_rewrite'] . '/' . rewrite($donnees_news['n_titre']) . '-' . $_GET['id'] . '/comment/' . $donnees_antiflood['c_id'] . '/#c' . $donnees_antiflood['c_id']); } // On édite la news inc_lib('news/add_cmt_news'); $id_new_comment = add_cmt_news($_GET['id']); redir(Nw::$lang['news']['msg_new_cmt'], true, $donnees_news['c_rewrite'] . '/' . rewrite($donnees_news['n_titre']) . '-' . $_GET['id'] . '/comment/' . $id_new_comment . '/#c' . $id_new_comment); } } } Nw::$tpl->set(array('ID' => $_GET['id'], 'ID2' => $id2, 'TITRE' => $donnees_news['n_titre'], 'REWRITE' => rewrite($donnees_news['n_titre']), 'CAT_REWRITE' => $donnees_news['c_rewrite'], 'ID_CAT' => $donnees_news['n_id_cat'], 'NB_COMS' => $donnees_news['n_nbr_coms'], 'LST_CMTS' => $title_last_cmts, 'BAL_CHAMP' => 'contenu', 'EDIT' => $edit, 'EDIT_HIDDEN' => $edition_invisible)); // On affiche le template display_form(array('contenu' => $content_defaut_cmt)); }
protected function main() { // Si le paramètre ID manque if (empty($_GET['id']) || !is_numeric($_GET['id'])) { header('Location: news-70.html'); } //exit('<pre>'.print_r($_GET, true).'</pre>'); $id_version_load = 0; $txt_other_vrs = ''; $droit_edit_news = false; $droit_delete_news = false; $author_has_news = false; inc_lib('news/news_exists'); if (news_exists($_GET['id']) == false) { redir(Nw::$lang['news']['news_not_exist'], false, 'news-70.html'); } inc_lib('news/vrs_exists'); if (!empty($_GET['vrs']) && is_numeric($_GET['vrs']) && vrs_exists($_GET['id'], $_GET['vrs']) == true) { inc_lib('news/get_info_vrs'); $id_version_load = $_GET['vrs']; $donnees_vrs = get_info_vrs($_GET['vrs']); $txt_other_vrs = sprintf(Nw::$lang['news']['view_news_vrs_archived'], $donnees_vrs['v_number']); } inc_lib('news/get_info_news'); $donnees_news = get_info_news($_GET['id'], $id_version_load); $rewrite_news = rewrite($donnees_news['n_titre']); // Ancien permalien des news qui redirige vers le nouveau (nw.com/news-10-1-ma-news.html -> nw.com/politique/ma-news-1/) if (strpos($_SERVER['REQUEST_URI'], 'news-10-' . $_GET['id']) !== false) { header('Status: 301 Moved Permanently', false, 301); header('Location: ' . Nw::$site_url . $donnees_news['c_rewrite'] . '/' . $rewrite_news . '-' . $_GET['id'] . '/'); exit; } // Ce membre a le droit d'éditer la news ? if ($donnees_news['n_etat'] != 3 && !is_logged_in()) { redir(Nw::$lang['news']['not_view_news_perm'], false, Nw::$site_url); } $this->set_title($donnees_news['n_titre'] . ' | ' . $donnees_news['c_nom']); $this->set_tpl('news/view.html'); $this->add_css('code.css'); $this->add_css('forms.css'); $this->base_enabled(true); $this->add_wid_in_content('view_news.' . $_GET['id']); if ($donnees_news['n_etat'] == 2) { $this->add_js('news.attente.js'); } // Fil ariane $this->set_filAriane(array(Nw::$lang['news']['news_section'] => array('news-70.html'), $donnees_news['c_nom'] => array($donnees_news['c_rewrite'] . '/'), $donnees_news['n_titre'] => array($donnees_news['c_rewrite'] . '/' . $rewrite_news . '-' . $_GET['id'] . '/'), Nw::$lang['news']['view_fil_ariane'] => array(''))); /** * Liste des contributeurs **/ inc_lib('news/get_list_contrib'); $list_contribs = get_list_contrib($_GET['id'], $donnees_news['n_id_auteur'], 'v_mineure = 0'); foreach ($list_contribs as $donnees_contribs) { Nw::$tpl->setBlock('ctb', array('MEMBRE_ID' => $donnees_contribs['u_id'], 'MEMBRE_PSEUDO' => $donnees_contribs['u_pseudo'], 'MEMBRE_ALIAS' => $donnees_contribs['u_alias'], 'MEMBRE_AVATAR' => $donnees_contribs['u_avatar'], 'VERSIONS' => sprintf(Nw::$lang['news']['nbr_contrib'], $donnees_contribs['nb_version'], $donnees_contribs['nb_version'] > 1 ? Nw::$lang['news']['add_s_versions'] : ''))); } /** * News de l'auteur **/ inc_lib('news/get_list_news_byauthor'); $news_author = get_list_news_byauthor($donnees_news['n_id_auteur'], array(), 3); foreach ($news_author as $donnees_author) { $author_has_news = true; Nw::$tpl->setBlock('nauthor', array('ID' => $donnees_author['n_id'], 'TITRE' => $donnees_author['n_titre'], 'CAT_REWRITE' => $donnees_author['c_rewrite'], 'REWRITE' => rewrite($donnees_author['n_titre']))); } if ($donnees_news['n_etat'] == 2) { inc_lib('news/get_list_votes_news'); $recents_votes = get_list_votes_news('v_id_news = ' . intval($_GET['id']), 'v_date DESC', 1, 20); foreach ($recents_votes as $donnees_vote) { Nw::$tpl->setBlock('rvotes', array('DATE' => date_sql($donnees_vote['date'], $donnees_vote['heures_date'], $donnees_vote['jours_date']), 'AUTEUR' => $donnees_vote['u_pseudo'], 'AUTEUR_ID' => $donnees_vote['u_id'], 'AUTEUR_ALIAS' => $donnees_vote['u_alias'], 'TYPE' => $donnees_vote['v_type'])); } } /** * Liste des commentaires **/ if ($donnees_news['n_nbr_coms'] > 0) { // Pagination $page = isset($_GET['page']) ? intval($_GET['page']) : 1; $nombreDePages = ceil($donnees_news['n_nbr_coms'] / Nw::$pref['nb_cmts_page']); // On vérifie bien que la page existe if ($nombreDePages > 0 && $page > $nombreDePages) { redir(Nw::$lang['common']['pg_not_exist'], false, $donnees_news['c_rewrite'] . '/' . rewrite($donnees_news['n_titre']) . '-' . $_GET['id'] . '/'); } // L'utilisateur demande un commentaire particulier, on le redirige sur la bonne page if (!empty($_GET['id2']) && is_numeric($_GET['id2'])) { inc_lib('news/count_cmt_before_idc'); $nbr_cmts_before = count_cmt_before_idc($_GET['id'], $_GET['id2']); $page = ceil($nbr_cmts_before / Nw::$pref['nb_cmts_page']); } inc_lib('news/get_list_cmt_news'); $list_cmts = get_list_cmt_news($_GET['id'], 'c_date ASC', $page, Nw::$pref['nb_cmts_page']); $com_cours = 0; // Affichage de tous les commentaires de la page foreach ($list_cmts as $donnees_cmts) { ++$com_cours; $droit_edit = false; $droit_delete = false; if (is_logged_in()) { $droit_edit = (bool) (Nw::$droits['can_edit_my_comments'] && $donnees_cmts['u_id'] == Nw::$dn_mbr['u_id']) || Nw::$droits['can_edit_all_comments']; $droit_delete = (bool) (Nw::$droits['can_del_my_comments'] && $donnees_cmts['u_id'] == Nw::$dn_mbr['u_id']) || Nw::$droits['can_del_all_comments']; } $date_cmt = date_sql($donnees_cmts['date'], $donnees_cmts['heures_date'], $donnees_cmts['jours_date']); $masque_motif = ''; if ($donnees_cmts['c_masque']) { $date_cmt = sprintf(Nw::$lang['news']['del_cmt_with_reason'], strtolower(date_sql($donnees_cmts['date'], $donnees_cmts['heures_date'], $donnees_cmts['jours_date']))); if (!empty($donnees_cmts['c_masque_raison'])) { $masque_motif = ' (' . sprintf(Nw::$lang['news']['motif_delete_cmt'], $donnees_cmts['c_masque_raison']) . ')'; } } Nw::$tpl->setBlock('cmt', array('ID' => $donnees_cmts['c_id'], 'NUM' => ($page - 1) * Nw::$pref['nb_cmts_page'] + $com_cours, 'DATE' => $date_cmt, 'AVATAR' => $donnees_cmts['u_avatar'], 'LANG_AVATAR' => sprintf(Nw::$lang['news']['lang_avatar'], $donnees_cmts['u_pseudo']), 'AUTEUR' => $donnees_cmts['u_pseudo'], 'AUTEUR_ID' => $donnees_cmts['u_id'], 'AUTEUR_ALIAS' => $donnees_cmts['u_alias'], 'TEXTE' => $donnees_cmts['c_texte'], 'PLUSSOIE' => $donnees_cmts['c_plussoie'], 'GRP_TITRE' => $donnees_cmts['g_titre'], 'GRP_ICON' => $donnees_cmts['g_icone'], 'IP' => long2ip($donnees_cmts['c_ip']), 'MASQUE' => $donnees_cmts['c_masque'], 'MASQUE_MOTIF' => $masque_motif, 'EDIT' => $droit_edit, 'DELETE' => $droit_delete)); } } if ($donnees_news['n_nb_src'] > 0) { inc_lib('news/get_list_src'); $donnees_src = get_list_src($_GET['id']); foreach ($donnees_src as $donnees) { Nw::$tpl->setBlock('src', array('LINK' => $donnees['src_url'], 'MEDIA' => $donnees['src_media'])); } } if (is_logged_in()) { if ($donnees_news['n_id_auteur'] == Nw::$dn_mbr['u_id'] && Nw::$droits['can_delete_mynews'] || Nw::$droits['can_delete_news']) { $droit_delete_news = true; } inc_lib('news/can_edit_news'); $droit_edit_news = can_edit_news($donnees_news['n_id_auteur'], $donnees_news['n_etat']); } // Tags de la news inc_lib('news/get_list_tags_news'); $list_tags_metas = array(); $list_dn_tags = get_list_tags_news($donnees_news['n_etat'] != 3 ? 0 : 3, $_GET['id']); foreach ($list_dn_tags as $donnees_tags) { $list_tags_metas[] = $donnees_tags['t_tag']; } inc_lib('news/get_list_news_related'); inc_lib('news/get_list_flags_news'); inc_lib('news/has_voted_news'); inc_lib('bbcode/parse'); Nw::$tpl->set(array('ID' => $_GET['id'], 'ETAT' => $donnees_news['n_etat'], 'CAT_ID' => $donnees_news['c_id'], 'CAT_TITRE' => $donnees_news['c_nom'], 'CAT_REWRITE' => $donnees_news['c_rewrite'], 'REWRITE' => $rewrite_news, 'AUTEUR' => $donnees_news['u_pseudo'], 'AUTEUR_ID' => $donnees_news['u_id'], 'AUTEUR_BIO' => CoupeChar($donnees_news['u_bio'], '...', 300), 'AUTEUR_ALIAS' => $donnees_news['u_alias'], 'AUTEUR_AVATAR' => $donnees_news['u_avatar'], 'AUTEUR_HASN' => $author_has_news, 'DATE' => date_sql($donnees_news['date_news'], $donnees_news['heures_date_news'], $donnees_news['jours_date_news']), 'NBR_COMS' => sprintf(Nw::$lang['news']['nbr_comments_news'], $donnees_news['n_nbr_coms'], $donnees_news['n_nbr_coms'] > 1 ? Nw::$lang['news']['add_s_comments'] : ''), 'COMS' => $donnees_news['n_nbr_coms'], 'NB_VOT_VALID' => Nw::$pref['nb_votes_valid_news'], 'VOTES' => $donnees_news['n_nb_votes'], 'VOTES_NEG' => $donnees_news['n_nb_votes_neg'], 'VERSIONS' => $donnees_news['n_nb_versions'], 'IMAGE_ID' => $donnees_news['i_id'], 'IMAGE_NOM' => $donnees_news['i_nom'], 'NB_SRC' => $donnees_news['n_nb_src'], 'TITRE' => $donnees_news['n_titre'], 'CONTENU' => parse_widgets($donnees_news['v_texte']), 'VRS_LOAD' => $id_version_load, 'TXT_OTHER_VRS' => $txt_other_vrs, 'DRT_EDIT' => $droit_edit_news, 'DRT_DELETE' => $droit_delete_news, 'RELATED' => get_list_news_related($_GET['id'], 5, $donnees_news['n_etat']), 'TAGS' => $list_dn_tags, 'FLAGS' => is_logged_in() ? get_list_flags_news($donnees_news['n_etat'], $_GET['id']) : array(), 'FLAGS_FAV' => is_logged_in() ? $donnees_news['f_type'] : 0, 'HAS_VOTED' => is_logged_in() ? $donnees_news['v_id_membre'] : 0, 'LINK_NB_CONTRIB' => sprintf(Nw::$lang['news']['edit_nb_contrib'], $donnees_news['n_nb_versions']), 'NB_VERSIONS' => sprintf($donnees_news['n_nb_versions'] > 1 ? Nw::$lang['news']['nb_versions'] : Nw::$lang['news']['nb_version'], $donnees_news['n_nb_versions']), 'LIST_PG' => $donnees_news['n_nbr_coms'] > 0 ? list_pg($nombreDePages, $page, $donnees_news['c_rewrite'] . '/' . $rewrite_news . '-' . $_GET['id'] . '/%s', '') : '', 'DRT_COMMENT' => is_logged_in() ? Nw::$droits['can_post_comment'] : false)); $this->metas(array('desc' => $donnees_news['n_resume'], 'tags' => implode(', ', $list_tags_metas))); // Màj du nombre de visualisations inc_lib('news/update_pg_vues'); update_pg_vues($_GET['id']); }
protected function main() { // Seuls les membres peuvent créer des brouillons if (!is_logged_in()) { redir(Nw::$lang['common']['need_login'], false, 'users-10.html'); } // Si le paramètre ID manque if (empty($_GET['id']) || !is_numeric($_GET['id'])) { header('Location: news-70.html'); } inc_lib('news/news_exists'); $count_news_existe = news_exists($_GET['id']); if ($count_news_existe == 0) { redir(Nw::$lang['news']['news_not_exist'], false, 'news-70.html'); } inc_lib('news/get_info_news'); $donnees_news = get_info_news($_GET['id']); // Ce membre a le droit d'éditer la news ? inc_lib('news/can_edit_news'); if (!can_edit_news($donnees_news['n_id_auteur'], $donnees_news['n_etat'])) { redir(Nw::$lang['news']['not_edit_news_perm'], false, 'news-70.html'); } // Est-ce que le membre peut éditer le titre, la catégorie et les tags de la news ? inc_lib('news/can_edit_news_related'); $edit_related = can_edit_news_related($donnees_news['n_id_auteur'], $donnees_news['n_etat']); $edition_grilled = false; $this->set_title(sprintf(Nw::$lang['news']['title_edit_news'], $donnees_news['n_titre'])); $this->set_tpl('news/edit_news.html'); $this->add_css('forms.css'); $this->add_css('code.css'); $this->add_js('write.js'); $this->add_form('contenu'); // Pour rediriger le visiteur d'où il est venu if (!empty($_SERVER['HTTP_REFERER']) && strpos($_SERVER['HTTP_REFERER'], Nw::$site_url) !== false && strpos($_SERVER['HTTP_REFERER'], Nw::$site_url . 'news-60-' . $_GET['id'] . '.html') === false) { $_SESSION['nw_referer_edit'] = $_SERVER['HTTP_REFERER']; } $link_redir = !empty($_SESSION['nw_referer_edit']) ? $_SESSION['nw_referer_edit'] : 'news-60-' . intval($_GET['id']) . '.html'; // Fil ariane $this->set_filAriane(array(Nw::$lang['news']['news_section'] => array('news-70.html'), $donnees_news['c_nom'] => array($donnees_news['c_rewrite'] . '/'), $donnees_news['n_titre'] => array($donnees_news['c_rewrite'] . '/' . rewrite($donnees_news['n_titre']) . '-' . $_GET['id'] . '/'), Nw::$lang['news']['edit_fil_ariane'] => array(''))); $array_status = array(3 => Nw::$lang['news']['etat_news_3'], 2 => Nw::$lang['news']['etat_news_2'], 1 => Nw::$lang['news']['etat_news_1'], 0 => Nw::$lang['news']['etat_news_0']); $list_src = array(); $list_src_url = array(); $position = 0; if ($donnees_news['n_nb_src'] > 0) { inc_lib('news/get_list_src'); $donnees_src = get_list_src($_GET['id']); foreach ($donnees_src as $donnees) { ++$position; $list_src[$position] = $donnees['src_media']; $list_src_url[$position] = $donnees['src_url']; Nw::$tpl->setBlock('src', array('ID' => $position)); } } Nw::$tpl->set(array('ID' => $_GET['id'], 'TITRE' => $donnees_news['n_titre'], 'REWRITE' => rewrite($donnees_news['n_titre']), 'CAT_REWRITE' => $donnees_news['c_rewrite'], 'ID_CAT' => $donnees_news['n_id_cat'], 'IMAGE_ID' => $donnees_news['i_id'], 'IMAGE_NOM' => $donnees_news['i_nom'], 'LINK_NB_CONTRIB' => sprintf(Nw::$lang['news']['edit_nb_contrib'], $donnees_news['n_nb_versions']), 'LAST_VERSION' => $donnees_news['n_last_version'], 'BAL_CHAMP' => 'contenu', 'ETAT_ACTUEL' => $donnees_news['n_etat'], 'ETATS_NEWS' => $array_status, 'EDIT_RELATED' => $edit_related, 'MOD_STATUS' => Nw::$droits['mod_news_status'], 'GRILLED' => false, 'MAX_SRC' => $position == 0 ? $position + 1 : $position)); // Formulaire soumis if (isset($_POST['submit'])) { $array_post = array('titre_news' => $_POST['titre_news'], 'cat' => isset($_POST['cat']) ? $_POST['cat'] : 0, 'contenu' => $_POST['contenu'], 'tags' => isset($_POST['tags']) ? $_POST['tags'] : '', 'private_news' => isset($_POST['private_news']), 'sources' => isset($_POST['sources']) ? $_POST['sources'] : '', 'sources_nom' => isset($_POST['sources_nom']) ? $_POST['sources_nom'] : ''); $var_titre = trim($_POST['titre_news']); $var_content = trim($_POST['contenu']); // Les champs titre & contenu & source ne sont pas vides if ($edit_related && !multi_empty($var_titre, $var_content) || !$edit_related && !empty($var_content)) { // On édite la news inc_lib('news/count_anti_grille'); inc_lib('news/edit_news'); $anti_grille = count_anti_grille($_GET['id'], $_POST['last_version']); if ($anti_grille['count']) { inc_lib('bbcode/parse'); inc_lib('bbcode/unparse'); inc_lib('news/get_info_vrs'); $output_compare = ''; $dn_vrs_grilled = get_info_vrs($donnees_news['n_last_version']); $news_vrs1 = $dn_vrs_grilled['v_texte']; $news_vrs2 = parse($_POST['contenu']); function clean_cache_file($content) { $content = explode("\r", trim($content)); $array_return = array(); foreach ($content as $texte_trim) { if (strlen(trim($texte_trim)) > 0) { $array_return[] = trim($texte_trim); } } return $array_return; } include_once 'Text/Diff.php'; include_once 'Text/Diff/Renderer/unified.php'; $lines1 = clean_cache_file(unparse($news_vrs1, 0)); $lines2 = clean_cache_file(unparse($news_vrs2, 0)); $diff = new Text_Diff($lines1, $lines2); $renderer = new Text_Diff_Renderer_unified(); $array_compare = explode("\n", $renderer->render($diff)); foreach ($array_compare as $donnees) { $first_cararacter = ''; $style_line = ''; if (isset($donnees[0]) && in_array($donnees[0], array('-', '+'))) { if ($donnees[0] == '-') { $style_line = ' style="background-color: #ffcccc;"'; } elseif ($donnees[0] == '+') { $style_line = ' style="background-color: #ccffcc;"'; } $first_cararacter = $donnees[0]; $ligne_changee = substr($donnees, 1); } else { $ligne_changee = $donnees; } if (!in_array(substr($donnees, 0, 2), array('@@')) && strlen(trim($ligne_changee)) > 0) { $output_compare .= '<tr> <td class="line_statut">' . $first_cararacter . '</td> <td' . $style_line . '>' . trim($ligne_changee) . '</td> </tr>'; } } display_form($array_post); Nw::$tpl->set(array('GRILLED' => true, 'COMPARAISON' => $output_compare, 'TEXTE_GRILLED' => sprintf(Nw::$lang['news']['mbr_grilled_edit'], $dn_vrs_grilled['u_alias'], $dn_vrs_grilled['u_pseudo']))); } else { edit_news($_GET['id'], $edit_related); redir(Nw::$lang['news']['msg_news_edit'], true, $link_redir); } } else { display_form($array_post, Nw::$lang['news']['title_content_oblig']); } return; } // Si l'auteur veut supprimer la news if (isset($_GET['imgdel']) && is_numeric($_GET['imgdel']) && $edit_related) { inc_lib('news/delete_img_news'); delete_img_news($_GET['imgdel'], $_GET['id']); redir(Nw::$lang['news']['msg_image_delete'], true, 'news-60-' . $_GET['id'] . '.html'); } // Catégories de news foreach (Nw::$cache_categories as $idcs => $donnees_categorie) { Nw::$tpl->setBlock('cats_news', array('ID' => $idcs, 'TITRE' => $donnees_categorie[0])); } inc_lib('news/get_list_tags_news'); $list_tags = get_list_tags_news(0, $_GET['id']); $list_tags_html = ''; foreach ($list_tags as $dn_tags) { $list_tags_html .= $dn_tags['t_tag'] . ', '; } // On affiche le template inc_lib('bbcode/unparse'); display_form(array('titre_news' => $donnees_news['n_titre'], 'cat' => 0, 'contenu' => unparse($donnees_news['v_texte']), 'tags' => substr($list_tags_html, 0, -2), 'private_news' => $donnees_news['n_private'], 'sources' => $list_src_url, 'sources_nom' => $list_src)); }
protected function main() { $this->set_title(Nw::$lang['news']['en_attente_title']); $this->set_tpl('news/list_versions.html'); inc_lib('news/news_exists'); $count_news_existe = news_exists($_GET['id']); if ($count_news_existe == false) { redir(Nw::$lang['news']['news_not_exist'], false, 'news-70.html'); } inc_lib('news/get_info_news'); $donnees_news = get_info_news($_GET['id']); // Fil ariane $this->set_filAriane(array(Nw::$lang['news']['news_section'] => array('news-70.html'), $donnees_news['c_nom'] => array($donnees_news['c_rewrite'] . '/'), $donnees_news['n_titre'] => array($donnees_news['c_rewrite'] . '/' . rewrite($donnees_news['n_titre']) . '-' . $_GET['id'] . '/'), Nw::$lang['news']['gestion_vrs'] => array('news-16-' . $_GET['id'] . '.html'), Nw::$lang['news']['list_vrs_fa'] => array(''))); // Ce membre a le droit d'éditer la news ? if ($donnees_news['n_etat'] != 3 && !is_logged_in()) { redir(Nw::$lang['news']['not_view_news_perm'], false, './'); } // Redirection pour comparer 2 versions if (isset($_POST['compare_diff']) && isset($_POST['rev_old']) && isset($_POST['rev_new'])) { if ($_POST['rev_new'] != $_POST['rev_old']) { header('Location: news-16-' . $_GET['id'] . '.html?vrs1=' . intval($_POST['rev_old']) . '&vrs2=' . intval($_POST['rev_new'])); } } /** * Comparaison de 2 versions d'une news * Requiert SHELL /!\ **/ $output_compare = ''; $compare_versions = false; $news_vrs1 = 0; $news_vrs2 = 0; if ($donnees_news['n_nb_versions'] > 1) { // Parser BBcode inc_lib('bbcode/unparse'); $news_vrs1 = 0; $news_vrs2 = 0; $id_unique = uniqid(); // On compare 2 versions if (isset($_GET['vrs1']) && is_numeric($_GET['vrs1']) && isset($_GET['vrs2']) && is_numeric($_GET['vrs2'])) { $news_vrs1 = $_GET['vrs1']; $news_vrs2 = $_GET['vrs2']; $compare_versions = true; } inc_lib('news/get_compare_text_vrs'); $textes_compare = get_compare_text_vrs($_GET['id'], $news_vrs1, $news_vrs2); $news_vrs1 = isset($textes_compare[1][0]) ? $textes_compare[1][0] : ''; $news_vrs2 = isset($textes_compare[0][0]) ? $textes_compare[0][0] : ''; function clean_cache_file($content) { $content = explode("\r", trim($content)); $array_return = array(); foreach ($content as $texte_trim) { if (strlen(trim($texte_trim)) > 0) { $array_return[] = trim($texte_trim); } } return $array_return; } /** * Utilisation de la classe Text_diff (http://pear.php.net/package/Text_Diff/download/1.1.0) **/ include_once 'Text/Diff.php'; include_once 'Text/Diff/Renderer/unified.php'; $lines1 = clean_cache_file(unparse($textes_compare[1][1], 0)); $lines2 = clean_cache_file(unparse($textes_compare[0][1], 0)); $diff = new Text_Diff($lines1, $lines2); $renderer = new Text_Diff_Renderer_unified(); $array_compare = explode("\n", $renderer->render($diff)); foreach ($array_compare as $donnees) { $first_cararacter = ''; $style_line = ''; if (isset($donnees[0]) && in_array($donnees[0], array('-', '+'))) { if ($donnees[0] == '-') { $style_line = ' style="background-color: #ffcccc;"'; } elseif ($donnees[0] == '+') { $style_line = ' style="background-color: #ccffcc;"'; } $first_cararacter = $donnees[0]; $ligne_changee = substr($donnees, 1); } else { $ligne_changee = $donnees; } if (!in_array(substr($donnees, 0, 2), array('@@')) && strlen(trim($ligne_changee)) > 0) { $output_compare .= '<tr> <td class="line_statut">' . $first_cararacter . '</td> <td' . $style_line . '>' . trim($ligne_changee) . '</td> </tr>'; } } } /** * Affichage de la liste des versions **/ inc_lib('news/get_list_vrs'); $numeros_version = array(); $donnees_version = get_list_vrs($_GET['id']); foreach ($donnees_version as $donnees) { Nw::$tpl->setBlock('versions', array('ID' => $donnees['v_id'], 'NUM' => $donnees['v_number'], 'AUTEUR' => $donnees['u_pseudo'], 'AUTEUR_ID' => $donnees['u_id'], 'AUTEUR_ALIAS' => $donnees['u_alias'], 'MINEURE' => $donnees['v_mineure'], 'DATE' => date_sql($donnees['date'], $donnees['heures_date'], $donnees['jours_date']), 'COMMENT' => $donnees['v_raison'], 'IP' => long2ip($donnees['v_ip']))); $numeros_version[$donnees['v_id']] = $donnees['v_number']; } $numbers_vrs = array_flip($numeros_version); $texte_compare = ''; if ($donnees_news['n_nb_versions'] > 1) { $texte_compare = sprintf(Nw::$lang['news']['comparaison_2_versions'], $numeros_version[$news_vrs1], $numeros_version[$news_vrs2]); } $droit_edit_news = false; if (is_logged_in()) { inc_lib('news/can_edit_news'); $droit_edit_news = can_edit_news($donnees_news['n_id_auteur'], $donnees_news['n_etat']); } Nw::$tpl->set(array('ID' => $_GET['id'], 'TITRE' => $donnees_news['n_titre'], 'REWRITE' => rewrite($donnees_news['n_titre']), 'CAT_REWRITE' => $donnees_news['c_rewrite'], 'COMPARAISON' => $output_compare, 'LAST_VERSION' => $donnees_news['n_last_version'], 'NB_VERSIONS' => $donnees_news['n_nb_versions'], 'NUMBERS_VRS' => $numbers_vrs, 'TXT_COMPARE' => $texte_compare, 'DRT_VIEW_IP' => is_logged_in() && Nw::$droits['can_see_ip'], 'NUM_OLD' => $news_vrs1, 'NUM_NEW' => $news_vrs2, 'NEWS_AUTEUR' => $donnees_news['n_id_auteur'], 'CHG_MY_VERSIONS' => is_logged_in() && Nw::$droits['can_change_version_my_news'], 'CHG_ALL_VERSIONS' => is_logged_in() && Nw::$droits['can_change_version_all_news'], 'DLT_VERSIONS' => is_logged_in() && Nw::$droits['can_delete_version'], 'LINK_NB_CONTRIB' => sprintf(Nw::$lang['news']['edit_nb_contrib'], $donnees_news['n_nb_versions']), 'DRT_EDIT' => $droit_edit_news)); }
function do_action_send_mail_notification($action = 'list_to_send', $check_key_list = array(), $customize_mail_content = '') { global $conf, $page, $user, $lang_info, $lang, $env_nbm; $return_list = array(); if (in_array($action, array('list_to_send', 'send'))) { list($dbnow) = pwg_db_fetch_row(pwg_query('SELECT NOW();')); $is_action_send = $action == 'send'; // disabled and null mail_address are not selected in the list $data_users = get_user_notifications('send', $check_key_list); // List all if it's define on options or on timeout $is_list_all_without_test = ($env_nbm['is_sendmail_timeout'] or $conf['nbm_list_all_enabled_users_to_send']); // Check if exist news to list user or send mails if (!$is_list_all_without_test or $is_action_send) { if (count($data_users) > 0) { $datas = array(); if (!isset($customize_mail_content)) { $customize_mail_content = $conf['nbm_complementary_mail_content']; } $customize_mail_content = trigger_change('nbm_render_global_customize_mail_content', $customize_mail_content); // Prepare message after change language if ($is_action_send) { $msg_break_timeout = l10n('Time to send mail is limited. Others mails are skipped.'); } else { $msg_break_timeout = l10n('Prepared time for list of users to send mail is limited. Others users are not listed.'); } // Begin nbm users environment begin_users_env_nbm($is_action_send); foreach ($data_users as $nbm_user) { if (!$is_action_send and check_sendmail_timeout()) { // Stop fill list on 'list_to_send', if the quota is override $page['infos'][] = $msg_break_timeout; break; } if ($is_action_send and check_sendmail_timeout()) { // Stop fill list on 'send', if the quota is override $page['errors'][] = $msg_break_timeout; break; } // set env nbm user set_user_on_env_nbm($nbm_user, $is_action_send); if ($is_action_send) { $auth = null; $add_url_params = array(); $auth_key = create_user_auth_key($nbm_user['user_id'], $nbm_user['status']); if ($auth_key !== false) { $auth = $auth_key['auth_key']; $add_url_params['auth'] = $auth; } set_make_full_url(); // Fill return list of "treated" check_key for 'send' $return_list[] = $nbm_user['check_key']; if ($conf['nbm_send_detailed_content']) { $news = news($nbm_user['last_send'], $dbnow, false, $conf['nbm_send_html_mail'], $auth); $exist_data = count($news) > 0; } else { $exist_data = news_exists($nbm_user['last_send'], $dbnow); } if ($exist_data) { $subject = '[' . $conf['gallery_title'] . '] ' . l10n('New photos added'); // Assign current var for nbm mail assign_vars_nbm_mail_content($nbm_user); if (!is_null($nbm_user['last_send'])) { $env_nbm['mail_template']->assign('content_new_elements_between', array('DATE_BETWEEN_1' => $nbm_user['last_send'], 'DATE_BETWEEN_2' => $dbnow)); } else { $env_nbm['mail_template']->assign('content_new_elements_single', array('DATE_SINGLE' => $dbnow)); } if ($conf['nbm_send_detailed_content']) { $env_nbm['mail_template']->assign('global_new_lines', $news); } $nbm_user_customize_mail_content = trigger_change('nbm_render_user_customize_mail_content', $customize_mail_content, $nbm_user); if (!empty($nbm_user_customize_mail_content)) { $env_nbm['mail_template']->assign('custom_mail_content', $nbm_user_customize_mail_content); } if ($conf['nbm_send_html_mail'] and $conf['nbm_send_recent_post_dates']) { $recent_post_dates = get_recent_post_dates_array($conf['recent_post_dates']['NBM']); foreach ($recent_post_dates as $date_detail) { $env_nbm['mail_template']->append('recent_posts', array('TITLE' => get_title_recent_post_date($date_detail), 'HTML_DATA' => get_html_description_recent_post_date($date_detail, $auth))); } } $env_nbm['mail_template']->assign(array('GOTO_GALLERY_TITLE' => $conf['gallery_title'], 'GOTO_GALLERY_URL' => add_url_params(get_gallery_home_url(), $add_url_params), 'SEND_AS_NAME' => $env_nbm['send_as_name'])); $ret = pwg_mail(array('name' => stripslashes($nbm_user['username']), 'email' => $nbm_user['mail_address']), array('from' => $env_nbm['send_as_mail_formated'], 'subject' => $subject, 'email_format' => $env_nbm['email_format'], 'content' => $env_nbm['mail_template']->parse('notification_by_mail', true), 'content_format' => $env_nbm['email_format'], 'auth_key' => $auth)); if ($ret) { inc_mail_sent_success($nbm_user); $datas[] = array('user_id' => $nbm_user['user_id'], 'last_send' => $dbnow); } else { inc_mail_sent_failed($nbm_user); } unset_make_full_url(); } } else { if (news_exists($nbm_user['last_send'], $dbnow)) { // Fill return list of "selected" users for 'list_to_send' $return_list[] = $nbm_user; } } // unset env nbm user unset_user_on_env_nbm(); } // Restore nbm environment end_users_env_nbm(); if ($is_action_send) { mass_updates(USER_MAIL_NOTIFICATION_TABLE, array('primary' => array('user_id'), 'update' => array('last_send')), $datas); display_counter_info(); } } else { if ($is_action_send) { $page['errors'][] = l10n('No user to send notifications by mail.'); } } } else { // Quick List, don't check news // Fill return list of "selected" users for 'list_to_send' $return_list = $data_users; } } // Return list of "selected" users for 'list_to_send' // Return list of "treated" check_key for 'send' return $return_list; }