source: spip-zone/_plugins_/lim/trunk/inc/lim_api.php @ 88639

Last change on this file since 88639 was 88639, checked in by peetdu@…, 5 years ago

init

  • Property svn:executable set to *
File size: 2.5 KB
Line 
1<?php
2/**
3 * Fonctions utiles au plugin Lim
4 *
5 * @plugin     Lim
6 * @copyright  2015
7 * @author     Pierre Miquel
8 * @licence    GNU/GPL
9 * @package    SPIP\Lim\Inc
10 */
11
12if (!defined('_ECRIRE_INC_VERSION')) return;
13
14/**
15 * Vérifier si il existe déjà des logos de téléchargés pour un type d'objet
16 * Exception : le logo du site (dans 'Identité du site') n'est pas pris en compte
17 *
18 * @type string
19 * @return bool
20 */
21function verifier_presence_logo($type) {
22        include_spip('inc/chercher_logo');
23        include_spip('base/objets');
24        $id_objet = id_table_objet($type);
25        $prefixe_logo = _DIR_LOGOS.type_du_logo($id_objet).'*.*';
26        $liste_logos = glob($prefixe_logo);
27
28        // ne pas prenfdre en compte le logo du site (id = 0)
29        if ($type == 'spip_syndic') {
30                $chercher_logo = charger_fonction('chercher_logo','inc');
31                $logo_du_site = $chercher_logo(0,'id_syndic');
32                $prefixe_logo_du_site[] = $logo_du_site[0];
33                $liste_logos = array_diff($liste_logos, $prefixe_logo_du_site);
34        }
35       
36        if (count($liste_logos) > 0) return true;
37        return false;
38}
39
40/**
41 * Vérifier si il existe déjà des pétitions
42 * @return bool
43 */
44function verifier_presence_petitions() {
45        /* recherche de pétitions */
46        if (sql_countsel('spip_petitions', "statut='publie'") > 0) {
47                return true;
48        }
49        return false;
50}
51
52/**
53 * Vérifier si il existe déjà des objets dans la rubrique
54 * on renvoi un tableau avec le type et la table_objet
55 * @param int $id_rubrique
56 * @param string $objet
57 * @return bool
58 */
59function verifier_presence_objets($id_rubrique, $objet) {
60        $table = table_objet_sql($objet);
61        if (sql_countsel($table, "id_rubrique=$id_rubrique") > 0) return true;
62        return false;
63}
64
65/**
66 * Traitement des cas d'installation/ désinstalation de plugin(s) intégrant un objet éditable
67 * Il faut alors mettre à jour la méta 'lim_logos' (action réalisée dans le formulaire 'configurer_lim_logos.php')
68 *
69 * @return void
70 */
71function traitement_plugins() {
72        $tables_principales = lister_tables_principales_editables();
73       
74        // traitement du cas d'un nouveau plugin intégrant un objet éditable
75        foreach($tables_principales as $key => $type) {
76                if (is_null(lire_config('lim_logos/'.$type))) {
77                        ecrire_config('lim_logos/'.$type, 'oui');
78                }
79        }
80
81        // traitement du cas d'un plugin désinstallé qui intégrait un objet éditable
82        $config_logo = lire_config('lim_logos');
83        $test_table = array_flip($tables_principales);
84        $diff = array_diff_key($config_logo, $test_table);
85
86        if(count($diff) > 0) {
87                foreach ($diff as $key => $value) {
88                        effacer_config('lim_logos/'.$key);
89                }
90        }
91}
92
93?>
Note: See TracBrowser for help on using the repository browser.