Changeset 34295 in spip-zone


Ignore:
Timestamp:
Jan 8, 2010, 4:12:46 PM (10 years ago)
Author:
cedric@…
Message:

commencons par une installation propres dans une base qui l'est tout autant

Location:
_plugins_/mesfavoris
Files:
1 deleted
1 edited
1 moved

Legend:

Unmodified
Added
Removed
  • _plugins_/mesfavoris/base/mesfavoris.php

    r34290 r34295  
    11<?php
    2 include_spip('base/abstract_sql');
    3 include_spip('base/create');
     2/*
     3 * Plugin mesfavoris
     4 * (c) 2009-2010 Olivier Sallou, Cedric Morin
     5 * Distribue sous licence GPL
     6 *
     7 */
    48
    5 function mesfavoris_install($action) {
     9/**
     10 * Declaration des tables principales
     11 *
     12 * @param array $tables_principales
     13 * @return array
     14 */
     15function mesfavoris_declarer_tables_principales($tables_principales){
     16        $spip_favoris = array(
     17                "id_favori"     => "bigint(21) NOT NULL",
     18                "id_auteur"     => "bigint DEFAULT '0' NOT NULL",
     19                "id_objet"      => "bigint(21) DEFAULT '0' NOT NULL",
     20                "objet" => "VARCHAR (25) DEFAULT '' NOT NULL",
     21                "maj"   => "TIMESTAMP"
     22        );
    623
    7  switch ($action)
    8  {  // La base est deja cree ?
    9     case 'test':
    10        // Verifier que le champ id_mon_plugin est present...
    11        
    12        $desc = sql_showtable("spip_favtextes");
    13        return (isset($desc['field']['id_favtxt']));
    14        break;
    15      // Installer la base
    16      case 'install':
    17                 sql_create("spip_favtextes",array(
    18                                                                                 "id_favtxt" => "bigint(21) NOT NULL  auto_increment",
    19                                                                                 "id_auth"   => "int(11) NOT NULL default '0'",
    20                                                                                 "id_texte"   => "int(11) NOT NULL default '0'",
    21                                                                                 ),
    22                                                                                 array(
    23                                                                                 'PRIMARY KEY' => "id_favtxt",
    24                                                                                 'KEY authors'     => "id_auth"
    25                                                                                 )
    26                 );
    27        break;
    28      // Supprimer la base
    29      case 'uninstall':
    30        sql_drop_table("spip_favtextes",'','',true);
    31        break;
     24        $spip_favoris_key = array(
     25                "PRIMARY KEY"           => "id_favori",
     26                "KEY"   => "id_auteur,id_objet,objet",
     27                "KEY id_auteur" => "id_auteur"
     28        );
     29
     30        $tables_principales['spip_favoris'] =
     31                array('field' => &$spip_favoris, 'key' => &$spip_favoris_key);
     32
     33        return $tables_principales;
     34}
     35
     36/**
     37 * Upgrade des tables
     38 *
     39 * @param string $nom_meta_base_version
     40 * @param string $version_cible
     41 */
     42function mesfavoris_upgrade($nom_meta_base_version,$version_cible){
     43        include_spip('inc/meta');
     44        $current_version = "0.0.0";
     45        if (   (!isset($GLOBALS['meta'][$nom_meta_base_version]) )
     46                        || (($current_version = $GLOBALS['meta'][$nom_meta_base_version])!=$version_cible)){
     47                if (version_compare($current_version,'1.0.0','<')){
     48                        include_spip('base/create');
     49                        include_spip('base/abstract_sql');
     50                        include_spip('base/serial');
     51                        creer_base();
     52                        // recuperer l'ancienne base si possible (hum)
     53                        $trouver_table = charger_fonction("trouver_table","base");
     54                        $trouver_table(''); // vider le cache
     55                        if ($desc = $trouver_table("spip_favtextes")){
     56                                $res = sql_select("*","spip_favtextes");
     57                                while ($row = sql_fetch($res)){
     58                                        sql_insertq("spip_favoris", array('id_auteur'=>$row['id_auth'],'id_objet'=>$row['id_texte'],'objet'=>'article'));
     59                                        sql_delete("spip_favtextes","id_favtxt=".$row['id_favtxt']);
     60                                }
     61                                sql_drop_table("spip_favtextes");
     62                        }
     63                        ecrire_meta($nom_meta_base_version,$current_version="1.0.0",'non');
     64                }
    3265        }
     66}
    3367
     68
     69/**
     70 * Desinstallation
     71 *
     72 * @param string $nom_meta_base_version
     73 */
     74function mesfavoris_vider_tables($nom_meta_base_version) {
     75        include_spip('inc/meta');
     76        include_spip('base/abstract_sql');
     77        sql_drop_table("spip_favoris");
     78        effacer_meta($nom_meta_base_version);
    3479}
    3580
  • _plugins_/mesfavoris/plugin.xml

    r34273 r34295  
    11<plugin>
    2  <nom>Selection de favoris</nom>
    3  <version>1.0</version>
    4  <prefix>mesFavoris</prefix>
    5  <auteur>Olivier Sallou</auteur>
    6  <description>(De)Selectionne un article pour g&eacute;rer des articles favoris pour un visiteur authentifi&eacute;</description>
    7  <options>manageFavorites.php</options>
    8  <install>base/mesFavoris_init.php</install>
     2        <nom>Selection de favoris</nom>
     3        <version>1.0.0</version>
     4        <version_base>1.0.0</version_base>
     5        <prefix>mesfavoris</prefix>
     6        <auteur>Olivier Sallou, [Cedric Morin->yterium.net]</auteur>
     7        <description>(De)Selectionne un article pour g&eacute;rer des articles favoris pour un visiteur authentifi&eacute;</description>
     8        <options>manageFavorites.php</options>
     9        <install>base/mesfavoris.php</install>
     10
     11        <pipeline>
     12                <nom>declarer_tables_principales</nom>
     13                <inclure>base/mesfavoris.php</inclure>
     14        </pipeline>
    915
    1016</plugin>
Note: See TracChangeset for help on using the changeset viewer.