X-Git-Url: http://git.cyclocoop.org/?p=velocampus%2Fweb%2Fwww.git;a=blobdiff_plain;f=www%2Fecrire%2Fexec%2Fcontrole_forum.php;fp=www%2Fecrire%2Fexec%2Fcontrole_forum.php;h=f22a28a0f2799b894bf94638ef91f9efdd46fe15;hp=0000000000000000000000000000000000000000;hb=80b4d3e85f78d402ed2e73f8f5d1bf4c19962eed;hpb=aaf970bf4cdaf76689ecc10609048e18d073820c diff --git a/www/ecrire/exec/controle_forum.php b/www/ecrire/exec/controle_forum.php new file mode 100644 index 0000000..f22a28a --- /dev/null +++ b/www/ecrire/exec/controle_forum.php @@ -0,0 +1,298 @@ + 0) { + $row=sql_fetsel("id_article, titre, statut", "spip_articles", "id_article=$forum_id_article"); + $id_article = $row['id_article']; + $titre = $row['titre']; + $statut = $row['statut']; + if ($forum_stat == "prive" OR $forum_stat == "privoff") { + return array('pref' => _T('item_reponse_article'), + 'url' => generer_url_ecrire("articles","id_article=$id_article"), + 'type' => 'id_article', + 'valeur' => $id_article, + 'titre' => $titre); + } else { + $ancre = "forum$id_forum" ; + return array('pref' => _T('lien_reponse_article'), + 'url' => generer_url_entite($id_article,'article', '',$ancre, true), + 'type' => 'id_article', + 'valeur' => $id_article, + 'titre' => $titre, + 'avant' => ""._T('lien_forum_public'). "
"); + } + } + else if ($forum_id_rubrique > 0) { + $row = sql_fetsel("*", "spip_rubriques", "id_rubrique=$forum_id_rubrique"); + $id_rubrique = $row['id_rubrique']; + $titre = $row['titre']; + return array('pref' => _T('lien_reponse_rubrique'), + 'url' => generer_url_entite($id_rubrique,'rubrique','','',true), + 'type' => 'id_rubrique', + 'valeur' => $id_rubrique, + 'titre' => $titre); + } + else if ($forum_id_syndic > 0) { + $row = sql_fetsel("*", "spip_syndic", "id_syndic=$forum_id_syndic"); + $id_syndic = $row['id_syndic']; + $titre = $row['nom_site']; + $statut = $row['statut']; + return array('pref' => _T('lien_reponse_site_reference'), + 'url' => generer_url_ecrire("sites","id_syndic=$id_syndic"), + 'type' => 'id_syndic', + 'valeur' => $id_syndic, + 'titre' => $titre); + } + else if ($forum_id_breve > 0) { + $row = sql_fetsel("*", "spip_breves", "id_breve=$forum_id_breve"); + $id_breve = $row['id_breve']; + $date_heure = $row['date_heure']; + $titre = $row['titre']; + if ($forum_stat == "prive") { + return array('pref' => _T('lien_reponse_breve'), + 'url' => generer_url_ecrire("breves_voir","id_breve=$id_breve"), + 'type' => 'id_breve', + 'valeur' => $id_breve, + 'titre' => $titre); + } else { + return array('pref' => _T('lien_reponse_breve_2'), + 'url' => generer_url_entite($id_breve, 'breve','','',true), + 'type' => 'id_breve', + 'valeur' => $id_breve, + 'titre' => $titre); + } + } + else if ($forum_stat == "privadm") { + $retour = forum_parent($forum_id_parent); + if ($retour) return $retour; + else return array('pref' => _T('info_message'), + 'url' => generer_url_ecrire('forum_admin'), + 'titre' => _T('info_forum_administrateur')); + } + else { + $retour = forum_parent($forum_id_parent); + if ($retour) return $retour; + else return array('pref' => _T('info_message'), + 'url' => generer_url_ecrire('forum'), + 'titre' => _T('info_forum_interne')); + } +} + +// http://doc.spip.org/@controle_forum_boucle +function controle_forum_boucle($row, $args) { + + $id_forum = $row['id_forum']; + $forum_id_parent = $row['id_parent']; + $forum_id_rubrique = $row['id_rubrique']; + $forum_id_article = $row['id_article']; + $forum_id_breve = $row['id_breve']; + $forum_date_heure = $row['date_heure']; + $forum_titre = echapper_tags($row['titre']); + $forum_texte = $row['texte']; + $forum_auteur = echapper_tags(extraire_multi($row['auteur'])); + $forum_email_auteur = echapper_tags($row['email_auteur']); + $forum_nom_site = echapper_tags($row['nom_site']); + $forum_url_site = echapper_tags($row['url_site']); + $forum_stat = $row['statut']; + $forum_ip = $row['ip']; + $forum_id_auteur = $row["id_auteur"]; + + $r = forum_parent($id_forum); + $avant = $r['avant']; + $url = $r['url']; + $titre = $r['titre']; + $type = $r['type']; + $valeur = $r['valeur']; + $pref = $r['pref']; + + if ($documents = sql_allfetsel('doc.id_document, doc.fichier AS fichier', 'spip_documents AS doc LEFT JOIN spip_documents_liens AS lien ON doc.id_document=lien.id_document', 'lien.id_objet='.intval($id_forum)." AND objet='forum'")) { + include_spip('inc/documents'); + foreach ($documents as $k => $t) { + $h = generer_url_entite($t['id_document'], 'document'); + $documents[$k] = "".basename($t['fichier']).""; + } + } + + switch($forum_stat) { + case 'off': + case 'privoff': + $style = " style='border: 2px #ff0000 dashed;'"; + break; + case 'prop': + $style = " style='border: 2px yellow solid; background-color: white;'"; + break; + case 'spam': + $style = " style='border: 2px black dotted;'"; + break; + default: + $style = ""; + break; + } + + if ($forum_email_auteur) { + if (email_valide($forum_email_auteur)) + $forum_email_auteur = "".$forum_email_auteur + .""; + $forum_auteur .= " — $forum_email_auteur"; + } + + $suite = "\n
$avant$pref\n$titre" + . "
".justifier(propre($forum_texte))."
"; + include_spip('public/composer'); + if ($forum_notes = safehtml(calculer_notes())) + $suite .= "
".justifier(safehtml($forum_notes))."
"; + + if (strlen($forum_url_site) > 10 AND strlen($forum_nom_site) > 3) + $suite .= "\n
$forum_nom_site
"; + + return "\n

