[ Index ]
 

Code source de SPIP Agora 1.4

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/Agora1-4/ecrire/ -> mappings_edit.php (source)

   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("~","&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;",$parents);
 299  $parents=ereg_replace("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ","",$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="&nbsp;".$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')."&nbsp;:</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  ?>


Généré le : Sat Feb 24 14:40:03 2007 par Balluche grâce à PHPXref 0.7