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

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

du ménage pour spipBB (phase 5) (la version de dev)

File size: 10.0 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/*
232 *   +----------------------------------+
233 *    Nom du Filtre :    pagination                                               
234 *   +----------------------------------+
235 *    Date : dimanche 22 août 2004
236 *    Auteur :  James (james<at>rezo.net)
237 *   +-------------------------------------+
238 *    Fonctions de ce filtre :
239 *     affiche la liste des pages d'une boucle contenant
240 *     un critère de limite du type {debut_xxx, yyy}
241 *   +-------------------------------------+
242 * 
243 * Pour toute suggestion, remarque, proposition d'ajout
244 * reportez-vous au forum de l'article :
245 * http://www.spip-contrib.net/Pagination,663
246*/
247
248        function pagination($total, $position=0, $pas=1, $fonction='') {
249                global $clean_link;
250                global $pagination_item_avant, $pagination_item_apres, $pagination_separateur;
251                tester_variable('pagination_separateur', '&nbsp;| ');
252                if (ereg('^debut([-_a-zA-Z0-9]+)$', $position, $match)) {
253                        $debut_lim = "debut".$match[1];
254                        $position = intval($GLOBALS['HTTP_GET_VARS'][$debut_lim]);
255                }
256                $nombre_pages = floor(($total-1)/$pas)+1;
257                $texte = '';
258                if($nombre_pages>1) {
259                        $i = 0;
260                        while($i<$nombre_pages) {
261                                $url = parametre_url($clean_link->getUrl(), $debut_lim, strval($i*$pas));
262                                if(function_exists($fonction)) $item = call_user_func($fonction, $i+1);
263                                else $item = strval($i+1);
264                                if(($i*$pas) != $position) {
265                                        if(function_exists('lien_pagination')) $item = lien_pagination($url, $item, $i+1);
266                                        else $item = "<a href=\"".$url."\">".$item."</a>";
267                                }
268                                $texte .= $pagination_item_avant.$item.$pagination_item_apres;
269                                if($i<($nombre_pages-1)) $texte .= $pagination_separateur;
270                                $i++;
271                        }
272                        //Correction bug: $clean_link doit revenir à son état initial
273                        $clean_link->delVar($debut_lim);
274                        if($position) $clean_link->addVar($debut_lim, $position);
275                        return $texte;
276                }
277                return '';
278        }
279
280        /*petit additif (Page x sur y)*/
281        function pagination_nbpages($total, $position=0, $pas=1, $texte="/") {
282                if (ereg('^debut([-_a-zA-Z0-9]+)$', $position, $match)) {
283                        $debut_lim = "debut".$match[1];
284                        $position = intval($GLOBALS['HTTP_GET_VARS'][$debut_lim]);
285                }
286                $nombre_pages = floor(($total-1)/$pas)+1;
287                $position = floor($position/$pas)+1;
288                return ($nombre_pages>1) ? $position.$texte.$nombre_pages : '';
289        }
290// FIN du Filtre pagination
291
292
293/*
294 *   +----------------------------------+
295 *    Nom du Filtre :    citation                                           
296 *   +----------------------------------+
297 *    Date : vendredi 11 novembre 2006
298 *    Auteur :  BoOz
299 *   +-------------------------------------+
300 *    Fonctions de ce filtre :
301 *     affiche le texte à citer   
302 *   +-------------------------------------+
303 * 
304 * Pour toute suggestion, remarque, proposition d'ajout
305 * reportez-vous au forum de l'article :
306 * http://www.spip-contrib.net/Pagination,663
307*/
308
309function barre_forum_citer($texte, $lan)
310{
311        include_ecrire('/inc/layer.php');
312
313if (!$premiere_passe = rawurldecode(_request('retour_forum'))) {
314        if($GLOBALS['citer']){
315
316        $id_citation = $GLOBALS['id_forum'] ;
317        $query = "SELECT * FROM spip_forum WHERE id_forum=$id_citation";
318    $result = spip_query($query);
319    $row = spip_fetch_array($result);
320//ajout de la citation
321
322$texte="\{\{$row[auteur] $lan:}}\n\n<quote>\n$row[texte]\n</quote>\n";
323
324        }
325       
326}
327
328       
329        if (!$GLOBALS['browser_barre'])
330                return "<textarea name='texte' rows='12' class='forml' cols='40'>$texte</textarea>";
331        static $num_formulaire = 0;
332        $num_formulaire++;
333        include_ecrire('inc_barre.php3');
334        return afficher_barre("document.getElementById('formulaire_$num_formulaire')", true) .
335          "
336<textarea name='texte' rows='12' class='forml' cols='40'
337id='formulaire_$num_formulaire'
338onselect='storeCaret(this);'
339onclick='storeCaret(this);'
340onkeyup='storeCaret(this);'
341ondbclick='storeCaret(this);'>$texte</textarea>";
342}
343
344?>
Note: See TracBrowser for help on using the repository browser.