Changeset 18562 in spip-zone


Ignore:
Timestamp:
Feb 21, 2008, 8:42:54 PM (11 years ago)
Author:
bmarne@…
Message:

Récriture complète du squelettes-script d'installation et de mise à jour de Bonbon... C'est ENFIN utilisable sans faire tomber les serveurs quand le cdt est plein à craquer !

Location:
_plugins_/_test_/bonbon
Files:
1 added
6 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/_test_/bonbon/DONE.txt

    r18336 r18562  
    4646- Un tableau de bord sur la page d'accueil permet à chaque prof de savoir en un clin d'½il où il en est (dernières fiches publiées pour chaque classe et lien direct vers la saisie pour la classe concernée)... Très pratique pour savoir où on en est quand on a beaucoup de classes (et du retard... :-)). Ce tableau de bord affiche aussi les séances qui ont un problème de date.
    4747- limitation des la selection des séances à l'année en cours, à moins que ce ne soit explictement mentionné dans les paramètres GET.
     48- réécriture complète de la page d'installation et de mise à jour qui était vraiment nulle.
    4849
    4950
  • _plugins_/_test_/bonbon/TODO.txt

    r18323 r18562  
    2727- automatiser le renommage de cahier-de-texte-rubrique.html (le mieux serait carrement d'automatiser la copie de cahier-de-texte-accueil.html)
    2828- utiliser cfg (ou autre) pour configurer les mots-clés/rubriques
    29 - automatiser la mise en place des mots-clés et rubriques (d'autant que le script d'origine est HORRIBLEMENT mal conçu !!!)
     29- automatiser la mise en place des mots-clés et rubriques
  • _plugins_/_test_/bonbon/cahier-de-texte-fonctions.php

    r18336 r18562  
    6161//Quelques fonctions pour que Bonbon manipule la base de données:
    6262function bonbon_ajoute_groupe ($nom_groupe){
     63        $result=false;
    6364        $sql = "INSERT INTO spip_groupes_mots (titre,articles, breves,rubriques, syndic, minirezo, comite, forum)
    6465                VALUES ('".trim($nom_groupe)."','oui','oui','oui','oui','oui','oui','oui')";
    6566               
    6667        $result = spip_query($sql);
    67         $id_groupe=spip_insert_id();
    68         return $id_groupe;
     68        if ($result) $result=spip_insert_id();
     69        return $result;
    6970};
    70 function bonbon_ajoute_mot ($titre,$option_descript="",$id_groupe,$nom_groupe,$descript){
    71         $phrase="";
    72         if ($option_descript!="") {
    73                 $option_descript .= trim($descript);
    74                 $phrase=" de <b>$descript</b>";
    75         };
    76         $sql = "INSERT INTO spip_mots (titre, descriptif, texte , id_groupe, type)
    77                 VALUES ('".trim($titre)."','Sous-thème de ".$option_descript."','','".$id_groupe."','".trim($nom_groupe)."')";
     71function bonbon_ajoute_mot ($titre,$id_groupe,$type){
     72        $result=false;
     73        $sql = "INSERT INTO spip_mots (titre, id_groupe,type)
     74                VALUES ('".trim($titre)."','".trim($id_groupe)."','".trim($type)."')";
    7875               
    7976        $result = spip_query($sql);
    80         $id_mot=spip_insert_id();
    81         return $id_mot;
     77        if ($result) $result=spip_insert_id();
     78        return $result;
    8279}
    8380function bonbon_lier_mot ($id_mot,$id_objet,$type_objet="article") {
    8481        $result=false;
    8582        $sql = "INSERT INTO spip_mots_".$type_objet."s (id_mot, id_". $type_objet .") VALUES (" . $id_mot . ", " . $id_objet . ")";
    86                 $result = spip_query($sql);
    87                 if ($result) {
    88                         echo ("<!--le mot n°$id_mot est rattaché à $type_objet n°$id_objet-->");
    89                 } else {
    90                         echo "<!--problème pour lier le mot n°$id_mot à $type_objet n°$id_objet ! Faites-le à la main !-->";
    91                 }
     83        $result = spip_query($sql);
    9284        return $result;
    9385}
     
    9688        $result=false;
    9789        $sql = "DELETE FROM spip_mots_".$type_objet."s WHERE id_mot=$id_mot AND id_$type_objet=$id_objet";
    98                 $result = spip_query($sql);
    99                 if ($result) {
    100                         echo ("<!--le mot n°$id_mot est détaché de $type_objet n°$id_objet-->");
    101                 } else {
    102                         echo "<!--problème pour détacher le mot n°$id_mot à $type_objet n°$id_objet ! Faites-le à la main !-->";
    103                 }
     90        $result = spip_query($sql);
    10491        return $result;
    10592}
     
    10895        $sql = "INSERT INTO spip_auteurs_articles (id_auteur, id_article) VALUES ($id_auteur,$id_article)";
    10996        $result = spip_query($sql);
    110         if ($result) {
    111                 echo ("<!--l'auteur n°$id_mot est attaché à l'article n°$id_article-->");
    112         } else {
    113                         echo "<!--problème pour attacher l'auteur n°$id_mot à l'article n°$id_article ! Faites-le à la main !-->";
    114         }
    11597        return $result;
    11698}
     
    120102        $sql = "DELETE FROM spip_auteurs_articles WHERE id_auteur=$id_auteur AND  id_article=$id_article";
    121103        $result = spip_query($sql);
    122         if ($result) {
    123                 echo ("<!--l'auteur n°$id_mot est détaché de l'article n°$id_article-->");
    124         } else {
    125                         echo "<!--problème pour détacher l'auteur n°$id_mot de l'article n°$id_article ! Faites-le à la main !-->";
    126         }
    127104        return $result;
    128105}
     
    134111        if ($result) {
    135112                $id_article=spip_insert_id();
    136                 bonbon_affecter_auteur($id_article,$id_auteur);
     113                $result=bonbon_affecter_auteur($id_article,$id_auteur);
     114                if ($result) $result=$id_article;
    137115        }
     116        return $result;
     117}
     118function bonbon_creer_fiche_classe ($nom_classe, $id_rubrique, $id_mot) {
     119        $result=false;
     120        $descriptif="Cet article décrit grâce à ses mots-clés, son auteur et son éventuel contenu la classe de $nom_classe";
     121        $sql = "INSERT INTO spip_articles (titre, id_rubrique, statut, date, surtitre, descriptif) VALUES ('$nom_classe','$id_rubrique', 'publie', NOW(),'".addslashes("À propos d'une classe")."','".addslashes($descriptif)."')";
     122        $result = spip_query($sql);
     123        if ($result) {
     124                $id_article=spip_insert_id();
     125                $result=bonbon_lier_mot($id_mot,$id_article);
     126        }
     127        return $result;
     128}
     129function bonbon_creer_sous_rubrique ($id_parent, $titre, $descriptif) {
     130        $sql = "INSERT INTO spip_rubriques (titre, id_parent, descriptif , statut, date)
     131        VALUES ('".addslashes($titre)."', '$id_parent','".addslashes($descriptif)."', 'publie',NOW())";
     132               
     133        $result = spip_query($sql);
     134        if ($result) $result=spip_insert_id();
     135        return $result;
     136}
     137function bonbon_creer_rubrique ($titre, $descriptif) {
     138        $sql = "INSERT INTO spip_rubriques (titre, descriptif , statut, date)
     139        VALUES ('".addslashes($titre)."','".addslashes($descriptif)."', 'publie',NOW())";
     140               
     141        $result = spip_query($sql);
     142        if ($result) $result=spip_insert_id();
    138143        return $result;
    139144}
  • _plugins_/_test_/bonbon/cahier-de-texte-installer-mots-cles.html

    r18323 r18562  
    1 #CACHE{0}
    2 <!--
    3 *****Cahier de texte pour Spip: Bonbon !
    4 *****Réalisé par Bertrand MARNE (bmarne à ac-creteil.fr)
    5 *****Sous licence GPL (enfin bon, c'est bonbonware...)
    6 *****CopyLeft en juin 2007
    7 ***Page d'installation des mots-clés dans Spip
    8 -->
    9 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    10 <html>
    11 
    12 <head>
    13   <title>Préparation du cahier de texte "Bonbon !" sous Spip</title>
    14   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
    15 </head>
    16 <body>
    17 <h1>Préparation ou mise à jour du cahier de texte sous Spip: ajout des classes et des matières et la rubrique du cahier de texte, mise à jour des fiches des classes et des profs</h1>[
    18         (#REM) Hack pour conditionner une boucle (évite un if en php et donc que les boucles englobées par Conditionnelle_1 soient exécutées quand la condition n'est pas remplie)
    19 
    20 ]<BOUCLE_Nimportequelle_rubrique(RUBRIQUES){0,1}>#SET{une_rubrique,#ID_RUBRIQUE}</BOUCLE_Nimportequelle_rubrique>[
    21 (#SET{condition_boucle,''})
    22 ][(#ENV{bouton}|?{'',' '})
    23         [(#SET{condition_boucle,#GET{une_rubrique}})]
    24 
    25 ][
    26 (#SESSION{statut}|=={'0minirezo'}|?{'',' '})
    27         [(#SET{condition_boucle,''})]
    28 
    29 ]<BOUCLE_CONDITIONNELLE_Bouton_presse_ou_non(RUBRIQUES){id_rubrique=#GET{condition_boucle}}>
    30 </BOUCLE_CONDITIONNELLE_Bouton_presse_ou_non>
    31 Avant d'exécuter cette page en cliquant sur le bouton, faites une <a href="./ecrire/?exec=admin_tech" title="aller faire la sauvegarde maintenant">sauvegarde de votre base de données</a>.<br>
    32 En cas de problème vous devrez réutiliser cette sauvegarde.<p>
    33 <p>Vous allez installer dans votre Spip les mots-clés, rubriques et autres élements utilisés par le cahier de texte sous Spip.<p>
    34 <p>Ces mots-clés sont la liste des classes, les listes de matières, quelques autres mots-clés de gestion. Il faut éditer le fichier «cahier-de-texte-installer-mots-cles.html» vers la ligne n°46 pour personnaliser les classes et matières.</p>
    35 <p>Puis, il sera rajouté une rubrique qui contiendra les entrées du cahier de texte sous forme d'articles. Cette rubrique contiendra aussi des sous-rubriques. Les noms de ces rubriques devront être conservés. Vous pouvez compléter le nom  de la rubrique racine du cahier de texte nommée «Cahier de texte en-ligne» (avec un numéro par exemple), mais devez impérativement garder tout le contenu de son titre actuel, sinon le cahier de texte ne fonctionnera plus.</p>
    36 <hr>
    37 <p><strong>Si vous mettez à jour votre cahier de texte, <em>attention</em>&nbsp;:</strong> l'opération peut être très lente et pendre beaucoup des ressources du serveur de base de données. Veillez à ne faire cette mise à jour que pendant des périodes de faible fréquentation du cahier de texte (en général, très tôt le matin ou très tard le soir).</p>
    38 <form name="form" method="get">
    39         <input type="Hidden" value="cahier-de-texte-installer-mots-cles" name="page">[
    40 (#SESSION{statut}|=={'0minirezo'}|?{' ',''})<input type="Submit" value="Installer les mots-clés du cahier de texte dans Spip" name="bouton">]
    41 </form>
    42 </B_CONDITIONNELLE_Bouton_presse_ou_non>
    43 
    44 <?php
    45 
    46 //à adapter selon vos besoins:
    47 
    48         $classes = array (
    49         "6A", "6B", "6C", "6D", "6E", "6F", "6G", "6H", "6I", "6J", "6K", "6L", "5A", "5B", "5C", "5D", "5E", "5F", "5G", "5H", "5I", "5J", "5K", "5L", "4A", "4B", "4C", "4D", "4E", "4F", "4G", "4H", "4I", "4J", "4K", "4L", "3A", "3B", "3C", "3D", "3E", "3F", "3G", "3H", "3I", "3J", "3K", "3L"
    50         );
    51         $groupes = array (
    52         "groupe A", "groupe B",
    53         );
    54         $matieres = array (
    55         "Allemand LV1","Allemand LV2","Anglais LV1","Anglais LV2","Arts Plastiques","E.P.S.","Education musicale","Espagnol LV2","Histoire Géographie","Latin","Grec","Français","Mathématiques","Physique Chimie","Sciences de la vie et de la Terre","Technologie","Vie de classe","Itinéraire de découverte",
    56         );
    57 //fin de la partie à adapter
    58 
    59 
    60 //Ne pas modifier ce qui suit !!!
    61 
    62 
    63         $specif = array (
    64         "Description de séance", "Devoirs à faire"
    65         );
    66         $liste_groupes= array (
    67         "Classes"=>$classes,
    68         "Sous groupes de classes"=>$groupes,
    69         "Matières"=>$matieres,
    70         "Cahier de texte en-ligne"=>$specif,
    71         );
    72 
    73 //D'abord on regarde s'il y a déjà un cahier de texte: ?>
    74 <BOUCLE_Contexte_RubriqueCDT(RUBRIQUES){titre=="Cahier de texte en-ligne"}{0,1}{tout}>[
    75 (#REM) On détermine quelle est l'année scolaire que l'on veut afficher
    76 ][      (#SET{annee_rubrique,[(#ENV{date}|bonbon_annee_scolaire)]})
    77 ][      (#ENV{annee_scolaire}|?{' ',''})
    78                 #SET{annee_rubrique,#ENV{annee_scolaire}}
    79         ]<BOUCLE_AnneeScol(RUBRIQUES){id_parent}{titre=#GET{annee_rubrique}}{!par titre}{0,1}>
    80                 <?php
    81                 $id_rubrique_de_annee='[(#ID_RUBRIQUE|texte_script)]';
    82                 ?>
    83                 [(#SET{id_rubrique,#ID_RUBRIQUE})][(#SET{cdt_existe,'oui'})]
    84                 <BOUCLE_Rubrique_profs_classes_matieres(RUBRIQUES){id_parent}{titre="Professeurs-classes-matières"}>
    85                 <?php
    86                 $id_rubrique_pcm='[(#ID_RUBRIQUE|texte_script)]';
    87                 ?>
    88                 [(#SET{id_rubrique_pcm,#ID_RUBRIQUE})]
    89                 </BOUCLE_Rubrique_profs_classes_matieres>
    90                 </B_Rubrique_profs_classes_matieres>
    91                 <?php
    92                 $sql = "INSERT INTO spip_rubriques (titre, id_parent, descriptif , statut, date)
    93                 VALUES ('".addslashes("Professeurs-classes-matières")."', '$id_rubrique_de_annee','".addslashes("Cette rubrique contient des données necessaires au fonctionnement du cahier de texte en ligne.\n\n  {{Ne l'effacez pas}}. {{Ne la renommez pas}}. {{Ne modifiez pas son contenu}} sinon il ne fonctionnera plus correctement !")."', 'publie',NOW())";
    94                
    95                 $result = spip_query($sql);
    96                 $id_rubrique=spip_insert_id();
    97                 $texte="<p>La rubrique «Professeurs-classes-matières» pour l'année ".'[(#_AnneeScol:TITRE|texte_script)]'." est la rubrique n°$id_rubrique.";
    98                 echo $texte;
    99                 ?>     
    100                 <//B_Rubrique_profs_classes_matieres>
    101         </BOUCLE_AnneeScol>
    102 </BOUCLE_Contexte_RubriqueCDT>
    103 
    104 <?php
    105 //Pour chaque groupe de mot-clés à rajouter:
    106         while (list($key,$val)=each($liste_groupes)) {
    107 
    108                 //D'abord, le groupe de mots
    109                 $nom_groupe=$key;
    110                 $existe=0;
    111 ?>
    112 <BOUCLE_Verifie_Groupe(GROUPES_MOTS)>
    113 <?php
    114                 $pattern="%(".trim($nom_groupe).")%";
    115                 $string='[(#TITRE|texte_script)]';
    116                 preg_match ($pattern,$string,$matches);
    117                 if ($matches[1]) {
    118                         $existe=1;
    119                         $id_groupe='[(#ID_GROUPE|texte_script)]';
    120                         echo"<h2>Le groupe de mots-clés $nom_groupe existe déjà avec le n°$id_groupe. Les mots-clés seront rajoutés dedans.</h2>";
    121                 }
    122 ?>
    123 </BOUCLE_Verifie_Groupe>
    124 <?php
    125                 if ($existe!=1) {
    126                         $id_groupe=bonbon_ajoute_groupe($nom_groupe);
    127                         echo "<h2>Ajout dans Spip du <a href=\"./ecrire/?exec=mots_tous\" title=\"Aller voir tous les groupes\">groupe</a> nommé <a href=\"./ecrire/?exec=mots_type&id_groupe=$id_groupe\" title=\"Aller voir le groupe $nom_groupe\">\"$nom_groupe\" de numéro $id_groupe</a></h2>";
    128                 }// fin du if not existe
    129 
    130                 //Puis les mots...
    131                 while (list($key2,$val2)=each($val)) {
    132                         $existe=0;
    133 ?>
    134 <BOUCLE_Verifie_Mot(MOTS)>
    135 <?php
    136                         if ($id_groupe=='[(#ID_GROUPE|texte_script)]') {
    137                                 $pattern="%(".trim($val2).")%";
    138                                 $string='[(#TITRE|texte_script)]';
    139                                 preg_match ($pattern,$string,$matches);
    140                                 if ($matches[1]) {
    141                                         $existe=1;
    142                                         $id_mot='[(#ID_MOT|texte_script)]';
    143                                         echo "<p>Le mot-clé $val2 existe déjà avec le n°$id_mot. Il ne sera pas rajouté.</p>";
    144                                         $mot='[(#TITRE|texte_script)]';
    145 
    146 //Pour les classes et les matières, on regarde si le mot clé est lié à la rubrique, si oui, on passe, sinon, on regarde s'il y a un contenu lié au mot-clé et on colle le mot à la rurbrique
    147                                         if ($id_rubrique_de_annee  and ($nom_groupe=="Classes" OR $nom_groupe=="Matières")) {  ?>
    148                 <BOUCLE_On_verifie_si_une_classe_est_liee(RUBRIQUES){id_rubrique=#GET{id_rubrique}}{id_mot}>
    149                 <p>#_Verifie_Mot:TITRE est déjà lié au cahier de texte de l'année #TITRE</p>
    150                 </BOUCLE_On_verifie_si_une_classe_est_liee>
    151                 </B_On_verifie_si_une_classe_est_liee>
    152                         <BOUCLE_Y_a_t_il_du_contenu_lie(ARTICLES){id_rubrique=#GET{id_rubrique}}{id_mot}{0,1}>
    153                                 <?php
    154                                                         bonbon_lier_mot('[(#ID_MOT|texte_script)]','[(#GET{id_rubrique}|texte_script)]',"rubrique");
    155                                                         echo "le mot ". '[(#ID_MOT|texte_script)]'. " est rattaché à la rubrique n°".'[(#GET{id_rubrique}|texte_script)]';
    156                                 ?>
    157                         </BOUCLE_Y_a_t_il_du_contenu_lie>
    158                         </B_Y_a_t_il_du_contenu_lie>
    159                 <p>Pas de contenu lié à #_Verifie_Mot:TITRE dans le cahier de texte de l'année</p>
    160                         <//B_Y_a_t_il_du_contenu_lie>
    161                 <//B_On_verifie_si_une_classe_est_liee> <?php
    162                                                 if ($nom_groupe=="Classes") {
    163 //Pour chaque classe on va vérifier grâce aux mots-clés de la rubrique de l'année s'il y a du contenu. S'il y en a on regarde s'il existe un article qui décrit la classe ?>
    164                 <BOUCLE_Le_Contenu_existe-t-il(MOTS){id_rubrique=#GET{id_rubrique}}{id_mot}>
    165                         <BOUCLE_Article_Description_Classe(ARTICLES){id_rubrique=#GET{id_rubrique_pcm}}{titre=#_Verifie_Mot:TITRE}>
    166                                 <p>La classe est décrite par l'article n°#ID_ARTICLE</p>
    167                         </BOUCLE_Article_Description_Classe>
    168                         </B_Article_Description_Classe>
    169                         <?php
    170                         $descriptif="Cet article décrit grâce à ses mots-clés, son auteur et son éventuel contenu la classe de ".'[(#_Verifie_Mot:TITRE|texte_script)]';
    171                         $sql = "INSERT INTO spip_articles (titre, id_rubrique, statut, date, surtitre, descriptif)
    172                         VALUES ('[(#_Verifie_Mot:TITRE|texte_script)]','$id_rubrique_pcm', 'publie', NOW(),'".addslashes("À propos d'une classe")."','".addslashes($descriptif)."')";
    173        
    174                         $result = spip_query($sql);
    175                         $id_article=spip_insert_id();
    176                         $sql = "INSERT INTO spip_mots_articles (id_mot, id_article) VALUES (" .'[(#_Verifie_Mot:ID_MOT|texte_script)]' . ", " . $id_article . ")";
    177                         $result = spip_query($sql);
    178                         echo ("<p>l'article n°$id_article décrit la classe de ".'[(#_Verifie_Mot:TITRE|texte_script)]'."\n</p>");
    179                         ?>
    180                         <//B_Article_Description_Classe>
    181                 </BOUCLE_Le_Contenu_existe-t-il>
    182                                                 <?php }//fin du if nom_groupe==classes
    183                                                 if ($nom_groupe=="Matières") {
    184 //Pour chaque matière on regarde pour chacune des classes (peut donc être long) qui a un contenu de cette matière que le mot-clé lui est associé ?>
    185                 <BOUCLE_Toutes_les_classes(MOTS){type="Classes"}>
    186                         <BOUCLE_Pour_Chaque_Classe_Avec_Article(ARTICLES){id_rubrique=#GET{id_rubrique_pcm}}{titre_mot=#TITRE}>
    187                                 <BOUCLE_Les_deux_mots_attaches(ARTICLES){id_article}{id_mot=#_Verifie_Mot:ID_MOT}{titre_mot=#_Pour_Chaque_Classe_Avec_Article:TITRE}>
    188                                         <p>La matière #_Verifie_Mot:TITRE est enseignée en #TITRE</p>
    189                                 </BOUCLE_Les_deux_mots_attaches>
    190                                 </B_Les_deux_mots_attaches>
    191                                         <BOUCLE_Article_de_cette_matiere_et_classe(ARTICLES){id_mot=#_Verifie_Mot:ID_MOT}{titre_mot=#_Pour_Chaque_Classe_Avec_Article:TITRE}{0,1}>
    192                                         <?php
    193                                         bonbon_lier_mot('[(#_Verifie_Mot:ID_MOT|texte_script)]','[(#_Pour_Chaque_Classe_Avec_Article:ID_ARTICLE|texte_script)]');
    194                                         echo "le mot ". '[(#_Verifie_Mot:ID_MOT|texte_script)]'. " est rattaché à l'article n°".'[(#_Pour_Chaque_Classe_Avec_Article:ID_ARTICLE|texte_script)]';
    195                                         ?>
    196                                         <p>La matière #_Verifie_Mot:TITRE a au moins une séance en #_Pour_Chaque_Classe_Avec_Article:TITRE, elle est donc associée à cette classe</p>
    197                                         </BOUCLE_Article_de_cette_matiere_et_classe>
    198                                 <//B_Les_deux_mots_attaches>
    199                         </BOUCLE_Pour_Chaque_Classe_Avec_Article>
    200                 </BOUCLE_Toutes_les_classes>
    201                                                 <?php } //fin du if nom_groupe==matières
    202                                         }// fin du if id_rubrique_de_annee et classes ou matières
    203                                 }
    204                         }
    205 ?>
    206 </BOUCLE_Verifie_Mot>
    207 <?php
    208                         if ($existe!=1) {
    209                                 $id_mot=bonbon_ajoute_mot ($val2,$option_descript="",$id_groupe,$nom_groupe,$existe);
    210                                 echo "<p><i>$val2</i> est le mot-clé numéro $id_mot</p>";
    211                         }// fin du if not existe
    212                 }//fin du while each($val)
    213         }//fin du while each ($list_groupe)
    214 
    215 
    216         //ajout de la rubrique qui va acceuillir le cahier de texte
    217         $existe=0;
    218 ?>[
    219 
    220         (#REM) Hack de la boucle conditionnelle
    221 
    222 ][(#SET{condition_boucle,''})]
    223 [(#GET{cdt_existe}|=={oui}|?{' ',''})
    224         [(#SET{condition_boucle,#GET{id_rubrique}})]
    225 ]<BOUCLE_CONDITIONNELLE_Traiter_les_auteurs_ou_non(RUBRIQUES){id_rubrique=#GET{condition_boucle}}>[
    226 
    227         (#REM) Si le CDT de l'année existe, on teste pour chaque auteur s'il a une fiche descriptive. S'il n'en a pas: on regarde s'il a décrit des séances, et si c'est le cas on lui crée la fiche descriptive.
    228         Ensuite on regarde pour chaque classe et matière s'il a écrit une fiche, si c'est le cas, on associe ces classes et matières à sa fiche.
    229 
    230 ]
    231         <BOUCLE_Tous_les_Auteurs(AUTEURS)>
    232                 <BOUCLE_Article_jointure(ARTICLES){id_rubrique=#GET{id_rubrique_pcm}}{id_auteur}{surtitre="À propos d'un professeur"}>
    233                         <p>Le prof #NOM a bien un descriptif de ses classes et matières</p>
    234                 </BOUCLE_Article_jointure>
    235                         <BOUCLE_A_t_il_du_contenu(ARTICLES){titre_mot="Description de séance"}{id_auteur}{id_rubrique}{0,1}>
    236                                 <?php
    237                                         //article       
    238                                         $descriptif="Cet article décrit grâce à ses mots-clés, les classes et les matières enseignées par ".'[(#NOM|texte_script)]';
    239                                         $sql = "INSERT INTO spip_articles (titre, id_rubrique, statut, date, surtitre, descriptif,ps)
    240                                         VALUES ('".'[(#NOM|texte_script)]'."','$id_rubrique_pcm', 'publie', NOW(),'".addslashes("À propos d'un professeur")."','".addslashes($descriptif)."','".'[(#ID_AUTEUR|texte_script)]'."')";
    241                                         $result = spip_query($sql);
    242                                         $id_article=spip_insert_id();
    243                                         // auteur
    244                                         $sql = "INSERT INTO spip_auteurs_articles (id_auteur, id_article) VALUES (" . '[(#ID_AUTEUR|texte_script)]' . ", " . $id_article . ")";
    245                                         $result = spip_query($sql);
    246                                         echo "<p>L'article n°$id_article décrit les classes et les matières enseignées par ".'[(#NOM|texte_script)]'."</p>";
    247                                 ?>
    248                         </BOUCLE_A_t_il_du_contenu>
    249                 <//BOUCLE_Article_jointure>
    250                 <BOUCLE_Les_Classes_et_les_matieres(MOTS){type IN "Classes","Matières"}>
    251                         <BOUCLE_Article_auteur_et_matiere(ARTICLES){id_rubrique}{id_auteur}{id_mot}{0,1}>
    252                                 <BOUCLE_Article_fiche(ARTICLES){id_rubrique=#GET{id_rubrique_pcm}}{id_auteur}{surtitre="À propos d'un professeur"}>
    253                                         <BOUCLE_Mot_lie_a_fiche(MOTS){id_article}{id_mot}>
    254                                                 <p>La #TYPE est associée à #NOM</p>
    255                                         </BOUCLE_Mot_lie_a_fiche><?php
    256                                                 bonbon_lier_mot('[(#ID_MOT|texte_script)]','[(#ID_ARTICLE|texte_script)]');
    257                                                 echo "le mot ". '[(#ID_MOT|texte_script)]'. " est rattaché à l'article n°".'[(#ID_ARTICLE|texte_script)]';
    258                                         ?>
    259                                         <p>#NOM a au moins une séance décrite pour la #TYPE #_Les_Classes_et_les_matieres:TITRE, elle est donc associée à sa fiche</p>
    260                                         <//B_Mot_lie_a_fiche>
    261                                 </BOUCLE_Article_fiche>
    262                                         <?php
    263                                                 //j'ai remarqué que l'insertion sql faite qq secondes plus tôt des artciles  des auteurs peut ne pas être prise ne compte par les boucles. Le SQL qui suit est donc là par sécurité.
    264                                                 bonbon_lier_mot('[(#ID_MOT|texte_script)]',$id_article);
    265                                                 echo "le mot ". '[(#ID_MOT|texte_script)]'. " est rattaché à l'article n°$id_article";
    266                                         ?><p>#NOM a au moins une séance décrite pour la #TYPE #_Les_Classes_et_les_matieres:TITRE, elle est donc associée à sa fiche...</p>
    267                                 <//B_Article_fiche>
    268                         </BOUCLE_Article_auteur_et_matiere>
    269                 </BOUCLE_Les_Classes_et_les_matieres>
    270         </BOUCLE_Tous_les_Auteurs>
    271 </BOUCLE_CONDITIONNELLE_Traiter_les_auteurs_ou_non>
    272 
    273 <BOUCLE_Verifie_Rubrique(RUBRIQUES){tout}>
    274 <?php
    275         $pattern="/(Cahier de texte en-ligne)/";
    276         $string='[(#TITRE|texte_script)]';
    277         preg_match ($pattern,$string,$matches);
    278         if ($matches[1]) {
    279                 $existe=1;
    280                 $id_rubrique='[(#ID_RUBRIQUE|texte_script)]';
    281                 $texte="<p>La rubrique «Cahier de texte en-ligne» existe déjà avec le n°$id_rubrique. Elle ne sera pas ajoutée.";
    282         }
    283 ?>
    284 </BOUCLE_Verifie_Rubrique>
    285 <?php
    286         if ($existe!=1) {
    287                 $sql = "INSERT INTO spip_rubriques (titre, descriptif , statut, date)
    288                 VALUES ('".addslashes("Cahier de texte en-ligne")."','".addslashes("Cette rubrique contient le cahier de texte géré par Spip\n\nSon {titre} doit {{toujours}} contenir l'expression «{Cahier de texte en-ligne}». Si vous souhaitez changer son nom gardez cette expression dedans.")."', 'publie',NOW())";
    289                
    290                 $result = spip_query($sql);
    291                 $id_rubrique=spip_insert_id();
    292                 $texte="<p name=\"FIN\">La rubrique «Cahier de texte en-ligne» est la rubrique n°$id_rubrique.";
    293         }
    294         echo "$texte\n<br>Son <em>titre</em> doit <strong>toujours</strong> contenir l'expression «<em>Cahier de texte en-ligne</em>». Si vous souhaitez changer son nom gardez cette expression dedans.</p>
    295         <p><strong>Pour améliorer l'intégration du cahier de texte à votre site sous Spip vous pouvez renommer le fichier \"cahier-de-texte-rubrique.html\" livré dans le dossier squelettes en \"rubrique-$id_rubrique.html\"</strong></p>";
    296         //fin du script
    297         echo "<p><b>Ne rechargez pas la page</b>.<br/><br/>\n <a href=\"./ecrire/?exec=mots_tous\" title=\"Aller vérifier l'installation des groupes\">Passez dans l'espace privé de Spip</a> pour vérifier que les mots-clés et la rubrique sont bien installés.\n<ul>\n <li>En cas de problème, réutilisez votre sauvegarde de la base.</li>\n<li>Si tout va bien, effacez le ficher \"ajouter-classes-matieres-spip.html\" du serveur.</li>\n</ul><p>";
    298 
    299 ?>
    300 <//B_CONDITIONNELLE_Bouton_presse_ou_non>
     1<#INCLURE{fond=cahier-de-texte-installation-maj}>
  • _plugins_/_test_/bonbon/cahier-de-texte-selection-document.html

    r18151 r18562  
    9494                <form enctype="multipart/form-data" name="ajouter_un_doc" method="post">
    9595                        <input type="hidden" name="page" value="#ENV{page}">
    96                         <input type="hidden" name="MAX_FILE_SIZE" value="2000000" />
     96                        <input type="hidden" name="MAX_FILE_SIZE" value="700000" />
    9797                        <input type="file" name="chemin">
    9898                        <br>
  • _plugins_/_test_/bonbon/plugin.xml

    r18323 r18562  
    66        <prefix>bonbon</prefix>
    77        <lien>
    8 - Pour utiliser ce plugin [ cliquez d&#39;abord ici->../spip.php?page=cahier-de-texte-installer-mots-cles] (pensez &#224; le faire m&#234;me lorsque vous changez de version de &#171;Bonbon !&#187;...). Cela ex&#233;cute un script de pr&#233;paration ou de mise &#224; jour du cahier de texte. Son ex&#233;cution peut-&#234;tre longue et charger le serveur de base de donn&#233;es.
     8- Pour utiliser ce plugin [ cliquez d&#39;abord ici->../spip.php?page=cahier-de-texte-installation-maj] (pensez &#224; le faire m&#234;me lorsque vous changez de version de &#171;Bonbon !&#187;...). Cela ex&#233;cute un script de pr&#233;paration ou de mise &#224; jour du cahier de texte. Son ex&#233;cution peut-&#234;tre longue et charger le serveur de base de donn&#233;es.
    99- [&#171; Bonbon ! &#187;, un cahier de texte pour SPIP (documentation)->http://www.spip-contrib.net/spip.php?id_article=2301]
    1010        </lien>
Note: See TracChangeset for help on using the changeset viewer.