[ Index ] |
|
Code source de SPIP Agora 1.4 |
1 <?php 2 /******* Fichier Ajout? MAPPING guillaume.grason@diplomatie.gouv.fr *******/ 3 include ("inc.php"); 4 5 include_ecrire ("inc_documents.php"); 6 7 8 require_once 'inc_presentation.php'; 9 /* Ajout Clever Age / Antoine Ang?nieux / Couche m?tier */ 10 require_once (dirname(__FILE__)."/include/bd/inc_article_factory.php"); 11 require_once (dirname(__FILE__)."/include/bd/inc_document_factory.php"); 12 /* fin zone de modification Clever Age */ 13 14 include_ecrire ("inc_barre.php"); 15 16 $articles_surtitre = lire_meta("articles_surtitre"); 17 $articles_soustitre = lire_meta("articles_soustitre"); 18 $articles_descriptif = lire_meta("articles_descriptif"); 19 $articles_urlref = lire_meta("articles_urlref"); 20 $articles_chapeau = lire_meta("articles_chapeau"); 21 $articles_ps = lire_meta("articles_ps"); 22 $articles_redac = lire_meta("articles_redac"); 23 $articles_mots = lire_meta("articles_mots"); 24 $articles_modif = lire_meta("articles_modif"); 25 26 // securite 27 $id_article = intval($id_article); 28 $id_rubrique = intval($id_rubrique); 29 $lier_trad = intval($lier_trad); 30 unset ($flag_editable); 31 32 // 33 // Creation de l'objet article 34 // 35 36 # -- Edition d'un article existant 37 if ($id_article) { 38 39 //-----------MODIFICATION CLEVER AGE 40 $articleMetier = &recuperer_instance_article(); 41 $loadOK = $articleMetier->load($id_article); 42 if(PEAR::isError($loadOK)) { 43 die($loadOK->getMessage()); 44 } 45 46 $authorization = &recuperer_instance_authorization('isManagedRubriqueByAuteurId', $GLOBALS['connect_id_auteur'], array('rubriqueId' => $articleMetier->getRubriqueId())); 47 if (!$authorization->isAuthorizedAction()) { 48 echo _T('avis_acces_interdit'); 49 exit; 50 } 51 52 if ( $new_version != 'oui' ) 53 { 54 $authorization = &recuperer_instance_authorization('modifierArticle', $GLOBALS['connect_id_auteur'], array('id_article' => $id_article)); 55 if (!$authorization->isAuthorizedAction()) { 56 echo _T('avis_acces_interdit'); 57 exit; 58 } 59 } 60 else 61 { 62 $authorization = &recuperer_instance_authorization('creerVersionArticle', $GLOBALS['connect_id_auteur'], array('id_article' => $id_article)); 63 if (!$authorization->isAuthorizedAction()) { 64 echo _T('avis_acces_interdit'); 65 exit; 66 } 67 } 68 69 $maDate = new Date(); 70 $articleMetier->setModificationDate($maDate->getDate(DATE_FORMAT_ISO)); 71 $articleMetier->setAuteurModif($connect_id_auteur); 72 73 $updateOK = $articleMetier->update(); 74 if(PEAR::isError($updateOK)) { 75 die($updateOK->getMessage()); 76 } 77 78 $id_article_bloque = $id_article; // message pour inc_presentation 79 80 // Recuperer les donnees de l'article 81 82 $id_article = $articleMetier->getArticleId(); 83 $surtitre = $articleMetier->getSurtitre(); 84 $titre = $articleMetier->getTitre(); 85 $soustitre = $articleMetier->getSoustitre(); 86 $id_rubrique = $articleMetier->getRubriqueId(); 87 $descriptif = $articleMetier->getDescriptif(); 88 89 // TODO : les methodes getNomsSite et getUrlSite semblent ne rien retourner 90 $nom_site = $articleMetier->getNomSite(); 91 $url_site = $articleMetier->getUrlSite(); 92 93 $chapo = $articleMetier->getChapo(); 94 $texte = $articleMetier->getTexte(); 95 $ps = $articleMetier->getPs(); 96 $date = $articleMetier->getDate(); 97 $statut = $articleMetier->getStatut(); 98 $date_redac = $articleMetier->getRedactionDate(); 99 if (ereg("([0-9]{4})-([0-9]{2})-([0-9]{2})",$date_redac,$regs)){ 100 $mois_redac = $regs[2]; 101 $jour_redac = $regs[3]; 102 $annee_redac = $regs[1]; 103 if ($annee_redac > 4000) $annee_redac -= 9000; 104 } 105 $extra = $articleMetier->getExtra(); 106 107 $flag_auteur = $articleMetier->isAuthor($connect_id_auteur); 108 $flag_editable = true; 109 } 110 111 # -- Cr?ation d'un nouvel article 112 else if ($new=='oui') { 113 114 // Cr?ation d'un traduction d'un article existant 115 if ($lier_trad) { 116 // Pas de langue choisie par defaut 117 $changer_lang = ''; 118 119 // Recuperer les donnees de la traduction 120 $articleMetier = &recuperer_instance_article(); 121 $loadOK = $articleMetier->load($lier_trad); 122 if(PEAR::isError($loadOK)) { 123 die($loadOK->getMessage()); 124 } 125 else { 126 $surtitre = $articleMetier->getSurtitre(); 127 $titre = filtrer_entites(_T('info_nouvelle_traduction')).' '.$articleMetier->getTitre(); 128 $soustitre = $articleMetier->getSoustitre(); 129 $id_rubrique_trad = $articleMetier->getRubriqueId(); 130 $descriptif = $articleMetier->getDescriptif(); 131 $nom_site = $articleMetier->getNomSite(); 132 $url_site = $articleMetier->getUrlSite(); 133 $chapo = $articleMetier->getChapo(); 134 $texte = $articleMetier->getTexte(); 135 $ps = $articleMetier->getPs(); 136 $date = $articleMetier->getDate(); 137 $date_redac = $articleMetier->getRedactionDate(); 138 if (ereg("([0-9]{4})-([0-9]{2})-([0-9]{2})",$date_redac,$regs)) { 139 $mois_redac = $regs[2]; 140 $jour_redac = $regs[3]; 141 $annee_redac = $regs[1]; 142 if ($annee_redac > 4000) $annee_redac -= 9000; 143 } 144 $extra = $articleMetier->getExtra(); 145 } 146 147 $langues_autorisees = lire_meta('langues_multilingue'); 148 149 // Regler la langue, si possible 150 if (ereg(",$spip_lang,", ",$langues_autorisees,")) { 151 if (lire_meta('multi_articles') == 'oui') { 152 // Si le menu de langues est autorise sur les articles, 153 // on peut changer la langue quelle que soit la rubrique 154 $changer_lang = $spip_lang; 155 } 156 else if (lire_meta('multi_rubriques') == 'oui') { 157 // Chercher la rubrique la plus adaptee pour accueillir l'article 158 if (lire_meta('multi_secteurs') == 'oui') 159 $id_parent = 0; 160 else { 161 $rubriqueMetier = &recuperer_instance_rubrique(); 162 $loadOK = $rubriqueMetier->load($id_rubrique); 163 if(PEAR::isError($loadOK)) { 164 die($loadOK->getMessage()); 165 } 166 else { 167 $id_parent = $rubriqueMetier->getParentId(); 168 } 169 } 170 $rubriqueMetier = &recuperer_instance_rubrique(); 171 $rubriques = $rubriqueMetier->getAllForLangAndParentId($spip_lang, $id_parent); 172 if(PEAR::isError($rubriques)) { 173 die($rubriques->getMessage()); 174 } 175 if (list(, $rubrique) = each($rubriques)) { 176 $id_rubrique = $id_secteur = $rubrique->getRubriqueId(); 177 $changer_lang = 'herit'; 178 } 179 } 180 } 181 } 182 else { 183 // Nouvel article : titre par defaut 184 $titre = filtrer_entites(_T('art_info_nouvel_article', null, $id_rubrique)); 185 186 } 187 if (!$id_secteur) { 188 $rubriqueMetier = &recuperer_instance_rubrique(); 189 $loadOK = $rubriqueMetier->load($id_rubrique); 190 if(PEAR::isError($loadOK)) { 191 $id_secteur = null; 192 } 193 else { 194 $id_secteur = $rubriqueMetier->getSecteurId(); 195 } 196 } 197 $flag_editable = true; 198 } 199 200 if (!$flag_editable) { 201 die ("<H3>"._T('info_acces_interdit')."</H3>"); 202 } 203 204 if ($id_article && $id_document) { 205 $flag_document_editable = $articleMetier->hasDocument($id_document); 206 } else { 207 $flag_document_editable = false; 208 } 209 210 $modif_document = $GLOBALS['modif_document']; 211 if ($modif_document == 'oui' AND $flag_document_editable) { 212 $documentMetier = &recuperer_instance_document(); 213 $loadOK = $documentMetier->load($id_document); 214 215 if (PEAR::isError($loadOK)) { 216 die($loadOK->getMessage()); 217 } 218 if ($documentMetier->getMode() == 'document') { 219 if ($titre_document != '') { 220 $documentMetier->setTitre($titre_document); 221 } 222 else { 223 if ($titre_document == '' && $descriptif_document != '' && $documentMetier->getTitre() == '') { 224 $titre_document_array = explode('/', $documentMetier->getFichier()); 225 $titre_document = $titre_document_array[2]; 226 $titre_document_array = explode('.', $titre_document); 227 228 $titre_document = strtr($titre_document_array[0], "_", " "); 229 $documentMetier->setTitre($titre_document); 230 } 231 } 232 } 233 else { 234 if (($titre_document == '' && $descriptif_document == '') || ($titre_document != '')) { 235 $documentMetier->setTitre($titre_document); 236 } 237 else { 238 if ($titre_document == '' && $descriptif_document != '' && $documentMetier->getTitre() == '') { 239 $titre_document_array = explode('/', $documentMetier->getFichier()); 240 $titre_document = $titre_document_array[2]; 241 $titre_document_array = explode('.', $titre_document); 242 243 $titre_document = strtr($titre_document_array[0], "_", " "); 244 $documentMetier->setTitre($titre_document); 245 } 246 } 247 } 248 249 $documentMetier->setDescriptif($descriptif_document); 250 if ($largeur_document AND $hauteur_document) { 251 $documentMetier->setLargeur($largeur_document); 252 $documentMetier->setHauteur($hauteur_document); 253 } 254 255 $updateOK = $documentMetier->update(); 256 if (PEAR::isError($updateOK)) { 257 die($updateOK->getMessage()); 258 } 259 } 260 261 262 263 264 // 265 // Gestion des textes trop longs (limitation brouteurs) 266 // 267 function coupe_trop_long($texte){ // utile pour les textes > 32ko 268 if (strlen($texte) > 28*1024) { 269 $texte = str_replace("\r\n","\n",$texte); 270 $pos = strpos($texte, "\n\n\n", 28*1024); // coupe para > 28 ko 271 if ($pos > 0 and $pos < 32 * 1024) { 272 $debut = substr($texte, 0, $pos); 273 $suite = substr($texte, $pos); 274 } else { 275 $pos = strpos($texte, " ", 28*1024); // sinon coupe espace 276 if (($pos > 0 and $pos < 32 * 1024)) { 277 $debut = substr($texte,0,$pos); 278 $suite = substr($texte,$pos ); 279 } else { 280 $pos = 28*1024; // au pire 281 $debut = substr($texte,0,$pos); 282 $suite = substr($texte,$pos); 283 } 284 } 285 return (array($debut,$suite)); 286 } 287 else 288 return (array($texte,'')); 289 } 290 291 debut_page(_T('titre_page_articles_edit', array('titre' => $titre)), "documents", "articles"); 292 293 debut_grand_cadre(); 294 295 afficher_parents($id_rubrique); 296 297 $parents="~ <img src='img_pack/racine-site-24.gif' width=24 height=24 align='middle'> <A HREF='naviguer.php?coll=0'><B>"._T('lien_racine_site')."</B></A> ".aide ("rubhier")."<BR>".$parents; 298 $parents=ereg_replace("~"," ",$parents); 299 $parents=ereg_replace(" ","",$parents); 300 301 echo "$parents"; 302 303 fin_grand_cadre(); 304 debut_gauche(); 305 debut_droite(); 306 debut_cadre_formulaire(); 307 308 309 function mySel($varaut,$variable) { 310 $retour= " VALUE=\"$varaut\""; 311 312 if ($variable==$varaut) { 313 $retour.= " SELECTED"; 314 } 315 316 return $retour; 317 } 318 319 320 321 function my_sel($num,$tex,$comp){ 322 if ($num==$comp){ 323 echo "<OPTION VALUE='$num' SELECTED>$tex\n"; 324 }else{ 325 echo "<OPTION VALUE='$num'>$tex\n"; 326 } 327 328 } 329 330 function afficher_mois($mois){ 331 my_sel("01",_T('date_mois_1'),$mois); 332 my_sel("02",_T('date_mois_2'),$mois); 333 my_sel("03",_T('date_mois_3'),$mois); 334 my_sel("04",_T('date_mois_4'),$mois); 335 my_sel("05",_T('date_mois_5'),$mois); 336 my_sel("06",_T('date_mois_6'),$mois); 337 my_sel("07",_T('date_mois_7'),$mois); 338 my_sel("08",_T('date_mois_8'),$mois); 339 my_sel("09",_T('date_mois_9'),$mois); 340 my_sel("10",_T('date_mois_10'),$mois); 341 my_sel("11",_T('date_mois_11'),$mois); 342 my_sel("12",_T('date_mois_12'),$mois); 343 } 344 345 function afficher_jour($jour){ 346 for($i=1;$i<32;$i++) { 347 if ($i<10){$aff=" ".$i;}else{$aff=$i;} 348 my_sel($i,$aff,$jour); 349 } 350 } 351 352 353 354 355 356 echo "\n<table cellpadding=0 cellspacing=0 border=0 width='100%'>"; 357 echo "<tr width='100%'>"; 358 echo "<td>"; 359 /******* Modification MAPPING guillaume.grason@diplomatie.gouv.fr *******/ 360 // Mod par Johnny Muller 361 icone(_T('icone_retour'), "mapping_articles.php?id_article=$id_article", "article-24.gif", "rien.gif"); 362 // if ($lier_trad) icone(_T('icone_retour'), "articles.php?id_article=$lier_trad", "article-24.gif", "rien.gif"); 363 // else icone(_T('icone_retour'), "articles.php?id_article=$id_article", "article-24.gif", "rien.gif"); 364 /******* Fin Modification MAPPING guillaume.grason@diplomatie.gouv.fr *******/ 365 echo "</td>"; 366 echo "<td><img src='img_pack/rien.gif' width=10></td>\n"; 367 echo "<td width='100%'>"; 368 echo _T('art_texte_modifier_article', null, $id_rubrique); 369 gros_titre($titre); 370 echo "</td></tr></table>"; 371 echo "<p>"; 372 373 echo "<P><HR><P>"; 374 375 $titre = entites_html($titre); 376 $soustitre = entites_html($soustitre); 377 $surtitre = entites_html($surtitre); 378 379 $descriptif = entites_html($descriptif); 380 $nom_site = entites_html($nom_site); 381 $url_site = entites_html($url_site); 382 $chapo = entites_html($chapo); 383 $texte = entites_html($texte); 384 $ps = entites_html($ps); 385 386 387 $lien = 'mapping_articles.php'; 388 if ($id_article) $lien .= "?id_article=$id_article"; 389 echo "<FORM ACTION='$lien' METHOD='post' name='formulaire'>\n"; 390 391 if ($id_article) { 392 echo "<INPUT TYPE='Hidden' NAME='id_article' VALUE='$id_article'>"; 393 if ($new_version == 'oui') { 394 echo "<input type='hidden' name='new_version' value='oui'>"; 395 } 396 } else if ($new == 'oui') { 397 echo "<INPUT TYPE='Hidden' NAME='new' VALUE='oui'>"; 398 } 399 400 if ($lier_trad) { 401 echo "<INPUT TYPE='Hidden' NAME='lier_trad' VALUE='$lier_trad'>"; 402 echo "<INPUT TYPE='Hidden' NAME='changer_lang' VALUE='$spip_lang'>"; 403 } 404 405 echo "<INPUT TYPE='hidden' NAME='surtitre' VALUE=\"$surtitre\" >"; 406 407 echo _T('art_texte_titre_obligatoire', null, $id_rubrique); 408 echo aide ("arttitre"); 409 echo "<BR><INPUT TYPE='text' NAME='titre' style='font-weight: bold;' CLASS='formo' VALUE=\"$titre\" SIZE='40'><P>"; 410 411 echo "<INPUT TYPE='hidden' NAME='soustitre' VALUE=\"$soustitre\">"; 412 413 414 /// Dans la rubrique.... 415 416 if ($id_rubrique == 0) $logo_parent = "racine-site-24.gif"; 417 else { 418 //----------Modification Clever Age elebescond------------------ 419 $rubriqueMetier = &recuperer_instance_rubrique(); 420 $loadOK = $rubriqueMetier->load($id_rubrique); 421 if (PEAR::isError($loadOK)) { 422 die($loadOK->getMessage()); 423 } 424 else { 425 $parent_parent = $rubriqueMetier->getParentId(); 426 } 427 /* 428 $query = "SELECT id_parent FROM spip_rubriques WHERE id_rubrique='$id_rubrique'"; 429 $result=spip_query($query); 430 while($row=spip_fetch_array($result)){ 431 $parent_parent=$row['id_parent']; 432 } 433 */ 434 //----------Fin Modification Clever Age ------------------ 435 if ($parent_parent == 0) $logo_parent = "secteur-24.gif"; 436 else $logo_parent = "rubrique-24.gif"; 437 } 438 439 debut_cadre_relief("$logo_parent"); 440 echo "<B>"._T('titre_cadre_interieur_rubrique')." :</B>\n"; 441 echo aide ("artrub"); 442 443 // Gestion du brouteur de rubrique quand le nombre de rubrique du site 444 // d?passe la valeur de la meta _nb_limite_rub_selecteur 445 // Il faut aussi que l'utilisateur ne puisse pas changer la rubrique d'une 446 // Version d'un article. 447 if ($articleMetier->getVersionId() != 0 || $new_version=='oui') { 448 $currentRubrique = &recuperer_instance_rubrique(); 449 $currentRubrique->load($articleMetier->getRubriqueId()); 450 echo "<BR><input type='HIDDEN' name='id_rubrique' value='".$currentRubrique->getRubriqueId()."'>"; 451 echo _T('pas_changer_rubrique_version'); 452 } else { 453 // echo selecteur_rubrique($articleMetier, $id_rubrique, $rubriqueMetier); 454 if ($id_rubrique > 0) echo selecteur_rubrique($articleMetier, $id_rubrique); 455 else { 456 require_once (dirname(__FILE__)."/include/bd/inc_auteur_factory.php"); 457 $auteur =& recuperer_instance_auteur(); 458 $auteur->load( $GLOBALS['connect_id_auteur'] ); 459 echo selecteur_rubrique($articleMetier, $auteur->getPremiereRubrique()); 460 } 461 //echo "echo selecteur_rubrique($articleMetier, ".$articleMetier->getRubriqueId().", $rubriqueMetier);"; 462 } 463 464 fin_cadre_relief(); 465 466 if ($new != 'oui') echo "<INPUT TYPE='hidden' NAME='id_rubrique_old' VALUE=\"$id_rubrique\" >"; 467 468 if (($options == "avancees" AND $articles_descriptif != "non") OR $descriptif) { 469 echo "<P><B>"._T('art_texte_descriptif_rapide', null, $id_rubrique)."</B>"; 470 echo aide ("artdesc"); 471 echo "<BR>"._T('art_texte_contenu_article', null, $id_rubrique)."<BR>"; 472 echo "<TEXTAREA NAME='descriptif' CLASS='forml' ROWS='2' COLS='40' wrap=soft>"; 473 echo $descriptif; 474 echo "</TEXTAREA><P>\n"; 475 } 476 else { 477 echo "<INPUT TYPE='hidden' NAME='descriptif' VALUE=\"$descriptif\">"; 478 } 479 480 481 echo "<INPUT TYPE='hidden' NAME='chapo' VALUE=\"$chapo\">"; 482 483 echo "<INPUT TYPE='hidden' NAME='texte' VALUE=\"$texte\">"; 484 485 echo "<INPUT TYPE='hidden' NAME='ps' VALUE=\"$ps\">"; 486 487 if ($champs_extra) { 488 include_ecrire ("inc_extra.php"); 489 extra_saisie($extra, 'articles', $id_rubrique); 490 } 491 492 if ($date) 493 echo "<INPUT TYPE='Hidden' NAME='date' VALUE=\"$date\" SIZE='40'><P>"; 494 495 if ($new == "oui") 496 echo "<INPUT TYPE='Hidden' NAME='statut_nouv' VALUE=\"prepa\" SIZE='40'><P>"; 497 498 echo "<DIV ALIGN='right'>"; 499 echo "<INPUT CLASS='fondo' TYPE='submit' NAME='Valider' VALUE='"._T('bouton_valider')."'>"; 500 echo "</DIV></FORM>"; 501 fin_cadre_formulaire(); 502 503 fin_page(); 504 ?>
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 |