" . + debut_cadre_forum("", true, "", typo($forum_titre)) . + "" . + date_interface($forum_date_heure) . + safehtml(" / $forum_auteur") . + boutons_controle_forum($id_forum, $forum_stat, $forum_id_auteur, "$type=$valeur", $forum_ip, 'controle_forum', $args) . + safehtml(lignes_longues($suite)) . + afficher_forum_mots($id_forum) . + join(', ', $documents) . + "
". + fin_cadre_forum(true); +} + +// +// Debut de la page de controle +// + +// http://doc.spip.org/@exec_controle_forum_dist +function exec_controle_forum_dist() +{ + exec_controle_forum_args(intval(_request('id_rubrique')), + _request('type'), + intval(_request('debut')), + intval(_request('pas')), + intval(_request('enplus')), + _request('recherche')); +} + +// http://doc.spip.org/@exec_controle_forum_args +function exec_controle_forum_args($id_rubrique, $type, $debut, $pas, $enplus, $recherche) +{ + if (!autoriser('publierdans','rubrique',$id_rubrique)) { + include_spip('inc/minipres'); + echo minipres(); + } else { + + if (!preg_match('/^\w+$/', $type)) $type = 'public'; + $formulaire_recherche = formulaire_recherche("controle_forum",""); + + list($from,$where) = critere_statut_controle_forum($type, $id_rubrique, $recherche); + + // Si un id_controle_forum est demande, on adapte le debut + if ($debut_id_forum = intval(_request('debut_id_forum')) + AND (NULL !== ($d = sql_getfetsel('date_heure', 'spip_forum', "id_forum=$debut_id_forum")))) { + $debut = sql_countsel($from, $where . (" AND F.date_heure > '$d'")); + } + + if ($recherche) + $args = 'recherche='.rawurlencode($recherche).'&'; + else $args = ''; + + $args .= (!$id_rubrique ? "" : "id_rubrique=$id_rubrique&") . 'type='; + + $query = array('SELECT' => "F.id_forum, F.id_parent, F.id_rubrique, F.id_article, F.id_breve, F.date_heure, F.titre, F.texte, F.auteur, F.email_auteur, F.nom_site, F.url_site, F.statut, F.ip, F.id_auteur", + 'FROM' => $from, + 'WHERE' => $where, + 'GROUP BY' => "", + 'ORDER BY' => "F.date_heure DESC"); + + $nav = affiche_navigation_forum($query, 'controle_forum', $args . $type, $debut, $pas, $enplus); + + $select = sql_select($query['SELECT'], $query['FROM'], $query['WHERE'], $query['GROUP BY'], $query['ORDER BY'], $query['LIMIT']); + + $res = ''; + while ($row = sql_fetch($select)) + $res .= controle_forum_boucle($row, "$args$type&debut=$debut"); + $res = "
$nav
$res
$nav"; + + if (_AJAX) { + ajax_retour($res); + } else { + $ancre = 'controle_forum'; + $res = "
$res
"; + + pipeline('exec_init',array('args'=>array('exec'=>'controle_forum', 'type'=>$type),'data'=>'')); + + + $commencer_page = charger_fonction('commencer_page', 'inc'); + echo $commencer_page(_T('titre_page_forum_suivi'), "forum", "forum-controle"); + + echo "


