[ Index ]
 

Code source de SPIP 1.9.2c

Accédez au Source d'autres logiciels libres

title

Body

[fermer]

/ecrire/balise/ -> formulaire_ecrire_auteur.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;    #securite
  14  
  15  include_spip('base/abstract_sql');
  16  
  17  // On prend l'email dans le contexte de maniere a ne pas avoir a le
  18  // verifier dans la base ni a le devoiler au visiteur
  19  
  20  
  21  // http://doc.spip.org/@balise_FORMULAIRE_ECRIRE_AUTEUR
  22  function balise_FORMULAIRE_ECRIRE_AUTEUR ($p) {
  23      return calculer_balise_dynamique($p,'FORMULAIRE_ECRIRE_AUTEUR', array('id_auteur', 'id_article', 'email'));
  24  }
  25  
  26  // http://doc.spip.org/@balise_FORMULAIRE_ECRIRE_AUTEUR_stat
  27  function balise_FORMULAIRE_ECRIRE_AUTEUR_stat($args, $filtres) {
  28      include_spip('inc/filtres');
  29  
  30      // Pas d'id_auteur ni d'id_article ? Erreur de squelette
  31      if (!$args[0] AND !$args[1])
  32          return erreur_squelette(
  33              _T('zbug_champ_hors_motif',
  34                  array ('champ' => '#FORMULAIRE_ECRIRE_AUTEUR',
  35                      'motif' => 'AUTEURS/ARTICLES')), '');
  36  
  37      // Si on est dans un contexte article, sortir tous les mails des auteurs
  38      // de l'article
  39      if (!$args[0] AND $args[1]) {
  40          unset ($args[2]);
  41          $s = spip_abstract_select('email',
  42                        array('auteurs' => 'spip_auteurs',
  43                          'L' => 'spip_auteurs_articles'),
  44                        array('auteurs.id_auteur=L.id_auteur',
  45                          'L.id_article='.intval($args[1])));
  46          while ($row = spip_fetch_array($s)) {
  47              if ($row['email'] AND email_valide($row['email']))
  48                  $args[2].= ','.$row['email'];
  49          }
  50          $args[2] = substr($args[2], 1);
  51      }
  52  
  53      // On ne peut pas ecrire a un auteur dont le mail n'est pas valide
  54      if (!$args[2] OR !email_valide($args[2]))
  55          return '';
  56  
  57      // OK
  58      return $args;
  59  }
  60  
  61  // http://doc.spip.org/@balise_FORMULAIRE_ECRIRE_AUTEUR_dyn
  62  function balise_FORMULAIRE_ECRIRE_AUTEUR_dyn($id_auteur, $id_article, $mail) {
  63      include_spip('inc/texte');
  64      $puce = definir_puce();
  65  
  66      // id du formulaire (pour en avoir plusieurs sur une meme page)
  67      $id = ($id_auteur ? '_'.$id_auteur : '_ar'.$id_article);
  68      #spip_log("id formulaire = $id, "._request("valide".$id));
  69      $sujet = _request('sujet_message_auteur'.$id);
  70      $texte = _request('texte_message_auteur'.$id);
  71      $adres = _request('email_message_auteur'.$id);
  72  
  73      if (_request('valide')) {
  74          $mailko = !email_valide($adres);
  75          $sujetko = !(strlen($sujet)>3);
  76          $texteko = !(strlen($texte)>10);
  77      }
  78  
  79      $validable = $texte && $sujet && (!$mailko);
  80  
  81      // doit-on envoyer le mail ?
  82      if ($validable
  83      AND $id == _request('num_formulaire_ecrire_auteur')
  84      AND _request('confirmer'.$id)) { 
  85          $texte .= "\n\n-- "._T('envoi_via_le_site')." ".supprimer_tags(extraire_multi($GLOBALS['meta']['nom_site']))." (".$GLOBALS['meta']['adresse_site']."/) --\n";
  86          include_spip('inc/mail');
  87          envoyer_mail($mail, $sujet, $texte, $adres,
  88                  "X-Originating-IP: ".$GLOBALS['ip']);
  89          $mailenvoye = _T('form_prop_message_envoye');
  90      }
  91  
  92      return 
  93          array('formulaires/ecrire_auteur', 0,
  94              array(
  95              'id' => $id,
  96              'mailko' => $mailko ? _T('form_prop_indiquer_email') : '',
  97              'mail' => $adres,
  98              'sujetko' => $sujetko ? _T('forum_attention_trois_caracteres') : '',
  99              'mailenvoye' => $mailenvoye,
 100              'sujet' => $sujet,
 101              'texteko' => $texteko ? _T('forum_attention_dix_caracteres') : '',
 102              'texte' => $texte,
 103              'valide' => $validable ? $id : '',
 104              'bouton' => _T('form_prop_envoyer'),
 105              'boutonconfirmation' => $validable ? _T('form_prop_confirmer_envoi') : ''
 106              )
 107          );
 108  }
 109  ?>


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