Changeset 7571 in spip-zone


Ignore:
Timestamp:
Nov 26, 2006, 6:00:20 AM (13 years ago)
Author:
patfr@…
Message:

des changements importants :

  • une nouvelle syntaxe plus legere des mots croises (on conserve qd meme la compatibilité...)
  • orthographe des fichiers
  • l'abandon de la surcharge introduction() au profit des balises <intro></intro>
  • pas mal de mineur...
Location:
_plugins_/_stable_/mot-croises
Files:
1 added
7 edited
3 moved

Legend:

Unmodified
Added
Removed
  • _plugins_/_stable_/mot-croises/backend-breves.html

    r5001 r7571  
    99<channel>
    1010
    11         <title>[(#NOM_SITE_SPIP|pas_de_grille|texte_backend)]</title>
     11        <title>[(#NOM_SITE_SPIP|texte_backend)]</title>
    1212        <link>#URL_SITE_SPIP/</link>
    13         <description>[(#DESCRIPTIF_SITE_SPIP|pas_de_grille|texte_backend)]</description>
     13        <description>[(#DESCRIPTIF_SITE_SPIP|pas_de_plugin|texte_backend)]</description>
    1414        <language>#LANG</language>
    1515        <generator>SPIP - www.spip.net</generator>
    1616
    1717[       <image>
    18                 <title>[(#NOM_SITE_SPIP|pas_de_grille|texte_backend)]</title>
    19                 <url>(#LOGO_SITE_SPIP||extraire_attribut{src}|url_absolue|pas_de_grille|texte_backend)</url>
     18                <title>[(#NOM_SITE_SPIP|texte_backend)]</title>
     19                <url>(#LOGO_SITE_SPIP||extraire_attribut{src}|url_absolue|texte_backend)</url>
    2020                <link>#URL_SITE_SPIP/</link>
    2121                [<height>(#LOGO_SITE_SPIP||extraire_attribut{height})</height>]
     
    2727{par date}{inverse}{0,20}>
    2828        <item>
    29                 <title>[(#TITRE|supprimer_numero|pas_de_grille|texte_backend)]</title>
     29                <title>[(#TITRE|supprimer_numero|texte_backend)]</title>
    3030                <link>[(#URL_BREVE|url_absolue)]</link>
    3131                [<guid isPermaLink="true">(#URL_BREVE|url_absolue)</guid>]
     
    3535                [(#REM)
    3636                        Le bloc qui suit diffuse diffuse la rubrique et les mots-cles a la mode RSS
    37                 ]<BOUCLE_rubrique_rss(RUBRIQUES){id_rubrique}>[<category[ domain="(#URL_RUBRIQUE|url_absolue)"]>(#TITRE|supprimer_numero|pas_de_grille|texte_backend)</category>]</BOUCLE_rubrique_rss>
     37                ]<BOUCLE_rubrique_rss(RUBRIQUES){id_rubrique}>[<category[ domain="(#URL_RUBRIQUE|url_absolue)"]>(#TITRE|supprimer_numero|texte_backend)</category>]</BOUCLE_rubrique_rss>
    3838<BOUCLE_mots_rss(MOTS){id_breve}>
    39                 [<dc:subject>(#TITRE|pas_de_grille|texte_backend)</dc:subject>]</BOUCLE_mots_rss>
     39                [<dc:subject>(#TITRE|texte_backend)</dc:subject>]</BOUCLE_mots_rss>
    4040
    41                 <description>[(#INTRODUCTION|pas_de_grille|texte_backend)]
     41                <description>[(#INTRODUCTION|pas_de_plugin|texte_backend)]
    4242
    4343[(#REM)
     
    4646
    4747]<BOUCLE_rubrique_mf(RUBRIQUES){id_rubrique}>-
    48 [&lt;a href="[(#URL_RUBRIQUE|url_absolue)]" rel="directory"&gt;(#TITRE|supprimer_numero|pas_de_grille|texte_backend)&lt;/a&gt;]
     48[&lt;a href="[(#URL_RUBRIQUE|url_absolue)]" rel="directory"&gt;(#TITRE|supprimer_numero|texte_backend)&lt;/a&gt;]
    4949</BOUCLE_rubrique_mf><B_mots_mf>
    5050/ <BOUCLE_mots_mf(MOTS){id_breve}{", "}>
    51 [&lt;a href="[(#URL_MOT|url_absolue)]" rel="tag"&gt;(#TITRE|pas_de_grille|texte_backend)&lt;/a&gt;]</BOUCLE_mots_mf>
     51[&lt;a href="[(#URL_MOT|url_absolue)]" rel="tag"&gt;(#TITRE|texte_backend)&lt;/a&gt;]</BOUCLE_mots_mf>
    5252
    5353                </description>
     
    5858        Fonction desactivable depuis les reglages du site.
    5959][
    60 (#CONFIG{syndication_integrale}|=={oui}|?{' ',''})<content:encoded>[(#LOGO_BREVE|right||pas_de_grille|texte_backend)
    61                 ][&lt;div class='rss_texte'&gt;(#TEXTE|pas_de_grille|texte_backend)&lt;/div&gt;
     60(#CONFIG{syndication_integrale}|=={oui}|?{' ',''})<content:encoded>[(#LOGO_BREVE|right||texte_backend)
     61                ][&lt;div class='rss_texte'&gt;(#TEXTE|pas_de_plugin|texte_backend)&lt;/div&gt;
    6262                ][&lt;hr /&gt;
    63                 &lt;div class='rss_notes'&gt;(#NOTES|pas_de_grille|texte_backend)&lt;/div&gt;]
     63                &lt;div class='rss_notes'&gt;(#NOTES|pas_de_plugin|texte_backend)&lt;/div&gt;]
    6464                </content:encoded>
    6565]
  • _plugins_/_stable_/mot-croises/backend.html

    r5001 r7571  
    88
    99<channel>
    10         <title>[(#NOM_SITE_SPIP|pas_de_grille|texte_backend)]</title>
     10        <title>[(#NOM_SITE_SPIP|texte_backend)]</title>
    1111        <link>#URL_SITE_SPIP/</link>
    12         <description>[(#DESCRIPTIF_SITE_SPIP|pas_de_grille|texte_backend)]</description>
     12        <description>[(#DESCRIPTIF_SITE_SPIP|pas_de_plugin|texte_backend)]</description>
    1313        <language>#LANG</language>
    1414        <generator>SPIP - www.spip.net</generator>
    1515
    1616[       <image>
    17                 <title>[(#NOM_SITE_SPIP|pas_de_grille|texte_backend)]</title>
    18                 <url>(#LOGO_SITE_SPIP||extraire_attribut{src}|url_absolue|pas_de_grille|texte_backend)</url>
     17                <title>[(#NOM_SITE_SPIP|texte_backend)]</title>
     18                <url>(#LOGO_SITE_SPIP||extraire_attribut{src}|url_absolue|texte_backend)</url>
    1919                <link>#URL_SITE_SPIP/</link>
    2020                [<height>(#LOGO_SITE_SPIP||extraire_attribut{height})</height>]
     
    2323]
    2424
    25         <BOUCLE_un_article(ARTICLES){id_article}>
    26         <item>
    27                 <title>[(#TITRE|supprimer_numero|pas_de_grille|texte_backend)]</title>
    28                 <link>[(#URL_ARTICLE|url_absolue)]</link>
    29                 [<guid isPermaLink="true">(#URL_ARTICLE|url_absolue)</guid>]
    30                 [<dc:date>(#DATE|date_iso)</dc:date>]
    31                 <dc:format>text/html</dc:format>
    32                 [<dc:language>(#LANG)</dc:language>]
    33                 [<dc:creator>(#LESAUTEURS|supprimer_tags|pas_de_grille|texte_backend)</dc:creator>]
    34 
    35 [(#REM)
    36         Le bloc qui suit diffuse diffuse la rubrique et les mots-cles a la mode RSS
    37 
    38 ]<BOUCLE_rubrique_rss(RUBRIQUES){id_rubrique}>[<category[ domain="(#URL_RUBRIQUE|url_absolue)"]>(#TITRE|supprimer_numero|pas_de_grille|texte_backend)</category>]</BOUCLE_rubrique_rss>
    39 <BOUCLE_mots_rss(MOTS){id_article}>
    40                 [<dc:subject>(#TITRE|pas_de_grille|texte_backend)</dc:subject>]</BOUCLE_mots_rss>
    41 
    42                 <description>[(#INTRODUCTION|pas_de_grille|texte_backend)]
    43 
    44 [(#REM)
    45         Le bloc qui suit diffuse la rubrique et les mots-cles
    46         sous forme de "microformats"
    47 
    48 ]<BOUCLE_rubrique_mf(RUBRIQUES){id_rubrique}>-
    49 [&lt;a href="[(#URL_RUBRIQUE|url_absolue)]" rel="directory"&gt;(#TITRE|supprimer_numero|pas_de_grille|texte_backend)&lt;/a&gt;]
    50 </BOUCLE_rubrique_mf><B_mots_mf>
    51 / <BOUCLE_mots_mf(MOTS){id_article}{", "}>
    52 [&lt;a href="[(#URL_MOT|url_absolue)]" rel="tag"&gt;(#TITRE|pas_de_grille|texte_backend)&lt;/a&gt;]</BOUCLE_mots_mf>
    53 
    54                 </description>
    55 
    56 [(#REM)
    57         Le bloc qui suit diffuse aussi le texte integral de l'article,
    58         ce qui permet une syndication plus riche (mais plus "lourde").
    59         Fonction desactivable depuis les reglages du site.
    60 ][
    61 (#CONFIG{syndication_integrale}|=={oui}|?{' ',''})<content:encoded>[(#LOGO_ARTICLE|right||pas_de_grille|texte_backend)
    62                 ][&lt;div class='rss_chapo'&gt;(#CHAPO|pas_de_grille|texte_backend)&lt;/div&gt;
    63                 ][&lt;div class='rss_texte'&gt;(#TEXTE|
    64                         image_reduire{520,0}|pas_de_grille|texte_backend)&lt;/div&gt;
    65                 ][&lt;hr /&gt;
    66                 &lt;div class='rss_notes'&gt;(#NOTES|pas_de_grille|texte_backend)&lt;/div&gt;
    67                 ][&lt;div class='rss_ps'&gt;(#PS|pas_de_grille|texte_backend)&lt;/div&gt;]
    68                 </content:encoded>
    69 ]
    70 
    71 [(#REM)
    72         Le bloc qui suit diffuse l'adresse des documents associes aux articles ;
    73         ajouter par ex. {extension=mp3} pour limiter a un certain type de document.
    74 ]               <BOUCLE_documents(DOCUMENTS){id_article}{mode=document}{doublons}>[
    75                 <enclosure url="(#URL_DOCUMENT|url_absolue|unique)"[ length="(#TAILLE)"][ type="(#MIME_TYPE)"] />]
    76                 </BOUCLE_documents>
    77 
    78         </item>
    79 </BOUCLE_un_article>
    80 
    8125<BOUCLE_10recents(ARTICLES) {lang ?}{branche ?}{id_mot ?}
    8226        {par date}{inverse}{0,10}{unique}>
    83 <BOUCLE_a(BOUCLE_un_article)></BOUCLE_a>
     27<INCLURE{fond=inc-rss-item}{id_article}>
    8428</BOUCLE_10recents>
    8529
    8630<BOUCLE_tres_recents(ARTICLES){lang ?}{branche ?}{id_mot ?}
    8731        {par date}{inverse}{age<3}{unique}>
    88 <BOUCLE_b(BOUCLE_un_article)></BOUCLE_b>
     32<INCLURE{fond=inc-rss-item}{id_article}>
    8933</BOUCLE_tres_recents>
    9034
  • _plugins_/_stable_/mot-croises/inc/gestion_grille.php

    r7496 r7571  
    1 <?php
     1<?php
    22
     3// vieille syntaxe, garde pour compatibilite
    34define(_GRILLE_, '<!-- grille -->');
    45
    5 //retourne la lettre correpondant au chiffre
     6//retourne la lettre correspondant au chiffre
    67function lettre_grille($texte) {
    78        $alphabet="*ABCDEFGHIJKLMNOPQRSTUVWXYZ";
     
    7677// déchiffre le code source de la grille
    7778function calcul_tableau_grille($texte){
     79        $tableau = explode("\r", trim($texte));
     80        foreach ($tableau as $i=>$v) $tableau[$i] = preg_split('//', trim($v), -1, PREG_SPLIT_NO_EMPTY);
     81        return $tableau;
     82}
     83
     84// déchiffre le code source de la grille
     85function calcul_tableau_grille_vieille_syntaxe($texte){
    7886        $texte = trim($texte);
    7987        $tableau = explode("\r", $texte);       
    80 
    8188        //ligne par ligne
    8289        $j =0;
     
    8794                $j++;
    8895        }
    89        
    9096        return $tableau;
    9197}
     
    110116}
    111117
     118// renvoie le nombre d'erreurs de de cases vides
     119function calcul_erreurs_grille($solution) {
     120        if ($GLOBALS["bouton_envoi"] == '') return '';
     121        else {
     122          list($nbr_erreurs, $nbr_vides) = comparaison_grille($solution);
     123          return '<strong class="erreur">'
     124                . (($nbr_erreurs==0)?_T('motscroises:aucune_erreur'):(
     125                 ($nbr_erreurs==1)?_T('motscroises:une_erreur'):_T("motscroises:nombre_erreurs", Array('err'=>$nbr_erreurs))
     126                ))
     127                . (($nbr_vides==0)?(($nbr_erreurs==0)?'. '._T('motscroises:bravo'):''):(
     128                 ($nbr_vides==1)?' - '._T('motscroises:une_vide'):' - '._T("motscroises:nombre_vides", Array('vid'=>$nbr_vides))
     129                ))
     130                . '</strong><br />';
     131        }
     132}
    112133?>
  • _plugins_/_stable_/mot-croises/lang/motscroises_fr.php

    r7480 r7571  
    77'afficher_solution'     =>'Afficher la solution (en bas de page)',
    88'verifier'              => 'V&eacute;rifier',
    9 'horizontalement'       => 'Horizontalement',
    10 'verticalement'         => 'Verticalement',
    119'solution'              =>'Solution',
    12 //'nombre_erreurs'      =>'@nbr@ erreurs',
    1310'aucune_erreur'         =>'Aucune erreur',
    14 //'1erreur'             =>'Une erreur',
     11'titre'         =>'Grille de mots-crois&eacute;s',
    1512'table_summary'         =>'Grille de mots-crois&eacute;s de @largeur@ colonnes sur @hauteur@ lignes',
    1613'ligne'                 =>'ligne @n@',
    1714'colonne'               =>'colonne @n@',
    1815
    19 //'horizontalement'     => 'Horizontalement&nbsp;:',
    20 //'verticalement'               => 'Verticalement&nbsp;:',
     16'horizontalement'       => 'Horizontalement&nbsp;:',
     17'verticalement'         => 'Verticalement&nbsp;:',
    2118'nombre_erreurs'        => '@err@ erreurs',
    2219'une_erreur'            => 'Une erreur',
  • _plugins_/_stable_/mot-croises/lang/motscroises_it.php

    r7436 r7571  
    77'afficher_solution'     =>'Visualizza la soluzione (in fondo alla pagina)',
    88'verifier'              => 'Controlla',
    9 'horizontalement'       => 'Orizzontali',
    10 'verticalement'         => 'Verticali',
    119'solution'              =>'Soluzione',
    12 //'nombre_erreurs'      =>'@nbr@ errori',
    1310'aucune_erreur'         =>'Nessun errore',
    14 //'1erreur'             =>'Un errore',
     11'titre'         =>'Schema di parole crociate',
    1512'table_summary'         =>'Schema di parole crociate di @largeur@ colonne e @hauteur@ righe',
    1613'ligne'                 =>'riga @n@',
    1714'colonne'               =>'colonna @n@',
    1815
    19 //'horizontalement'     => 'Orizzontali:',
    20 //'verticalement'               => 'Verticali:',
     16'horizontalement'       => 'Orizzontali:',
     17'verticalement'         => 'Verticali:',
    2118'nombre_erreurs'        => '@err@ errori',
    2219'une_erreur'            => 'Un errore',
  • _plugins_/_stable_/mot-croises/mots-croises.css

    r7260 r7571  
    1 td.noir {background-color:#000000; color:#000000;}
     1.grille td.noir {
     2        background-color:#000000;
     3        color:#000000;
     4}
     5
    26table.grille input, table.grille th{min-width:1.5em;
    37width:1.5em;
     
    3539p.spip {clear:both}
    3640
    37 h4.spip{margin:0;padding:0}                   
     41h4.grille{
     42        margin:0;
     43        padding:0;
     44        font-weight:bold;
     45}
    3846
    3947.horizontal ol,.vertical ol{margin:0;
  • _plugins_/_stable_/mot-croises/mots_croises_fonctions.php

    r7527 r7571  
    1 <?php
    2 #---- filtres mot-croisés ----------#
    3 #Filtre : grille de mot croisés         #
    4 #Auteur : Maïeul Rouquette,2006         #
    5 #Licence : GPL                          #
    6 #Contact : maieulrouquette@tele2.fr     #
     1<?php
     2#------ filtres mot-croisés ----------#
     3# Filtres : grille de mot croisés     #
     4# Auteurs : Maïeul Rouquette, 2006    #
     5#           Patrice Vanneufville      #
     6# Licence : GPL                       #
     7# Contact : maieulrouquette@tele2.fr  #
     8#-------------------------------------#
    79
     10// filtre qui evite d'afficher le resultat obtenu par certains plugins
     11// grace aux espions : <!-- PLUGIN-DEBUT --> et <!-- PLUGIN-FIN -->
     12// voir par ex. : backend.html, backend-breves.html
    813
    9 //evite d'afficher la grille la ou on veux pas (par exemple pour les backend)
    10 function pas_de_grille ($texte){
     14if (!function_exists("pas_de_plugin")) {       
     15 function pas_de_plugin($texte){
     16                return preg_replace(",<!-- PLUGIN-DEBUT -->.*<!-- PLUGIN-FIN -->,UimsS", '', $texte);
     17 }
     18}
    1119
    12                 include_spip('inc/gestion_grille');
    13                 $j = 0;
    14                 $texte = preg_split ('/'._GRILLE_.'/',$texte);
    15                
    16                 foreach ($texte as $i){
    17                        
    18                         if ($j%2==1){
    19                                 $texte[$j]='';
    20                                 }
    21                         $j++;
    22                         }
    23                
     20// vieux filtres a supprimer...
     21// on les garde pour compatibilite
     22function grille($texte, $page=''){ return $texte; }
     23function pas_de_grille($texte){
     24        include_spip('inc/gestion_grille');
     25        $texte = explode('/'._GRILLE_.'/',$texte);
     26        $j = 0;
     27        foreach ($texte as $i) if ($j++%2==1) $texte[$j]='';
    2428        return implode($texte);
    2529}
    2630
    27 
    28 
    29 
    30 function grille($texte,$page=''){                                               //on garde  pour compatibilité
    31         return $texte;
    32 }
    33 #--- fin filtre mot-croisés ---#
    34 
    3531?>
  • _plugins_/_stable_/mot-croises/mots_croises_options.php

    r7527 r7571  
    11<?php
    2 
    3 // on ne sait jamais ! mais cette surcharge doit être étudiée...
    4 if (!function_exists("introduction")) {
     2/*
     3// méthode devenue obsolete, source de trop de bogues
     4if (false) {//(!function_exists("introduction")) {     
    55
    66  function introduction ($type, $texte, $chapo='', $descriptif='') {
     
    3838        return $texte;
    3939}
    40 
     40*/
    4141?>
  • _plugins_/_stable_/mot-croises/mots_croises_pipelines.php

    r7527 r7571  
    1 <?php
     1<?php
     2/*
     3  Titre de la grille des mots croisés :
     4        - soit après la balise #TITRE des mots croisés
     5        - soit entre les balises <intro> et </intro>
     6                (Spip s'en servira egalement en cas d'absence de descriptif pour
     7                calculer la balise #INTRODUCTION utilisee pour resumer l'article)
    28
    3         //transforme les listes verticales/horizontale spip en html
    4 function mot_croises_listes ($texte){
     9  Calcul de #INTRODUCTION : si introduction() n'est pas surchargee, Spip cherche
     10  d'abord le descriptif, puis en cas d'echec, le contenu du texte situé entre
     11  les balises <intro> et </intro>. En dernier lieu, Spip utilise les 500 premiers
     12  caractères du chapeau suivi du texte.
     13  Attention donc : pour ne pas faire apparaitre le contenu des mots croises avec
     14  les reponses, il vaut mieux penser à bien définir :
     15        - soit le descriptif de l'article
     16        - soit une introduction placee entre les balises <intro> et </intro>
     17                (utiliser dans ce cas la balise #TITRE des mots croisés
     18                pour definir le titre de la grille)
     19        - soit le titre des mots croises place entre les balises <intro> et </intro>
     20
     21*/
     22
     23define(_MC_DEBUT, '<mots-croises>');
     24define(_MC_FIN, '</mots-croises>');
     25
     26//transforme les listes verticales/horizontale spip en html
     27//on garde pour compatibilite
     28function mots_croises_listes_vieille_syntaxe($texte) {
    529        $texte = preg_replace('/ *-#/','<li>',$texte);
    630        $texte = implode("</li>\n", preg_split("/\n*\r*\n+\r*\n*/",$texte));
    731        return "<ol>$texte</li></ol>";
    832}
    9        
    10 function mot_croises_pre_propre($texte){
     33
     34//transforme les listes verticales/horizontale listes html
     35function mots_croises_listes($texte) {
     36        $tableau = explode("\r", trim($texte));
     37        foreach ($tableau as $i=>$v) if (($v=trim($v))!='') $tableau[$i] = "<li>$v</li>\n";
     38        $texte = implode('', $tableau);
     39        return "<ol>$texte</ol>";
     40}
     41
     42// cette fonction retourne le texte entre deux balises si elles sont presentes
     43// et false dans le cas contraire
     44function mots_croises_recupere_le_titre(&$chaine, $ouvrant, $fermant) {
     45  // si les balises ouvrantes et fermantes ne sont pas presentes, c'est mort
     46  if (strpos($chaine, $ouvrant)===false || strpos($chaine, $fermant)===false) return false;
     47  list($texteAvant, $suite) = explode($ouvrant, $chaine, 2);
     48  list($texte, $texteApres) = explode($fermant, $suite, 2);
     49  // on supprime les balises de l'affichage...
     50  // $chaine = $texteAvant.$texteApres;
     51  return trim($texte);
     52}
     53
     54//fonction principale
     55//on garde pour compatibilite
     56function mots_croises_vieille_syntaxe($texte) {
    1157        if (! preg_match("/<grille>|<\/grille>/",$texte)) return $texte;
    12        
    1358        include_spip('inc/gestion_grille');
    14        
    15         $tableau = preg_split("/<grille>|<\/grille>/",$texte);                                  //sera uniquement le tableau spip, mais on attend pour le moment
     59        $tableau = preg_split("/<grille>|<\/grille>/",$texte);  //sera uniquement le tableau spip, mais on attend pour le moment
    1660        $j =0;
    1761       
    1862        foreach ($tableau as $i){
    1963                        if ($j!=0 and $j!=count($tableau)-1){   //pas les extremités du tableau
    20                                 $tableau_php = calcul_tableau_grille($tableau[$j]);
     64                                $tableau_php = calcul_tableau_grille_vieille_syntaxe($tableau[$j]);
    2165                       
    2266                                //calcul erreur
     
    4892        foreach ($tableau as $i){
    4993                if ($j!=0 and $j!=count($tableau)-1)    //pas les extremités du tableau
    50                                 $tableau[$j] = code_echappement(_GRILLE_
    51                                         .'<div class="spip horizontal"><h4 class="spip grille">'
    52                                         ._T('motscroises:horizontalement')." :</h4>\n"
    53                                         .mot_croises_listes(trim($i))."</div>"._GRILLE_);
     94                                $tableau[$j] = code_echappement(_GRILLE_.'<div class="spip horizontal"><h4 class="spip grille">'
     95                                        ._T('motscroises:horizontalement')."</h4>\n".mots_croises_listes_vieille_syntaxe(trim($i))."</div>"._GRILLE_);
    5496                $j++;
    5597        }
     
    61103        foreach ($tableau as $i){
    62104                if ($j!=0 and $j!=count($tableau)-1)    //pas les extremités du tableau
    63                                 $tableau[$j] = code_echappement(_GRILLE_
    64                                         .'<div class="spip vertical"><h4 class="spip grille">'
    65                                         ._T('motscroises:verticalement')." :</h4>\n"
    66                                         .mot_croises_listes(trim($i))."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</div>"._GRILLE_); // Bug IE ?
     105                                $tableau[$j] = code_echappement(_GRILLE_.'<div class="spip vertical"><h4 class="spip grille">'
     106                                        ._T('motscroises:verticalement')."</h4>\n"
     107                                        .mots_croises_listes_vieille_syntaxe(trim($i))."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</div>"._GRILLE_); // Bug IE ?
    67108                $j++;
    68109        }
     
    74115        return $texte;
    75116}
     117       
     118//fonction principale
     119function mots_croises($texte){
     120        if (strpos($texte, '<horizontal>')!==false && strpos($texte, '</horizontal>')!==false) return mots_croises_vieille_syntaxe($texte);
     121        if (strpos($texte, _MC_DEBUT)===false || strpos($texte, _MC_FIN)===false) return $texte;
    76122
    77 function mot_croises_header_prive($flux){
     123        list($texteAvant, $suite) = explode(_MC_DEBUT, $texte, 2);
     124        list($texte, $texteApres) = explode(_MC_FIN, $suite, 2);
     125       
     126        include_spip('inc/gestion_grille');
     127        $tableau = preg_split("/(#TITRE|#HORIZONTAL|#VERTICAL|#SOLUTION)/", trim($texte), -1, PREG_SPLIT_DELIM_CAPTURE);
     128        $titre = $horizontal = $vertical = $solution = false;
     129        foreach($tableau as $i => $v){
     130         if ($v=='#TITRE') $titre = trim($tableau[$i+1]);
     131          elseif ($v=='#HORIZONTAL') $horizontal = mots_croises_listes($tableau[$i+1]);
     132          elseif ($v=='#VERTICAL') $vertical = mots_croises_listes($tableau[$i+1]);
     133          elseif ($v=='#SOLUTION') $solution = calcul_tableau_grille($tableau[$i+1]);
     134        }
     135
     136        // trouver un titre, coute que coute...
     137        if (!$titre) $titre = mots_croises_recupere_le_titre($chaine, '<intro>', '</intro>');
     138        if (!$titre) $titre = _T('motscroises:titre');
     139       
     140        $texte = calcul_erreurs_grille($solution)
     141                        . affichage_grille($solution)
     142        // definitions 
     143                        . '<div class="spip horizontal"><h4 class="spip grille">'
     144                                        ._T('motscroises:horizontalement')."</h4>\n".$horizontal.'</div>'
     145                        . '<div class="spip vertical"><h4 class="spip grille">'
     146                                        ._T('motscroises:verticalement')."</h4>\n".$vertical.'</div>'
     147        // solution
     148                        . (($GLOBALS["solution"][0] == 1)? affichage_grille($solution, true) : '');
     149
     150        return code_echappement($texteAvant.'<!-- PLUGIN-DEBUT -->').$texte.code_echappement('<!-- PLUGIN-FIN -->').$texteApres;
     151}
     152
     153function mots_croises2($chaine){
     154 if (strpos($chaine, _MC_DEBUT)!==false || strpos($chaine, '<horizontal>')!==false) {
     155        ob_start();
     156        $chaine = mots_croises($chaine);
     157        $data = ob_get_contents();
     158        ob_end_clean();
     159        $chaine = nl2br(str_replace("\t",'&nbsp;&nbsp;&nbsp;&nbsp;',$data)).$chaine;
     160 }
     161 return $chaine;
     162}
     163
     164function mots_croises_pre_propre($texte) {
     165        return mots_croises2($texte);
     166}
     167
     168function mots_croises_header_prive($flux){
    78169        $flux .= '<link rel="stylesheet" type="text/css" href="'.direction_css(find_in_path('mots-croises-prive.css')).'" />';
    79         $flux .='<script type="text/javascript" src="'.find_in_path("mots-croises.js").'"></script>';
     170        $flux .= '<script type="text/javascript" src="'.find_in_path("mots-croises.js").'"></script>';
    80171        return $flux;
    81172}
    82173
    83 function mot_croises_insert_head($flux){
    84         return $flux."<link rel=\"stylesheet\" type=\"text/css\" href=\"".direction_css(find_in_path("mots-croises.css"))."\" />\n<script src=\"".find_in_path("mots-croises.js")."\" type=\"text/javascript\"></script>";
     174function mots_croises_insert_head($flux){
     175        return $flux . '<link rel="stylesheet" type="text/css" href="'
     176         .direction_css(find_in_path("mots-croises.css"))."\" />\n<script src=\"".find_in_path("mots-croises.js").'" type="text/javascript"></script>';
    85177}
    86178?>
  • _plugins_/_stable_/mot-croises/plugin.xml

    r7496 r7571  
    22        <nom>Mot-crois&eacute;s</nom>
    33        <etat>stable</etat>
    4         <version>2.0 pour Spip 1.9.1 minimum.
     4        <version>3.0 pour Spip 1.9.1 minimum.
    55       
    66        </version>
     
    88        maieulrouquette@tele2.fr
    99        [http://maieul.ouvaton.org->http://maieul.ouvaton.org]
     10        Soutien : Patrice Vanneufville
    1011        </auteur>
    11         <description>Des mots-crois&eacute;s avec Spip !
    12         Exemple : <code><grille>
     12        <description>Des mots-crois&eacute;s dans vos articles avec Spip !<br>Exemple :
     13<code><mots-croises>
    1314
    14 |a|a|a|
    15 |b|*|g|
    16 |a|*|d|
     15#HORIZONTAL
     16Definition 1
     17Definition 2. Definition 3
     18Definition 4. Definition 5
    1719
    18 </grille>
     20#VERTICAL
     21Definition 1
     22Definition 2
     23Definition 3
    1924
    20 <horizontal>
    21 -#def 1
    22 -#def 2
    23 -#def 3
    24 </horizontal>
     25#SOLUTION
     26aaa
     27b*g
     28a*d
    2529
    26 <vertical>
    27 -#def 1
    28 -#def 2
    29 -#def 3
    30 </vertical></code>
     30</mots-croises></code>
    3131Ce plugin fonctionne de fa&ccedil;on optimale sur les squelettes disposant de la balise <code>#INSERT_HEAD</code>, ainsi que dans l'espace priv&eacute;.
    3232_ il n&eacute;cessite l'activation du plugin {{jQuery}} ou une version de spip sup&eacute;rieure à {{1.9.2}}.
    3333        </description>
    3434        <lien>http://www.spip-contrib.net/article1379.html</lien> <!-- URI de documentation -->
    35         <fonctions>mot_croises_fonctions.php</fonctions>
    36         <options>mot_croises_options.php</options>
    37         <prefix>mot_croises</prefix>
     35        <fonctions>mots_croises_fonctions.php</fonctions>
     36        <options>mots_croises_options.php</options>
     37        <prefix>mots_croises</prefix>
    3838        <pipeline>
    3939                <nom>insert_head</nom>
    40                 <inclure>mot_croises_pipelines.php</inclure>
     40                <inclure>mots_croises_pipelines.php</inclure>
    4141                <action>insert_head</action>
    4242        </pipeline>
    4343        <pipeline>
    4444                <nom>pre_propre</nom>
    45                 <inclure>mot_croises_pipelines.php</inclure>
     45                <inclure>mots_croises_pipelines.php</inclure>
    4646                <action>pre_propre</action>
    4747        </pipeline>
    4848        <pipeline>
    4949                <nom>header_prive</nom>
    50                 <inclure>mot_croises_pipelines.php</inclure>
     50                <inclure>mots_croises_pipelines.php</inclure>
    5151                <action>header_prive</action>
    5252        </pipeline>
Note: See TracChangeset for help on using the changeset viewer.