[ Index ]
 

Code source de SPIP 1.8.3

Accédez au Source d'autres logiciels libres | Soutenez Angelica Josefina !

title

Body

[fermer]

/ecrire/ -> auteurs.php3 (source)

   1  <?php
   2  
   3  /***************************************************************************\
   4   *  SPIP, Systeme de publication pour l'internet                           *
   5   *                                                                         *
   6   *  Copyright (c) 2001-2005                                                *
   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  
  14  include  ("inc.php3");
  15  include_ecrire  ("inc_acces.php3");
  16  
  17  
  18  //
  19  // Action : supprimer un auteur
  20  //
  21  if ($supp && ($connect_statut == '0minirezo'))
  22      spip_query("UPDATE spip_auteurs SET statut='5poubelle' WHERE id_auteur=$supp");
  23  
  24  $retour = "auteurs.php3?";
  25  if (!$tri) $tri='nom';
  26  $retour .= "tri=$tri";
  27  if ($tri=='nom' OR $tri=='statut')
  28      $partri = " "._T('info_par_tri', array('tri' => $tri));
  29  else if ($tri=='nombre')
  30      $partri = " "._T('info_par_nombre_article');
  31  
  32  if ($visiteurs == "oui") {
  33      debut_page(_T('titre_page_auteurs'),"auteurs","redacteurs");
  34      $retour .= '&visiteurs=oui';
  35  } else
  36      debut_page(_T('info_auteurs_par_tri', array('partri' => $partri)),"auteurs","redacteurs");
  37  
  38  debut_gauche();
  39  
  40  
  41  
  42  debut_boite_info();
  43  if ($visiteurs == "oui")
  44      echo "<p class='arial1'>"._T('info_gauche_visiteurs_enregistres');
  45  else {
  46      echo "<p class='arial1'>"._T('info_gauche_auteurs');
  47  
  48      if ($connect_statut == '0minirezo')
  49          echo '<br>'. _T('info_gauche_auteurs_exterieurs');
  50  }
  51  fin_boite_info();
  52  
  53  
  54  if ($connect_statut == '0minirezo') {
  55      $query = "SELECT id_auteur FROM spip_auteurs WHERE statut='6forum' LIMIT 1";
  56      $result = spip_query($query);
  57      $flag_visiteurs = spip_num_rows($result) > 0;
  58  
  59      debut_raccourcis();
  60      icone_horizontale(_T('icone_creer_nouvel_auteur'), "auteur_infos.php3?new=oui", "auteur-24.gif", "creer.gif");
  61      icone_horizontale(_T('icone_informations_personnelles'), "auteurs_edit.php3?id_auteur=$connect_id_auteur", "fiche-perso-24.gif","rien.gif");
  62      if ($flag_visiteurs) {
  63          if ($visiteurs == "oui")
  64              icone_horizontale (_T('icone_afficher_auteurs'), "auteurs.php3", "auteur-24.gif", "");
  65          else
  66              icone_horizontale (_T('icone_afficher_visiteurs'), "auteurs.php3?visiteurs=oui", "auteur-24.gif", "");
  67      }
  68      fin_raccourcis();
  69  }
  70  debut_droite();
  71  
  72  
  73  //
  74  // Construire la requete
  75  //
  76  
  77  // si on n'est pas minirezo, supprimer les auteurs sans article publie
  78  // sauf les admins, toujours visibles.
  79  // limiter les statuts affiches
  80  if ($connect_statut == '0minirezo') {
  81      if ($visiteurs == "oui") {
  82          $sql_visible = "aut.statut IN ('6forum','5poubelle')";
  83          $tri = 'nom';
  84      } else {
  85          $sql_visible = "aut.statut IN ('0minirezo','1comite','5poubelle')";
  86      }
  87  } else {
  88      $sql_visible = "(
  89          aut.statut = '0minirezo'
  90          OR art.statut IN ('prop', 'publie')
  91      )";
  92  }
  93  
  94  $sql_sel = '';
  95  
  96  // tri
  97  switch ($tri) {
  98  case 'nombre':
  99      $sql_order = ' ORDER BY compteur DESC, unom';
 100      $type_requete = 'nombre';
 101      break;
 102  
 103  case 'statut':
 104      $sql_order = ' ORDER BY statut, login = "", unom';
 105      $type_requete = 'auteur';
 106      break;
 107  
 108  case 'nom':
 109  default:
 110      $type_requete = 'auteur';
 111      $sql_sel = ", ".creer_objet_multi ("nom", $spip_lang);
 112      $sql_order = " ORDER BY multi";
 113  }
 114  
 115  
 116  
 117  //
 118  // La requete de base est tres sympa
 119  //
 120  
 121  $query = "SELECT
 122      aut.id_auteur AS id_auteur,
 123      aut.statut AS statut,
 124      aut.login AS login,
 125      aut.nom AS nom,
 126      aut.email AS email,
 127      aut.url_site AS url_site,
 128      aut.messagerie AS messagerie,
 129      UPPER(aut.nom) AS unom,
 130      count(lien.id_article) as compteur
 131      $sql_sel
 132  FROM spip_auteurs as aut
 133  LEFT JOIN spip_auteurs_articles AS lien ON aut.id_auteur=lien.id_auteur
 134  LEFT JOIN spip_articles AS art ON (lien.id_article = art.id_article)
 135  WHERE
 136      $sql_visible
 137  GROUP BY aut.id_auteur
 138  $sql_order";
 139  
 140  
 141  $t = spip_query($query);
 142  $nombre_auteurs = spip_num_rows($t);
 143  
 144  //
 145  // Lire les auteurs qui nous interessent
 146  // et memoriser la liste des lettres initiales
 147  //
 148  
 149  $max_par_page = 30;
 150  if ($debut > $nombre_auteurs - $max_par_page)
 151      $debut = max(0,$nombre_auteurs - $max_par_page);
 152  $debut = intval($debut);
 153  
 154  $i = 0;
 155  $auteurs=array();
 156  while ($auteur = spip_fetch_array($t)) {
 157      if ($i>=$debut AND $i<$debut+$max_par_page) {
 158          if ($auteur['statut'] == '0minirezo')
 159              $auteur['restreint'] = spip_num_rows(
 160                  spip_query("SELECT * FROM spip_auteurs_rubriques
 161                  WHERE id_auteur=".$auteur['id_auteur']));
 162              $auteurs[] = $auteur;
 163      }
 164      $i++;
 165  
 166      if ($tri == 'nom') {
 167          $lettres_nombre_auteurs ++;
 168          $premiere_lettre = strtoupper(spip_substr(extraire_multi($auteur['nom']),0,1));
 169          if ($premiere_lettre != $lettre_prec) {
 170  #            echo " - $auteur[nom] -";
 171              $lettre[$premiere_lettre] = $lettres_nombre_auteurs-1;
 172          }
 173          $lettre_prec = $premiere_lettre;
 174      }
 175  }
 176  
 177  
 178  
 179  //
 180  // Affichage
 181  //
 182  
 183  echo "<br>";
 184  if ($visiteurs=='oui')
 185      gros_titre(_T('info_visiteurs'));
 186  else
 187      gros_titre(_T('info_auteurs'));
 188  echo "<p>";
 189  
 190  
 191  debut_cadre_relief('auteur-24.gif');
 192  echo "<TABLE BORDER=0 CELLPADDING=2 CELLSPACING=0 WIDTH='100%' class='arial2' style='border: 1px solid #aaaaaa;'>\n";
 193  echo "<tr bgcolor='#DBE1C5'>";
 194  echo "<td width='20'>";
 195  if ($tri=='statut')
 196    echo http_img_pack('admin-12.gif','', "border='0'");
 197   else
 198     echo http_href_img('auteurs.php3?tri=statut','admin-12.gif', "border='0'", _T('lien_trier_statut'));
 199  
 200  echo "</td><td>";
 201      if ($tri == '' OR $tri=='nom')
 202          echo '<b>'._T('info_nom').'</b>';
 203      else
 204          echo "<a href='auteurs.php3?tri=nom' title='"._T('lien_trier_nom')."'>"._T('info_nom')."</a>";
 205  
 206  if ($options == 'avancees') echo "</td><td colspan='2'>"._T('info_contact');
 207  echo "</td><td>";
 208      if ($visiteurs != 'oui') {
 209          if ($tri=='nombre')
 210              echo '<b>'._T('info_articles').'</b>';
 211          else
 212              echo "<a href='auteurs.php3?tri=nombre' title=\""._T('lien_trier_nombre_articles')."\">"._T('info_articles_2')."</a>"; //'
 213      }
 214  echo "</td></tr>\n";
 215  
 216  if ($nombre_auteurs > $max_par_page) {
 217      echo "<tr bgcolor='white'><td class='arial1' colspan='".($options == 'avancees' ? 5 : 3)."'>";
 218      //echo "<font face='Verdana,Arial,Sans,sans-serif' size='2'>";
 219      for ($j=0; $j < $nombre_auteurs; $j+=$max_par_page) {
 220          if ($j > 0) echo " | ";
 221  
 222          if ($j == $debut)
 223              echo "<b>$j</b>";
 224          else if ($j > 0)
 225              echo "<a href=$retour&debut=$j>$j</a>";
 226          else
 227              echo " <a href=$retour>0</a>";
 228  
 229          if ($debut > $j  AND $debut < $j+$max_par_page){
 230              echo " | <b>$debut</b>";
 231          }
 232  
 233      }
 234      //echo "</font>";
 235      echo "</td></tr>\n";
 236  
 237      if ($tri == 'nom' AND $options == 'avancees') {
 238          // affichage des lettres
 239          echo "<tr bgcolor='white'><td class='arial11' colspan='5'>";
 240          foreach ($lettre as $key => $val) {
 241              if ($val == $debut)
 242                  echo "<b>$key</b> ";
 243              else
 244                  echo "<a href=$retour&debut=$val>$key</a> ";
 245          }
 246          echo "</td></tr>\n";
 247      }
 248      echo "<tr height='5'></tr>";
 249  }
 250  
 251  
 252  foreach ($auteurs as $row) {
 253      // couleur de ligne
 254      $couleur = ($i % 2) ? '#FFFFFF' : $couleur_claire;
 255      echo "<tr style='background-color: #eeeeee;'>";
 256  
 257      // statut auteur
 258      echo "<td style='border-top: 1px solid #cccccc;'>";
 259      echo bonhomme_statut($row);
 260  
 261      // nom
 262      echo "</td><td class='verdana11' style='border-top: 1px solid #cccccc;'>";
 263      echo "<a href='auteurs_edit.php3?id_auteur=".$row['id_auteur']."'>".typo($row['nom']).'</a>';
 264  
 265      if ($connect_statut == '0minirezo' AND $row['restreint'])
 266          echo " &nbsp;<small>"._T('statut_admin_restreint')."</small>";
 267  
 268  
 269      // contact
 270      if ($options == 'avancees') {
 271          echo "</td><td class='arial1' style='border-top: 1px solid #cccccc;'>";
 272          if ($row['messagerie'] != 'non' AND $row['login']
 273          AND $activer_messagerie != "non" AND $connect_activer_messagerie != "non" AND $messagerie != "non")
 274              echo bouton_imessage($row['id_auteur'],"force")."&nbsp;";
 275          if ($connect_statut=="0minirezo")
 276              if (strlen($row['email'])>3)
 277                  echo "<A HREF='mailto:".$row['email']."'>"._T('lien_email')."</A>";
 278              else
 279                  echo "&nbsp;";
 280  
 281          if (strlen($row['url_site'])>3)
 282              echo "</td><td class='arial1' style='border-top: 1px solid #cccccc;'><A HREF='".$row['url_site']."'>"._T('lien_site')."</A>";
 283          else
 284              echo "</td><td style='border-top: 1px solid #cccccc;'>&nbsp;";
 285      }
 286  
 287      // nombre d'articles
 288      echo "</td><td class='arial1' style='border-top: 1px solid #cccccc;'>";
 289      if ($row['compteur'] > 1)
 290          echo $row['compteur']."&nbsp;"._T('info_article_2');
 291      else if($row['compteur'] == 1)
 292          echo "1&nbsp;"._T('info_article');
 293      else
 294          echo "&nbsp;";
 295  
 296      echo "</td></tr>\n";
 297  }
 298  
 299  echo "</table>\n";
 300  
 301  
 302  echo "<a name='bas'>";
 303  echo "<table width='100%' border='0'>";
 304  
 305  $debut_suivant = $debut + $max_par_page;
 306  if ($debut_suivant < $nombre_auteurs OR $debut > 0) {
 307      echo "<tr height='10'></tr>";
 308      echo "<tr bgcolor='white'><td align='left'>";
 309      if ($debut > 0) {
 310          $debut_prec = strval(max($debut - $max_par_page, 0));
 311          $link = new Link;
 312          $link->addVar('debut', $debut_prec);
 313          echo $link->getForm('GET');
 314          echo "<input type='submit' name='submit' value='&lt;&lt;&lt;' class='fondo'>";
 315          echo "</form>";
 316          //echo "<a href='$retour&debut=$debut_prec'>&lt;&lt;&lt;</a>";
 317      }
 318      echo "</td><td style='text-align: $spip_lang_right'>";
 319      if ($debut_suivant < $nombre_auteurs) {
 320          $link = new Link;
 321          $link->addVar('debut', $debut_suivant);
 322          echo $link->getForm('GET');
 323          echo "<input type='submit' name='submit' value='&gt;&gt;&gt;' class='fondo'>";
 324          echo "</form>";
 325          //echo "<a href='$retour&debut=$debut_suivant'>&gt;&gt;&gt;</a>";
 326      }
 327      echo "</td></tr>\n";
 328  }
 329  
 330  echo "</table>\n";
 331  
 332  
 333  
 334  fin_cadre_relief();
 335  
 336  
 337  fin_page();
 338  
 339  ?>


Généré le : Thu Feb 22 22:27:47 2007 par Balluche grâce à PHPXref 0.7