source: spip-zone/_squelettes_/forum_spipBB/dev/mes_fonctions.php @ 5403

Last change on this file since 5403 was 5403, checked in by james@…, 15 years ago

deux nouveaux modèles

modeles/spipbb_liste_sujets.html: une table paginée des sujets d'un forum spipbb
modeles/spipbb_login.html: l'habillage du login public

File size: 8.2 KB
Line 
1<?php
2
3/*
4 *   +----------------------------------+
5 *    Nom du Filtre :    get_auteur_infos
6 *   +----------------------------------+
7 *    Date : lundi 23 février 2004
8 *    Auteur :  Nikau (luchier@nerim.fr)
9 *   +-------------------------------------+
10 *    Fonctions de ce filtre :
11 *    Cette fonction permet d'obtenir toutes les infos
12 *    d'un auteur avec son nom ou son id_auteur
13 *    ATTENTION !! cette fonction ne s'utilise pas de       
14 *    façon classique !! voir explication dans la contrib'
15 *    Fonction utilisée également dans la fonction
16 *    'afficher_avatar'
17 *   +-------------------------------------+
18 * 
19 * Pour toute suggestion, remarque, proposition d'ajout
20 * reportez-vous au forum de l'article :
21 * http://www.spip-contrib.net/article.php3?id_article=261
22*/
23function get_auteur_infos($id='', $nom='') {
24if ($id) $query = "SELECT * FROM spip_auteurs WHERE id_auteur=$id";
25if ($nom) $query = "SELECT * FROM spip_auteurs WHERE nom='$nom'";
26$result = spip_query($query);
27
28if ($row = spip_fetch_array($result)) {
29$row=serialize($row);
30}
31return $row;
32}
33
34
35/*
36 *   +----------------------------------+
37 *    Nom du Filtre :    afficher_avatar
38 *   +----------------------------------+
39 *    Date : lundi 23 février 2004
40 *    Auteur :  Nikau (luchier@nerim.fr)
41 *   +-------------------------------------+
42 *    Fonctions de ce filtre :
43 *    Cette fonction permet d'afficher
44 *    l'avatar d'un auteur.
45 *    On peut passer une classe CSS pour régler       
46 *    l'affichage
47 *    EXEMPLE :
48 *    [(#NOM|afficher_avatar{''})] ou
49 *     [(#NOM|afficher_avatar{'nom_de_la_classe'})]
50 *   +-------------------------------------+
51 * 
52 * Pour toute suggestion, remarque, proposition d'ajout
53 * reportez-vous au forum de l'article :
54 * http://www.uzine.net/spip_contrib/article.php3?id_article=261
55*/
56function afficher_avatar($nom, $classe='') {
57if ($classe!='') $insert=" class=\"$classe\""; else $insert="";
58
59$infos=unserialize(get_auteur_infos('', $nom));
60$fichier = '';
61
62if ($infos['statut']=="0minirezo" OR $infos[statut]=="1comite") {
63  $racine="auton$infos[id_auteur]";
64        if (file_exists("IMG/$racine.gif")) {
65                $fichier = "$racine.gif";
66                }
67                else if (file_exists("IMG/$racine.jpg")) {
68                                 $fichier = "$racine.jpg";
69                                 }
70                else if (file_exists("IMG/$racine.png")) {
71                                 $fichier = "$racine.png";
72                }
73          if($fichier!= '' ){
74          $retour="<img".$insert." src=\"IMG/$fichier\" alt=\"avatar de $nom\">";
75          }
76        }
77        else {
78        if ($infos['statut']=="6forum") {
79        $infos=unserialize(get_auteur_infos('', $nom));
80$source=unserialize($infos[extra]);
81$source_extra=$source[avatar];
82if(isset($source_extra))
83$retour="<img".$insert."  src=\"".$source_extra."\" alt=\"Avatar de $nom\">";
84}
85}
86return $retour;
87}
88
89
90
91/*
92 *   +----------------------------------+
93 *    Nom des Filtres :  afficher_mots_clefs et pas_afficher_mots_clefs
94 *   +----------------------------------+
95 *    Date : lundi 25 février 2004
96 *    Auteur :  Nikau (luchier@nerim.fr)
97 *   +-------------------------------------+
98 *    Fonctions de ce filtre :
99 *    Permet d'afficher ou non les mots clefs pour
100 *    les forums selon le statut de l'auteur du message
101 *    EXEMPLE :
102 *    [(#ID_FORUM|afficher_mots_clefs] ou
103 *     [(#ID_FORUM|pas_afficher_mots_clefs]
104 *   !! Adaptez les numéros (10 et 11) à vos numeros de groupe de mots clés !!
105 *   +-------------------------------------+
106 * 
107 * Pour toute suggestion, remarque, proposition d'ajout
108 * reportez-vous au forum de l'article :
109 * http://spip-contrib.net/article.php3?id_article=421
110*/
111function afficher_mots_clefs($texte) {
112// 3 à changer par le num du Groupe "Type de sujets"
113// 4 à changer par le num du Groupe de mot clé "Modération"
114if (($GLOBALS['auteur_session']['statut']=='0minirezo') OR ($GLOBALS['auteur_session']['statut']=='1comite'))
115{
116$GLOBALS['afficher_groupe'][]=3;
117$GLOBALS['afficher_groupe'][]=4;
118}
119else {
120$GLOBALS['afficher_groupe'][]=0;
121}
122}
123
124// 4 à changer par le num du Groupe de mot clé "Modération"
125function pas_afficher_mots_clefs($texte) {
126if (($GLOBALS['auteur_session']['statut']=='0minirezo'))
127{
128$GLOBALS['afficher_groupe'][]=4;
129}
130else{
131$GLOBALS['afficher_groupe'][]=0;
132}
133}
134
135
136
137/*
138 *   +---------------------------------------------+
139 *    Nom du Filtre : Nombre de messages
140 *   +---------------------------------------------+
141 *    Date : mercredi 09 avril 2003
142 *    Auteur : BoOz Email:booz@bloog.net
143 *    site : http://bloog.net
144 *   +---------------------------------------------+
145 *    Fonctions de ce filtre :
146 *    Compte le nombre de messages d'un auteur
147 *     Appelez le dans vos squellette tout simplement
148 *     par : [(#ID_AUTEUR|nb_messages)]
149 *   +---------------------------------------------+
150 * 
151 * Pour toute suggestion, remarque, proposition d'ajout
152 * reportez-vous au forum de l'article :
153 * http://www.uzine.net/spip_contrib/
154 *
155 */
156function nb_messages($id_auteur){
157
158global $table_prefix;
159$query = "SELECT auteur FROM ".$table_prefix."_forum WHERE id_auteur=$id_auteur";
160$nb_mess = "";
161
162$result_auteurs = spip_query($query);
163$nb_mess = spip_num_rows($result_auteurs);
164
165                return $nb_mess;
166               
167               
168}
169
170// FIN du nb_message
171
172
173
174
175/*
176 *   +----------------------------------+
177 *    Nom du Filtre :    smileys II
178 *   +----------------------------------+
179 *    Date : mercredi 14 octobre 2003
180 *    Auteur :  BoOz (booz@bloog.net)
181 *   +-------------------------------------+
182 *    Fonctions de ce filtre :
183 *    Dans un texte, génère automatiquement le smiley
184 *    approprié à la place d'une chaine :nom.
185 *    Ce filtre utilise les smileys disponibles dans       
186 *    le répertoire smileys/
187 *    Exemple d'application :
188 *    [(#TEXTE|smileys)]
189 *   +-------------------------------------+
190 * 
191 * Pour toute suggestion, remarque, proposition d'ajout
192 * reportez-vous au forum de l'article :
193 * http://www.spip-contrib.net/article.php3?id_article=261
194*/
195
196function smileys($chaine) {
197
198$listimag=array();
199$rep1="smileys/";
200
201$listfich=@opendir($rep1);
202
203if ($listfich != false){
204
205
206
207while ($fich=readdir($listfich))
208{       if(($fich !='..') and ($fich !='.') and ($fich !='.test'))
209        {
210$nomfich=substr($fich,0,strrpos($fich, "."));
211$listimag[$nomfich]="<img ALT=\"smiley\" src=\"smileys/".$fich."\">";
212        }
213}
214
215
216ksort($listimag);
217reset($listimag);
218
219while (list($nom,$chem) = each($listimag))
220{ 
221  $chaine = str_replace(":".$nom, $chem , $chaine);
222}
223
224}
225       
226           return $chaine;
227               
228               
229}
230
231        /*petit additif (Page x sur y)*/
232        function pagination_nbpages($total, $position=0, $pas=1, $texte="/") {
233                if (ereg('^debut([-_a-zA-Z0-9]+)$', $position, $match)) {
234                        $debut_lim = "debut".$match[1];
235                        $position = intval($GLOBALS['HTTP_GET_VARS'][$debut_lim]);
236                }
237                $nombre_pages = floor(($total-1)/$pas)+1;
238                $position = floor($position/$pas)+1;
239                return ($nombre_pages>1) ? $position.$texte.$nombre_pages : '';
240        }
241
242/*
243 *   +----------------------------------+
244 *    Nom du Filtre :    citation                                           
245 *   +----------------------------------+
246 *    Date : vendredi 11 novembre 2006
247 *    Auteur :  BoOz
248 *   +-------------------------------------+
249 *    Fonctions de ce filtre :
250 *     affiche le texte à citer   
251 *   +-------------------------------------+
252 * 
253 * Pour toute suggestion, remarque, proposition d'ajout
254 * reportez-vous au forum de l'article :
255 * http://www.spip-contrib.net/Pagination,663
256*/
257
258function barre_forum_citer($texte, $lan)
259{
260        include_ecrire('/inc/layer.php');
261
262if (!$premiere_passe = rawurldecode(_request('retour_forum'))) {
263        if($GLOBALS['citer']){
264
265        $id_citation = $GLOBALS['id_forum'] ;
266        $query = "SELECT * FROM spip_forum WHERE id_forum=$id_citation";
267    $result = spip_query($query);
268    $row = spip_fetch_array($result);
269//ajout de la citation
270
271$texte="\{\{$row[auteur] $lan:}}\n\n<quote>\n$row[texte]\n</quote>\n";
272
273        }
274       
275}
276
277       
278        if (!$GLOBALS['browser_barre'])
279                return "<textarea name='texte' rows='12' class='forml' cols='40'>$texte</textarea>";
280        static $num_formulaire = 0;
281        $num_formulaire++;
282        include_ecrire('inc_barre.php3');
283        return afficher_barre("document.getElementById('formulaire_$num_formulaire')", true) .
284          "
285<textarea name='texte' rows='12' class='forml' cols='40'
286id='formulaire_$num_formulaire'
287onselect='storeCaret(this);'
288onclick='storeCaret(this);'
289onkeyup='storeCaret(this);'
290ondbclick='storeCaret(this);'>$texte</textarea>";
291}
292
293?>
Note: See TracBrowser for help on using the repository browser.