source: spip-zone/_plugins_/contacts_et_organisations/trunk/prive/objets/liste/contacts.html @ 93725

Last change on this file since 93725 was 93725, checked in by tcharlss@…, 5 years ago

Ajout d'une pagination alphabétique sur les listes des contacts et des organisations (sur un modèle de Rastapopoulos très légèrement adapté). À noter, les lettres n'agissent pas comme des filtres qui réduiraient le nombre résutats, mais comme des liens de pagination qui mènent vers les bonnes entrées dans les listes.
Je place les 2 squelettes dans un nouveau répertoire /inclure afin qu'ils soient réutilisables dans le public. Dans ces cas, il faut bien penser à passer l'identifiant de la boucle concernée en paramètre, par défaut, c'est 'liste_contacts'.
Up de Z.

File size: 3.7 KB
Line 
1[(#REM) Tableau complet des contacts, affiché sur la page ?exec=contacts ]
2[(#SET{defaut_tri,#ARRAY{
3        nom,1,
4        id_contact,1
5}})
6]
7
8<BOUCLE_test_annuaire(CONDITION){si #CONFIG{contacts_et_organisations/utiliser_annuaires}}>
9<div class="onglets_simple clearfix">
10        <ul>
11                <li>
12                        [(#ENV{id_annuaire}|is_null|?{<strong>, <a class="ajax" href="[(#SELF|parametre_url{id_annuaire,''})]">})]
13                        <:contacts:contacts_tout:>
14                        [(#ENV{id_annuaire}|is_null|?{</strong>, </a>})]
15                </li>
16                <BOUCLE_filtre_annuaires(ANNUAIRES){par titre}>
17                <li>
18                        <BOUCLE_comptage_contacts_annuaire(CONTACTS){id_annuaire}/>#SET{nb_contacts,#TOTAL_BOUCLE}<//B_comptage_contacts_annuaire>
19                        [(#ENV{id_annuaire}|=={#ID_ANNUAIRE}|?{<strong>, <a class="ajax" href="[(#SELF|parametre_url{id_annuaire,#ID_ANNUAIRE})]">})]
20                        #TITRE (#GET{nb_contacts})
21                        [(#ENV{id_annuaire}|=={#ID_ANNUAIRE}|?{</strong>,</a>})]
22                </li>
23                </BOUCLE_filtre_annuaires>
24                <li>
25                        <BOUCLE_comptage_contacts_aucun(CONTACTS){id_annuaire=0}/>#SET{nb_contacts,#TOTAL_BOUCLE}<//B_comptage_contacts_aucun>
26                        [(#ENV{id_annuaire}|=={0}|?{<strong>, <a class="ajax" href="[(#SELF|parametre_url{id_annuaire,0})]">})]
27                        <:contacts:annuaire_aucun:> (#GET{nb_contacts})
28                        [(#ENV{id_annuaire}|=={0}|?{</strong>, </a>})]
29                </li>
30        </ul>
31</div>
32</BOUCLE_test_annuaire>
33
34<B_liste_contacts>
35#ANCRE_PAGINATION
36<div class="liste-objets contacts">
37<INCLURE{fond=inclure/pagination_alpha_contacts, env} />
38<table class='spip liste'>
39[<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{contacts:contact_un,contacts:contacts_nb}})</strong></caption>]
40        <thead>
41                <tr class='first_row'>
42                        <th class="picto"></th>
43                        <th class="nom">[(#TRI{nom,<:contacts:label_prenom_nom:>,ajax})]</th>
44                        <th class="organisation"><:contacts:label_organisation:></th>
45                        <th class='auteur'><:contacts:label_auteur_associe:></th>
46                        <th class='id' scope='col'>[(#TRI{id_contact,<:info_numero_abbreviation:>,ajax})]</th>
47                </tr>
48        </thead>
49        <tbody>
50        <BOUCLE_liste_contacts(CONTACTS)
51                {id_annuaire?}
52                {id_organisation?}{recherche ?}
53                {auteurs.statut ?= #ENV{statut,''}}
54                {where?}
55                {tri #ENV{order,nom},#GET{defaut_tri}}{pagination #ENV{nb,20}}
56        >
57                <tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
58                        <BOUCLE_lien_contact(contacts_liens){id_contact}>
59                                [(#SET{url,[(#ID_OBJET|generer_url_entite{#OBJET})]})]
60                        </BOUCLE_lien_contact>
61                                [(#SET{url,[(#ID_CONTACT|generer_url_entite{contact})]})]
62                        <//BOUCLE_lien_contact>
63                        <td class="picto"><a href="[(#GET{url})]">#INCLURE{fond=logo/contact, id_contact}</a></td>
64                        <td class='nom'><a href="[(#ID_CONTACT|generer_url_entite{contact})]" title="<:contacts:contact_voir|attribut_html:>">[<span class="#EDIT{prenom}">(#PRENOM)</span> ]#NOM</a></td>
65                        <td class='organisation'>[(#ORGANISATIONS|sinon{-})]</td>
66                        <td class='auteur'>
67                        <BOUCLE_auteur (AUTEURS){tout}{id_auteur}>
68                                [<a href="(#URL_ECRIRE{auteur}|parametre_url{id_auteur,#ID_AUTEUR})">#NOM</a>]
69                        </BOUCLE_auteur></B_auteur>-<//B_auteur>
70                        </td>
71                        <td class='id'>[(#AUTORISER{modifier,contact,#ID_CONTACT}|?{
72                                <a href="[(#URL_ECRIRE{contact_edit,id_contact=#ID_CONTACT})]">#ID_CONTACT</a>,
73                                #ID_CONTACT
74                        })]</td>
75                </tr>
76        </BOUCLE_liste_contacts>
77        </tbody>
78        [(#AUTORISER{exporter,contacts,'','',#ARRAY{id_annuaire,#ENV{id_annuaire}}}|oui)
79        <tfoot>
80                <tr>
81                        <th colspan="100">
82                                <a href="#URL_ACTION_AUTEUR{exporter_contacts,#ENV{id_annuaire}}"><:contacts:exporter_contacts:></a>
83                        </th>
84                </tr>
85        </tfoot>
86        ]
87</table>
88[<p class='pagination'>(#PAGINATION{prive})</p>]
89</div>
90</B_liste_contacts>[
91<div class="liste-objets contacts"><strong class="caption">(#ENV*{sinon,<:contacts:aucun_contact:>})</strong></div>
92]<//B_liste_contacts>
Note: See TracBrowser for help on using the repository browser.