source: spip-zone/_plugins_/_dev_/liens_contenus/lienscontenus_mes_fonctions.php @ 9717

Last change on this file since 9717 was 9717, checked in by nicolas@…, 13 years ago

-* Adoption du modele standard de gestion des upgrades de la base
-* Traitement des forums
-* Remplacement de site par syndic (trop galere, les noms pas uniformes)

File size: 4.7 KB
Line 
1<?php
2
3// Les filtres pour les squeletes
4function lienscontenus_generer_url($type_objet, $id_objet)
5{
6    $liste_urls = array(
7        'rubrique' => array('naviguer', 'id_rubrique'),
8        'article' => array('articles', 'id_article'),
9        'breve' => array('breves_voir', 'id_breve'),
10        'syndic' => array('sites', 'id_syndic'),
11        'mot' => array('mots_edit', 'id_mot'),
12        'auteur' => array('auteur_infos', 'id_auteur'),
13        'form' => array('forms_edit', 'id_form')
14        // TODO : Ajouter les autres
15    );
16    if (isset($liste_urls[$type_objet])) {
17        return $GLOBALS['meta']['adresse_site'].'/ecrire/?exec='.$liste_urls[$type_objet][0].'&amp;'.$liste_urls[$type_objet][1].'='.$id_objet;
18    } else {
19        $f = 'lienscontenus_generer_url_'.$type_objet;
20        if (function_exists($f)) {
21            return $f($id_objet);
22        } else {
23            // On ne devrait pas se retrouver lˆ
24            spip_log('Plugin liens_contenus : il manque une fonction de gŽnŽration d\'url pour le type '.$type_objet, 'liens_contenus');
25                return '#';
26        }
27    }
28}
29
30function lienscontenus_generer_url_document($id_objet)
31{
32    include_spip('base/abstract_sql');
33    $query = 'SELECT id_article FROM spip_documents_articles WHERE id_document='._q($id_objet);
34    $res = spip_query($query);
35    if (spip_num_rows($res) == 1) {
36        $row = spip_fetch_array($res);
37        return lienscontenus_generer_url('article', intval($row['id_article']));
38    } else {
39        $query = 'SELECT id_rubrique FROM spip_documents_rubriques WHERE id_document='._q($id_objet);
40        $res = spip_query($query);
41        if (spip_num_rows($res) == 1) {
42            $row = spip_fetch_array($res);
43            return lienscontenus_generer_url('rubrique', intval($row['id_rubrique']));
44        }
45    }
46    // D'autres possibilites ???
47    // A quoi servent les tables spip_documents_breves et spip_documents_donnees ?
48}
49
50function lienscontenus_generer_url_modele($id_objet)
51{
52    return find_in_path('modeles/'.$id_objet.'.html');
53}
54
55function lienscontenus_generer_url_modele_non_reconnu($id_objet)
56{
57    return '#';
58}
59
60function lienscontenus_verifier_si_existe($type_objet, $id_objet)
61{
62    switch ($type_objet) {
63        case 'modele':
64            if(find_in_path('modeles/'.$id_objet.'.html')) {
65                return 'ok';
66            } else {
67                return 'ko';
68            }
69            break;
70        default:
71            include_spip('base/abstract_sql');
72            if (in_array($type_objet, array('syndic', 'forum'))) {
73                $query = 'SELECT COUNT(*) AS nb FROM spip_'.$type_objet.' WHERE id_'.$type_objet.'='._q($id_objet);
74            } else {
75                // Marche aussi pour les formulaires (type = "form")
76                $query = 'SELECT COUNT(*) AS nb FROM spip_'.$type_objet.'s WHERE id_'.$type_objet.'='._q($id_objet);
77            }
78            $res = spip_query($query);
79            $row = spip_fetch_array($res);
80            if ($row['nb'] == 1) {
81                return 'ok';
82            } else {
83                return 'ko';
84            }
85    }
86}
87
88function lienscontenus_icone_statut($type_objet, $id_objet)
89{
90    $listeStatuts = array('prepa', 'prop', 'publie', 'refuse', 'poubelle');
91    include_spip('base/abstract_sql');
92    if (in_array($type_objet, array('syndic', 'forum'))) {
93        $query = 'SELECT statut FROM spip_'.$type_objet.' WHERE id_'.$type_objet.'='._q($id_objet);
94    } else {
95        // Marche aussi pour les formulaires (type = "form")
96        $query = 'SELECT statut FROM spip_'.$type_objet.'s WHERE id_'.$type_objet.'='._q($id_objet);
97    }
98    if ($res = spip_query($query)) {
99        $row = spip_fetch_array($res);
100        if (in_array($row['statut'], $listeStatuts)) {
101            return '<img src="'._DIR_PLUGIN_LIENS_CONTENUS.'/images/statut-'.$row['statut'].'.gif" align="absmiddle" alt="'._T('lienscontenus:statut_'.$row['statut']).'" />';     
102        } else {
103            return '';
104        }
105    } else {
106        return '';
107    }
108}
109
110function lienscontenus_statut($type_objet, $id_objet)
111{
112    $listeStatuts = array('prepa', 'prop', 'publie', 'refuse', 'poubelle');
113    include_spip('base/abstract_sql');
114    if (in_array($type_objet, array('syndic', 'forum'))) {
115        $query = 'SELECT statut FROM spip_'.$type_objet.' WHERE id_'.$type_objet.'='._q($id_objet);
116    } else {
117        // Marche aussi pour les formulaires (type = "form")
118        $query = 'SELECT statut FROM spip_'.$type_objet.'s WHERE id_'.$type_objet.'='._q($id_objet);
119    }
120    if ($res = spip_query($query)) {
121        $row = spip_fetch_array($res);
122        if (in_array($row['statut'], $listeStatuts)) {
123            return $row['statut'];
124        } else {
125            return '';
126        }
127    } else {
128        return '';
129    }
130}
131?>
Note: See TracBrowser for help on using the repository browser.