[ Index ] |
|
Code source de SPIP Agora 1.4 |
1 <?php 2 /***************************************************** 3 * This file is part of Agora, web based content management system. 4 * 5 * Agora is free software; you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License as published by 7 * the Free Software Foundation; version 2 of the License. 8 * 9 * Agora is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU General Public License for more details (file "COPYING"). 13 * 14 * Copyright © Arnaud Martin, Antoine Pitrou et Philippe Rivière. 15 * List of authors detailed in "copyright_fr.html" file. 16 * E-mail : agora@sig.premier-ministre.gouv.fr 17 * Web site : http://www.agora.gouv.fr 18 *****************************************************/ 19 // Ce fichier ne sera execute qu'une fois 20 if (defined("_INC_FORUM")) 21 return; 22 23 define("_INC_FORUM", "1"); 24 25 require_once (dirname(__FILE__). "/ecrire/include/bd/inc_article_factory.php"); 26 require_once (dirname(__FILE__). "/ecrire/include/bd/inc_breve_factory.php"); 27 require_once (dirname(__FILE__). "/ecrire/include/bd/inc_groupe_mot_factory.php"); 28 require_once (dirname(__FILE__). "/ecrire/include/bd/inc_profil_factory.php"); 29 require_once (dirname(__FILE__). "/ecrire/include/bd/inc_mot_factory.php"); 30 require_once (dirname(__FILE__). "/ecrire/include/bd/inc_forum_factory.php"); 31 32 include_once ("ecrire/inc_meta.php"); 33 include_once ("ecrire/inc_admin.php"); 34 include_once ("ecrire/inc_acces.php"); 35 include_once ("ecrire/inc_texte.php"); 36 include_once ("ecrire/inc_filtres.php"); 37 include_once ('ecrire/inc_lang.php'); // pour lang_select 38 include_once ("ecrire/inc_mail.php"); 39 include_once ("ecrire/inc_barre.php"); 40 41 if (@file_exists("inc-urls.php")) { 42 include_once ("inc-urls.php"); 43 } 44 else { 45 include_local ("inc-urls-dist.php"); 46 } 47 48 // dupliquee dans ecrire/articles.php ; mais je ne sais pas ou l'installer (Fil)... 49 function get_forums_publics ($id_article = 0) { 50 $forums_publics = lire_meta("forums_publics"); 51 52 if ($id_article) { 53 $articleMetier = &recuperer_instance_article(); 54 $loadOK = $articleMetier->loadLightWeight($id_article); 55 if (PEAR::isError($loadOK)) { 56 die ($loadOK->getMessage()); 57 } 58 else { 59 $forums_publics = $articleMetier->getAccepterForum(); 60 } 61 } 62 else { 63 $forums_publics = lire_meta("forums_publics"); 64 } 65 66 return $forums_publics; 67 } 68 69 function afficher_petits_logos_mots ($id_mot) { 70 $racine = "IMG/moton$id_mot"; 71 72 if (@file_exists("$racine.gif")) { 73 $image = "$racine.gif"; 74 } 75 elseif (@file_exists("$racine.jpg")) { 76 $image = "$racine.jpg"; 77 } 78 elseif (@file_exists("$racine.png")) { 79 $image = "$racine.png"; 80 } 81 82 if ($image) { 83 $taille = getimagesize($image); 84 $largeur = $taille[0]; 85 $hauteur = $taille[1]; 86 if ($largeur < 100 AND $hauteur < 100) 87 return "<IMG SRC='$image' align='middle' WIDTH='$largeur' HEIGHT='$hauteur' HSPACE='1' VSPACE='1' ALT=' ' BORDER=0 class='spip_image'> "; 88 else 89 return ""; 90 } 91 else { 92 return ""; 93 } 94 } 95 96 function decoder_hash_forum ($email, $hash) { 97 if (!$email OR !$hash) 98 return false; 99 100 //-----------Zone de modification Clever Age elebescond--------------- 101 $auteurMetier = &recuperer_instance_auteur(); 102 $allAuteurs = $auteurMetier->getAllForEmail($email); 103 104 if (PEAR::isError($allAuteurs)) { 105 die ($allAuteurs->getMessage()); 106 } 107 108 while (list(, $auteurMetier) = each($allAuteurs)) { 109 if (verifier_action_auteur("forum public $email", $hash, $auteurMetier->getAuteurId())) { 110 $ok = true; 111 break; 112 } 113 } 114 115 if ($ok) 116 return $row; 117 else 118 return false; 119 } 120 121 function forum_abonnement ($retour) { 122 if ($GLOBALS['auteur_session']) 123 return true; // autoriser le formulaire 124 else { 125 include_local ("inc-login.php"); 126 127 $message_login = _T('forum_vous_enregistrer'). '<a href="spip_pass.php" target="spip_pass" title="' . _T('forum_vous_enregistrer'). '" onclick="' . "javascript:window.open(this.href, 'spip_pass', 'scrollbars=yes, resizable=yes, width=480, height=450'); return false;\">" . _T('forum_vous_inscrire'). "<br>\n"; 128 login('', false, $message_login); 129 return false; 130 } 131 } 132 133 // 134 // Afficher le formulaire d'edition de forum en fonction du contexte 135 // 136 137 function retour_forum ($id_rubrique, $id_parent, $id_article, $id_breve, $id_syndic, $titre = '') { 138 global $REQUEST_URI, $HTTP_GET_VARS, $PATH_TRANSLATED, $REMOTE_ADDR, $id_message; 139 global $new, $redac, $afficher_groupe, $afficher_texte; 140 global $spip_forum_user; 141 142 /* Ajout S.PETIT */ 143 if ($id_rubrique < 0) 144 $id_rubrique = 0; 145 146 if ($id_parent < 0) 147 $id_parent = 0; 148 149 if ($id_article < 0) 150 $id_article = 0; 151 152 if ($id_breve < 0) 153 $id_breve = 0; 154 155 if ($id_syndic < 0) 156 $id_syndic = 0; 157 /* fin zone d'ajout S.PETIT */ 158 159 $forums_publics = get_forums_publics($id_article); 160 161 if ($forums_publics == "non") 162 return; 163 164 $lien = substr($REQUEST_URI, strrpos($REQUEST_URI, '/') + 1); 165 166 $retour = $HTTP_GET_VARS['retour']; 167 168 if (!$retour) 169 $retour = rawurlencode($lien); 170 171 /**************** Modification elebescond@clever-age.com *************/ 172 if (($forums_publics == 'abo_priori') || ($forums_publics == 'abo_posteriori')) { 173 if (!forum_abonnement($retour)) 174 return; 175 } 176 /* 177 if ($forums_publics == 'abo') { 178 if (!forum_abonnement($retour)) return; 179 } 180 */ 181 /**************** Fin modification elebescond@clever-age.com *************/ 182 183 $ret .= "\n<a name='formulaire_forum'></a>\n"; 184 185 /**************** Modification elebescond@clever-age.com *************/ 186 if (($forums_publics == 'priori')) { 187 $ret .= _T('forum_info_modere'). "<p>"; 188 } 189 /* 190 if ($forums_publics == "pri") { 191 $ret.= _T('forum_info_modere')."<p>"; 192 } 193 */ 194 /**************** Fin modification elebescond@clever-age.com *************/ 195 196 // Recuperer le message a previsualiser 197 if ($id_message = intval($id_message)) { 198 //----------Modification Clever Age elebescond@clever-age.com----------------- 199 $forumMetier = &recuperer_instance_forum(); 200 $loadOK = $forumMetier->load($id_message); 201 202 if (PEAR::isError($loadOK)) { 203 die ($loadOK->getMessage()); 204 } 205 else { 206 if ($forumMetier->getIp() == "$REMOTE_ADDR") { 207 $titre = $forumMetier->getTitre(); 208 $texte = $forumMetier->getTexte(); 209 $auteur = $forumMetier->getAuteur(); 210 $email_auteur = $forumMetier->getEmailAuteur(); 211 $nom_site_forum = $forumMetier->getNomSite(); 212 $url_site = $forumMetier->getUrlSite(); 213 } 214 } 215 216 if ($afficher_texte != 'non') { 217 $ret .= "<div class='spip_encadrer'>"; 218 219 if ($afficher_texte != "non") { 220 $ret .= "<div style='font-size: 120%; font-weigth: bold;'>" . typo($titre). "</div>"; 221 $ret .= "<p /><strong><a href='mailto:" . entites_html($email_auteur). "' title='" . _T('ecrire'). "'>" . typo($auteur). "</a></strong>"; 222 $ret .= "<p />" . propre($texte). "<p />"; 223 } 224 225 $ret .= "<a href='" . entites_html($url_site). "' title='" . _T('visiter'). "'>" . typo($nom_site_forum). "</a>"; 226 227 // Verifier mots associes au message 228 $motMetier = &recuperer_instance_mot(); 229 $allMots = $motMetier->getAllForForumId($id_message); 230 231 if (PEAR::isError($allMots)) { 232 die ($allMots->getMessage()); 233 } 234 235 if (sizeOf($allMots) > 0) 236 $ret .= "<p>" . _T('forum_avez_selectionne'); 237 238 while (list(, $motMetier) = each($allMots)) { 239 $id_mot = $motMetier->getMotId(); 240 $type_mot = $motMetier->getType(); 241 $titre_mot = $motMetier->getTitre(); 242 $les_mots[$id_mot] = true; 243 $presence_mots = true; 244 245 $ret .= "<li> $type_mot : <strong>$titre_mot</strong>"; 246 } 247 248 $ret .= "\n<form action='$lien' name='formulaire' method='post'>"; 249 250 if (strlen($texte) < 10 AND !$presence_mots) { 251 $ret .= "<div class='erreur_forum'>" . _T('forum_attention_dix_caracteres'). "</div>\n"; 252 } 253 else if (strlen($titre) < 3 AND $afficher_texte <> "non") { 254 $ret .= "<div class='erreur_forum'>" . _T('forum_attention_trois_caracteres'). "</div>\n"; 255 } 256 else { 257 $ret .= "\n<div class='bouton_forum'><input type='submit' name='confirmer' class='spip_bouton' value='" . _T('forum_message_definitif'). "' /></div>"; 258 } 259 $ret .= "</div>\n<br />"; 260 } 261 } 262 else { 263 // Si premiere edition, initialiser le titre et l'auteur 264 265 if (!$titre) { 266 /**************** Modification elebescond@clever-age.com *************/ 267 if ($id_parent) { 268 $forumMetier = &recuperer_instance_forum(); 269 $loadOK = $forumMetier->load($id_parent); 270 271 if (PEAR::isError($loadOK)) { 272 die ($loadOK->getMessage()); 273 } 274 $titre = '> ' . ereg_replace('^[>[:space:]]*', '', $forumMetier->getTitre()); 275 } 276 else if ($id_rubrique) { 277 $rubriqueMetier = &recuperer_instance_rubrique(); 278 $loadOK = $rubriqueMetier->load($id_rubrique); 279 280 if (PEAR::isError($loadOK)) { 281 die ($loadOK->getMessage()); 282 } 283 $titre = '> ' . ereg_replace('^[>[:space:]]*', '', $rubriqueMetier->getTitre()); 284 } 285 else if ($id_article) { 286 $articleMetier = &recuperer_instance_article(); 287 $loadOK = $articleMetier->load($id_article); 288 289 if (PEAR::isError($loadOK)) { 290 die ($loadOK->getMessage()); 291 } 292 $titre = '> ' . ereg_replace('^[>[:space:]]*', '', $articleMetier->getTitre()); 293 } 294 else if ($id_breve) { 295 $breveMetier = &recuperer_instance_breve(); 296 $loadOK = $breveMetier->load($id_breve); 297 298 if (PEAR::isError($loadOK)) { 299 die ($loadOK->getMessage()); 300 } 301 $titre = '> ' . ereg_replace('^[>[:space:]]*', '', $breveMetier->getTitre()); 302 } 303 else if ($id_syndic) { 304 $syndicMetier = &recuperer_instance_syndic(); 305 $loadOK = $syndicMetier->load($id_syndic); 306 307 if (PEAR::isError($loadOK)) { 308 die ($loadOK->getMessage()); 309 } 310 $titre = '> ' . ereg_replace('^[>[:space:]]*', '', $syndicMetier->getTitre()); 311 } 312 else 313 $titre_select = addslashes(_T('forum_titre_erreur')); 314 } 315 316 if ($spip_forum_user && is_array($cookie_user = unserialize($spip_forum_user))) { 317 $auteur = $cookie_user['nom']; 318 $email_auteur = $cookie_user['email']; 319 } 320 else { 321 $auteur = $GLOBALS['auteur_session']['nom']; 322 $email_auteur = $GLOBALS['auteur_session']['email']; 323 } 324 $ret .= "\n<form action='$lien' name='formulaire' method='post'>"; 325 } 326 327 $ret .= "\n"; 328 329 // Generation d'une valeur de securite pour validation 330 $seed = (double)(microtime() + 1) * time() * 1000000; 331 @mt_srand ($seed); 332 $alea = @mt_rand(); 333 334 if (!$alea) { 335 srand ($seed); 336 $alea = rand(); 337 } 338 339 $id_rubrique = intval($id_rubrique); 340 $id_parent = intval($id_parent); 341 $id_article = intval($id_article); 342 $id_breve = intval($id_breve); 343 $id_syndic = intval($id_syndic); 344 $hash = calculer_action_auteur("ajout_forum $id_rubrique $id_parent $id_article $id_breve $id_syndic $alea"); 345 346 // Afficher le formulaire d'edition 347 $titre = entites_html($titre); 348 $texte = entites_html($texte); 349 350 if ($afficher_texte == "non") { 351 $ret .= "\n<input type='hidden' name='titre' VALUE=\"$titre\" />"; 352 } 353 else { 354 $ret .= "<fieldset>"; 355 $ret .= "<legend class='spip_form_legend'>" . _T('form_message_forum'). "</legend>"; 356 $ret .= "\n<label for=\"titre\"><strong>" . _T('forum_titre'). "</strong></label><br />"; 357 $ret .= "\n <input type='text' class='forml' name='titre' id='titre' value=\"$titre\" size='40' />"; 358 } 359 360 $ret .= "\n<input type='hidden' name='id_message' value=\"$id_message\" />"; 361 $ret .= "\n<input type='hidden' name='ajout_forum' value=\"oui\" />"; 362 $ret .= "\n<input type='hidden' name='forum_id_rubrique' value=\"$id_rubrique\" />"; 363 $ret .= "\n<input type='hidden' name='forum_id_parent' value=\"$id_parent\" />"; 364 $ret .= "\n<input type='hidden' name='forum_id_article' value=\"$id_article\" />"; 365 $ret .= "\n<input type='hidden' name='forum_id_breve' value=\"$id_breve\" />"; 366 $ret .= "\n<input type='hidden' name='forum_id_syndic' value=\"$id_syndic\" />"; 367 $ret .= "\n<input type='hidden' name='alea' value=\"$alea\" />"; 368 $ret .= "\n<input type='hidden' name='hash' value=\"$hash\" />"; 369 $ret .= "\n<input type='hidden' name='retour_forum' value=\"$retour\" />"; 370 $ret .= "\n<input type='hidden' name='alerte_email_stop' value=\"oui\" />"; 371 372 if ($new != "oui" AND $redac != "oui") 373 $ret .= "\n<input type='hidden' name='new' value=\"oui\" />"; 374 375 if ($new == "oui") 376 $ret .= "\n<input type='hidden' name='redac' value=\"oui\" />"; 377 378 if ($afficher_texte != "non") { 379 $ret .= "\n<div class='spip_encadrer'><label for=\"texte\"><strong>" . _T('forum_texte'). "</strong></label>\n"; 380 $ret .= _T('forum_creer_paragraphes'); 381 //$ret .= "<br />\n"; 382 //$ret .= afficher_barre('formulaire', 'texte', true); 383 $ret .= "<textarea name='texte' id='texte' rows='12' class='forml' cols='40'>"; 384 $ret .= $texte; 385 $ret .= "\n</textarea></div>\n"; 386 $ret .= "</fieldset>"; 387 } 388 389 // Gestion des mots-cles 390 391 $mots_cles_forums = lire_meta("mots_cles_forums"); 392 393 if ($mots_cles_forums == "oui") { 394 if ($id_rubrique > 0) 395 $table = "rubriques"; 396 else if ($id_article > 0) 397 $table = "articles"; 398 else if ($id_breve > 0) 399 $table = "breves"; 400 else if ($id_syndic > 0) 401 $table = "syndic"; 402 403 if ($afficher_groupe) { 404 $afficher_groupe = join($afficher_groupe, ","); 405 $selectionner_groupe = "AND id_groupe IN ($afficher_groupe)"; 406 } 407 if ($table) { 408 //-----------Zone de modification Clever Age elebescond--------------- 409 $groupeMotMetier = &recuperer_instance_groupe_mot(); 410 $allGroupeMot = $groupeMotMetier->getAllForforumAndTableAndGroupId("'oui'", $table, $selectionner_groupe); 411 412 if (PEAR::isError($allGroupeMot)) { 413 die ($allGroupeMot->getMessage()); 414 } 415 while (list(, $groupeMotMetier) = each($allGroupeMot)) { 416 $id_groupe = $groupeMotMetier->getGroupeId(); 417 $titre_groupe = $groupeMotMetier->getTitre(); 418 $unseul_groupe = $groupeMotMetier->getUnSeul(); 419 420 $motMetier = &recuperer_instance_mot(); 421 $allMot = $motMetier->getAllForGroupIdAndMotId($id_groupe); 422 423 if (PEAR::isError($allMot)) { 424 die ($allMot->getMessage()); 425 } 426 427 $total_rows = sizeOf($allMot); 428 if ($total_rows > 0) { 429 $ret .= "\n<p><div class='spip_encadrer'>"; 430 $ret .= "<strong>$titre_groupe :</strong>"; 431 432 //$ret .= "<table cellpadding=0 cellspacing=0 border=0 width='100%'>\n"; 433 //$ret .= "<tr><td width='47%' valign='top'><font face='Verdana,Arial,Helvetica,sans-serif' size=2>"; 434 $i = 0; 435 $ret .= "<fieldset>"; 436 $ret .= "<legend class='spip_form_legend'>" . _T('form_message_forum_mot_cle'). "</legend>"; 437 438 while (list(, $motMetier) = each($allMot)) { 439 $id_mot = $motMetier->getMotId(); 440 $titre_mot = propre($motMetier->getTitre()); 441 $type_mot = propre($motMetier->getType()); 442 $descriptif_mot = $motMetier->getDescriptif(); 443 444 if ($i >= ($total_rows / 2)AND $i < $total_rows) { 445 $i = $total_rows + 1; 446 //$ret .= "</font></td><td width='6%'> </td><td width='47%' valign='top'><font face='Verdana,Arial,Helvetica,sans-serif' size=2>"; 447 $ret .= "</font><font face='Verdana,Arial,Helvetica,sans-serif' size=2>"; 448 } 449 450 if ($les_mots[$id_mot]) 451 $checked = "checked"; 452 else 453 $checked = ""; 454 455 if ($unseul_groupe == 'oui') { 456 $ret .= "<input type='radio' name='ajouter_mot[$id_groupe][]' value='$id_mot' $checked id='mot$id_mot' /> "; 457 } 458 else { 459 $ret .= "<input type='checkbox' name='ajouter_mot[$id_groupe][]' value='$id_mot' $checked id='mot$id_mot' /> "; 460 } 461 462 $ret .= afficher_petits_logos_mots($id_mot); 463 $ret .= "<strong><label for='mot$id_mot'>$titre_mot</label></strong><br>"; 464 465 if (strlen($descriptif_mot) > 0) 466 $ret .= "$descriptif_mot<br>"; 467 $i++; 468 } 469 470 //$ret .= "</font></td></tr></table>"; 471 $ret .= "</font>"; 472 $ret .= "</fieldset>"; 473 $ret .= "</div>"; 474 } 475 } 476 } 477 } 478 479 // Edition du texte du forum 480 if ($afficher_texte != "non") { 481 $ret .= "\n<br /><div class='spip_encadrer'>" . _T('forum_lien_hyper'). "<br />\n"; 482 $ret .= _T('forum_page_url'); 483 $ret .= "<br />\n<label for=\"nom_site_forum\">" . _T('forum_titre'). "</label>"; 484 $ret .= "<br />\n<input type='text' class='forml' name='nom_site_forum' id='nom_site_forum' value=\"" . entites_html($nom_site_forum). "\" size='40' /><br />"; 485 486 if (!$url_site) 487 $url_site = "http://"; 488 489 $ret .= "<br />\n<label for=\"url_site\">" . _T('forum_url'). "</label>"; 490 $ret .= "<br />\n<input type='text' class='forml' name='url_site' id='url_site' value=\"" . entites_html($url_site). "\" size='40' /></div>"; 491 492 $ret .= "\n<br /><div class='spip_encadrer'>" . _T('forum_qui_etes_vous'). "<br />"; 493 494 if (($forums_publics == "abo_priori") || ($forums_publics == "abo_posteriori")) 495 $disabled = ' disabled="disabled"'; 496 497 $ret .= "<br />\n<label for=\"auteur\">" . _T('forum_votre_nom'). "</label>"; 498 $ret .= "<br />\n<input type='text' class='forml' name='auteur' id='auteur' value=\"" . entites_html($auteur). "\" size='40'$disabled /><br />\n"; 499 500 $ret .= "<br />\n<label for=\"email_auteur\">" . _T('forum_votre_email'). "</label>"; 501 $ret .= "<br />\n<input type='text' class='forml' name='email_auteur' id='email_auteur' value=\"" . entites_html($email_auteur). "\" size='40'$disabled /></div>"; 502 } 503 504 global $alerte_email; 505 global $alerte_email_init; 506 global $alerte_email_stop; 507 508 if ($alerte_email_init == 'oui' AND $alerte_email_stop == null) { 509 $alerte_email = 'oui'; 510 } 511 512 $ret .= "<fieldset>"; 513 $ret .= "<legend class='spip_form_legend'>" . _T('form_message_forum_alert'). "</legend>"; 514 515 if ($alerte_email == 'oui') { 516 $ret .= "<br />\n<input type='checkbox' name='alerte_email' id='alerte_email' value=\"oui\" checked /><label for=\"alerte_email\">" . _T('demande_avertissement_mail'). "</label>"; 517 } 518 else { 519 $ret .= "<br />\n<input type='checkbox' name='alerte_email' id='alerte_email' value=\"oui\" /><label for=\"alerte_email\">" . _T('demande_avertissement_mail'). "</label>"; 520 } 521 522 $ret .= "</fieldset>"; 523 524 // Bouton de validation 525 if ($afficher_texte != "non") 526 $ret .= "\n<br /><div class='bouton_forum'><input type='submit' name='Valider' class='spip_bouton' value='" . _T('forum_voir_avant'). "' /></div>"; 527 else 528 $ret .= "\n<br /><div class='bouton_forum'><input type='submit' name='Valider' class='spip_bouton' value='" . _T('forum_valider'). "' /></div>"; 529 530 $ret .= "</form>"; 531 532 return $ret; 533 } 534 535 // 536 // Fonction appelee a l'ajout d'un message 537 // (previsualisation et validation finale) 538 // 539 540 function ajout_forum () { 541 global $texte, $titre, $nom_site_forum, $url_site, $auteur, $email_auteur, $retour_forum, $id_message, $confirmer, $alerte_email; 542 global $forum_id_rubrique, $forum_id_parent, $forum_id_article, $forum_id_breve, $forum_id_auteur, $forum_id_syndic, $alea, $hash; 543 global $auteur_session; 544 global $alerte_email; 545 global $ajouter_mot, $new; 546 global $REQUEST_URI, $HTTP_COOKIE_VARS, $REMOTE_ADDR; 547 global $afficher_texte; 548 549 if (!$GLOBALS['db_ok']) { 550 die ("<h4>" . _T('forum_probleme_database'). "</h4>"); 551 } 552 553 $id_message = intval($id_message); 554 $retour_forum = rawurldecode($retour_forum); 555 $forum_id_article = intval($forum_id_article); 556 $forum_id_rubrique = intval($forum_id_rubrique); 557 $forum_id_parent = intval($forum_id_parent); 558 $forum_id_breve = intval($forum_id_breve); 559 $forum_id_syndic = intval($forum_id_syndic); 560 561 $forums_publics = get_forums_publics($forum_id_article); 562 $validation_finale = (strlen($confirmer) > 0 OR ($afficher_texte == 'non' AND $ajouter_mot)); 563 564 // ne pas autoriser de changement de nom si le forum est sur abonnement 565 if ($forums_publics == "abo_priori" OR $forums_publics == "abo_posteriori") { 566 if ($auteur_session) { 567 $auteurMetier = &recuperer_instance_auteur(); 568 $loadOK = $auteurMetier->load($auteur_session['id_auteur']); 569 570 if (PEAR::isError($loadOK)) { 571 die ($loadOK->getMessage()); 572 } 573 574 $profilMetier = &recuperer_instance_profil(); 575 $monProfil = $profilMetier->getProfilForIntitule('texte_statut_poubelle'); 576 if (PEAR::isError($monProfil)OR ($auteurMetier->getProfil() == $monProfil->getPoids())) { 577 die ("<h4>" . _T('forum_acces_refuse'). "</h4>" . _T('forum_cliquer_retour', array('retour_forum' => $retour_forum)). "<p>"); 578 } 579 } 580 else { 581 die ("<h4>" . _T('forum_non_inscrit'). "</h4>" . _T('forum_cliquer_retour', array('retour_forum' => $retour_forum)). "<p>"); 582 } 583 584 // Ne pas autoriser de changement de nom si le forum est sur abonnement 585 $auteur = $auteur_session['nom']; 586 $email_auteur = $auteur_session['email']; 587 } 588 589 //----------Modification Clever Age elebescond@clever-age.com--------- 590 if ($validation_finale) { 591 if (!verifier_action_auteur("ajout_forum $forum_id_rubrique $forum_id_parent $forum_id_article $forum_id_breve $forum_id_syndic $alea", $hash)) { 592 /**************** Début ajout tbeaumanoir@clever-age.com ****************/ 593 if (!strstr($retour_forum, 'recalcul=oui')) { 594 if (!strstr($retour_forum, '?')) { 595 $retour_forum .= '?'; 596 } 597 else { 598 $retour_forum .= '&'; 599 } 600 $retour_forum .= 'recalcul=oui'; 601 } 602 /**************** Fin ajout tbeaumanoir@clever-age.com ****************/ 603 @header ("Location: $retour_forum"); 604 exit; 605 } 606 607 if ((strlen($texte) + strlen($titre) + strlen($nom_site_forum) + strlen($url_site) + strlen($auteur) + strlen($email_auteur)) > 20 * 1024) { 608 die ("<h4>" . _T('forum_message_trop_long'). "</h4>\n" . _T('forum_cliquer_retour', array('retour_forum' => $retour_forum)). "<p>"); 609 } 610 611 $forumMetier = &recuperer_instance_forum(); 612 $deleteFichierOK = $forumMetier->deleteFichier($forum_id_article, $forum_id_rubrique, $forum_id_breve, $forum_id_parent, "CACHE"); 613 if (PEAR::isError($deleteFichierOK)) { 614 die ($deleteFichierOK->getMessage()); 615 } 616 } 617 618 switch ($forums_publics) { 619 case "non": 620 $etat = "off"; 621 break; 622 623 case "priori": 624 $etat = "prop"; 625 break; 626 627 case "abo_priori": 628 $etat = "prop"; 629 break; 630 631 default: 632 $etat = "publie"; 633 break; 634 } 635 636 if ($GLOBALS['auteur_session']['profil'] == null) { 637 $profil = ''; 638 } 639 else { 640 $profil = $GLOBALS['auteur_session']['profil']; 641 } 642 643 if (!$id_auteur) 644 $id_auteur = $GLOBALS['auteur_session']['id_auteur']; 645 646 if ($new == "oui") { 647 $nouveau_document = true; 648 649 if ($HTTP_GET_VARS['titre']) { 650 $titre = "> " . rawurldecode($HTTP_GET_VARS['titre']); 651 } 652 653 //----------Modification Clever Age elebescond@clever-age.com----------------- 654 $forumMetier = &recuperer_instance_forum(); 655 $forumMetier->setTitre($titre); 656 $forumMetier->setIp($REMOTE_ADDR); 657 $profilMetier = &recuperer_instance_profil(); 658 $monProfil = $profilMetier->getProfilForIntitule('item_administrateur'); 659 $monProfilNonAbonne = $profilMetier->getProfilForIntitule('item_non_abonne'); 660 661 if ($profil >= $monProfil->getPoids()) { 662 $forumMetier->setStatut('publie'); 663 } 664 else { 665 $forumMetier->setStatut('redac'); 666 } 667 668 if ($profil > 0) { 669 $forumMetier->setProfilAuteur($profil); 670 } 671 else { 672 $forumMetier->setProfilAuteur($monProfilNonAbonne->getPoids()); 673 } 674 if ($forumMetier->isArchive($forum_id_article, $forum_id_rubrique)) { 675 $createOK = $forumMetier->create(); 676 if (PEAR::isError($createOK)) { 677 die ($createOK->getMessage()); 678 } 679 else { 680 $id_message = $forumMetier->getForumId(); 681 } 682 } 683 } 684 685 // Ajouter les mots-cles 686 687 //-----------Zone de modification Clever Age elebescond--------------- 688 $motMetier = &recuperer_instance_mot(); 689 $deleteOK = $motMetier->deleteMotTable('forum', 'id_forum', $id_message); 690 691 if (PEAR::isError($deleteOK)) { 692 die ($deleteOK->getMessage()); 693 } 694 695 if ($ajouter_mot) { 696 for (reset($ajouter_mot); $key = key($ajouter_mot); next($ajouter_mot)) { 697 //--------Zone de modification elebescond@clever-age.com ---------------------- 698 $les_mots .= join(",", $ajouter_mot[$key]); 699 } 700 701 $les_mots = explode(",", $les_mots); 702 for ($index = 0; $index < count($les_mots); $index++) { 703 $le_mot = $les_mots[$index]; 704 705 if ($le_mot > 0) 706 $motMetier = &recuperer_instance_mot(); 707 708 $addMotOK = $motMetier->addMot("forum", "id_forum", $le_mot, $id_message); 709 if (PEAR::isError($addMotOK)) { 710 die ($addMotOK->getMessage()); 711 } 712 } 713 } 714 715 $forumMetier = &recuperer_instance_forum(); 716 $loadOK = $forumMetier->load($id_message); 717 718 if (PEAR::isError($loadOK)) { 719 die ($loadOK->getMessage()); 720 } 721 else { 722 $forumMetier->setParentId($forum_id_parent); 723 $forumMetier->setRubriqueId($forum_id_rubrique); 724 $forumMetier->setArticleId($forum_id_article); 725 $forumMetier->setBreveId($forum_id_breve); 726 $forumMetier->setSyndicId($forum_id_syndic); 727 $forumMetier->setTitre($titre); 728 $forumMetier->setTexte($texte); 729 $forumMetier->setNomSite($nom_site_forum); 730 $forumMetier->setUrlSite($url_site); 731 732 if ($auteur == null) 733 $forumMetier->setAuteur(_T('forum_anonymous')); 734 else 735 $forumMetier->setAuteur($auteur); 736 737 $forumMetier->setEmailAuteur($email_auteur); 738 739 if ($email_auteur == null) 740 $forumMetier->setEmailAlerte('non'); 741 else 742 $forumMetier->setEmailAlerte($alerte_email); 743 744 $forumMetier->setIp($REMOTE_ADDR); 745 $profilMetier = &recuperer_instance_profil(); 746 $monProfil = $profilMetier->getProfilForIntitule('item_administrateur'); 747 748 if ($profil >= $monProfil->getPoids()) { 749 $forumMetier->setStatut('publie'); 750 } 751 else { 752 $forumMetier->setStatut('redac'); 753 } 754 755 if ($id_auteur != null) 756 $forumMetier->setAuteurId($id_auteur); 757 else 758 $forumMetier->setAuteurId(0); 759 760 ; 761 $updateOK = $forumMetier->update(); 762 if (PEAR::isError($updateOK)) { 763 die ($updateOK->getMessage()); 764 } 765 } 766 767 if ($forums_publics == 'abo_priori' OR $forums_publics == 'abo_posteriori') { 768 if ($auteur_session) { 769 $statut = $auteur_session['statut']; 770 $profil = $auteur_session['profil']; 771 $profilMetier = &recuperer_instance_profil(); 772 $monProfil = $profilMetier->getProfilForIntitule('texte_statut_poubelle'); 773 if ($profil == $monProfil->getPoids()) { 774 die ("<h4>" . _T('forum_acces_refuse'). "</h4>" . _T('forum_cliquer_retour', array('retour_forum' => $retour_forum)). "<p>"); 775 } 776 } 777 else { 778 die ("<h4>" . _T('forum_non_inscrit'). "</h4>" . _T('forum_cliquer_retour', array('retour_forum' => $retour_forum)). "<p>"); 779 } 780 } 781 782 if ($validation_finale) { 783 //----------Modification Clever Age elebescond@clever-age.com----------------- 784 $forumMetier = &recuperer_instance_forum(); 785 $loadOK = $forumMetier->load($id_message); 786 787 if (PEAR::isError($loadOK)) { 788 die ($loadOK->getMessage()); 789 } 790 else { 791 $profilMetier = &recuperer_instance_profil(); 792 $monProfil = $profilMetier->getProfilForIntitule('item_administrateur'); 793 794 if ($profil >= $monProfil->getPoids()) { 795 $forumMetier->setStatut('publie'); 796 } 797 else { 798 $forumMetier->setStatut($etat); 799 } 800 801 $updateOK = $forumMetier->update(); 802 803 if (PEAR::isError($updateOK)) { 804 die ($updateOK->getMessage()); 805 } 806 807 //envoie d'un mail d'avertissement �l'auteur du message pere 808 if ($forumMetier->getParentId() != 0) { 809 $forumPere = &recuperer_instance_forum(); 810 $loadOK = $forumPere->load($forumMetier->getParentId()); 811 812 if (PEAR::isError($loadOK)) { 813 die ($loadOK->getMessage()); 814 } 815 816 if (isset($GLOBALS['redirection_forum'])) { 817 //$redirect = $GLOBALS['redirection_forum']?.id_forum$GLOBALS['HTTP_GET_VARS']; 818 } 819 else { 820 global $id_article; 821 global $id_breve; 822 global $id_rubiquee; 823 824 if (isset($id_article)) { 825 $url = ereg_replace('^/', '', generer_url_article($id_article)); 826 $adresse_site = lire_meta("adresse_site"); 827 $redirect = "$adresse_site/$url"; 828 } 829 830 if (isset($id_breve)) { 831 $url = ereg_replace('^/', '', generer_url_breve($id_breve)); 832 $adresse_site = lire_meta("adresse_site"); 833 $redirect = "$adresse_site/$url"; 834 } 835 if (isset($id_rubrique)) { 836 $url = ereg_replace('^/', '', generer_url_rubrique($id_rubrique)); 837 $adresse_site = lire_meta("adresse_site"); 838 $redirect = "$adresse_site/$url"; 839 } 840 } 841 if ($forumMetier->getStatut() == 'publie') { 842 $forumPere->sendMail($forumMetier, $redirect); 843 } 844 } 845 } 846 847 // Poser un cookie pour ne pas retaper le nom / email 848 $cookie_user = array('nom' => $auteur, 'email' => $email_auteur); 849 spip_setcookie('spip_forum_user', serialize($cookie_user)); 850 851 // Envoi d'un mail aux auteurs 852 $prevenir_auteurs = lire_meta("prevenir_auteurs"); 853 854 if ($prevenir_auteurs == "oui" AND $afficher_texte != "non") { 855 if ($id_article = $forum_id_article) { 856 $url = ereg_replace('^/', '', generer_url_article($id_article)); 857 $adresse_site = lire_meta("adresse_site"); 858 $nom_site_spip = lire_meta("nom_site"); 859 $url = "$adresse_site/$url"; 860 $courr = _T('form_forum_message_auto'). "\n\n"; 861 $parauteur = ''; 862 863 if (strlen($auteur) > 2) { 864 $parauteur = " " . _T('forum_par_auteur', array('auteur' => $auteur)); 865 if ($email_auteur) 866 $parauteur .= " <$email_auteur>"; 867 } 868 869 $courr .= _T('forum_poste_par', array('parauteur' => $parauteur)). "\n"; 870 $courr .= _T('forum_ne_repondez_pas'). "\n"; 871 $courr .= "$url\n"; 872 $courr .= "\n\n" . $titre . "\n\n" . textebrut(propre($texte)). "\n\n$nom_site_forum\n$url_site\n"; 873 $sujet = "[$nom_site_spip] [" . _T('forum_forum'). "] $titre"; 874 875 $auteurMetier = &recuperer_instance_auteur(); 876 $allAuteurs = $auteurMetier->getAllForArticleId($id_article); 877 878 if (PEAR::isError($allAuteurs)) { 879 die ($allAuteurs->getMessage()); 880 } 881 while (list(, $auteurMetier) = each($allAuteurs)) { 882 $email_auteur = trim($auteurMetier->getEmail()); 883 884 if (strlen($email_auteur) < 3) 885 continue; 886 envoyer_mail($email_auteur, $sujet, $courr); 887 } 888 } 889 } 890 891 if (!strstr($retour_forum, 'recalcul=oui')) { 892 if (!strstr($retour_forum, '?')) { 893 $retour_forum .= '?'; 894 } 895 else { 896 $retour_forum .= '&'; 897 } 898 $retour_forum .= 'recalcul=oui'; 899 } 900 @header ("Location: $retour_forum"); 901 exit; 902 } 903 } 904 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Sat Feb 24 14:40:03 2007 | par Balluche grâce à PHPXref 0.7 |