1 | <?php |
---|
2 | /***************************************************************************\ |
---|
3 | * Associaspip, extension de SPIP pour gestion d'associations * |
---|
4 | * * |
---|
5 | * Copyright (c) 2007 Bernard Blazin & François de Montlivault (V1) * |
---|
6 | * Copyright (c) 2010-2011 Emmanuel Saint-James & Jeannot Lapin (V2) * |
---|
7 | * * |
---|
8 | * Ce programme est 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 | |
---|
12 | |
---|
13 | include_spip('inc/presentation'); // utilise par "onglet1_association" (pour "onglet") puis aussi dans les pages appelantes |
---|
14 | include_spip('inc/autoriser'); // utilise par "onglet1_association" (pour le test "autoriser") puis aussi dans les pages appelantes |
---|
15 | |
---|
16 | // Afficher le titre de la/le page/module courante puis (en dessous) les onglets des differents modules actives dans la configuration |
---|
17 | function onglets_association($titre='', $INSERT_HEAD=TRUE) |
---|
18 | { |
---|
19 | $res = ''; |
---|
20 | |
---|
21 | /* onglet de retour a la page d'accueil */ |
---|
22 | if (autoriser('voir_profil', 'association')) { |
---|
23 | $res .= onglet1_association('association', 'association', 'Association', 'assoc_qui.png'); |
---|
24 | } |
---|
25 | |
---|
26 | /* onglet de gestion des membres */ |
---|
27 | if (autoriser('voir_membres', 'association')) { |
---|
28 | $res .= onglet1_association('gestion_membres', 'adherents', 'Membres', 'annonce.gif'); |
---|
29 | } |
---|
30 | |
---|
31 | /* onglet de gestion des dons */ |
---|
32 | if ($GLOBALS['association_metas']['dons']) { |
---|
33 | $res .= onglet1_association('gestion_dons', 'dons', 'Dons', 'dons-24.gif'); |
---|
34 | } |
---|
35 | |
---|
36 | /* onglet de gestion des ventes */ |
---|
37 | if ($GLOBALS['association_metas']['ventes']) { |
---|
38 | $res .= onglet1_association('ventes_asso', 'ventes', 'Ventes', 'ventes.gif'); |
---|
39 | } |
---|
40 | |
---|
41 | /* onglet de gestion des activites */ |
---|
42 | if ($GLOBALS['association_metas']['activites']) { |
---|
43 | $res .= onglet1_association('gestion_activites', 'activites', 'Activites', 'activites.gif'); |
---|
44 | } |
---|
45 | |
---|
46 | /* onglet de gestion des prets */ |
---|
47 | if ($GLOBALS['association_metas']['prets']) { |
---|
48 | $res .= onglet1_association('gestion_prets', 'ressources', 'Prets', 'pret-24.gif'); |
---|
49 | } |
---|
50 | |
---|
51 | /* onglet de gestion comptable */ |
---|
52 | if ($GLOBALS['association_metas']['comptes']) { |
---|
53 | $res .= onglet1_association('livres_comptes', 'comptes', 'Comptes', 'finances-24.png'); |
---|
54 | } |
---|
55 | |
---|
56 | /* Affichage */ |
---|
57 | if ($INSERT_HEAD) { // mettre ''|0|FALSE|NULL dans la balise (appel dans une page HTML-SPIPee donc et non PHP) pour eviter l'erreur de "Double occurrence de INSERT_HEAD" |
---|
58 | $commencer_page = charger_fonction('commencer_page', 'inc'); |
---|
59 | echo $commencer_page(); |
---|
60 | } |
---|
61 | echo '<div class="table_page">'; |
---|
62 | // Nom du module |
---|
63 | echo '<h1 class="asso_titre">', $titre?_T("asso:$titre"):_T('asso:gestion_de_lassoc', array('nom'=>$GLOBALS['association_metas']['nom']) ), '</h1>'; // <http://programmer.spip.org/Contenu-d-un-fichier-exec> |
---|
64 | // Onglets actifs |
---|
65 | if ($res) |
---|
66 | echo '<div class="bandeau_actions">', debut_onglet(), $res, fin_onglet(), '</div>'; |
---|
67 | echo '</div>'; |
---|
68 | if ($INSERT_HEAD) { // Tant qu'a faire, on s'embete pas a le retaper dans toutes les pages... |
---|
69 | echo debut_gauche('',true); |
---|
70 | echo debut_boite_info(true); |
---|
71 | } |
---|
72 | } |
---|
73 | function association_onglets($titre='', $INSERT_HEAD=TRUE) |
---|
74 | { |
---|
75 | onglets_association($titre,$INSERT_HEAD); |
---|
76 | } |
---|
77 | |
---|
78 | // dessin d'un onglet seul |
---|
79 | function onglet1_association($texte, $objet, $libelle, $image) |
---|
80 | { |
---|
81 | return onglet(_T("asso:menu2_titre_$texte"), generer_url_ecrire($objet), '', $libelle, _DIR_PLUGIN_ASSOCIATION_ICONES . $image, 'rien.gif'); |
---|
82 | } |
---|
83 | |
---|
84 | // cette fonction remplace et personnalise le couplet final <http://programmer.spip.org/Contenu-d-un-fichier-exec> : echo fin_gauche(), fin_page(); |
---|
85 | function fin_page_association($FIN_CADRE_RELIEF=true) |
---|
86 | { |
---|
87 | $copyright = fin_page(); |
---|
88 | // Pour eliminer le copyright a l'impression |
---|
89 | $copyright = str_replace("<div class='table_page'>", "<div class='table_page contenu_nom_site'>", $copyright); |
---|
90 | echo ($FIN_CADRE_RELIEF ? fin_cadre_relief() : '') . fin_gauche() . $copyright; |
---|
91 | } |
---|
92 | |
---|
93 | //cadre en relief debutant la colonne centrale/principale essentiellement |
---|
94 | function debut_cadre_association($icone,$titre,$T_argrs='',$DEBUT_DROITE=true) |
---|
95 | { |
---|
96 | if ($DEBUT_DROITE) |
---|
97 | echo debut_droite('',true); |
---|
98 | debut_cadre_relief(_DIR_PLUGIN_ASSOCIATION_ICONES.$icone, false, '', (is_array($T_args)?_T("asso:$titre",$T_args): _T("asso:$titre")." $T_args") ); |
---|
99 | } |
---|
100 | |
---|
101 | // bloc de raccourci(s) constitue au moins du bouton retour |
---|
102 | // chaque raccourci precedant est defini sous la forme : 'titre' => array('icone', 'url_ecrire', 'parametre_url'), |
---|
103 | // echo association_date_du_jour(), fin_boite_info(true), association_retour($adresse_retour) <=> bloc_raccourcis_association($adresse_retour) |
---|
104 | function icones_association($adresse_retour='', $raccourcis=array(), $FIN_BOITE_INFO=TRUE) |
---|
105 | { |
---|
106 | $res = ''; // initialisation |
---|
107 | if ( is_array($raccourcis) AND count($raccourcis) ) { |
---|
108 | foreach($raccourcis as $raccourci_titre => $raccourci_parametres) { |
---|
109 | $res .= icone1_association($raccourci_titre, generer_url_ecrire($raccourci_parametres[1],$raccourci_parametres[2]), $raccourci_parametres[0]); |
---|
110 | } |
---|
111 | } |
---|
112 | if ( is_array($adresse_retour) ) { // tableau : url_exec, parametres_exec |
---|
113 | if ( is_array($adresse_retour) AND count($adresse_retour) ) |
---|
114 | $res .= icone1_association('bouton_retour', generer_url_ecrire($adresse_retour[0],$adresse_retour[1]), 'retour-24.png'); |
---|
115 | } else { // chaine de caractere : uri_complet |
---|
116 | $res .= icone1_association('bouton_retour', ($adresse_retour=='')?str_replace('&', '&', $_SERVER['HTTP_REFERER']):$adresse_retour, 'retour-24.png'); |
---|
117 | } |
---|
118 | if ($FIN_BOITE_INFO) { |
---|
119 | echo association_date_du_jour(); |
---|
120 | echo fin_boite_info(true); |
---|
121 | } |
---|
122 | echo bloc_des_raccourcis($res); |
---|
123 | } |
---|
124 | |
---|
125 | // dessin de bouton+texte+lien de raccourci seul |
---|
126 | function icone1_association($texte, $lien, $image, $sup='rien.gif') |
---|
127 | { |
---|
128 | return icone_horizontale(_T("asso:$texte"), $lien, _DIR_PLUGIN_ASSOCIATION_ICONES. $image, $sup, false); |
---|
129 | } |
---|
130 | |
---|
131 | // Bloc (tableau en ligne) d'affinage (filtrage) des resultats dans les pages principales... (ici il s'agit de la navigation au sein des donnees tabulaires --un grand listing-- d'un module...) |
---|
132 | function filtres_association($liste_filtres, $exec='', $supplements='', $td=TRUE) |
---|
133 | { |
---|
134 | echo '<form method="get" action="'. ($exec?generer_url_ecrire($exec):'') .'">'; |
---|
135 | if ($exec) |
---|
136 | echo "\n<input type='hidden' name='exec' value='$exec' />"; |
---|
137 | echo "\n<". ($td?'table width="100%"':'ul') .' class="asso_tablo_filtres">'. ($td?'<tr>':''); |
---|
138 | foreach($liste_filtres as $filtre_selection =>$params) { |
---|
139 | // echo ($td?'<td>':'<li>') . call_user_func("association_selectionner_$filtre_selection", (is_array($params)?implode(', ',$params):$params) ) . ($td?'</td>':'</li>'); |
---|
140 | echo ($td?'<td':'<li') ." class='filtre_$filtre_selection'>". call_user_func_array("association_selectionner_$filtre_selection", (is_array($params)?$params:array($params)) ) . ($td?'</td>':'</li>'); |
---|
141 | } |
---|
142 | if ( is_array($supplements) ) { |
---|
143 | foreach ($supplements as $nom => $supplement) { |
---|
144 | echo ($td?'<td':'<li') ." class='filtre_$nom'>$supplement</". ($td?'td>':'li>'); |
---|
145 | } |
---|
146 | } elseif ($supplements) { |
---|
147 | echo ($td?'<td':'<li') .">$supplements</". ($td?'td>':'li>'); |
---|
148 | } |
---|
149 | echo ($td?'<td':'<li') . ' class="boutons"><noscript><input type="submit" value="'. _T('asso:bouton_lister') .'" /></noscript></td>' . ($td?'</td>':'</li>'); |
---|
150 | echo ($td?'</tr></table':'</ul>') .">\n</form>\n"; |
---|
151 | } |
---|
152 | |
---|
153 | ?> |
---|