source: spip-zone/_plugins_/contacts_et_organisations/trunk/prive/objets/liste/organisations.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.9 KB
Line 
1[(#REM) Tableau complet des organisations, affiché sur la page ?exec=organisations ]
2[(#SET{defaut_tri,#ARRAY{
3        nom,1,
4        id_organisation,1
5        statut_juridique,1
6        id_auteur,1
7}})]
8
9<BOUCLE_test_annuaire(CONDITION){si #CONFIG{contacts_et_organisations/utiliser_annuaires}}>
10<div class="onglets_simple clearfix">
11        <ul>
12                <li>
13                        [(#ENV{id_annuaire}|is_null|?{<strong>, <a class="ajax" href="[(#SELF|parametre_url{id_annuaire,''})]">})]
14                        <:contacts:organisations_tout:>
15                        [(#ENV{id_annuaire}|is_null|?{</strong>, </a>})]
16                </li>
17                <BOUCLE_filtre_annuaires(ANNUAIRES){par titre}>
18                <li>
19                        <BOUCLE_comptage_organisations_annuaire(ORGANISATIONS){id_annuaire}{id_parent ?= #ENV{id_parent}}/>#SET{nb_organisations,#TOTAL_BOUCLE}<//B_comptage_organisations_annuaire>
20                        [(#ENV{id_annuaire}|=={#ID_ANNUAIRE}|?{<strong>, <a class="ajax" href="[(#SELF|parametre_url{id_annuaire,#ID_ANNUAIRE})]">})]
21                        #TITRE (#GET{nb_organisations})
22                        [(#ENV{id_annuaire}|=={#ID_ANNUAIRE}|?{</strong>,</a>})]
23                </li>
24                </BOUCLE_filtre_annuaires>
25                <li>
26                        <BOUCLE_comptage_organisations_aucun(ORGANISATIONS){id_annuaire=0}{id_parent ?= #ENV{id_parent}}/>#SET{nb_organisations,#TOTAL_BOUCLE}<//B_comptage_organisations_aucun>
27                        [(#ENV{id_annuaire}|=={0}|?{<strong>, <a class="ajax" href="[(#SELF|parametre_url{id_annuaire,0})]">})]
28                        <:contacts:annuaire_aucun:> (#GET{nb_organisations})
29                        [(#ENV{id_annuaire}|=={0}|?{</strong>, </a>})]
30                </li>
31        </ul>
32</div>
33</BOUCLE_test_annuaire>
34
35<B_liste_orga>
36#ANCRE_PAGINATION
37<div class="liste-objets organisations">
38<INCLURE{fond=inclure/pagination_alpha_organisations, env} />
39<table class='spip liste'>
40[<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{contacts:organisation_un,contacts:organisations_nb}})</strong></caption>]
41        <thead>
42                <tr class='first_row'>
43                        <th class="picto"></th>
44                        <th class='nom' scope='col'>[(#TRI{nom,<:info_nom:>,ajax})]</th>
45                        <th class='statut_juridique' scope='col'>[(#TRI{statut_juridique,<:contacts:label_statut_juridique:>,ajax})]</th>
46            <th class="nb_contacts"><:contacts:info_nb_contacts:></th>
47                        <th class='id' scope='col'>[(#TRI{id_organisation,<:info_numero_abbreviation:>,ajax})]</th>
48                </tr>
49        </thead>
50        <tbody>
51        <BOUCLE_liste_orga(ORGANISATIONS)
52                {compteur_contacts}
53                {id_annuaire?}
54                {id_contact?}{id_auteur?}{id_parent ?= #ENV{id_parent}}
55                {recherche?}{auteurs.statut ?= #ENV{statut,''}}
56                {where?}
57                {tri #ENV{order,nom},#GET{defaut_tri}}{pagination #ENV{nb,20}}
58        >
59                <tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
60                        <BOUCLE_lien_organisation(organisations_liens){id_organisation}>
61                                [(#SET{url,[(#ID_OBJET|generer_url_entite{#OBJET})]})]
62                        </BOUCLE_lien_organisation>
63                                [(#SET{url,[(#ID_ORGANISATION|generer_url_entite{organisation})]})]
64                        <//BOUCLE_lien_organisation>
65                        <td class="picto"><a href="#GET{url}">#INCLURE{fond=logo/organisation, id_organisation}</a></td>
66                        <td class='nom'><a href="[(#ID_ORGANISATION|generer_url_entite{organisation})]">#NOM</a></td>
67                        <td class="statu_juridique">[(#STATUT_JURIDIQUE)]</td>
68                        <td class='nb_contacts'>
69                                [(#COMPTEUR_CONTACTS|singulier_ou_pluriel{contacts:nb_contact,contacts:nb_contacts}|sinon{-})]
70                        </td>
71                        <td class='id'>[(#AUTORISER{modifier,organisation,#ID_ORGANISATION}|?{
72                                <a href="[(#URL_ECRIRE{organisation_edit,id_organisation=#ID_ORGANISATION})]">#ID_ORGANISATION</a>,
73                                #ID_ORGANISATION
74                        })]</td>
75                </tr>
76        </BOUCLE_liste_orga>
77        </tbody>
78        [(#AUTORISER{exporter,organisations,'','',#ARRAY{id_annuaire,#ENV{id_annuaire}}}|oui)
79        <tfoot>
80                <tr>
81                        <th colspan="100">
82                                <a href="#URL_ACTION_AUTEUR{exporter_organisations,#ENV{id_annuaire}}"><:contacts:exporter_organisations:></a>
83                        </th>
84                </tr>
85        </tfoot>
86        ]
87</table>
88[<p class='pagination'>(#PAGINATION{prive})</p>]
89</div>
90</B_liste_orga>[
91<div class="liste-objets organisations"><strong class="caption">(#ENV*{sinon,''})</strong></div>
92]<//B_liste_orga>
Note: See TracBrowser for help on using the repository browser.