source: spip-zone/_plugins_/_dev_/gestion_auteurs/exec/auteurs.php @ 10287

Last change on this file since 10287 was 10287, checked in by bertrand@…, 14 years ago

Absoluement pas fonctionnel, exec=auteurs est qu'une vision, manque inc/navigation_liste

File size: 10.5 KB
Line 
1<?php
2 /**************************************************************************\
3*  SPIP, Systeme de publication pour l'internet                              *
4*                                                                            *
5*  Copyright (c) 2001-2007                                                   *
6*  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James     *
7*                                                                            *
8*  Ce script fait partie d'un logiciel libre distribue sous licence GNU/GPL. *
9*  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.      *
10 \**************************************************************************/
11
12if (!defined("_ECRIRE_INC_VERSION")) return;
13
14// http://doc.spip.org/@exec_auteurs_dist
15function exec_auteurs()
16{
17        include_spip('inc/presentation');
18        include_spip('inc/navigation_liste');
19
20        (($tri = preg_replace('/\W/', '', _request('tri'))) || ($tri='nom'));
21        $statut = preg_replace('/\W/', '', _request('statut'));
22       
23        $navig = new NavigationListe(array(
24                'requete_liste' => requete_auteurs($tri, $statut),
25//              'callback_liste' => 'complement_auteur',
26//              'requete_comptage' => 'SELECT COUNT(*) FROM spip_auteurs',
27                'requete_etapes' =>
28                        'SELECT DISTINCT UPPER(LEFT(nom,1)) l, COUNT(*) FROM spip_auteurs
29                         GROUP BY l ORDER BY l',
30                'max_par_page' => 30,
31                'debut' => intval(_request('debut')),
32                'fragment' => intval(_request('fragment')),
33                'contenu_ligne' => 'ligne_auteur'
34        ));
35        $res = $navig->show();
36/*
37        $result = requete_auteurs($tri, $statut);
38        $nombre_auteurs = spip_num_rows($result);
39        $max_par_page = 30;
40        $debut = intval(_request('debut'));
41        if ($debut > $nombre_auteurs - $max_par_page)
42                $debut = max(0,$nombre_auteurs - $max_par_page);
43
44        list($auteurs, $lettre)= lettres_d_auteurs($result, $debut, $max_par_page, $tri);
45
46        $res = auteurs_tranches(afficher_n_auteurs($auteurs), $debut, $lettre, $tri, $statut, $max_par_page, $nombre_auteurs);
47*/
48        if (_request('var_ajaxcharset')) {
49                $ret = ajax_retour($res);
50        } else {
51                $ret =
52                  pipeline('exec_init',array('args'=>array('exec'=>'auteurs'),'data'=>''))
53
54                . bandeau_auteurs($tri, $statut)
55
56                . '<div id="auteurs">' . $res . '</div>'
57                . pipeline('affiche_milieu',array('args'=>array('exec'=>'auteurs'),'data'=>''))
58                . fin_gauche() . fin_page();
59        }
60        echo $ret;
61}
62
63function ligne_auteurs($ligne = array(), $pos = 0, $reste = 0)
64{
65        if ($ligne['statut'] == '0minirezo') {
66                $count = spip_fetch_array(spip_query(
67                        'SELECT COUNT(*) FROM spip_auteurs_rubriques WHERE id_auteur='
68                        . $ligne['id_auteur']), SPIP_NUM);
69                $ligne['restreint'] = $count[0];
70        }
71}
72
73function requete_auteurs($tri, $statut)
74{
75        global $connect_statut, $spip_lang, $connect_id_auteur;
76
77        //
78        // Construire la requete
79        //
80
81        // si on n'est pas minirezo, ignorer les auteurs sans article publie
82        // sauf les admins, toujours visibles.
83        // limiter les statuts affiches
84        if ($connect_statut == '0minirezo') {
85                if ($statut) {
86                        $sql_visible = "aut.statut IN ('$statut')";
87                        $tri = 'nom';
88                } else {
89                        $sql_visible = "aut.statut IN ('0minirezo','1comite','5poubelle')";
90                }
91        } else {
92                $sql_visible = "(
93                        aut.statut = '0minirezo'
94                        OR art.statut IN ('prop', 'publie')
95                        OR aut.id_auteur=$connect_id_auteur
96                )";
97        }
98
99        $sql_sel = '';
100
101        // tri
102        switch ($tri) {
103        case 'nombre':
104                $sql_order = ' compteur DESC, unom';
105                break;
106
107        case 'statut':
108                $sql_order = ' statut, unom';
109                break;
110
111        case 'nom':
112        default:
113                $sql_sel = ", ".creer_objet_multi ("nom", $spip_lang);
114                $sql_order = " multi";
115        }
116
117        return "SELECT
118                aut.id_auteur AS id_auteur,
119                aut.statut AS statut,
120                aut.nom AS nom,
121                UPPER(aut.nom) AS unom,
122                count(lien.id_article) as compteur
123                $sql_sel
124                FROM spip_auteurs as aut
125                LEFT JOIN spip_auteurs_articles AS lien ON aut.id_auteur=lien.id_auteur
126                LEFT JOIN spip_articles AS art ON (lien.id_article = art.id_article)
127                WHERE $sql_visible
128                GROUP BY aut.id_auteur
129                ORDER BY $sql_order";
130}
131/*
132// http://doc.spip.org/@lettres_d_auteurs
133function lettres_d_auteurs($query, $debut, $max_par_page, $tri)
134{
135        $auteurs = $lettre = array();
136        $lettres_nombre_auteurs =0;
137        $lettre_prec ="";
138        $i = 0;
139        while ($auteur = spip_fetch_array($query)) {
140                if ($i>=$debut AND $i<$debut+$max_par_page) {
141                        if ($auteur['statut'] == '0minirezo')
142                                $auteur['restreint'] = spip_num_rows(spip_query("SELECT id_auteur FROM spip_auteurs_rubriques WHERE id_auteur=".$auteur['id_auteur']));
143                        $auteurs[] = $auteur;
144                }
145                $i++;
146
147                if ($tri == 'nom') {
148                        $premiere_lettre = strtoupper(spip_substr(extraire_multi($auteur['nom']),0,1));
149                        if ($premiere_lettre != $lettre_prec) {
150                                $lettre[$premiere_lettre] = $lettres_nombre_auteurs;
151                        }
152                        $lettres_nombre_auteurs ++;
153                        $lettre_prec = $premiere_lettre;
154                }
155        }
156
157        return array($auteurs, $lettre);
158}
159*/
160
161// http://doc.spip.org/@bandeau_auteurs
162function bandeau_auteurs($tri, $statut)
163{
164        global $options, $spip_lang_right, $connect_id_auteur,   $connect_statut,   $connect_toutes_rubriques;
165
166        $commencer_page = charger_fonction('commencer_page', 'inc');
167        return ($statut == '6forum' ?
168                $commencer_page(_T('titre_page_auteurs'), "auteurs", "redacteurs") :
169                $commencer_page(_T('info_auteurs_par_tri', array('partri' =>
170                         $tri=='nom' ? _T('info_par_nom') :
171                        ($tri=='statut' ? _T('info_par_statut') : _T('info_par_nombre_articles')))),
172                        "auteurs", "redacteurs"))
173        . debut_gauche(null, true)
174
175        . debut_boite_info(true)
176        . "\n<p class='arial1'>"
177        . ($statut == '6forum' ? _T('info_gauche_visiteurs_enregistres') : _T('info_gauche_auteurs'))
178        . '</p>'
179        . ($connect_statut == '0minirezo' ? "\n<br />". _T('info_gauche_auteurs_exterieurs') : '')
180        . fin_boite_info(true)
181        . pipeline('affiche_gauche',array('args'=>array('exec'=>'auteurs'),'data'=>''))
182
183        . bloc_des_raccourcis(
184                ($connect_statut == '0minirezo' ?
185
186                ($connect_toutes_rubriques ?
187                        icone_horizontale(_T('icone_creer_nouvel_auteur'), generer_url_ecrire("auteur_infos", 'new=oui'), "auteur-24.gif", "creer.gif", false) : '') : '')
188
189                . icone_horizontale(_T('icone_informations_personnelles'), generer_url_ecrire("auteur_infos","id_auteur=$connect_id_auteur"), "fiche-perso-24.gif","rien.gif", false)
190
191                . (spip_num_rows(spip_query("SELECT id_auteur FROM spip_auteurs WHERE statut='6forum' LIMIT 1")) ?
192                        ($statut == '6forum' ?
193                                icone_horizontale (_T('icone_afficher_auteurs'), generer_url_ecrire("auteurs"), "auteur-24.gif", "", false) :
194                                icone_horizontale (_T('icone_afficher_visiteurs'), generer_url_ecrire("auteurs","statut=6forum"), "auteur-24.gif", "", false)
195                        ) : '')
196                )
197//      )
198        . creer_colonne_droite(null, true)
199        . pipeline('affiche_droite',array('args'=>array('exec'=>'auteurs'),'data'=>''))
200        . debut_droite(null, true)
201
202        . "\n<br />"
203        . gros_titre(_T($statut == '6forum' ? 'info_visiteurs' : 'info_auteurs'), '', false)
204        . "\n<br />";
205}
206/*
207// http://doc.spip.org/@auteurs_tranches
208function auteurs_tranches($auteurs, $debut, $lettre, $tri, $statut, $max_par_page, $nombre_auteurs)
209{
210        global $options, $spip_lang_right;
211
212        $res ="\n<tr style='background-color: #dbe1c5'>"
213        . "\n<td style='width: 20px'>";
214
215        if ($tri=='statut')
216                $res .= http_img_pack('admin-12.gif','', " class='lang'");
217        else {
218          $t =  _T('lien_trier_statut');
219          $res .= auteurs_href(http_img_pack('admin-12.gif', $t, "class='lang'"),'tri=statut', " title=\"$t\"");
220        }
221
222        $res .= "</td><td style='width: 20px'></td><td colspan='2'>";
223
224        if ($tri == '' OR $tri=='nom')
225                $res .= '<b>'._T('info_nom').'</b>';
226        else
227                $res .= auteurs_href(_T('info_nom'), "tri=nom", " title='"._T('lien_trier_nom'). "'");
228
229
230        $res .= "</td><td>";
231
232        if ($statut != '6forum') {
233                if ($tri=='nombre')
234                        $res .= '<b>'._T('info_articles').'</b>';
235                else
236                        $res .= auteurs_href(_T('info_articles_2'), "tri=nombre", " title=\""._T('lien_trier_nombre_articles'). '"');
237        }
238
239        $res .= "</td></tr>\n";
240
241        if ($nombre_auteurs > $max_par_page) {
242                $res .= "\n<tr style='background-color: white'><td class='arial1' colspan='5'>";
243
244                for ($j=0; $j < $nombre_auteurs; $j+=$max_par_page) {
245                        if ($j > 0)     $res .= " | ";
246
247                        if ($j == $debut)
248                                $res .= "<b>$j</b>";
249                        else if ($j > 0)
250                                $res .= auteurs_href($j, "tri=$tri&statut=$statut&debut=$j");
251                        else
252                                $res .= auteurs_href('0', "tri=$tri&statut=$statut");
253                        if ($debut > $j  AND $debut < $j+$max_par_page){
254                                $res .= " | <b>$debut</b>";
255                        }
256                }
257                $res .= "</td></tr>\n";
258
259                if ($tri == 'nom' AND $options == 'avancees') {
260                        $res .= "\n<tr style='background-color: white'><td class='arial11' colspan='5'>";
261                        foreach ($lettre as $key => $val) {
262                                if ($val == $debut)
263                                        $res .= "<b>$key</b>\n";
264                                else
265                                        $res .= auteurs_href($key, "tri=$tri&statut=$statut&debut=$val") . "\n";
266                        }
267                        $res .= "</td></tr>\n";
268                }
269        }
270
271        $nav = '';
272        $debut_suivant = $debut + $max_par_page;
273        if ($debut_suivant < $nombre_auteurs OR $debut > 0) {
274                $nav = "\n<table id='bas' style='width: 100%' border='0'>"
275                . "\n<tr style='background-color: white'><td align='left'>";
276
277                if ($debut > 0) {
278                        $debut_prec = max($debut - $max_par_page, 0);
279                        $nav .= auteurs_href('&lt;&lt;&lt;',"tri=$tri&debut=$debut_prec&statut=$statut");
280                }
281                $nav .= "</td><td style='text-align: $spip_lang_right'>";
282                if ($debut_suivant < $nombre_auteurs) {
283                        $nav .= auteurs_href('&gt;&gt;&gt;',"tri=$tri&debut=$debut_suivant&statut=$statut");
284                }
285                $nav .= "</td></tr></table>\n";
286        }
287
288        return  debut_cadre_relief('auteur-24.gif',true)
289        . "\n<table  class='arial2' border='0' cellpadding='2' cellspacing='0' style='width: 100%; border: 1px solid #aaaaaa;'>\n"
290        . $res
291        . $auteurs
292        . "</table>\n<br />"
293        .  $nav
294        . fin_cadre_relief(true);
295}
296
297// http://doc.spip.org/@auteurs_href
298function auteurs_href($clic, $args='', $att='')
299{
300        $h = generer_url_ecrire('auteurs', $args);
301        $a = 'auteurs';
302
303        if (_SPIP_AJAX === 1 )
304                $att .= ("\nonclick=" . ajax_action_declencheur($h,$a));
305
306        return "<a href='$h#$a'$att>$clic</a>";
307}
308
309// http://doc.spip.org/@afficher_n_auteurs
310function afficher_n_auteurs($auteurs) {
311        global $connect_statut, $options;
312
313        $res = '';
314        $formater_auteur = charger_fonction('formater_auteur', 'inc');
315        foreach ($auteurs as $row) {
316
317                list($s, $mail, $nom, $w, $p) = $formater_auteur($row['id_auteur']);
318                $res .= "\n<tr style='background-color: #eeeeee;'>"
319                . "\n<td style='border-top: 1px solid #cccccc;'>"
320                . $s
321                . "</td><td class='arial1' style='border-top: 1px solid #cccccc;'>"
322                . $mail
323                . "</td><td class='verdana1' style='border-top: 1px solid #cccccc;'>"
324                . $nom
325                . ((isset($row['restreint']) AND $row['restreint'])
326                   ? (" &nbsp;<small>"._T('statut_admin_restreint')."</small>")
327                   : '')
328                 ."</td><td class='arial1' style='border-top: 1px solid #cccccc;'>"
329                 . $w
330                 . "</td><td class='arial1' style='border-top: 1px solid #cccccc;'>"
331                 . $p
332                .  "</td></tr>\n";
333        }
334        return $res;
335}
336*/
337?>
Note: See TracBrowser for help on using the repository browser.