[ Index ]
 

Code source de SPIP 1.9.2c

Accédez au Source d'autres logiciels libres

title

Body

[fermer]

/ecrire/action/ -> supprimer.php (source)

   1  <?php
   2  
   3  /***************************************************************************\
   4   *  SPIP, Systeme de publication pour l'internet                           *
   5   *                                                                         *
   6   *  Copyright (c) 2001-2007                                                *
   7   *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
   8   *                                                                         *
   9   *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
  10   *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
  11  \***************************************************************************/
  12  
  13  if (!defined("_ECRIRE_INC_VERSION")) return;
  14  
  15  include_spip('inc/charsets');    # pour le nom de fichier
  16  include_spip('base/abstract_sql');
  17  
  18  // Effacer un doc (et sa vignette)
  19  // http://doc.spip.org/@action_supprimer_dist
  20  function action_supprimer_dist() {
  21  
  22      $securiser_action = charger_fonction('securiser_action', 'inc');
  23      $arg = $securiser_action();
  24  
  25      preg_match('/^(\w+)\W(.*)$/', $arg, $r);
  26      $var_nom = 'action_supprimer_' . $r[1];
  27      if (function_exists($var_nom)) {
  28          spip_log("$var_nom $r[2]");
  29          $var_nom($r[2]);
  30      }
  31      else
  32          spip_log("action supprimer $arg incompris");
  33  }
  34  
  35  // Ne pas confondre cette fonction avec celle au pluriel ci-dessous
  36  
  37  // http://doc.spip.org/@action_supprimer_document
  38  function action_supprimer_document($arg) {
  39      global $redirect;
  40      supprimer_document_et_vignette(intval($arg));
  41      $redirect = rawurldecode($redirect);
  42      if (strpos($redirect, 'id_rubrique=')) {
  43          include_spip('inc/rubriques');
  44          calculer_rubriques();
  45      }
  46      redirige_par_entete($redirect);
  47  }
  48  
  49  
  50  // http://doc.spip.org/@action_supprimer_rubrique
  51  function action_supprimer_rubrique($id_rubrique)
  52  {
  53      spip_query("DELETE FROM spip_rubriques WHERE id_rubrique=$id_rubrique");
  54      // Les admin restreints qui n'administraient que cette rubrique
  55      // deviennent redacteurs
  56      // (il y a sans doute moyen de faire ca avec un having)
  57  
  58      $q = spip_query("SELECT id_auteur FROM spip_auteurs_rubriques WHERE id_rubrique=$id_rubrique");
  59  
  60      while ($r = spip_fetch_array($q)) {
  61          $id_auteur = $r['id_auteur'];
  62          spip_query("DELETE FROM spip_auteurs_rubriques WHERE id_rubrique=$id_rubrique AND id_auteur=$id_auteur");
  63          $n = spip_num_rows(spip_query("SELECT id_auteur FROM spip_auteurs_rubriques WHERE id_auteur=$id_auteur LIMIT 1"));
  64          if (!$n)
  65              spip_query("UPDATE spip_auteurs SET statut='1comite' WHERE id_auteur=$id_auteur");
  66      }
  67  
  68      include_spip('inc/rubriques');
  69      calculer_rubriques();
  70      calculer_langues_rubriques();
  71  
  72      // invalider les caches marques de cette rubrique
  73      include_spip('inc/invalideur');
  74      suivre_invalideur("id='id_rubrique/$id_rubrique'");
  75  
  76  }
  77  
  78  // http://doc.spip.org/@supprimer_document_et_vignette
  79  function supprimer_document_et_vignette($arg)
  80  {
  81      $result = spip_query("SELECT id_vignette, fichier FROM spip_documents WHERE id_document=$arg");
  82      if ($row = spip_fetch_array($result)) {
  83          $fichier = $row['fichier'];
  84          $id_vignette = $row['id_vignette'];
  85          spip_query("DELETE FROM spip_documents WHERE id_document=$arg");
  86          spip_query("UPDATE spip_documents SET id_vignette=0 WHERE id_vignette=$arg");
  87          spip_query("DELETE FROM spip_documents_articles WHERE id_document=$arg");
  88          spip_query("DELETE FROM spip_documents_rubriques WHERE id_document=$arg");
  89          spip_query("DELETE FROM spip_documents_breves WHERE id_document=$arg");
  90          @unlink($fichier);
  91  
  92          if ($id_vignette > 0) {
  93              $result = spip_query("SELECT id_vignette, fichier FROM spip_documents    WHERE id_document=$id_vignette");
  94  
  95              if ($row = spip_fetch_array($result)) {
  96                  $fichier = $row['fichier'];
  97                  @unlink($fichier);
  98              }
  99              spip_query("DELETE FROM spip_documents    WHERE id_document=$id_vignette");
 100              spip_query("DELETE FROM spip_documents_articles    WHERE id_document=$id_vignette");
 101              spip_query("DELETE FROM spip_documents_rubriques WHERE id_document=$id_vignette");
 102              spip_query("DELETE FROM spip_documents_breves WHERE id_document=$id_vignette");
 103          }
 104      }
 105  }
 106  ?>


Généré le : Wed Nov 21 10:20:27 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics