Changeset 39421 in spip-zone


Ignore:
Timestamp:
Jul 21, 2010, 10:30:40 AM (9 years ago)
Author:
pierrekuhn82@…
Message:

Rajout de la création des mots clefs utiliser pour créer les saisons.

Version 0.1.1 de base

Location:
_plugins_/Amap
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/Amap/base/amap_installation.php

    r39347 r39421  
    99include_spip('inc/meta');
    1010include_spip('base/create');
     11include_spip('base/amap_tables');
    1112
    1213function amap_upgrade($nom_meta_version_base, $version_cible){
    1314        $current_version = 0.0;
    14         if (   (!isset($GLOBALS['meta'][$nom_meta_version_base]))
    15                         || (($current_version = $GLOBALS['meta'][$nom_meta_version_base]) != $version_cible)
    16                 ){
    17                         if (version_compare($current_version,'0.0','<=')){
    18                                 // Creation des tables
    19                                 include_spip('base/create');
    20                                 include_spip('base/abstract_sql');
    21                                 creer_base();
    22                                 ecrire_meta($nom_meta_version_base, $current_version=$version_cible, 'non');
    23                                 }
     15                if ((!isset($GLOBALS['meta'][$nom_meta_version_base])) || (($current_version = $GLOBALS['meta'][$nom_meta_version_base]) != $version_cible)){
     16                if (version_compare($current_version,'0.0','<=')){
     17                        // Creation des tables
     18                        include_spip('base/create');
     19                        include_spip('base/abstract_sql');
     20                        creer_base();
     21                        amap_config_site();
     22                        amap_config_motsclefs();
     23                        ecrire_meta($nom_meta_version_base, $current_version=$version_cible, 'non');
     24                        }
     25                if (version_compare($current_version,'0.1.1','<')) {
     26                        ecrire_meta('config_precise_groupes', 'oui','non');
     27                        ecrire_meta('articles_mots', 'oui','non');
     28                        create_groupe("modalites_affichage_article", "L'article correspondant aux distributions d'une saison donnée sera associé au mot clé « amap_agenda »", "", 'oui', 'non', 'non', 'non', 'non', 'oui', 'non', 'oui', 'non', 'non');
     29                                create_mot("modalites_affichage_article", "amap_contrat", "Affecter ce mot clef à l'article concernant les contrats.", "");
     30                                create_mot("modalites_affichage_article", "amap_distribution", "Affecter ce mot clef à l'article concernant la distribution.", "");
     31                                create_mot("modalites_affichage_article", "amap_responsable", "Affecter ce mot clef à l'article concernant le responsable.", "");
     32                                create_mot("modalites_affichage_article", "amap_sortie", "Affecter ce mot clef à l'article concernant la sorties.", "");
     33                                create_mot("modalites_affichage_article", "amap_vacance", "Affecter ce mot clef à l'article concernant les vacances.", "");
     34                        ecrire_meta($nom_meta_base_version,$current_version='0.1.1','non');
     35                        spip_log("Amap rajoute des mots clef V0.1.1", "amap_installation");
     36                }
    2437        }
    2538}
     
    4558        sql_drop_table('spip_amap_vacance');
    4659        sql_drop_table('spip_amap_variete');
     60        supprimer_mot_groupe("modalites_affichage_article", "amap_contrat");
     61        supprimer_mot_groupe("modalites_affichage_article", "amap_distribution");
     62        supprimer_mot_groupe("modalites_affichage_article", "amap_responsable");
     63        supprimer_mot_groupe("modalites_affichage_article", "amap_sortie");
     64        supprimer_mot_groupe("modalites_affichage_article", "amap_vacance");
     65        vider_groupe("modalites_affichage_article");
    4766        effacer_meta($nom_meta_version_base);
    4867}
  • _plugins_/Amap/base/amap_tables.php

    r39382 r39421  
    44* Plugin AMAP pour Spip 2.0
    55* Pierre KUHN
    6 *
     6* Config pris sur Soyezcreateurs
    77*
    88*/
     9include_spip('inc/meta');
     10
     11//fonction qui permet de créer les métas de config du site
     12function amap_config_site() {
     13        ecrire_meta('config_precise_groupes', 'oui','non');
     14        ecrire_meta('articles_mots', 'oui','non');
     15        return true;
     16}
     17
     18// GROUPE
     19// fonction qui permet de trouver si un groupe de mots clés existe à partir du titre
     20function find_groupe($titre) {
     21        $titre = addslashes($titre);
     22        spip_log("1. (find_groupe) recherche des occurences dans la table spip_groupes_mots de l'id de : $titre", "amap_installation");
     23        $count = sql_countsel("spip_groupes_mots", "titre='$titre'");
     24        spip_log("2. (find_groupe) resultat de la recherche : $count occurences pour $titre", "amap_installation");
     25        return $count;
     26}
     27
     28// fonction pour trouver l'id du groupe de mots clés à partir du titre du groupe
     29function id_groupe($titre) {
     30        $titre = addslashes($titre);
     31        spip_log("1. (id_groupe) selection dans la table spip_groupes_mots de l'id de : $titre", "amap_installation");
     32        $result = sql_fetsel("id_groupe", "spip_groupes_mots", "titre='$titre'");
     33        $resultat = $result['id_groupe'];
     34        spip_log("2. (id_groupe) selection = $resultat pour $titre", "amap_installation");
     35        return $resultat;
     36}
     37
     38//fonction qui permet de créer un groupe de mots clés
     39function create_groupe($groupe, $descriptif='', $texte='', $unseul='non', $obligatoire='non', $articles='oui', $breves='non', $rubriques='non', $syndic='non', $evenements='non', $minirezo='oui', $comite='oui', $forum='non') {
     40        $id_groupe = find_groupe($groupe);
     41        $tables_liees = '';
     42        if ($articles == 'oui')
     43                $tables_liees.='articles,';
     44        if ($breves == 'oui')
     45                $tables_liees.='breves,';
     46        if ($rubriques == 'oui')
     47                $tables_liees.='rubriques,';
     48        if ($syndic == 'oui')
     49                $tables_liees.='syndic,';
     50        if ($evenements == 'oui')
     51                $tables_liees.='evenements,';
     52        spip_log("1. (create_groupe) pret a creer groupe : titre = $groupe. retour de find_groupe = $id_groupe", "amap_installation");
     53        if ($id_groupe == 0) {
     54                $id_insert = sql_insertq(
     55                        "spip_groupes_mots", array(
     56                                "id_groupe" => '',
     57                                "titre" => $groupe,
     58                                "descriptif" => $descriptif,
     59                                "texte" => $texte,
     60                                "unseul" => $unseul,
     61                                "obligatoire" => $obligatoire,
     62                                "tables_liees" => $tables_liees,
     63                                "minirezo" => $minirezo,
     64                                "comite" => $comite,
     65                                "forum" => $forum
     66                        )
     67                );
     68                spip_log("2. (create_groupe) retour de find_groupe : $id_groupe, donc insertion avec id = $id__insert et titre = $groupe", "amap_installation");
     69        }
     70        else if ($id_groupe > 0) {
     71                $id_insert = remplacer_groupe($groupe, $descriptif, $texte, $unseul, $obligatoire, $tables_liees, $minirezo, $comite, $forum);
     72                spip_log("2. (create_groupe) retour de find_groupe : $id_groupe... passage a remplacer_groupe", "amap_installation");
     73        }
     74        return $id_insert;
     75}
     76
     77// fonction qui suprime des mots clef
     78function supprimer_mot_groupe($nom_groupe,$nom_mot) {
     79        $id_groupe = id_groupe($nom_groupe);
     80        if ($id_groupe>0) {
     81                $id_mot = id_mot($nom_mot, $id_groupe);
     82                if ($id_mot>0) {
     83                        sql_delete("spip_mots", "id_mot=$id_mot");
     84                        sql_delete("spip_mots_articles", "id_mot=$id_mot");
     85                        sql_delete("spip_mots_rubriques", "id_mot=$id_mot");
     86                        sql_delete("spip_mots_syndic", "id_mot=$id_mot");
     87                        sql_delete("spip_mots_forum", "id_mot=$id_mot");
     88                }
     89        }
     90}
     91
     92function vider_groupe($nom_groupe) {
     93        $id_groupe = id_groupe($nom_groupe);
     94        if ($id_groupe>0) {
     95                $id_mots = sql_select('id_mot',  'spip_mots',  'id_groupe='.sql_quote($id_groupe));
     96                while($id_mot = sql_fetch($id_mots)){
     97                        sql_delete("spip_mots", "id_mot=".$id_mot['id_mot']);
     98                        sql_delete("spip_mots_articles", "id_mot=".$id_mot['id_mot']);
     99                        sql_delete("spip_mots_rubriques", "id_mot=".$id_mot['id_mot']);
     100                        sql_delete("spip_mots_syndic", "id_mot=".$id_mot['id_mot']);
     101                        sql_delete("spip_mots_forum", "id_mot=".$id_mot['id_mot']);
     102                }
     103                sql_delete("spip_groupes_mots", "id_groupe=$id_groupe");
     104        }
     105}
     106
     107//fonction qui mets à jour un groupe de mots clés
     108function remplacer_groupe($titre, $descriptif, $texte, $unseul, $obligatoire, $tables_liees, $minirezo, $comite, $forum) {
     109        $id_groupe = id_groupe($titre);
     110        sql_updateq(
     111                "spip_groupes_mots", array(
     112                        "descriptif" => $descriptif,
     113                        "texte" => $texte,
     114                        "unseul" => $unseul,
     115                        "obligatoire" => $obligatoire,
     116                        "tables_liees" => $tables_liees,
     117                        "minirezo" => $minirezo,
     118                        "comite" => $comite,
     119                        "forum" => $forum
     120                ), "id_groupe=$id_groupe"
     121        );
     122        return true;
     123}
     124
     125// MOT
     126// fonction qui permet de trouver si un mot clé existe à partir du titre et de l'id du groupe
     127function find_mot($titre, $id_groupe) {
     128        $titre = addslashes($titre);
     129        $count = sql_countsel(
     130                "spip_mots",
     131                "titre = '$titre' AND id_groupe = $id_groupe"
     132        );
     133        return $count;
     134}
     135
     136//fonction qui permet de trouver l'id du mot clé à partir du titre et de l'id du groupe
     137function id_mot($titre, $id_groupe) {
     138        spip_log("1. (id_mot) debut de recherche de l'id de $titre avec $id_groupe", "amap_installation");
     139        $titre = addslashes($titre);
     140        $result = sql_fetsel(
     141                "id_mot",
     142                "spip_mots",
     143                "titre='$titre' AND id_groupe = $id_groupe"
     144        );
     145        $id_mot = $result['id_mot'];
     146        spip_log("2. (id_mot) retour de la fonction id_mot = $id_mot", "amap_installation");
     147        return $id_mot;
     148}
     149
     150//fonction qui permet de créer un mot clé
     151function create_mot($groupe, $mot, $descriptif='', $texte='') {
     152        $id_groupe = id_groupe($groupe);
     153        $find_mot = find_mot($mot, $id_groupe);
     154        if ($find_mot == 0) {
     155                spip_log("1. (create_mot) debut create_mot. mot inexistant donc creation : $id_groupe - $mot", "amap_installation");
     156                $motcle = sql_insertq(
     157                        "spip_mots", array(
     158                                "id_mot" => '',
     159                                "titre" => $mot,
     160                                "descriptif" => $descriptif,
     161                                "texte" => $texte,
     162                                "id_groupe" => $id_groupe,
     163                                "type" => $groupe
     164                        )
     165                );
     166                spip_log("2. (create_mot) mot cle $mot insere sous l'id $motcle dans la table avec groupe = $id_groupe", "amap_installation");
     167        }
     168        else if ($find_mot > 0) {
     169                $id_mot = id_mot($mot, $id_groupe);
     170                spip_log("1. (create_mot) mise a jour dans la table du mot cle : $mot", "amap_installation");
     171                remplacer_mot($id_mot, $descriptif, $texte, $id_groupe, $groupe);
     172        }
     173        else {
     174                spip_log("insertion impossible ! debug : groupe = $groupe --- id_groupe = $id_groupe", "amap_installation");
     175        }
     176}
     177
     178//fonction qui permet de mettre à jour un mot clé
     179function remplacer_mot($id_mot, $descriptif, $texte, $id_groupe, $groupe) {
     180        sql_updateq(
     181                        "spip_mots", array(
     182                                "descriptif" => $descriptif,
     183                                "texte" => $texte,
     184                                "id_groupe" => $id_groupe,
     185                                "type" => $groupe
     186                        ), "id_mot=$id_mot"
     187                );
     188        return true;
     189}
    9190
    10191function amap_declarer_tables_interfaces($interface){
     
    310491    return $tables_principales;
    311492}
     493//fonction qui permet de créer le contenu
     494function amap_config_motsclefs() {
     495        //les groupes puis mots
     496        create_groupe("modalites_affichage_article", "L'article correspondant aux distributions d'une saison donnée sera associé au mot clé « amap_agenda »", "", 'non', 'non', 'oui', 'non', 'non', 'non', 'oui', 'oui', 'oui', 'non');
     497                create_mot("modalites_affichage_article", "amap_contrat", "Affecter ce mot clef à l'article concernant les contrats.", "");
     498                create_mot("modalites_affichage_article", "amap_distribution", "Affecter ce mot clef à l'article concernant la distribution.", "");
     499                create_mot("modalites_affichage_article", "amap_responsable", "Affecter ce mot clef à l'article concernant le responsable.", "");
     500                create_mot("modalites_affichage_article", "amap_sortie", "Affecter ce mot clef à l'article concernant la sorties.", "");
     501                create_mot("modalites_affichage_article", "amap_vacance", "Affecter ce mot clef à l'article concernant les vacances.", "");
     502}
    312503?>
  • _plugins_/Amap/plugin.xml

    r39380 r39421  
    33        <auteur>St&eacute;phane Moulinet - dadaprod - Adaptation pour Spip 2 : E-cosystems </auteur>
    44        <version>2.0.1</version>
    5         <version_base>0.1</version_base>
     5        <version_base>0.1.1</version_base>
    66
    77        <licence>Distribu&eacute; sous licence GNU/GPL</licence>
Note: See TracChangeset for help on using the changeset viewer.