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

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

les ereg_replace deviennent preg_replace

On passe par les apis SPIP pour mettre à jour les tables (maj_tables)

On indente correctement le code

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                $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");
44                return typo($resultat);
45        }
46        if($champs == 'pays_pro'){
47                $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");
48                return typo($resultat);
49        }
50        $resultat = sql_getfetsel($champs,"spip_auteurs_elargis LEFT JOIN spip_auteurs USING(id_auteur)","spip_auteurs_elargis.id_auteur=$id_auteur");
51        return typo($resultat);
52}
53
54/**
55 *
56 * Fonction utilisée par le critère i2_recherche
57 *
58 * @return array Le tableau des auteurs correspondants aux critères de recherche
59 * @param string $quoi[optional] Le contenu textuel recherché
60 * @param object $ou[optional] Le champs dans lequel on recherche
61 * @param object $table[optional]
62 */
63function i2_recherche($quoi=NULL,$ou=NULL,$table=NULL){
64        if(isset($quoi) && isset($ou)){
65                $quoi = texte_script(trim($quoi));
66                include_spip('base/serial'); // aucazou !
67                global $tables_principales;
68
69                if(isset($tables_principales[table_objet_sql($table)]['field'][$ou])){
70                        $auteurs = sql_get_select('id_auteur',table_objet_sql($table),"$ou LIKE '%$quoi%'");
71                }
72                else{
73                        global $tables_jointures;
74                        if(isset($tables_jointures[table_objet_sql($table)]) && ($jointures=$tables_jointures[table_objet_sql($table)])){
75                                foreach($jointures as $jointure=>$val){
76                                        if(isset($tables_principales[table_objet_sql($val)]['field'][$ou])){
77                                                $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%'");
78                                        }
79                                }
80                        }
81                }
82                return "($auteurs)";
83        }
84}
85
86/**
87 *
88 * Critère utilisé pour rechercher dans les utilisateurs (page ?exec=inscription2_adherents)
89 *
90 */
91function critere_i2_recherche_dist($idb, &$boucles){
92        $boucle = &$boucles[$idb];
93        $primary = $boucle->primary;
94        $ou = '@$Pile[0]["case"]';
95        $quoi = '@$Pile[0]["valeur"]';
96        $table = $boucle->type_requete;
97        $boucle->hash .= "
98        \$auteurs = i2_recherche($quoi,$ou,$table);
99        ";
100        $boucle->where[] = array("'IN'","'$boucle->id_table." . "$primary'",'$auteurs');
101}
102?>
Note: See TracBrowser for help on using the repository browser.