source: spip-zone/_plugins_/_test_/inscription2/inscription2_2_0/inscription2_mes_fonctions.php @ 28489

Last change on this file since 28489 was 28489, checked in by kent1@…, 10 years ago

Un peu de doc
Déclaration de pipelines oubliés

File size: 3.1 KB
Line 
1<?php
2include_spip('base/abstract_sql');
3
4/**
5 *
6 * Transforme les /n en <br />
7 *
8 */
9function n_to_br($texte){
10        $texte = str_replace("\n", "<br />", $texte);
11        return $texte;
12}
13
14/**
15 *
16 * Donne le nom d'un pays en fonction de son id
17 *
18 * @return false|string false dans le cas ou il ne reçoit pas de paramètres ou si le paramètre n'est pas bon
19 * @param int $id_pays L'id_pays de la table spip_geo_pays
20 */
21function id_pays_to_pays($id_pays){
22        if((is_numeric($id_pays)) && ($id_pays != 0)){
23                $pays = sql_getfetsel('nom', 'spip_geo_pays', 'id_pays ='.$id_pays);
24                return typo($pays);
25        }
26        else return;
27}
28
29/**
30 *
31 * Récupère la valeur d'un champs d'un auteur si on ne possède que le nom du champs
32 * Dans le cas de la boucle FOR par exemple
33 *
34 * @return
35 * @param object $champs
36 * @param object $id_auteur
37 */
38function inscription2_recuperer_champs($champs,$id_auteur){
39        if($champs == 'login'){
40                $champs = 'spip_auteurs.login';
41        }
42        if($champs == 'pays'){
43                spip_log('champs = pays');
44                $resultat = sql_getfetsel("b.nom","spip_auteurs_elargis a LEFT JOIN spip_geo_pays b on a.pays = b.id_pays","a.id_auteur=$id_auteur");
45                return typo($resultat);
46        }
47        if($champs == 'pays_pro'){
48                spip_log('champs = pays_pro');
49                $resultat = sql_getfetsel("b.nom","spip_auteurs_elargis a LEFT JOIN spip_geo_pays b on a.pays_pro = b.id_pays","a.id_auteur=$id_auteur");
50                return typo($resultat);
51        }
52        $resultat = sql_getfetsel($champs,"spip_auteurs_elargis LEFT JOIN spip_auteurs USING(id_auteur)","spip_auteurs_elargis.id_auteur=$id_auteur");
53        return typo($resultat);
54}
55
56/**
57 *
58 * Fonction utilisée par le critère i2_recherche
59 *
60 * @return array Le tableau des auteurs correspondants aux critères de recherche
61 * @param string $quoi[optional] Le contenu textuel recherché
62 * @param object $ou[optional] Le champs dans lequel on recherche
63 * @param object $table[optional]
64 */
65function i2_recherche($quoi=NULL,$ou=NULL,$table=NULL){
66        if(isset($quoi) && isset($ou)){
67                $quoi = texte_script(trim($quoi));
68                include_spip('base/serial'); // aucazou !
69                global $tables_principales;
70
71                if(isset($tables_principales[table_objet_sql($table)]['field'][$ou])){
72                        $auteurs = sql_get_select('id_auteur',table_objet_sql($table),"$ou LIKE '%$quoi%'");
73                }
74                else{
75                        global $tables_jointures;
76                        if(isset($tables_jointures[table_objet_sql($table)]) && ($jointures=$tables_jointures[table_objet_sql($table)])){
77                                foreach($jointures as $jointure=>$val){
78                                        if(isset($tables_principales[table_objet_sql($val)]['field'][$ou])){
79                                                $auteurs = sql_get_select('id_auteur',table_objet_sql($table)." AS $table LEFT JOIN ".table_objet_sql($val)." AS $val USING(id_auteur)","$val.$ou LIKE '%$quoi%'");
80                                        }
81                                }
82                        }
83                }
84                return "($auteurs)";   
85        }
86}
87
88/**
89 *
90 * Critère utilisé pour rechercher dans les utilisateurs (page ?exec=inscription2_adherents)
91 *
92 */
93function critere_i2_recherche_dist($idb, &$boucles){
94        $boucle = &$boucles[$idb];
95        $primary = $boucle->primary;
96        $ou = '@$Pile[0]["case"]';
97        $quoi = '@$Pile[0]["valeur"]';
98        $table = $boucle->type_requete;
99        $boucle->hash .= "
100        \$auteurs = i2_recherche($quoi,$ou,$table);
101        ";
102        $boucle->where[] = array("'IN'","'$boucle->id_table." . "$primary'",'$auteurs');
103}
104?>
Note: See TracBrowser for help on using the repository browser.