Changeset 32450 in spip-zone


Ignore:
Timestamp:
Oct 29, 2009, 12:50:15 AM (11 years ago)
Author:
kent1@…
Message:

Grosses modifications ...
Longues à lister, les principales sont :

  • On gère les autorisations wiki depuis le plugin (écrire et voir). Configurable par statut ou par auteur ou tout le monde
  • On gère correctement le plugin révision pour SPIP 2.1... Le plugin devrait fonctionner pour les deux

Pas mal d'autres modifs

Location:
_squelettes_/gribouille_2
Files:
7 added
1 deleted
11 edited

Legend:

Unmodified
Added
Removed
  • _squelettes_/gribouille_2/README.txt

    r28749 r32450  
    2323-------------
    2424
    25 Ce squelette se base sur l'interface normale des autorisations de SPIP, qui
    26 veut que seuls les administrateurs ont le droit de publier/modifier un
    27 article. Pour un wiki ouvert à un public plus large, il faudra créer un schéma
    28 d'autorisations adapté à la situation.
    29 
    30 
    31 Les autorisations exploitées par ce squelette sont les deux suivantes :
    32 
    33         autoriser('modifier', 'article', $id_article)
    34 et
    35         autoriser('publierdans', 'rubrique', $id_rubrique)
    36 
    37 
    38 Pour (par exemple) ouvrir à tous les visiteurs (enregistrés ou non) la possibilité d'éditer un article, et réserver aux seuls rédacteurs la possibilité de créer une nouvelle page, on créera deux fonctions d'autorisation suivantes (à installer dans mes_options.php, cf. fichier d'exemple).
    39 
    40 
    41 Il faut aussi signaler au plugin crayons qu'un simple visiteur peut avoir
    42 des droits d'édition : pour cela ajouter aussi dans ecrire/mes_options la
    43 fonction suivante :
    44 
    45 function analyse_droits_rapide() {
    46     return true;
    47 }
    48 
    49 
    50 [Ces fonctions pourraient à terme faire l'objet d'un plugin configurable]
    51 
     25Les autorisations sont gérées dans le formulaire de configuration CFG dans
     26l'administration de SPIP
    5227
    5328
  • _squelettes_/gribouille_2/afficher_revisions_gribouille.html

    r28753 r32450  
    1 <BOUCLE_revision(VERSIONS){id_version=#ENV{id_version}}{id_article}>
     1<BOUCLE_revision(VERSIONS){id_version=#ENV{id_version}}{objet=#ENV{objet}}{id_objet=#ENV{id_objet}}>
    22<h2>Version #ID_VERSION <span style="color:gray;">&mdash;
    33[(#DATE|date_relative),]
     
    55</h2>
    66
    7 [<blockquote>(#ID_ARTICLE|affiche_diff{#ID_VERSION}|safehtml)</blockquote>]
     7[<blockquote>(#ID_OBJET|affiche_diff{#OBJET,#ID_VERSION}|safehtml)</blockquote>]
    88
    99</BOUCLE_revision>
     
    1111<hr />
    1212<ul>
    13 <BOUCLE_rev(VERSIONS){id_article}{par date}{inverse}{pagination 40}>
     13<BOUCLE_rev(VERSIONS){id_objet}{objet}{par date}{inverse}{pagination 40}>
    1414[(#SET{a,[(#ENV{id_version}|=={#ID_VERSION}|?{span,a})]})]
    1515<li><[(#GET{a})]
  • _squelettes_/gribouille_2/article_gribouille.html

    r28746 r32450  
    2727})]
    2828
    29 <INCLURE{fond=inc-entete_gribouille}{id_rubrique}>
     29<INCLURE{fond=inc-entete_gribouille}{id_rubrique}{id_article}>
    3030
    3131
     
    3434[(#ENV{id_version}|?{
    3535
    36         [(#INCLURE{fond=afficher_revisions_gribouille}{id_version=#ENV{id_version}}{id_article})]
     36        [(#INCLURE{fond=afficher_revisions_gribouille}{id_version=#ENV{id_version}}{objet=article}{id_objet=#ENV{id_article}})]
    3737,
    3838        [<div class="#EDIT{surtitre} surtitre">(#SURTITRE|safehtml)</div>]
  • _squelettes_/gribouille_2/fonds/cfg_gribouille.html

    r28746 r32450  
    1 <!-- descriptif=
    2 <h4><:gribouille:cfg_description_titre:></h4>
    3 -->
    4 <!-- titre=Gribouille -->
     1<!-- titre=<:gribouille:gribouille_titre:> -->
     2<!-- descriptif=<:gribouille:cfg_description_titre:>-->
    53<!-- icone=images/gribouille-mini.png -->
     4<!-- boite=<:gribouille:gribouille_titre:> - <:gribouille:gribouille:>-->
     5<!-- liens*=gribouille:gribouille -->
     6<!-- liens*=gribouille:gribouille_autorisations -->
    67
    7 
    8 <div class="formulaire_spip formulaire_editer formulaire_cfg">
    9 <form method="post">[(#ENV{_cfg_}|form_hidden)]
    10         <ul>
    11                 [(#SAISIE{secteur,secteurs_wiki}
    12                         {label=<:gribouille:cfg_secteur_wiki:>}
    13                         {option_intro=<:gribouille:cfg_aucun_secteur:>}
    14                         {multiple=oui}
    15                 )]
    16         </ul>
    17         <p class="boutons">
    18                 <input type="submit" name="_cfg_ok" class="submit" value="<:valider:>" />
    19                 <input type="submit" name="_cfg_delete" class="submit" value="<:effacer:>" />
    20         </p>
    21 </form>
     8<div class="ajax">
     9        #FORMULAIRE_CONFIG_GRIBOUILLE
    2210</div>
  • _squelettes_/gribouille_2/formulaires/ajouter_page_wiki.php

    r28746 r32450  
    3737
    3838        $id_article = null;
    39         $message = "";
     39        $message = array();
    4040       
    4141        // on verifie d'abord qu'un article de ce titre n'existe pas deja
     
    6666
    6767        include_spip('inc/headers');
    68         spip_log($retour);
    69         $message .= redirige_formulaire($retour);
    70         spip_log($message);
     68        $message['message_ok'] = redirige_formulaire($retour);
     69        $message['editable'] = false;
    7170        return $message;
    7271}
  • _squelettes_/gribouille_2/gribouille_fonctions.php

    r28746 r32450  
    11<?php
    2 
    3 // utiliser par exemple, pour afficher une ligne de diff :
    4 //  [<small> (#ID_ARTICLE|affiche_diff{#ID_VERSION,'diff'}|supprimer_tags|couper{50})</small>]
    5 function affiche_diff($id_article, $id_version, $format='complet') {
     2/**
     3 * Affiche le diff d'un objet
     4 * (uniquement pour les articles en 2.0.X)
     5 * Ex: [<small> (#ID_ARTICLE|affiche_diff{article,#ID_VERSION,diff}|supprimer_tags|couper{50})</small>]
     6 *
     7 * @param int $id_objet
     8 * @param string $objet
     9 * @param int $id_version
     10 * @param string $format [optional]
     11 * @return
     12 */
     13function affiche_diff($id_objet,$objet, $id_version, $format='complet') {
    614        include_spip('inc/suivi_versions');
    7 
    8         $textes = revision_comparee($id_article, $id_version, $format);
     15       
     16        if($GLOBALS['spip_version_branche'] < '2.1'){
     17                if($objet == 'article'){
     18                        $textes = revision_comparee($id_objet, $id_version, $format);   
     19                }else{
     20                        return;
     21                }
     22        }else{
     23                $textes = revision_comparee($id_objet,$objet, $id_version, $format);
     24        }
    925
    1026        $ret = '';
     
    2339}
    2440
     41/**
     42 * Affiche le nom de l'auteur à partir de son id_auteur
     43 *
     44 * @param object $auteur
     45 * @return
     46 */
    2547function affiche_auteur_diff($auteur) {
    26 
    2748        // Si c'est un nombre, c'est un auteur de la table spip_auteurs
    2849        if ($auteur == intval($auteur)
    29         AND $s = sql_select("*","spip_auteurs","id_auteur=".sql_quote($auteur))
    30         AND $t = sql_fetch($s)) {
    31                 return typo($t['nom']);
     50        AND $s = sql_getfetsel("nom","spip_auteurs","id_auteur=".intval($auteur))) {
     51                return typo($s);
    3252        } else {
    3353                return $auteur;
  • _squelettes_/gribouille_2/gribouille_pipelines.php

    r28746 r32450  
    11<?php
     2/**
     3 * Plugin / Squelettes Gribouille
     4 * © Fil
     5 * Distribue sous licence GNU/GPL
     6 */
    27
    3 // utiliser le pipeline 'styliser' pour
    4 // définir le squelette a utiliser si on est dans le cas
    5 // d'une rubrique de Gribouille
    68
     9/**
     10 * Insertion dans le pipeline Styliser
     11 * définir le squelette a utiliser si on est dans le cas
     12 * d'une rubrique de Gribouille
     13 *
     14 * @param object $flux
     15 * @return
     16 */
    717function gribouille_styliser($flux){
    8         // si article, rubrique ou sommaire,
    9         // on cherche si spip clear doit s'activer
     18        /**
     19         * Gribouille ne s'active que sur les rubriques et les articles
     20         */
    1021        if (($fond = $flux['args']['fond'])
    1122        AND in_array($fond, array('article','rubrique'))) {
     23
     24                $ext = $flux['args']['ext'];
    1225               
    13                 $ext = $flux['args']['ext'];
    14 
    15                 // cas dans une rubrique
    16                 // uniquement si configuration de spipClear pour le secteur en question
     26                /**
     27                 * Si la rubrique fait partie du secteur défini dans la configuration on change son fond
     28                 */
    1729                if($id_rubrique = $flux['args']['id_rubrique']) {
    1830                        $id_secteur = sql_getfetsel('id_secteur', 'spip_rubriques', 'id_rubrique=' . intval($id_rubrique));
    19                         if (in_array($id_secteur, lire_config('gribouille/secteurs_wiki', array(0,-1)))) {
    20                                 if ($squelette = test_squelette_gribouille($fond, $ext)) {
    21                                         $flux['data'] = $squelette;
     31                        if (in_array($id_secteur, lire_config('gribouille/principal/secteurs_wiki', array(0,-1)))) {
     32                                include_spip('inc/autoriser');
     33                                /**
     34                                 * On vérifie si nous sommes autorisé à voir le Wiki
     35                                 */
     36                                if(autoriser('voir','rubrique',$id_rubrique,$GLOBALS['visiteur_session'])){
     37                                        if ($squelette = test_squelette_gribouille($fond, $ext)) {
     38                                                $flux['data'] = $squelette;
     39                                        }
     40                                }else{
     41                                        unset($flux['args']);
    2242                                }
    2343                        }
     
    2747}
    2848
     49/**
     50 * Fonction qui vérifie la présence d'un squelette gribouille disponible
     51 *
     52 * @param string $fond article ou rubrique
     53 * @param string $ext extension des squelettes (html)
     54 * @return
     55 */
    2956function test_squelette_gribouille($fond, $ext) {
    3057        if ($squelette = find_in_path($fond."_gribouille.$ext")) {
     
    3360        return false;
    3461}
     62
     63/**
     64 * Insertion dans le pipeline Prepare Recherche
     65 * Si configuré comme tel, exclure de la recherche les secteurs de gribouille
     66 *
     67 * @param array $flux
     68 * @return array
     69 */
     70function gribouille_prepare_recherche($flux){
     71        if(lire_config('gribouille/principal/exclure_recherche') == 'on'){
     72                $id_secteurs = lire_config('gribouille/principal/secteurs_wiki');
     73                if(is_array($id_secteurs)){
     74                        if ($flux['args']['type']=='article'
     75                                AND $flux['args']['tout']=='0'
     76                          AND $points = $flux['data']){
     77                          $serveur =  $flux['args']['serveur'];
     78                                $p2 = array();
     79                                $s = sql_select("id_article", "spip_articles", "statut='publie' AND ".sql_in('id_article', array_keys($points), '','','','',$serveur)." AND ".sql_in('id_secteur', array_values($id_secteurs), 'NOT','','','',$serveur));
     80                                while ($t = sql_fetch($s, $serveur)){
     81                                        $p2[$t['id_article']] ='';
     82                                }
     83                                $p2 = array_intersect_key($points,$p2);
     84                                $flux['data'] = $p2;
     85                        }
     86                        if ($flux['args']['type']=='rubrique'
     87                          AND $flux['args']['tout']=='0'
     88                          AND $points = $flux['data']){
     89                          $serveur =  $flux['args']['serveur'];
     90                                $p2 = array();
     91                                $s = sql_select("id_rubrique", "spip_rubriques", "statut='publie' AND ".sql_in('id_rubrique', array_keys($points), '','','','',$serveur)." AND ".sql_in('id_secteur', array_values($id_secteurs), 'NOT','','','',$serveur));
     92                                while ($t = sql_fetch($s, $serveur)){
     93                                        $p2[$t['id_article']] ='';
     94                                }
     95                                $p2 = array_intersect_key($points,$p2);
     96                                $flux['data'] = $p2;
     97                        }
     98                }
     99        }
     100        return $flux;
     101}
    35102?>
  • _squelettes_/gribouille_2/inc-derniers-changements_gribouille.html

    r28746 r32450  
    11<B_revisions>
    22<div style="font-size: small;">
    3 <a id="revisions" name="revisions"></a>
    43<h2><:gribouille:derniers_changements:></h2>
    54[<p class='pagination'>(#PAGINATION)</p>]
    65<ul>
    76<BOUCLE_revisions(VERSIONS articles){branche}{par date}{inverse}{pagination 50}{statut=publie}>
     7<li>
     8        [(#SET{gras,[(#ID_ARTICLE|unique|?{b})]})]
     9        [<(#GET{gras})>]<a href="[(#URL_ARTICLE|parametre_url{id_version,#ID_VERSION})]"
     10        rel="noindex,nofollow" title="version #ID_VERSION">#TITRE</a>[</(#GET{gras})>]
    811
    9 <li>
    10 [(#SET{gras,[(#ID_ARTICLE|unique|?{b})]})]
    11 [<(#GET{gras})>]<a href="[(#URL_ARTICLE|parametre_url{id_version,#ID_VERSION})]"
    12 rel="noindex,nofollow" title="version #ID_VERSION">#TITRE</a>[</(#GET{gras})>]
    13 
    14 <span style='color:gray;'>&mdash; [<abbr title="[(#DATE|date_iso)]">(#DATE|date_relative)</abbr>], [(#ID_AUTEUR|affiche_auteur_diff)]
    15 </span>
     12        <span style='color:gray;'>&mdash; [<abbr title="[(#DATE|date_iso)]">(#DATE|date_relative)</abbr>], [(#ID_AUTEUR|affiche_auteur_diff)]
     13        </span>
    1614</li>
    17 
    1815</BOUCLE_revisions>
    1916</ul>
  • _squelettes_/gribouille_2/lang/gribouille_fr.php

    r28753 r32450  
    1515        'cfg_aucun_secteur' => 'Aucun',
    1616        'cfg_description_titre' => 'Configuration du plugin Gribouille',
     17        'cfg_inf_type_autorisation' => 'Si vous choisissez par statut ou par auteur, il vous sera demand&eacute; ci-dessous votre s&eacute;lection de statuts ou d\'auteurs.',
     18        'cfg_lbl_autorisation_auteurs' => 'Autoriser par liste d\'auteurs',
     19        'cfg_lbl_autorisation_statuts' => 'Autoriser par statut d\'auteurs',
     20        'cfg_lbl_autorisation_webmestre' => 'Autoriser les webmestres uniquement',
     21        'cfg_lbl_liste_auteurs' => 'Auteurs du site',
     22        'cfg_lbl_statuts_auteurs' => 'Statuts possibles',
     23        'cfg_lbl_type_autorisation' => 'M&eacute;thode d\'autorisation',
     24        'cfg_lgd_autorisation_ecrire' => 'Autoriser &agrave; modifier le Wiki',
     25        'cfg_lgd_autorisation_voir' => 'Autoriser &agrave; voir le Wiki',
    1726        'cfg_secteur_wiki' => 'Secteur(s) Wiki',
    1827        'click_ajout_texte' => 'double-cliquez pour ajouter du texte',
     
    2534        // E
    2635        'editer_page' => '&Eacute;diter cette page',
     36        'explication_exclure_recherche' => 'Le contenu du Wiki n\'appara&icirc;tra plus dans la recherche par d&eacute;faut de SPIP dans l\'espace public',
     37       
     38        // G
     39        'gribouille' => 'Configuration principale',
     40        'gribouille_autorisations' => 'Configuration des autorisations',
     41        'gribouille_titre' => 'Gribouille',
    2742       
    2843        // H
    2944        'historique' => 'Historique',
     45       
     46        // L
     47        'label_exclure_recherche' => 'Exclure de la recherche',
    3048       
    3149        // N
  • _squelettes_/gribouille_2/plugin.xml

    r32259 r32450  
    1111                gribouille_fonctions.php
    1212        </fonctions>
     13        <options>
     14                gribouille_options.php
     15        </options>
    1316        <pipeline>
    1417                <nom>styliser</nom>
    1518                <inclure>gribouille_pipelines.php</inclure>
    1619        </pipeline>
    17         <necessite id="SPIP" version="[2.0.6;]" />
    18         <necessite id="cfg" version="[1.10.4;]" />
     20        <pipeline>
     21                <nom>prepare_recherche</nom>
     22                <inclure>gribouille_pipelines.php</inclure>
     23        </pipeline>
     24        <pipeline>
     25                <nom>autoriser</nom>
     26                <inclure>gribouille_autoriser.php</inclure>
     27        </pipeline>
     28        <necessite id="SPIP" version="[2.0.6]" />
     29        <necessite id="cfg" version="[1.14.1;]" />
     30        <necessite id="saisies" version="[1.3;]" />
     31        <necessite id="crayons" version="[1.5;]" />
    1932        <necessite id="saisies" version="[1.1;]" />
    2033</plugin>
     34<plugin spip="[2.1.0 dev;2.1.0)">
     35        <nom>Gribouille 2</nom>
     36        <auteur>Fil</auteur>
     37        <version>0.1</version>
     38        <etat>dev</etat>
     39        <prefix>gribouille</prefix>
     40        <description>
     41        Un squelette de Wiki pour SPIP
     42        </description>
     43        <fonctions>
     44                gribouille_fonctions.php
     45        </fonctions>
     46        <options>
     47                gribouille_options.php
     48        </options>
     49        <pipeline>
     50                <nom>styliser</nom>
     51                <inclure>gribouille_pipelines.php</inclure>
     52        </pipeline>
     53        <pipeline>
     54                <nom>prepare_recherche</nom>
     55                <inclure>gribouille_pipelines.php</inclure>
     56        </pipeline>
     57        <pipeline>
     58                <nom>autoriser</nom>
     59                <inclure>gribouille_autoriser.php</inclure>
     60        </pipeline>
     61        <necessite id="cfg" version="[1.14.1;]" />
     62        <necessite id="saisies" version="[1.3;]" />
     63        <necessite id="crayons" version="[1.5;]" />
     64        <necessite id="revisions" version="[1.1;]" />
     65        <necessite id="saisies" version="[1.1;]" />
     66</plugin>
  • _squelettes_/gribouille_2/rubrique_gribouille.html

    r28753 r32450  
    11[(#REM) Page d'accueil de gribouille ]
    22<BOUCLE_r(RUBRIQUES){id_rubrique}{tout}>
    3 
    43<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    54<html>
    6 
    7 
    85<head>
    96<title>#TITRE</title>
    107<INCLURE{fond=inc-head_gribouille}>
    118</head>
     9<body>
     10        <h1 class="wiki_name">#TITRE</h1>
     11        <h1 class="#EDIT{titre} page_name">#TITRE</h1>
    1212
     13        <INCLURE{fond=inc-entete_gribouille}{id_rubrique}>
    1314
    14 <body>
     15        <div id="contenu" class="page">
     16                [<div style='float:left;[width:(#LOGO_RUBRIQUE||extraire_attribut{width})px;]margin:0 9px 5px 0;'>(#LOGO_RUBRIQUE)</div>]
     17                <div class="#EDIT{texte} chapo texte">[(#TEXTE|sinon{[(#ID_RUBRIQUE|=={#ID_SECTEUR}|?{<:gribouille:texte_bienvenue{nom_site=#NOM_SITE_SPIP}:>,<:gribouille:click_ajout_texte:>})]})]</div>
     18                [<h2><:spip:info_rechercher_02:>(#RECHERCHE)</h2>]
    1519
    16 <h1 class="wiki_name">#TITRE</h1>
     20                <B_recherche>
     21                        <ul>
     22                        <BOUCLE_recherche(ARTICLES){recherche}{tout}{branche}{!par points}{0,50}>
     23                                <li>
     24                                        [<div class="#EDIT{surtitre} surtitre">(#SURTITRE)</div>]
     25                                        <h2 class="#EDIT{titre} titre">#TITRE</h2>
     26                                        [<div class="#EDIT{soustitre} soustitre">(#SOUSTITRE)</div>]
     27                                        [<div class="#EDIT{chapo} chapo">(#CHAPO)</div>]
     28                                        [<div class="#EDIT{texte}">(#TEXTE**|strlen|>{1500}|?{[(#TEXTE|couper{1000})],#TEXTE}|sinon{<i>texte vide</i>})[
     29                                                <div class="notes">(#NOTES)</div>
     30                                        ]</div>]
     31                                        [<div class="#EDIT{ps}">(#PS)</div>]
     32                                        <div style="text-align:#LANG_RIGHT;">
     33                                                <a href="#URL_ARTICLE">#TITRE</a> (score: #POINTS)
     34                                        </div>
     35                                </li>
     36                        </BOUCLE_recherche>
     37                        </ul>
     38                </B_recherche>
    1739
    18 <h1 class="#EDIT{titre} page_name">#TITRE</h1>
     40                [(#RECHERCHE|?{Pas de r&#233;sultat})]
    1941
     42                <div style="border-left: 2px solid rgb(204, 204, 204); float: right; width: 40%; margin-left: 30px; padding-left: 10px;">
     43                        [(#INCLURE{fond=inc-derniers-changements_gribouille,id_rubrique,env})]
     44                </div>
    2045
    21 <INCLURE{fond=inc-entete_gribouille}{id_rubrique}>
     46                <h2>Pages</h2>
    2247
     48                <B_pages>
     49                [<p class="pagination">(#PAGINATION)</p>]
     50                <ul>
     51                        <BOUCLE_pages(ARTICLES){id_rubrique}{!par popularite}{pagination 50}>
     52                        <li>
     53                                <strong><a href="#URL_ARTICLE">#TITRE</a></strong>
     54                                <span style='color:gray;'>&mdash;  [(#INTRODUCTION|couper{80}|supprimer_tags)]</span>
     55                        </li>
     56                        </BOUCLE_pages>
     57                </ul>
     58                </B_pages>
    2359
    24 <div id="contenu" class="page">
     60                <B_sous>
     61                <hr />
     62                <h2><:gribouille:sous_rubriques:></h2>
     63                <ul>
     64                        <BOUCLE_sous(RUBRIQUES){branche}{tout}{exclus}>
     65                                <li><a href="#URL_RUBRIQUE">#TITRE</a></li>
     66                        </BOUCLE_sous>
     67                </ul>
     68                </B_sous>
    2569
    26 [<div style='float:left;[width:(#LOGO_RUBRIQUE||extraire_attribut{width})px;]margin:0 9px 5px 0;'>(#LOGO_RUBRIQUE)</div>]
    27 
    28 <div class="#EDIT{texte} chapo texte">[(#TEXTE|sinon{[(#ID_RUBRIQUE|=={#ID_SECTEUR}|?{<:gribouille:texte_bienvenue{nom_site=#NOM_SITE_SPIP}:>,<:gribouille:click_ajout_texte:>})]})]</div>
    29 
    30 
    31 [<h2>Recherche : (#RECHERCHE)</h2>]
    32 
    33 <B_recherche>
    34 <ul>
    35 <BOUCLE_recherche(ARTICLES){recherche}{branche}{!par points}{0,50}>
    36 <li>
    37 [<div class="#EDIT{surtitre} surtitre">(#SURTITRE)</div>]
    38 <h2 class="#EDIT{titre} titre">#TITRE</h2>
    39 [<div class="#EDIT{soustitre} soustitre">(#SOUSTITRE)</div>]
    40 [<div class="#EDIT{chapo} chapo">(#CHAPO)</div>]
    41 [<div class="#EDIT{texte}">(#TEXTE**|strlen|>{1500}|?{[(#TEXTE|couper{1000})],#TEXTE}|sinon{<i>texte vide</i>})[
    42         <div class="notes">(#NOTES)</div>
    43 ]</div>]
    44 [<div class="#EDIT{ps}">(#PS)</div>]
    45 
    46 
    47 <div style="text-align:#LANG_RIGHT;"><a href="#URL_ARTICLE">#TITRE</a> (score: #POINTS)</div>
    48 </li>
    49 </BOUCLE_recherche>
    50 </ul>
    51 </B_recherche>
    52 
    53 [(#RECHERCHE|?{Pas de r&#233;sultat})]
    54 
    55 <div style="border-left: 2px solid rgb(204, 204, 204); float: right; width: 40%; margin-left: 30px; padding-left: 10px;">
    56 
    57 <INCLURE{fond=inc-derniers-changements_gribouille}{ajax}{id_rubrique}>
    58 
    59 </div>
    60 
    61 <h2>Pages</h2>
    62 
    63 <B_pages>
    64 [<p class="pagination">(#PAGINATION)</p>]
    65 <ul>
    66 <BOUCLE_pages(ARTICLES)
    67         {id_rubrique}
    68         {!par popularite}
    69         {pagination 50}
    70 >
    71 <li><b><a href="#URL_ARTICLE">#TITRE</a></b>
    72 <span style='color:gray;'>&mdash;  [(#INTRODUCTION|couper{80}|supprimer_tags)]</span>
    73 </li>
    74 </BOUCLE_pages>
    75 </ul>
    76 </B_pages>
    77 
    78 <B_sous>
    79 <hr />
    80 
    81 <h2><:gribouille:sous_rubriques:></h2>
    82 
    83 <ul>
    84 <BOUCLE_sous(RUBRIQUES){branche}{tout}{exclus}>
    85 <li><a href="#URL_RUBRIQUE">#TITRE</a></li>
    86 </BOUCLE_sous>
    87 </ul>
    88 </B_sous>
    89 
    90 <hr style="clear:both"/>
    91 
    92 <//B_recherche>
    93 
    94 
    95 </div>[(#REM) /page]
    96 
    97 <INCLURE{fond=inc-pied_gribouille}{id_rubrique}{url=#URL_RUBRIQUE}>
    98 
     70                <hr style="clear:both"/>
     71                <//B_recherche>
     72               
     73        </div>[(#REM) /page]
     74        <INCLURE{fond=inc-pied_gribouille}{id_rubrique}{url=#URL_RUBRIQUE}>
    9975</body>
    10076</html>
Note: See TracChangeset for help on using the changeset viewer.