[ Index ]
 

Code source de SPIP 1.9.2c

Accédez au Source d'autres logiciels libres

title

Body

[fermer]

/ecrire/inc/ -> instituer_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;
  14  
  15  include_spip('inc/actions');
  16  include_spip('inc/texte');
  17  include_spip('inc/layer');
  18  include_spip('inc/presentation');
  19  include_spip('inc/message_select');
  20  
  21  //  affiche le statut de l'auteur dans l'espace prive
  22  // les admins voient et peuvent modifier les droits d'un auteur
  23  // les admins restreints les voient mais 
  24  // ne peuvent les utiliser que pour mettre un auteur a la poubelle
  25  
  26  // http://doc.spip.org/@inc_instituer_auteur_dist
  27  function inc_instituer_auteur_dist($auteur) {
  28      global $connect_toutes_rubriques, $connect_id_auteur, $connect_statut, $spip_lang_right, $spip_lang;
  29  
  30      if ($connect_statut != '0minirezo') return '';
  31  
  32      $statut = $auteur['statut'];
  33  
  34      if (!$id_auteur = $auteur['id_auteur']) {
  35          $new = true;
  36          $statut = '1comite';
  37      }
  38  
  39      $ancre = "instituer_auteur-" . intval($id_auteur);
  40  
  41      if ($menu = choix_statut_auteur($statut, $id_auteur, "$ancre-aff"))
  42          $res = "<b>"._T('info_statut_auteur')."</b> " . $menu;
  43  
  44      // Prepare le bloc des rubriques restreintes ;
  45      // si l'auteur n'est pas admin, on le cache
  46      $vis = ($statut == '0minirezo') ? '' : " style='display: none'";
  47      if ($menu_restreints = choix_rubriques_admin_restreint($auteur))
  48          $res .= "<div id='$ancre-aff'$vis>"
  49              . $menu_restreints
  50              . "</div>";
  51  
  52      return debut_cadre_relief('',true)
  53          . "<div id='"
  54          . $ancre
  55          . "'>"
  56          . $res 
  57          . '</div>'
  58          . fin_cadre_relief(true);
  59  }
  60  
  61  
  62  // Menu de choix d'un statut d'auteur
  63  // http://doc.spip.org/@choix_statut_auteur
  64  function choix_statut_auteur($statut, $id_auteur, $ancre) {
  65  
  66      // Le menu doit-il etre actif ?
  67      if (!autoriser('modifier', 'auteur', $id_auteur,
  68      null, array('statut' => '?')))
  69          return '';
  70  
  71      // Calculer le menu
  72      $menu = "<select name='statut' size='1' class='fondl'
  73          onchange=\"(this.options[this.selectedIndex].value == '0minirezo')?jQuery('#$ancre').slideDown():jQuery('#$ancre:visible').slideUp();\">";
  74  
  75      // A-t-on le droit de promouvoir cet auteur comme admin ?
  76      if (autoriser('modifier', 'auteur', intval($id_auteur),
  77      null, array('statut' => '0minirezo'))) {
  78          $menu .= "\n<option" .
  79              mySel("0minirezo",$statut) .
  80              ">" . _T('item_administrateur_2')
  81              . '</option>';
  82      }
  83  
  84      // Ajouter le choix "comite"
  85      $menu .=
  86          "\n<option" .
  87          mySel("1comite",$statut) .
  88          ">" .
  89          _T('intem_redacteur') .
  90          '</option>';
  91  
  92      // Ajouter le choix "visiteur" si :
  93      // - l'auteur est visiteur
  94      // - OU, on accepte les visiteurs (ou forums sur abonnement)
  95      // - OU il y a des visiteurs dans la base
  96      $x = (($statut == '6forum')
  97            OR ($GLOBALS['meta']['accepter_visiteurs'] == 'oui')
  98            OR ($GLOBALS['meta']['forums_publics'] == 'abo'));
  99      if (!$x) {
 100        $x = spip_fetch_array(spip_query("SELECT COUNT(*) AS n FROM spip_auteurs WHERE statut='6forum' LIMIT 1"));
 101        $x = $x['n'];
 102      }
 103      if ($x)
 104          $menu .= "\n<option" .
 105              mySel("6forum",$statut) .
 106              ">" .
 107              _T('item_visiteur') .
 108              '</option>';
 109  
 110      // Ajouter l'option "nouveau" si l'auteur n'est pas confirme
 111      if ($statut == 'nouveau')
 112          $menu .= "\n<option" .
 113              mySel('nouveau',$statut) .
 114              ">" .
 115              _T('info_statut_auteur_a_confirmer') .
 116              '</option>';
 117  
 118      // Ajouter l'option "autre" si le statut est inconnu
 119      if (!in_array($statut, array('nouveau', '0minirezo', '1comite', '5poubelle', '6forum')))
 120          $menu .= "\n<option" .
 121              mySel('autre','autre') .
 122              ">" .
 123              _T('info_statut_auteur_autre').' '.htmlentities($statut).
 124              '</option>';
 125  
 126      $menu .= "\n<option" .
 127          mySel("5poubelle",$statut) .
 128          " style='background:url(" . _DIR_IMG_PACK . "rayures-sup.gif)'>&gt; "
 129          ._T('texte_statut_poubelle') .
 130          '</option>' .
 131          "</select>\n";
 132  
 133      return $menu;
 134  }
 135  
 136  
 137  // http://doc.spip.org/@choix_rubriques_admin_restreint
 138  function choix_rubriques_admin_restreint($auteur) {
 139      global $connect_toutes_rubriques, $connect_id_auteur, $connect_statut, $spip_lang_right, $spip_lang;
 140  
 141      $id_auteur = intval($auteur['id_auteur']);
 142  
 143      $result_admin = spip_query("SELECT rubriques.id_rubrique, " . creer_objet_multi ("titre", $spip_lang) . " FROM spip_auteurs_rubriques AS lien, spip_rubriques AS rubriques WHERE lien.id_auteur=$id_auteur AND lien.id_rubrique=rubriques.id_rubrique ORDER BY multi");
 144  
 145  
 146      if (spip_num_rows($result_admin) == 0) {
 147          $phrase = _T('info_admin_gere_toutes_rubriques')."\n";
 148          $menu = '';
 149      } else {
 150          // L'autorisation de modifier les rubriques restreintes
 151          // est egale a l'autorisation de passer en admin
 152          $modif = autoriser('modifier', 'auteur', $id_auteur, null, array('statut' => '0minirezo'));
 153  
 154          // Il faut un element zero pour montrer qu'on a l'interface
 155          // sinon il est impossible de deslectionner toutes les rubriques
 156          $menu = $modif
 157              ? "<input type='hidden' name='restreintes[]' value='0' />\n"
 158              : '';
 159  
 160          while ($row_admin = spip_fetch_array($result_admin)) {
 161              $id_rubrique = $row_admin["id_rubrique"];
 162  
 163              $menu .= "\n<li id='rubrest_$id_rubrique'>"
 164              . ($modif
 165                  ? "<input type='checkbox' checked='checked' name='restreintes[]' value='$id_rubrique' />\n"
 166                  : ''
 167              )
 168              . "<a href='?exec=naviguer&amp;id_rubrique=$id_rubrique'>"
 169              . typo($row_admin["multi"])
 170              . "</a>"
 171              . '</li>';
 172          }
 173  
 174          $phrase = _T('info_admin_gere_rubriques');
 175      }
 176  
 177      if ($auteur['statut'] != '0minirezo')
 178          $phrase = '';
 179  
 180      $res = "<p>$phrase</p>\n"
 181          . "<ul id='liste_rubriques_restreintes' style='list-style-image: url("
 182          . _DIR_IMG_PACK
 183          . "rubrique-12.gif)'>"
 184          . $menu
 185          . "</ul>\n";
 186  
 187      // Ajouter une rubrique a un administrateur restreint
 188      if ($connect_toutes_rubriques AND $connect_id_auteur != $id_auteur) {
 189  
 190          $label = $restreint
 191              ? _T('info_ajouter_rubrique')
 192              : _T('info_restreindre_rubrique');
 193  
 194          $chercher_rubrique = charger_fonction('chercher_rubrique', 'inc');
 195  
 196          $res .= debut_block_visible("statut$id_auteur")
 197          . "\n<div id='ajax_rubrique' class='arial1'><br />\n"
 198          . "<b>"
 199          . $label 
 200          . "</b><br />"
 201          . "\n<input name='id_auteur' value='"
 202          . $id_auteur
 203          . "' type='hidden' />"
 204          . $chercher_rubrique(0, 'auteur', false)
 205          . "</div>\n"
 206  
 207          // onchange = pour le menu
 208          // l'evenement doit etre provoque a la main par le selecteur ajax
 209          . "<script type='text/javascript'><!--
 210          jQuery('#id_parent')
 211          .bind('change', function(){
 212              var id_parent = this.value;
 213              var titre = jQuery('#titreparent').attr('value') || this.options[this.selectedIndex].text;
 214              // Ajouter la rubrique selectionnee au formulaire,
 215              // sous la forme d'un input name='rubriques[]'
 216              var el = '<input type=\'checkbox\' checked=\'checked\' name=\'restreintes[]\' value=\''+id_parent+'\' /> ' + '<a href=\'?exec=naviguer&amp;id_rubrique='+id_parent+'\'>'+titre+'</a>';
 217              if (jQuery('#rubrest_'+id_parent).size() == 0) {
 218                  jQuery('#liste_rubriques_restreintes')
 219                  .append('<li id=\'rubrest_'+id_parent+'\'>'+el+'</li>');
 220              }
 221          }); //--></script>\n"
 222  
 223          . fin_block();
 224      }
 225  
 226      return $res;
 227  }
 228  
 229  
 230  ?>


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