Changeset 25799 in spip-zone


Ignore:
Timestamp:
Jan 7, 2009, 2:46:09 PM (12 years ago)
Author:
marcimat@…
Message:

Avoir des fonctions de création et de suppression des champs extras indépendantes de l'installation.

Location:
_plugins_/_stable_/champs_extras2
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/_stable_/champs_extras2/core/inc/cextras_gerer.php

    r25685 r25799  
    3838
    3939/**
    40  * Cree en base les champs extras demandes lors d'une installation
    41  * d'un plugin dependant
    42  * $champs est un tableau d'objets ChampExtra a creer
    43  */
    44 function creer_champs_extras($champs, $nom_meta_base_version, $version_cible) {
     40 * Installe des champs extras et
     41 * gere en meme temps la mise a jour de la meta
     42 * du plugin concernant la base de donnee
     43 */
     44function installer_champs_extras($champs, $nom_meta_base_version, $version_cible) {
    4545        $current_version = 0.0;
    46 
    4746        if ((!isset($GLOBALS['meta'][$nom_meta_base_version]))
    4847        || (($current_version = $GLOBALS['meta'][$nom_meta_base_version])!=$version_cible)){
    49 
    5048                // cas d'une installation
    5149                if ($current_version==0.0){
    52                         include_spip('base/create');
    53                         // on recupere juste les differentes tables a mettre a jour
    54                         $tables = array();
    55                         foreach ($champs as $c){
    56                                 if ($table = table_objet_sql($c->table)) {
    57                                         $tables[$table] = $table;
    58                                 }
    59                         }               
    60                         // on met a jour les tables trouvees
    61                         foreach($tables as $table) {
    62                                 maj_tables($table);
    63                         }
     50                        creer_champs_extras($champs);
    6451                        ecrire_meta($nom_meta_base_version,$current_version=$version_cible,'non');
    6552                }
     
    6855
    6956/**
     57 * Cree en base les champs extras demandes
     58 * $champs est un tableau d'objets ChampExtra a creer
     59 */
     60function creer_champs_extras($champs) {
     61        include_spip('base/create');
     62        // on recupere juste les differentes tables a mettre a jour
     63        $tables = array();
     64        foreach ($champs as $c){
     65                if ($table = table_objet_sql($c->table)) {
     66                        $tables[$table] = $table;
     67                }
     68        }               
     69        // on met a jour les tables trouvees
     70        foreach($tables as $table) {
     71                maj_tables($table);
     72        }
     73}
     74
     75/**
     76 * Desinstaller des champs extras
     77 * et gerer la suppression de la meta du plugin concernant
     78 * la base de donnee
     79 */
     80function desinstaller_champs_extras($champs, $nom_meta_base_version) {
     81        vider_champs_extras($champs);
     82        effacer_meta($nom_meta_base_version);   
     83}
     84
     85/**
    7086 * Supprime les champs extras (objets ChampExtra passes dans le tableau $champs)
    7187 */
    72 function vider_champs_extras($champs, $nom_meta_base_version) {
     88function vider_champs_extras($champs) {
    7389        // on efface chaque champ trouve
    7490        foreach ($champs as $c){
     
    7692                        sql_alter("TABLE $table DROP $c->champ");
    7793                }
    78         }
    79         effacer_meta($nom_meta_base_version);   
     94        }       
    8095}
    8196
  • _plugins_/_stable_/champs_extras2/core/plugin.xml

    r25716 r25799  
    33        <auteur>Matthieu Marcillaud, Fil</auteur>
    44        <licence>GNU/GPL</licence>
    5         <version>0.6</version>
     5        <version>0.7</version>
    66        <description>
    77        Creer de nouveaux champs aux objets d'&eacute;dition de SPIP
  • _plugins_/_stable_/champs_extras2/extensions/post_scriptum_rubriques/base/postscriptum_install.php

    r25564 r25799  
    77function postscriptum_upgrade($nom_meta_base_version,$version_cible){
    88        $champs = postscriptum_declarer_champs_extras();
    9         creer_champs_extras($champs, $nom_meta_base_version, $version_cible);
     9        installer_champs_extras($champs, $nom_meta_base_version, $version_cible);
    1010}
    1111
    1212function postscriptum_vider_tables($nom_meta_base_version) {
    1313        $champs = postscriptum_declarer_champs_extras();
    14         vider_champs_extras($champs, $nom_meta_base_version);
     14        desinstaller_champs_extras($champs, $nom_meta_base_version);
    1515}
    1616?>
  • _plugins_/_stable_/champs_extras2/extensions/post_scriptum_rubriques/plugin.xml

    r25681 r25799  
    33        <auteur>Matthieu Marcillaud [->magraine.net]</auteur>
    44        <licence>GNU/GPL</licence>
    5         <version>0.1</version>
     5        <version>0.2</version>
    66        <version_base>0.1</version_base>
    77        <description>
     
    1010        <etat>dev</etat>
    1111        <prefix>postscriptum</prefix>
    12         <necessite id="cextras" version="[0.5;]" />
     12        <necessite id="cextras" version="[0.7;]" />
    1313        <install>base/postscriptum_install.php</install>
    1414        <pipeline>
Note: See TracChangeset for help on using the changeset viewer.