"; + echo gros_titre(_T('titre_forum_suivi'),'',false); + + echo debut_onglet(); + echo onglet(_T('onglet_messages_publics'), generer_url_ecrire('controle_forum', $args . "public"), "public", $type=='public', "forum-public-24.gif"); + echo onglet(_T('onglet_messages_internes'), generer_url_ecrire('controle_forum', $args . "interne"), "interne", $type=='interne', "forum-interne-24.gif"); + + list($from,$where) = critere_statut_controle_forum('vide', $id_rubrique); + $n = sql_fetsel('1', $from, $where); + if ($n) echo onglet(_T('onglet_messages_vide'), generer_url_ecrire('controle_forum', $args . "vide"), "vide", $type=='vide'); + + list($from,$where) = critere_statut_controle_forum('prop', $id_rubrique); + $f = sql_fetsel('1', $from, $where); + if ($f) + echo onglet(_T('texte_statut_attente_validation'), generer_url_ecrire('controle_forum', $args . "prop"), "prop", $type=='prop'); + + echo fin_onglet(); + + echo debut_gauche('', true); + echo debut_boite_info(true); + echo "", _T('info_gauche_suivi_forum_2'), aide("suiviforum"), ""; + + // Afficher le lien RSS + + echo bouton_spip_rss("forums_$type"); + + echo fin_boite_info(true); + + echo pipeline('affiche_gauche',array('args'=>array('exec'=>'controle_forum', 'type'=>$type),'data'=>'')); + echo creer_colonne_droite('', true); + echo pipeline('affiche_droite',array('args'=>array('exec'=>'controle_forum', 'type'=>$type),'data'=>'')); + + + echo debut_droite('', true); + echo pipeline('affiche_milieu',array('args'=>array('exec'=>'controle_forum', 'type'=>$type),'data'=>'')); + + echo $formulaire_recherche . "
"; + echo $res; + echo fin_gauche(), fin_page(); + } + } +} +?>