1 | <?php |
---|
2 | /** |
---|
3 | * Plugin mesfavoris |
---|
4 | * (c) 2009-2013 Olivier Sallou, Cedric Morin, Gilles Vincent |
---|
5 | * Distribue sous licence GPL |
---|
6 | * |
---|
7 | */ |
---|
8 | |
---|
9 | if (!defined("_ECRIRE_INC_VERSION")) return; |
---|
10 | |
---|
11 | /** |
---|
12 | * Déclaration de l'index de $tables_principales qui sera utilisé dans les 'spip_' |
---|
13 | * |
---|
14 | * @param array $interface Array contenant les infos des tables visibles par recherche sur 'spip_bidule' |
---|
15 | * @return array Cet Array de description modifié |
---|
16 | */ |
---|
17 | function mesfavoris_declarer_tables_interfaces($interface){ |
---|
18 | $interface['table_des_tables']['favoris']='favoris'; |
---|
19 | return $interface; |
---|
20 | } |
---|
21 | |
---|
22 | /** |
---|
23 | * Declaration des tables principales |
---|
24 | * |
---|
25 | * @param array $tables_principales Un array de description des tables |
---|
26 | * @return array $tables_principales L'Array de description complété |
---|
27 | */ |
---|
28 | function mesfavoris_declarer_tables_principales($tables_principales){ |
---|
29 | $spip_favoris = array( |
---|
30 | "id_favori" => "bigint(21) NOT NULL", |
---|
31 | "id_auteur" => "bigint DEFAULT '0' NOT NULL", |
---|
32 | "id_objet" => "bigint(21) DEFAULT '0' NOT NULL", |
---|
33 | "objet" => "VARCHAR (25) DEFAULT '' NOT NULL", |
---|
34 | "categorie" => "VARCHAR (25) DEFAULT '' NOT NULL", |
---|
35 | "maj" => "TIMESTAMP" |
---|
36 | ); |
---|
37 | |
---|
38 | $spip_favoris_key = array( |
---|
39 | "PRIMARY KEY" => "id_favori", |
---|
40 | "KEY auteur_objet" => "id_auteur,id_objet,objet", |
---|
41 | "KEY id_auteur" => "id_auteur", |
---|
42 | "KEY id_objet" => "id_objet", |
---|
43 | "KEY objet" => "objet", |
---|
44 | "KEY categorie" => "categorie", |
---|
45 | ); |
---|
46 | |
---|
47 | $tables_principales['spip_favoris'] = |
---|
48 | array('field' => &$spip_favoris, 'key' => &$spip_favoris_key); |
---|
49 | |
---|
50 | return $tables_principales; |
---|
51 | } |
---|
52 | |
---|
53 | /** |
---|
54 | * Mise à jour des tables |
---|
55 | * |
---|
56 | * @param string $nom_meta_base_version |
---|
57 | * @param string $version_cible |
---|
58 | */ |
---|
59 | function mesfavoris_upgrade($nom_meta_base_version,$version_cible){ |
---|
60 | include_spip('inc/meta'); |
---|
61 | $current_version = "0.0.0"; |
---|
62 | if ( (!isset($GLOBALS['meta'][$nom_meta_base_version]) ) |
---|
63 | || (($current_version = $GLOBALS['meta'][$nom_meta_base_version])!=$version_cible)){ |
---|
64 | if (version_compare($current_version,'1.0.0','<')){ |
---|
65 | include_spip('base/create'); |
---|
66 | include_spip('base/abstract_sql'); |
---|
67 | include_spip('base/serial'); |
---|
68 | creer_ou_upgrader_table("spip_favoris",$GLOBALS['tables_principales']['spip_favoris'],true); |
---|
69 | |
---|
70 | // recuperer l'ancienne base si possible (hum) |
---|
71 | $trouver_table = charger_fonction("trouver_table","base"); |
---|
72 | $trouver_table(''); // vider le cache |
---|
73 | if ($desc = $trouver_table("spip_favtextes")){ |
---|
74 | $res = sql_select("*","spip_favtextes"); |
---|
75 | while ($row = sql_fetch($res)){ |
---|
76 | sql_insertq("spip_favoris", array('id_auteur'=>$row['id_auth'],'id_objet'=>$row['id_texte'],'objet'=>'article')); |
---|
77 | sql_delete("spip_favtextes","id_favtxt=".$row['id_favtxt']); |
---|
78 | } |
---|
79 | sql_drop_table("spip_favtextes"); |
---|
80 | } |
---|
81 | ecrire_meta($nom_meta_base_version,$current_version="1.0.0",'non'); |
---|
82 | } |
---|
83 | if (version_compare($current_version,'1.1.0','<')){ |
---|
84 | sql_alter("TABLE spip_favoris ADD INDEX objet (objet)"); |
---|
85 | sql_alter("TABLE spip_favoris ADD INDEX id_objet (id_objet)"); |
---|
86 | ecrire_meta($nom_meta_base_version,$current_version="1.1.0",'non'); |
---|
87 | } |
---|
88 | if (version_compare($current_version,'1.2.0','<')){ |
---|
89 | sql_alter("TABLE spip_favoris ADD COLUMN categorie VARCHAR(50) DEFAULT '' NOT NULL"); |
---|
90 | sql_alter("TABLE spip_favoris ADD INDEX categorie (categorie)"); |
---|
91 | ecrire_meta($nom_meta_base_version,$current_version="1.2.0",'non'); |
---|
92 | } |
---|
93 | } |
---|
94 | } |
---|
95 | |
---|
96 | |
---|
97 | /** |
---|
98 | * Desinstallation du plugin |
---|
99 | * |
---|
100 | * @param string $nom_meta_base_version |
---|
101 | */ |
---|
102 | function mesfavoris_vider_tables($nom_meta_base_version) { |
---|
103 | include_spip('inc/meta'); |
---|
104 | include_spip('base/abstract_sql'); |
---|
105 | sql_drop_table("spip_favoris"); |
---|
106 | effacer_meta($nom_meta_base_version); |
---|
107 | } |
---|
108 | |
---|
109 | ?> |
---|