[ Index ] |
|
Code source de SPIP 1.8.3 |
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 " <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")." "; 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 " "; 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;'> "; 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']." "._T('info_article_2'); 291 else if($row['compteur'] == 1) 292 echo "1 "._T('info_article'); 293 else 294 echo " "; 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='<<<' class='fondo'>"; 315 echo "</form>"; 316 //echo "<a href='$retour&debut=$debut_prec'><<<</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='>>>' class='fondo'>"; 324 echo "</form>"; 325 //echo "<a href='$retour&debut=$debut_suivant'>>>></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 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Thu Feb 22 22:27:47 2007 | par Balluche grâce à PHPXref 0.7 |