[ Index ]
 

Code source de SPIP 1.9.2c

Accédez au Source d'autres logiciels libres

title

Body

[fermer]

/ecrire/inc/ -> auteur_infos.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  
  16  // Affiche la fiche de renseignements d'un auteur
  17  // eventuellement editable
  18  // http://doc.spip.org/@inc_auteur_infos_dist
  19  function inc_auteur_infos_dist($auteur, $redirect) {
  20      if (!$auteur['id_auteur']) {
  21          if (_request('new') == 'oui') {
  22              $new = true;
  23          } else {
  24              include_spip('inc/headers');
  25              redirige_par_entete(generer_url_ecrire('auteurs'));
  26          }
  27      }
  28  
  29      if (!$new) {
  30          $corps = legender_auteur_voir($auteur, $redirect);
  31      } else
  32          $corps = '';
  33  
  34      if (_request('echec'))
  35          $corps .= afficher_erreurs_auteur(_request('echec'));
  36  
  37  
  38      // Calculer le bloc de statut (modifiable ou non selon)
  39      $instituer_auteur = charger_fonction('instituer_auteur', 'inc');
  40      $bloc_statut = $instituer_auteur($auteur);
  41  
  42      // Calculer le formulaire general
  43      if (autoriser('modifier', 'auteur', $auteur['id_auteur'])) {
  44          $corps = legender_auteur_saisir($auteur, $corps, $bloc_statut, $redirect);
  45      } else {
  46          // Indiquer le bloc statut (cas non modifiable) ?
  47          $corps .= $bloc_statut;
  48      }
  49  
  50      return $corps;
  51  
  52  }
  53  
  54  // http://doc.spip.org/@afficher_erreurs_auteur
  55  function afficher_erreurs_auteur($echec) {
  56      foreach (split('@@@',$echec) as $e)
  57          $corps .= '<p>' . _T($e) . "</p>\n";
  58  
  59      $corps = debut_cadre_relief('', true)
  60      .  "<span style='color: red; left-margin: 5px'>"
  61      .  http_img_pack("warning.gif", _T('info_avertissement'), "style='width: 48px; height: 48px; float: left; margin: 5px;'")
  62      . $corps
  63      .  _T('info_recommencer')
  64      .  "</span>\n"
  65      . fin_cadre_relief(true);
  66  
  67      return $corps;
  68  }
  69  
  70  
  71  // http://doc.spip.org/@legender_auteur_saisir
  72  function legender_auteur_saisir($auteur, $auteur_infos_voir, $bloc_statut, $redirect) {
  73      global $options, $connect_statut, $connect_id_auteur, $connect_toutes_rubriques;
  74  
  75      $id_auteur = $auteur['id_auteur'];
  76  
  77  
  78  
  79      $setmail = ($connect_statut == "0minirezo"
  80          AND ($connect_toutes_rubriques OR $auteur['statut']<>'0minirezo'));
  81  
  82      $setconnecte = ($connect_id_auteur == $id_auteur);
  83  
  84  
  85      // Elaborer le formulaire
  86      $corps = '';
  87      $corps .= _T('titre_cadre_signature_obligatoire')
  88      . "("
  89      . _T('entree_nom_pseudo')
  90      . ")<br />\n"
  91      . "<input type='text' name='nom' class='formo' size='40' value=\""
  92      . entites_html(sinon($auteur['nom'], _T('ecrire:item_nouvel_auteur')))
  93      . "\" "
  94      . (strlen($auteur['nom']) ? '' : ' onfocus="if(!antifocus){this.value=\'\';antifocus=true;}"')
  95      . " />\n<br />"
  96      . "<b>"._T('entree_adresse_email')."</b>";
  97  
  98      if ($setmail) {
  99          $corps .= "<br /><input type='text' name='email' class='formo' size='40' value=\""
 100          . entites_html($auteur['email'])
 101          . "\"  />\n<br />\n";
 102      } else {
 103          $corps .= "&nbsp;: <tt>".$auteur['email']."</tt>"
 104          . "<br />("._T('info_reserve_admin').")\n"
 105          . "\n<br />";
 106      }
 107  
 108      $corps .= "<b>"._T('entree_infos_perso')."</b><br />\n"
 109      . "("._T('entree_biographie')
 110      . ")<br />\n"
 111      . "<textarea name='bio' class='forml' rows='4' cols='40'>"
 112      . entites_html($auteur['bio'])
 113      . "</textarea><br />\n"
 114      . debut_cadre_enfonce("site-24.gif", true, "", _T('info_site_web'))
 115      . "<b>"._T('entree_nom_site')."</b><br />\n"
 116      . "<input type='text' name='nom_site_auteur' class='forml' value=\""
 117      . entites_html($auteur['nom_site'])
 118      . "\" size='40' /><br />\n"
 119      . "<b>"
 120      . _T('entree_url')
 121      . "</b><br />\n"
 122      . "<input type='text' name='url_site' class='forml' value=\""
 123      . entites_html($auteur['url_site'])
 124      . "\" size='40' />\n"
 125      . fin_cadre_enfonce(true)
 126      . "\n<br />";
 127  
 128      if ($options == "avancees"
 129      OR strlen($auteur['pgp'])) {
 130          $corps .= debut_cadre_enfonce("cadenas-24.gif", true, "", _T('entree_cle_pgp'))
 131          . "<textarea name='pgp' class='forml' rows='4' cols='40'>"
 132          . entites_html($auteur['pgp'])
 133          . "</textarea>\n"
 134          . fin_cadre_enfonce(true);
 135      }
 136  
 137      $corps .= "\n<br />";
 138  
 139      if ($GLOBALS['champs_extra']) {
 140          include_spip('inc/extra');
 141          $corps .= extra_saisie($auteur['extra'], 'auteurs', $auteur['statut']);
 142      }
 143  
 144  //
 145  // Login et mot de passe :
 146  // accessibles seulement aux admins non restreints et l'auteur lui-meme
 147  //
 148  
 149      if (($auteur['source'] != 'spip') AND $GLOBALS['ldap_present']) {
 150          $edit_login = false;
 151          $edit_pass = false;
 152      }
 153      else if (($connect_statut == "0minirezo") AND $connect_toutes_rubriques) {
 154          $edit_login = true;
 155          $edit_pass = true;
 156      }
 157      else if ($connect_id_auteur == $id_auteur) {
 158          $edit_login = false;
 159          $edit_pass = true;
 160      }
 161      else {
 162          $edit_login = false;
 163          $edit_pass = false;
 164      }
 165  
 166      $corps .= debut_cadre_relief("base-24.gif", true);
 167  
 168  // Avertissement en cas de modifs de ses propres donnees
 169      if (($edit_login OR $edit_pass) AND $connect_id_auteur == $id_auteur) {
 170          $corps .= debut_cadre_enfonce('', true)
 171          .  http_img_pack("warning.gif", _T('info_avertissement'), 
 172                   "style='width: 48px; height: 48px; float: right;margin: 5px;'")
 173          . "<b>"._T('texte_login_precaution')."</b>\n"
 174          . fin_cadre_enfonce(true)
 175          . "\n<br />";
 176      }
 177  
 178  // Un redacteur n'a pas le droit de modifier son login !
 179      if ($edit_login) {
 180          $corps .= "<b>"._T('item_login')."</b> "
 181          . "<span style='color: red'>("._T('texte_plus_trois_car').")</span> :<br />\n"
 182          . "<input type='text' name='new_login' class='formo' value=\"".entites_html($auteur['login'])."\" size='40' /><br />\n";
 183      } else {
 184          $corps .= "<fieldset style='padding:5'><legend><b>"._T('item_login')."</b><br />\n</legend><br /><b>".$auteur['login']."</b> "
 185          . "<i> ("._T('info_non_modifiable').")</i>\n<br />";
 186      }
 187  
 188  // On ne peut modifier le mot de passe en cas de source externe (par exemple LDAP)
 189      if ($edit_pass) {
 190          $res = "<b>"._T('entree_nouveau_passe')."</b> "
 191          . "<span style='color: red'>("._T('info_plus_cinq_car').")</span> :<br />\n"
 192          . "<input type='password' name='new_pass' class='formo' value=\"\" size='40' /><br />\n"
 193          . _T('info_confirmer_passe')."<br />\n"
 194          . "<input type='password' name='new_pass2' class='formo' value=\"\" size='40' /><br />\n";
 195          $corps .= $res;
 196      }
 197  
 198      $corps .= fin_cadre_relief(true);
 199  
 200  
 201      
 202      //
 203      // Retour
 204      //
 205  
 206      $corps = $auteur_infos_voir
 207          . "<div id='auteur_infos_edit'>\n"
 208          . '<div>&nbsp;</div>'
 209          . "\n<div class='serif'>"
 210          . debut_cadre_relief("fiche-perso-24.gif",
 211              true, "", _T("icone_informations_personnelles"))
 212          . $corps
 213          . fin_cadre_relief(true)
 214          . (!$setconnecte ? '' : apparait_auteur_infos($id_auteur, $auteur))
 215          . "</div>\n" # /serif
 216          . "</div>\n"; # /auteur_infos_edit
 217  
 218      // Installer la fiche "auteur_infos_voir"
 219      // et masquer le formulaire si on n'en a pas besoin
 220      $new = ($auteur_infos_voir == '');
 221      if (!$new
 222      AND !_request('echec')
 223      AND !_request('edit')) {
 224          $corps .= "<script>jQuery('#auteur_infos_edit').hide()</script>\n";
 225      } else {
 226          $corps .= "<script>jQuery('#auteur_infos_voir').hide()</script>\n";
 227      }
 228  
 229  
 230      // Formulaire de statut
 231      $corps .= $bloc_statut;
 232  
 233  
 234      // Lier a un article (creation d'un auteur depuis un article)
 235      if ($id_article = intval(_request('lier_id_article')))
 236          $corps .= "<input type='hidden' name='lier_id_article' value='$id_article' />\n";
 237  
 238      // Redirection apres enregistrement ?
 239      if ($redirect)
 240          $corps .= "<input type='hidden' name='redirect' value=\"".attribut_html($redirect)."\" />\n";
 241  
 242      $corps .= "<div align='right'><input type='submit' value='"._T('bouton_enregistrer')."' class='fondo' /></div>";
 243  
 244  
 245      $arg = intval($id_auteur);
 246      $ret .= generer_action_auteur('editer_auteur', $arg, $redirect, $corps, ' method="POST"');
 247  
 248      $ret .= fin_cadre_relief(true)
 249          . '</div>';
 250  
 251  
 252      return $ret;
 253  }
 254  
 255  //
 256  // Apparaitre dans la liste des redacteurs connectes
 257  //
 258  
 259  // http://doc.spip.org/@apparait_auteur_infos
 260  function apparait_auteur_infos($id_auteur, $auteur) {
 261  
 262      if ($auteur['imessage']=="non"){
 263          $res = "<input type='radio' name='perso_activer_imessage' value='oui' id='perso_activer_imessage_on'>"
 264          . " <label for='perso_activer_imessage_on'>"._T('bouton_radio_apparaitre_liste_redacteurs_connectes')."</label> "
 265          . "<br />\n<input type='radio' name='perso_activer_imessage' value='non' checked='checked' id='perso_activer_imessage_off'>"
 266          . " <b><label for='perso_activer_imessage_off'>"._T('bouton_radio_non_apparaitre_liste_redacteurs_connectes')."</label></b> ";
 267      } else {
 268          $res = "<input type='radio' name='perso_activer_imessage' value='oui' id='perso_activer_imessage_on' checked='checked'>"
 269          . " <b><label for='perso_activer_imessage_on'>"
 270          . _T('bouton_radio_apparaitre_liste_redacteurs_connectes')
 271          . "</label></b> "
 272          . "<br />\n<input type='radio' name='perso_activer_imessage' value='non' id='perso_activer_imessage_off'>"
 273          . " <label for='perso_activer_imessage_off'>"
 274          . _T('bouton_radio_non_apparaitre_liste_redacteurs_connectes')
 275          . "</label> ";
 276      }
 277  
 278      return 
 279          debut_cadre_enfonce("messagerie-24.gif", true, "", _T('info_liste_redacteurs_connectes'))
 280          . "\n<div>"
 281          . _T('texte_auteur_messagerie')
 282          . "</div>"
 283          . $res
 284          . fin_cadre_enfonce(true)
 285          . "<br />\n";
 286  }
 287  
 288  
 289  // http://doc.spip.org/@legender_auteur_voir
 290  function legender_auteur_voir($auteur) {
 291      global $connect_toutes_rubriques, $connect_statut, $connect_id_auteur, $champs_extra, $options, $spip_lang_right;
 292  
 293      if (!$id_auteur = $auteur['id_auteur']) {
 294          $new = true;
 295      }
 296  
 297      $res .= "<div id='auteur_infos_voir'>";
 298  
 299      $res = "<table width='100%' cellpadding='0' border='0' cellspacing='0'>"
 300      . "<tr>"
 301      . "<td  style='width: 100%' valign='top'>"
 302      . gros_titre(
 303          sinon($auteur['nom'],_T('item_nouvel_auteur')),
 304          '',false);
 305  
 306  
 307      $res .= "<div>&nbsp;</div>";
 308  
 309      if (strlen($auteur['email']))
 310          $res .= "<div>"._T('email_2')
 311              ." <b><a href='mailto:".htmlspecialchars($auteur['email'])."'>"
 312              .$auteur['email']."</a></b></div>";
 313  
 314      if ($auteur['url_site']) {
 315          if (!$auteur['nom_site'])
 316              $auteur['nom_site'] = _T('info_site');
 317          $res .= propre(_T('info_site_2')." [{{".$auteur['nom_site']."}}->".$auteur['url_site']."]");
 318      }
 319  
 320      // Bouton "modifier" ?
 321      if (autoriser('modifier', 'auteur', $id_auteur)) {
 322          $res .= "</td>\n<td id='bouton_modifier_auteur'>";
 323          $clic = _T("admin_modifier_auteur");
 324          $h = generer_url_ecrire("auteur_infos","id_auteur=$id_auteur&edit=oui");
 325          $h = "<a\nhref='$h'>$clic</a>";
 326          $res .= icone($clic, $h, "redacteurs-24.gif", "edit.gif", '', '',true);
 327  
 328          $res .= "<script type='text/javascript'><!--
 329          var intitule_bouton = "._q(_T('icone_retour')).";
 330          jQuery('#bouton_modifier_auteur a')
 331          .click(function() {
 332              jQuery('#auteur_infos_edit')
 333              .toggle();
 334              jQuery('#auteur_infos_voir')
 335              .toggle();
 336              jQuery('#bouton_modifier_auteur a span')
 337              .each(function(){
 338                  var tmp = jQuery(this).html();
 339                  jQuery(this).html(intitule_bouton);
 340                  intitule_bouton = tmp;
 341              });
 342              return false;
 343          });
 344          // --></script>\n";
 345          $res .= "</td><tr><td colspan='2'>\n";
 346      }
 347  
 348      if (strlen($auteur['bio'])) {
 349          $res .= propre("<quote>".$auteur['bio']."</quote>");
 350      }
 351  
 352      if (strlen($auteur['pgp'])) {
 353          $res .= propre("PGP: <cadre>".$auteur['pgp']."</cadre>");
 354      }
 355  
 356      if ($GLOBALS['champs_extra'] AND $auteur['extra']) {
 357          include_spip('inc/extra');
 358          $res .= extra_affichage($auteur['extra'], 'auteurs');
 359      }
 360  
 361      $res .= "</td></tr></table>";
 362  
 363      $res .= "</div>\n";
 364  
 365      return $res;
 366  
 367  }
 368  
 369  ?>


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