[ Index ]
 

Code source de SPIP Agora 1.4

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

title

Body

[fermer]

/Agora1-4/ -> spip_image.php (source)

   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  include ("ecrire/inc_version.php");
  20  
  21  // Ajout Clever Age
  22  require_once(dirname(__FILE__). "/ecrire/include/bd/inc_type_document_factory.php");
  23  require_once(dirname(__FILE__). "/ecrire/include/bd/inc_document_factory.php");
  24  // Fin ajout
  25  
  26  include_ecrire ("inc_filtres.php");
  27  include_ecrire("inc_charsets.php");
  28  include_ecrire ("inc_meta.php");
  29  include_ecrire ("inc_admin.php");
  30  
  31  //include_local("inc-cache.php");
  32  
  33  // recuperée depuis inc-cache.php
  34  function creer_repertoire ($base, $subdir) {
  35      if (file_exists("$base/.plat"))
  36          return false;
  37  
  38      $path = $base . '/' . $subdir;
  39  
  40      if (file_exists($path))
  41          return true;
  42  
  43      @mkdir($path, 0777);
  44      @chmod($path, 0777);
  45      $ok = false;
  46  
  47      if ($f = @fopen("$path/.test", "w")) {
  48          @fputs($f, '<' . '?php $ok = true; ?' . '>');
  49          @fclose($f);
  50          include("$path/.test");
  51      }
  52  
  53      if (!$ok) {
  54          $f = @fopen("$base/.plat", "w");
  55          if ($f)
  56              fclose($f);
  57          else {
  58              @header("Location: spip_test_dirs.php");
  59              exit;
  60          }
  61      }
  62  
  63      return $ok;
  64  }
  65  
  66  // verifier les formats acceptes par GD
  67  if ($test_formats == "oui") {
  68      $gd_formats = array();
  69  
  70      if (function_exists('ImageCreateFromJPEG')) {
  71          $srcImage = @ImageCreateFromJPEG("IMG/jpg/test.jpg");
  72          if ($srcImage) {
  73              $gd_formats[] = "jpg";
  74              ImageDestroy($srcImage);
  75          }
  76      }
  77  
  78      if (function_exists('ImageCreateFromGIF')) {
  79          $srcImage = @ImageCreateFromGIF("IMG/gif/test.gif");
  80          if ($srcImage) {
  81              $gd_formats[] = "gif";
  82              ImageDestroy($srcImage);
  83          }
  84      }
  85  
  86      if (function_exists('ImageCreateFromPNG')) {
  87          $srcImage = @ImageCreateFromPNG("IMG/png/test.png");
  88          if ($srcImage) {
  89              $gd_formats[] = "png";
  90              ImageDestroy($srcImage);
  91          }
  92      }
  93  
  94      if ($gd_formats)
  95          $gd_formats = implode(",", $gd_formats);
  96  
  97      ecrire_meta("gd_formats", $gd_formats);
  98      ecrire_metas();
  99  }
 100  
 101  //
 102  // Creation automatique d'une vignette
 103  //
 104  
 105  function creer_vignette ($image, $newWidth, $newHeight, $format) {
 106      // Recuperer l'image d'origine
 107      if ($format == "jpg") {
 108          $srcImage = @ImageCreateFromJPEG($image);
 109      }
 110      else if ($format == "gif") {
 111          $srcImage = @ImageCreateFromGIF($image);
 112      }
 113      else if ($format == "png") {
 114          $srcImage = @ImageCreateFromPNG($image);
 115      }
 116  
 117      if (!$srcImage)
 118          return;
 119  
 120      // Calculer le ratio
 121      $srcWidth = ImageSX($srcImage);
 122      $srcHeight = ImageSY($srcImage);
 123  
 124      $ratioWidth = $srcWidth / $newWidth;
 125      $ratioHeight = $srcHeight / $newHeight;
 126  
 127      if ($ratioWidth < $ratioHeight) {
 128          $destWidth = $srcWidth / $ratioHeight;
 129          $destHeight = $newHeight;
 130      }
 131      else {
 132          $destWidth = $newWidth;
 133          $destHeight = $srcHeight / $ratioWidth;
 134      }
 135  
 136      // Choisir le format destination
 137      // - on sauve de preference en JPEG (meilleure compression)
 138      // - pour le GIF : les GD recentes peuvent le lire mais pas l'ecrire
 139      $gd_formats = lire_meta("gd_formats");
 140  
 141      if (ereg("jpg", $gd_formats))
 142          $destFormat = "jpg";
 143      else if ($format == "gif" AND ereg("gif", $gd_formats)AND $GLOBALS['flag_ImageGif'])
 144          $destFormat = "gif";
 145      else if (ereg("png", $gd_formats))
 146          $destFormat = "png";
 147  
 148      if (!$destFormat)
 149          return;
 150  
 151      // Initialisation de l'image destination
 152      if ($GLOBALS['flag_ImageCreateTrueColor']AND $destFormat != "gif")
 153          $destImage = ImageCreateTrueColor($destWidth, $destHeight);
 154  
 155      if (!$destImage)
 156          $destImage = ImageCreate($destWidth, $destHeight);
 157  
 158      // Recopie de l'image d'origine avec adaptation de la taille
 159      $ok = false;
 160  
 161      if ($GLOBALS['flag_ImageCopyResampled'])
 162          $ok = @ImageCopyResampled($destImage, $srcImage, 0, 0, 0, 0, $destWidth, $destHeight, $srcWidth, $srcHeight);
 163  
 164      if (!$ok)
 165          $ok = ImageCopyResized($destImage, $srcImage, 0, 0, 0, 0, $destWidth, $destHeight, $srcWidth, $srcHeight);
 166  
 167      // Sauvegarde de l'image destination
 168      /******* Modification MAE guillaume.grason@diplomatie.gouv.fr *******/
 169      // Modification visant a ne compter que le *dernier* point d'un fichier. Sans quoi dans test.test.jpg, l'extension serait test.jpg
 170      $destination = ereg_replace('\.([^\.]*)$','-s',$image).'.'.$destFormat;
 171      //$destination = ereg_replace('\.(.*)$','-s',$image).'.'.$destFormat;
 172      /******* Fin Modification MAE guillaume.grason@diplomatie.gouv.fr *******/
 173      
 174      if ($destFormat == "jpg") {
 175          ImageJPEG($destImage, $destination, 70);
 176      }
 177      else if ($destFormat == "gif") {
 178          ImageGIF($destImage, $destination);
 179      }
 180      else if ($destFormat == "png") {
 181          ImagePNG($destImage, $destination);
 182      }
 183  
 184      ImageDestroy($srcImage);
 185      ImageDestroy($destImage);
 186  
 187      $retour['width'] = $destWidth;
 188      $retour['height'] = $destHeight;
 189      $retour['fichier'] = $destination;
 190      $retour['format'] = $format;
 191      return $retour;
 192  }
 193  
 194  //
 195  // Deplacer un fichier uploade
 196  //
 197  
 198  function deplacer_fichier_upload ($source, $dest) {
 199      // Securite
 200      if (strstr($dest, "..")) {
 201          exit;
 202      }
 203  
 204      $ok = @copy($source, $dest);
 205  
 206      if (!$ok)
 207          $ok = @move_uploaded_file($source, $dest);
 208  
 209      if ($ok)
 210          @chmod($dest, 0666);
 211      else {
 212          $f = @fopen($dest, 'w');
 213          if ($f)
 214              fclose($f);
 215          else {
 216              @header("Location: spip_test_dirs.php?test_dir=" . dirname($dest));
 217              exit;
 218          }
 219      }
 220  
 221      return $ok;
 222  }
 223  
 224  //
 225  // Convertit le type numerique retourne par getimagesize() en extension fichier
 226  //
 227  
 228  function decoder_type_image ($type, $strict = false) {
 229      switch ($type) {
 230          case 1:
 231              return "gif";
 232  
 233          case 2:
 234              return "jpg";
 235  
 236          case 3:
 237              return "png";
 238  
 239          case 4:
 240              return $strict ? "" : "swf";
 241  
 242          case 5:
 243              return "psd";
 244  
 245          case 6:
 246              return "bmp";
 247  
 248          case 7:
 249          case 8:
 250              return "tif";
 251  
 252          default:
 253              return "";
 254      }
 255  }
 256  
 257  //
 258  // Corrige l'extension du fichier dans quelques cas particuliers
 259  //
 260  
 261  function corriger_extension ($ext) {
 262      switch ($ext) {
 263          case 'htm':
 264              return 'html';
 265  
 266          case 'jpeg':
 267              return 'jpg';
 268  
 269          case 'tiff':
 270              return 'tif';
 271  
 272          default:
 273              return $ext;
 274      }
 275  }
 276  
 277  //
 278  // Ajouter une image (logo)
 279  //
 280  
 281  function ajout_image ($source, $dest) {
 282      global $redirect_url, $hash_id_auteur, $hash, $num_img;
 283  
 284      // Securite
 285      if (!verifier_action_auteur("ajout_image $dest", $hash, $hash_id_auteur)) {
 286          exit;
 287      }
 288  
 289      $loc = "IMG/$dest";
 290  
 291      if (!deplacer_fichier_upload($source, $loc))
 292          return;
 293  
 294      // analyse le type de l'image (on ne fait pas confiance au nom de
 295      // fichier envoye par le browser : pour les Macs c'est plus sur)
 296      $size = @getimagesize($loc);
 297      $type = decoder_type_image($size[2], true);
 298  
 299      if ($type) {
 300          rename($loc, "$loc.$type");
 301          $dest = "$dest.$type";
 302          $loc = "$loc.$type";
 303      }
 304      else {
 305          unlink($loc);
 306      }
 307  }
 308  
 309  //
 310  // Ajouter un document
 311  //
 312  
 313  function ajout_doc ($orig, $source, $dest, $mode, $id_document, $doc_vignette = '', $titre_vignette = '',
 314                      $descriptif_vignette = '', $titre_automatique = true) {
 315      global $hash_id_auteur, $hash, $id_article, $type;
 316  
 317      //echo "$orig, $source, $dest, $mode, $id_document, $doc_vignette, $titre_vignette, $descriptif_vignette, $titre_automatique";
 318  
 319      //
 320      // Securite
 321      //
 322      if (!verifier_action_auteur("ajout_doc", $hash, $hash_id_auteur)) {
 323          exit;
 324      }
 325  
 326      if (ereg("\.([^.]+)$", $orig, $match)) {
 327          $ext = addslashes(strtolower($match[1]));
 328          $ext = corriger_extension($ext);
 329      }
 330  
 331      //-----------Zone de modification Clever Age ---------------
 332      $typeDocumentMetier = &recuperer_instance_type_document();
 333      $allTypesDocuments = $typeDocumentMetier->getAllForExtensionAndUploadAndInclus($ext, 'oui', 'vignette', 'image');
 334  
 335      if (PEAR::isError($allTypesDocuments)) {
 336          die($allTypesDocuments->getMessage());
 337      }
 338  
 339      //var_dump(allTypesDocuments);
 340  
 341      if (list(, $typeDocumentMetier) = each($allTypesDocuments)) {
 342          $id_type = $typeDocumentMetier->getTypeId();
 343          $type_inclus = $typeDocumentMetier->getInclus();
 344      }
 345      else
 346          return false;
 347  
 348      //
 349      // Recopier le fichier
 350      //
 351      $dest = 'IMG/';
 352  
 353      if (creer_repertoire('IMG', $ext))
 354          $dest .= $ext . '/';
 355  
 356      $dest .= ereg_replace("[^.a-zA-Z0-9_=-]+", "_",
 357                            translitteration(ereg_replace("\.([^.]+)$", "", supprimer_tags(basename($orig)))));
 358      $n = 0;
 359  
 360      while (file_exists($newFile = $dest . ($n++ ? '-' . $n : ''). '.' . $ext))
 361          ;
 362  
 363      $dest_path = $newFile;
 364  
 365      if (!deplacer_fichier_upload($source, $dest_path))
 366          return false;
 367  
 368      //
 369      // Preparation
 370      //
 371      if ($mode == 'vignette') {
 372          $id_document_lie = $id_document;
 373          //-------------Zone de modifications Clever Age aangenieux----
 374  
 375          $documentMetier = &recuperer_instance_document();
 376          $queryOK = $documentMetier->load($id_document_lie);
 377  
 378          //Si le document n'existe pas dans la base, pas la peine de faire l'update...
 379          if (!PEAR::isError($queryOK)) {
 380              $documentMetier->setMode('document');
 381              $updateOK = $documentMetier->update();
 382              if (PEAR::isError($updateOK)) {
 383                  die($updateOK->getMessage());
 384              }
 385          }
 386  
 387          $id_document = 0;
 388      }
 389  
 390      if (!$id_document) {
 391  
 392          //------------Zone de modifications Clever Age aangenieux----
 393          $documentMetier = &recuperer_instance_document();
 394          $documentMetier->setTypeId($id_type);
 395          $documentMetier->setTitre('');
 396          //$documentMetier->setDate('NOW()');
 397  
 398          $createOK = $documentMetier->create();
 399  
 400          if (PEAR::isError($createOK)) {
 401              die($createOK->getMessage());
 402          }
 403          else {
 404              $id_document = $documentMetier->getDocumentId();
 405          }
 406  
 407          $nouveau = true;
 408          if ($id_article) {
 409              global $type;
 410  
 411              // vieux hack !!!! (je suis pas fier)
 412              if (!isset($type))
 413                  $type = 'article';
 414  
 415              // fin du vieux hack 
 416              $linkOK = $documentMetier->linkToObject($id_article, $type);
 417              if (PEAR::isError($linkOK)) {
 418                  die($linkOK->getMessage());
 419              }
 420          }
 421      }
 422  
 423      //
 424      // Creer une vignette automatiquement
 425      //
 426      $creer_preview = lire_meta("creer_preview");
 427      $taille_preview = lire_meta("taille_preview");
 428      $gd_formats = lire_meta("gd_formats");
 429  
 430      $format_img = strtolower(substr($dest_path, strrpos($dest_path, ".") + 1, strlen($dest_path)));
 431  
 432      if ($format_img == "jpeg")
 433          $format_img == "jpg";
 434  
 435      if ($taille_preview < 10)
 436          $taille_preview = 120;
 437  
 438      if ($mode == 'document' AND $format_img AND ereg($format_img, $gd_formats)AND $creer_preview == 'oui') {
 439          $preview = creer_vignette($dest_path, $taille_preview, $taille_preview, $format_img);
 440          $hauteur_prev = $preview['height'];
 441          $largeur_prev = $preview['width'];
 442          $fichier_prev = $preview['fichier'];
 443          $format_prev = $preview['format'];
 444  
 445          if ($format_prev == "jpg")
 446              $format_prev = 1;
 447          else if ($format_prev == "png")
 448              $format_prev = 2;
 449          else if ($format_prev == "gif")
 450              $format_prev = 3;
 451  
 452          //-----------Zone de modifications Clever Age aangenieux-------------
 453          $documentMetier = &recuperer_instance_document();
 454          $documentMetier->setTypeId($format_prev);
 455          $documentMetier->setTitre('');
 456          $documentMetier->setLargeur($largeur_prev);
 457          $documentMetier->setHauteur($hauteur_prev);
 458          $documentMetier->setFichier($fichier_prev);
 459          //$documentMetier->setDate('NOW()');
 460  
 461          $createOK = $documentMetier->create();
 462  
 463          if (PEAR::isError($createOK)) {
 464              die($createOK->getMessage());
 465          }
 466          else {
 467              $id_preview = $documentMetier->getDocumentId();
 468          }
 469  
 470          $loadOK = $documentMetier->load($id_document);
 471          if (PEAR::isError($loadOK)) {
 472              die($loadOK->getMessage());
 473          }
 474          else {
 475              $documentMetier->setVignetteId($id_preview);
 476              $updateOK = $documentMetier->update();
 477              if (PEAR::isError($updateOK)) {
 478                  die($updateOK->getMessage());
 479              }
 480          }
 481      }
 482  
 483      //
 484      // Mettre a jour les infos du document uploade
 485      //
 486      $size_image = @getimagesize($dest_path);
 487      $type_image = decoder_type_image($size_image[2]);
 488  
 489      if ($type_image) {
 490          $largeur = $size_image[0];
 491          $hauteur = $size_image[1];
 492      }
 493  
 494      $taille = filesize($dest_path);
 495  
 496      if ($nouveau) {
 497          if (!$mode)
 498              $mode = ($type_image AND $type_inclus == 'image') ? 'vignette' : 'document';
 499  
 500          $titre = ereg_replace("\..*$", "", $orig);
 501          $titre = ereg_replace("ecrire/|upload/", "", $titre);
 502          $titre = strtr($titre, "_", " ");
 503  
 504          if (!$titre_automatique)
 505              $titre = "";
 506          //$update = "mode='$mode', titre='".addslashes($titre)."', ";
 507          $update = "mode='$mode', ";
 508      }
 509  
 510      //------------Zone de modifications Clever Age aangenieux--------------
 511      $documentMetier = &recuperer_instance_document();
 512      $loadOK = $documentMetier->load($id_document);
 513  
 514      if (PEAR::isError($loadOK)) {
 515          die($loadOK->getMessage());
 516      }
 517      else {
 518          $documentMetier->setTaille($taille);
 519          $documentMetier->setLargeur($largeur);
 520          $documentMetier->setHauteur($hauteur);
 521          $documentMetier->setFichier($dest_path);
 522          $documentMetier->setMode($mode);
 523  
 524          if ($documentMetier->getMode() == 'document') {
 525              if ($titre != '') {
 526                  $documentMetier->setTitre($titre);
 527              }
 528              else {
 529                  if ($titre == '' && $descriptif_document != '' && $documentMetier->getTitre() == '') {
 530                      $titre_array = explode('/', $documentMetier->getFichier());
 531                      $titre = $titre_array[2];
 532                      $titre_array = explode('.', $titre);
 533  
 534                      $titre = strtr($titre_array[0], "_", " ");
 535                      $documentMetier->setTitre($titre);
 536                  }
 537              }
 538          }
 539          else {
 540              if (($titre == '' && $descriptif_document == '') || ($titre != '')) {
 541                  $documentMetier->setTitre($titre);
 542              }
 543              else {
 544                  if ($titre == '' && $descriptif_document != '' && $documentMetier->getTitre() == '') {
 545                      $titre_array = explode('/', $documentMetier->getFichier());
 546                      $titre = $titre_array[2];
 547                      $titre_array = explode('.', $titre);
 548  
 549                      $titre = strtr($titre_array[0], "_", " ");
 550                      $documentMetier->setTitre($titre);
 551                  }
 552              }
 553          }
 554  
 555          if ($documentMetier->getDescriptif() == "NULL") {
 556              $documentMetier->setDescriptif("");
 557          }
 558  
 559          $updateOK = $documentMetier->update();
 560          if (PEAR::isError($updateOK)) {
 561              die($updateOK->getMessage());
 562          }
 563      }
 564  
 565      if ($id_document_lie) {
 566          $loadOK = $documentMetier->load($id_document_lie);
 567  
 568          if (PEAR::isError($loadOK)) {
 569              die($loadOK->getMessage());
 570          }
 571          else {
 572              $documentMetier->setVignetteId($id_document);
 573              $updateOK = $documentMetier->update();
 574              if (PEAR::isError($updateOK)) {
 575                  die($updateOK->getMessage());
 576              }
 577          }
 578          $id_document = $id_document_lie; // pour que le 'return' active le bon doc.
 579      }
 580  
 581      if ($doc_vignette) {
 582          $loadOK = $documentMetier->load($id_document);
 583          if (PEAR::isError($loadOK)) {
 584              die($loadOK->getMessage());
 585          }
 586          else {
 587              $documentMetier->setVignetteId($doc_vignette);
 588              $documentMetier->setTitre('');
 589              $documentMetier->setDescriptif('');
 590              $updateOK = $documentMetier->update();
 591              if (PEAR::isError($updateOK)) {
 592                  die($updateOK->getMessage());
 593              }
 594          }
 595      }
 596      return $id_document;
 597  }
 598  
 599  // image_name n'est valide que par POST http, mais pas par la methode ftp/upload
 600  // par ailleurs, pour un fichier ftp/upload, il faut effacer l'original nous-memes
 601  if (!$image_name AND $image2) {
 602      $image = "ecrire/upload/" . $image2;
 603      $image_name = $image;
 604      $supprimer_ecrire_upload = $image;
 605  }
 606  else {
 607      $supprimer_ecrire_upload = '';
 608  }
 609  
 610  //
 611  // ajouter un document
 612  //
 613  if ($ajout_doc == 'oui') {
 614      if ($dossier_complet) {
 615          $myDir = opendir('ecrire/upload');
 616          include_ecrire('inc_documents.php');
 617          $fichiers = fichiers_upload('ecrire/upload');
 618  
 619          while (list(, $f) = each($fichiers)) {
 620              if (ereg("\.([^.]+)$", $f, $match)) {
 621                  $ext = strtolower($match[1]);
 622  
 623                  if ($ext == 'jpeg')
 624                      $ext = 'jpg';
 625                  /* Modification Clever Age, elebescond, utilisation couche m�tier */
 626                  $typeDocumentMetier = &recuperer_instance_type_document();
 627                  $hasExtensionOK = $typeDocumentMetier->hasExtension($ext);
 628  
 629                  if (PEAR::isError($hasExtensionOK)) {
 630                      die($hasExtensionOK->getMessage());
 631                  }
 632                  if ($hasExtensionOK) {
 633                      $id_document = ajout_doc($f, $f, '', 'document', '', '', '', '', false);
 634                  }
 635              }
 636          }
 637          closedir($myDir);
 638      }
 639      else {
 640          if ($forcer_document == 'oui') {
 641              $id_document = ajout_doc($image_name, $image, $fichier, "document", $id_document);
 642          }
 643          else {
 644              $id_document = ajout_doc($image_name, $image, $fichier, $mode, $id_document);
 645          }
 646      }
 647  }
 648  
 649  // joindre un document
 650  if ($joindre_doc == 'oui') {
 651      $id_document = ajout_doc($image_name, $image, $fichier, "document", $id_document, $doc_vignette, $titre_vignette, $descriptif_vignette);
 652  }
 653  
 654  //
 655  // ajouter un logo
 656  //
 657  if ($ajout_logo == "oui") {
 658      ajout_image($image, $logo);
 659  }
 660  
 661  //
 662  // supprimer un logo
 663  //
 664  if ($image_supp) {
 665      // Securite
 666      if (strstr($image_supp, "..")) {
 667          exit;
 668      }
 669  
 670      if (!verifier_action_auteur("supp_image $image_supp", $hash, $hash_id_auteur)) {
 671          exit;
 672      }
 673      @unlink("IMG/$image_supp");
 674  }
 675  
 676  //
 677  // Supprimer un document
 678  //
 679  if ($doc_supp) {
 680      // Securite
 681      if (!verifier_action_auteur("supp_doc $doc_supp", $hash, $hash_id_auteur)) {
 682          exit;
 683      }
 684  
 685      //----------Zone de modifications Clever Age aangenieux--------------
 686      $documentMetier = &recuperer_instance_document();
 687      $loadOK = $documentMetier->load($doc_supp);
 688  
 689      //Correction bug � la suprression de doc
 690      if (!PEAR::isError($loadOK)) {
 691          $fichier = $documentMetier->getFichier();
 692          $id_vignette = $documentMetier->getVignetteId();
 693  
 694          $deleteOK = $documentMetier->delete($doc_supp);
 695  
 696          if (PEAR::isError($deleteOK)) {
 697              die($deleteOK->getMessage());
 698          }
 699  
 700          $unLinkOK = $documentMetier->unlinkVignette($doc_supp);
 701  
 702          if (PEAR::isError($unLinkOK)) {
 703              die($unLinkOK->getMessage());
 704          }
 705  
 706          $unLinkAllOK = $documentMetier->unlinkAll();
 707  
 708          if (PEAR::isError($unLinkAllOK)) {
 709              die($unLinkAllOK->getMessage());
 710          }
 711          @unlink($fichier);
 712      }
 713  
 714      if ($id_vignette > 0) {
 715          $loadOK = $documentMetier->load($id_vignette);
 716  
 717          if (!PEAR::isError($loadOK)) {
 718              @unlink($documentMetier->getFichier());
 719          }
 720  
 721          $deleteOK = $documentMetier->delete($id_vignette);
 722  
 723          if (PEAR::isError($deleteOK)) {
 724              die($deleteOK->getMessage());
 725          }
 726  
 727          $documentMetier->setDocumentId($id_vignette);
 728          $unlinkAllOK = $documentMetier->unlinkAll();
 729          if (PEAR::isError($unlinkAllOK)) {
 730              die($unlinkAllOK->getMessage());
 731          }
 732      }
 733  
 734  }
 735  
 736  // supprimer le fichier original si pris dans ecrire/upload
 737  /* en debat.... peser securite vs conformite upload http
 738  if ($supprimer_ecrire_upload)
 739      @unlink ($supprimer_ecrire_upload);
 740  */
 741  
 742  //
 743  // redirection
 744  //
 745  if ($HTTP_POST_VARS)
 746      $vars = $HTTP_POST_VARS;
 747  else
 748      $vars = $HTTP_GET_VARS;
 749  
 750  $redirect_url = "ecrire/" . $vars["redirect"];
 751  $link = new Link($redirect_url);
 752  reset($vars);
 753  
 754  while (list($key, $val) = each($vars)) {
 755      if (!ereg("^(redirect|image.*|hash.*|ajout.*|doc.*|transformer.*|modifier_.*|ok|type|forcer_.*)$", $key)) {
 756          $link->addVar($key, $val);
 757      }
 758  }
 759  
 760  if ($id_document)
 761      $link->addVar('id_document', $id_document);
 762  if ($type == 'rubrique')
 763      $link->delVar('id_article');
 764  if ($type == 'breve')
 765      $link->delVar('id_article');
 766  @header("Location: " . $link->getUrl());
 767  
 768  exit;
 769  ?>


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