Changeset 53644 in spip-zone


Ignore:
Timestamp:
Oct 19, 2011, 7:53:11 PM (8 years ago)
Author:
yffic@…
Message:

Ajout d'une fonctionnalité : le plugin fournit des blocs de texte génériques pouvant être réutilisés dans le manuel via un code d'insertion de type <faq|b=img>

Location:
_plugins_/manuel_site
Files:
5 added
7 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/manuel_site/lang/manuelsite_en.php

    r48422 r53644  
    1818        'explication_cacher_public' => 'Hide this article in the public space, even in rss flow',
    1919        'explication_email' => 'Contact email for editors',
     20        'explication_faq' => 'Listed below are the generic blocks used to write your manual (the text is displayed, not formatted, when then mouse is over the code). Just copy / paste the code in the textarea of your article.<br />To hide the question, add <i>|q=no</i>.<br />To add parameters, add <i>|params=p1:v1;p2:v2</i>.',
    2021        'explication_id_article' => 'Type in the number of the article wich contain the manual',
    2122        'explication_intro' => 'Introduction text of the manual (will be placed before the introduction of the article)',
  • _plugins_/manuel_site/lang/manuelsite_fr.php

    r48422 r53644  
    88$GLOBALS[$GLOBALS['idx_lang']] = array(
    99        // C
    10         'cfg_boite_manuelsite' => 'Configuration du plugin Manuel de r&eacute;daction du site.<br /><br />Ce plugin installe une ic&ocirc;ne d\'aide permettant d\'afficher depuis n\'importe quelle page de l\'espace priv&eacute; le manuel de r&eacute;daction du site. Ce manuel est '.$texte.' Il a pour but d\'expliquer aux r&eacute;dacteurs l\'architecture du site, dans quelle rubrique ranger quoi, comment encoder et installer une vidéo... Bref tout ce que vous voulez et qui est sp&eacute;cifique &agrave; votre site.',
    11         'cfg_titre_manuelsite' => 'Manuel de r&eacute;daction du site',
     10        'cfg_boite_manuelsite' => 'Configuration du plugin Manuel de rédaction du site.<br /><br />Ce plugin installe une icône d\'aide permettant d\'afficher depuis n\'importe quelle page de l\'espace privé le manuel de rédaction du site. Ce manuel est '.$texte.' Il a pour but d\'expliquer aux rédacteurs l\'architecture du site, dans quelle rubrique ranger quoi, comment encoder et installer une vidéo... Bref tout ce que vous voulez et qui est spécifique à votre site.',
     11        'cfg_titre_manuelsite' => 'Manuel de rédaction du site',
    1212
    1313        // E
    14         'erreur_article' => 'L\'article du manuel d&eacute;fini dans la configuration du plugin est introuvable : @idart@',
    15         'erreur_pas_darticle' => 'L\'article du manuel n\'est pas d&eacute;fini dans la configuration du plugin',
    16         'explication_afficher_bord_gauche' => 'Afficher l\'icone du manuel en haut &agrave; gauche (sinon le manuel sera affich&eacute; en colonne)',
     14        'erreur_article' => 'L\'article du manuel défini dans la configuration du plugin est introuvable : @idart@',
     15        'erreur_pas_darticle' => 'L\'article du manuel n\'est pas défini dans la configuration du plugin',
     16        'explication_afficher_bord_gauche' => 'Afficher l\'icone du manuel en haut à gauche (sinon le manuel sera affiché en colonne)',
    1717        'explication_background_color' => 'Entrez la couleur de fond de la zone d\'affichage du manuel',
    1818        'explication_cacher_public' => 'Cacher cet article dans l\'espace public, flux rss compris',
    1919        'explication_email' => 'Email de contact pour les rédacteurs',
    20         'explication_id_article' => 'Entrez le num&eacute;ro de l\'article qui contient le manuel',
    21         'explication_intro' => 'Texte d\'introduction au manuel (sera plac&eacute; avant le chapo)',
     20        'explication_faq' => 'Vous trouverez ci-dessous les blocs génériques utilisables pour rédiger votre manuel (le texte s\'affiche sans mise en forme au survol du code). Il suffit de copier/coller le code correspondant dans la zone de texte de votre article.<br />Pour ne pas afficher la question, rajouter <i>|q=non</i>.<br />Pour ajouter des paramètres, rajouter <i>|params=p1:v1;p2:v2</i>.',
     21        'explication_id_article' => 'Entrez le numéro de l\'article qui contient le manuel',
     22        'explication_intro' => 'Texte d\'introduction au manuel (sera placé avant le chapo)',
    2223        'explication_largeur' => 'Entrez la largeur de la zone d\'affichage du manuel',
    2324
    2425        // F
    25         'fermer_le_manuel' => 'Cermer le manuel',
     26        'fermer_le_manuel' => 'Fermer le manuel',
    2627       
    2728        // H
     
    2930       
    3031        // I
    31         'intro' => "Ce document a pour but d\'aider les r&eacute;dacteurs &agrave; l\'utilisation du site. Il vient en compl&eacute;ment du document intitul&eacute; « [Cours SPIP 2.0 pour r&eacute;dacteurs->http://www.spip-contrib.net/Mode-d-emploi-SPIP-2-pour] » qui est une aide globale &agrave; l\'utilisation de SPIP. Vous y trouverez une description de l\'architecture du site, de l\'aide technique sur des points particuliers...",
     32        'intro' => "Ce document a pour but d\'aider les rédacteurs à l\'utilisation du site. Il vient en complément du document intitulé « [Cours SPIP 2.0 pour rédacteurs->http://www.spip-contrib.net/Mode-d-emploi-SPIP-2-pour] » qui est une aide globale à l\'utilisation de SPIP. Vous y trouverez une description de l\'architecture du site, de l\'aide technique sur des points particuliers...",
    3233
    3334        // L
     
    3637        'label_cacher_public' => 'Cacher',
    3738        'label_email' => 'Email',
    38         'label_id_article' => 'N&deg; de l\'article',
     39        'label_id_article' => 'N° de l\'article',
    3940        'label_intro' => 'Introduction',
    4041        'label_largeur' => 'Largeur',
    4142        'legende_apparence' => 'Apparence' ,
    4243        'legende_contenu' => 'Contenu' ,
    43 
     44       
    4445        // T
    45         'titre_manuel' => 'Manuel de r&eacute;daction du site'
     46        'titre_faq' => 'FAQ du Manuel de rédaction',
     47        'titre_manuel' => 'Manuel de rédaction du site'
    4648);
    4749?>
  • _plugins_/manuel_site/manuelsite.css.html

    r45445 r53644  
    4343        padding-left:15px;
    4444   margin: 0.5em 0 0.25em;
    45         background:url(#CHEMIN{images/plus.png}) left no-repeat transparent;
     45        background:url(#CHEMIN{images/plus.png}) left 2px no-repeat transparent;
    4646}
    4747
    4848#manuelsite_contenu h2.open, #manuelsite_contenu h3.open, #manuelsite_contenu h4.open{
    49         background:url(#CHEMIN{images/moins.png}) left no-repeat transparent;
     49        background:url(#CHEMIN{images/moins.png}) left 2px no-repeat transparent;
     50}
     51
     52#manuelsite_contenu h4, #manuelsite_contenu .bloc_sous_h{
     53        margin-left:5px;
    5054}
    5155
  • _plugins_/manuel_site/manuelsite_fonctions.php

    r53487 r53644  
    11<?php
    22if (!defined("_ECRIRE_INC_VERSION")) return;
     3include_spip('inc/traduire');
     4include_spip('inc/plugin');
    35
    46/**
     
    68 * si on doit le cacher
    79 *
    8  * @param string $nom_meta_base_version
    9  * @param string $version_cible
    1010 */
    1111function manuelsite_article_si_cacher() {
     
    1616        return 0;
    1717}
     18
     19/**
     20 * Fonction retournant les blocs de FAQ utilisables
     21 *
     22 */
     23function manuelsite_lister_blocs_faq() {
     24        $texte = "\n<div>";
     25
     26        $modules = array();
     27
     28        foreach (liste_plugin_actifs() as $plugin) {
     29                $fichiers = preg_files(_DIR_PLUGINS.$plugin['dir'].'/lang/faq-[a-z_]+\.php$');
     30                foreach ($fichiers as $fichier) {
     31                        if (preg_match(',/(faq-[a-z]+)_([a-z_]+)\.php$,', $fichier, $r))
     32                                $modules[$plugin['nom']] = $r[1] ;
     33                }
     34        }
     35        ksort($modules);
     36        if (count($modules) > 0) {
     37                $texte .= "\n<ul class=\"faq\">" ;
     38                foreach ($modules as $nom_module => $dir_module) {
     39                        $texte .= "\n<li><b>".typo($nom_module)."</b>";
     40                        $texte .= manuelsite_afficher_raccourcis($dir_module);
     41                        $texte .= "\n</li>" ;
     42                }
     43                $texte .= "\n</ul>" ;
     44        }
     45
     46        $texte .= "\n</div>" ;
     47        return $texte ;
     48}
     49
     50/**
     51 * Fonction retournant les blocs de FAQ utilisables pour un plugin donné
     52 *
     53 */
     54function manuelsite_afficher_raccourcis($module = "faq-manuelsite") {
     55        global $spip_lang;
     56        $texte = "\n<ul class=\"faq_blocs\">";
     57        charger_langue($spip_lang, $module);
     58
     59        $tableau = $GLOBALS['i18n_' . $module . '_' . $spip_lang];
     60        ksort($tableau);
     61
     62        $i = 0;
     63        foreach ($tableau as $raccourci => $val) {
     64                if(!preg_match('/_q$/',$raccourci)) {
     65                        $texte .= "\n<li title=\"".texte_backend($val)."\">&lt;faq";
     66                        if($module != "faq-manuelsite") {
     67                                $texte .= "|p=".substr_replace($module,"",0,4);
     68                        }
     69                        $texte .= "|b=$raccourci&gt;</li>";
     70                }
     71        }
     72        $texte .= "\n</ul>" ;
     73
     74        return $texte;
     75}
     76
     77// Transformer une chaine p1:v1;p2:v2 en tableau associatif
     78// Pompage champs extras
     79function manuelsite_params_to_array($params="") {
     80        $tablo = array();
     81        if($params != "") {
     82                $params = preg_replace( '/^(.*)$/','"${1}"',$params) ;
     83                $params = str_replace(';','","',$params);
     84                $params= str_replace(':','"=>"',$params);
     85                spip_log("manuelsite_params_to_array $params","params");
     86                eval("\$tablo=array($params);");
     87        }
     88        return $tablo; 
     89}
    1890?>
  • _plugins_/manuel_site/manuelsite_prive_pipelines.php

    r45445 r53644  
    1313
    1414function manuelsite_body_prive(&$flux){
    15 
    1615        $conf_manuelsite = lire_config('manuelsite');
    1716        if($conf_manuelsite["id_article"] && (!isset($conf_manuelsite["afficher_bord_gauche"]) || $conf_manuelsite["afficher_bord_gauche"])) {
     
    2322function manuelsite_affiche_droite(&$flux){
    2423        $conf_manuelsite = lire_config('manuelsite');
    25         //$flux['data'] .= "afficher_bord_gauche : ".$conf_manuelsite["afficher_bord_gauche"];
    2624        if($conf_manuelsite["id_article"] && !$conf_manuelsite["afficher_bord_gauche"]) {
    2725                $bouton = bouton_block_depliable(_T('manuelsite:titre_manuel'), false, "manuelsite_col");
    28 
    2926                $cadre .= debut_cadre('r', find_in_path('images/manuelsite-24.png'), '', $bouton, '', '', false);
    3027                $cadre .= debut_block_depliable(false,"manuelsite_col")
     
    3633
    3734                $flux['data'] .= $cadre;
    38 
    3935        }
    40 
    4136   return $flux;
    42 
     37}
     38function manuelsite_affiche_gauche(&$flux){
     39        // Si c'est un article en edition ou un article dans le prive,
     40        // on propose le formulaire, si l'article n'existe pas encore, on ne fait rien
     41        if(($flux["args"]["exec"] == 'articles_edit' || $flux["args"]["exec"] == 'articles') && $flux["args"]["id_article"] != ''){
     42                $conf_manuelsite = lire_config('manuelsite');
     43                if($conf_manuelsite["id_article"] && ($conf_manuelsite["id_article"] == $flux["args"]["id_article"])) {
     44                        $bouton = bouton_block_depliable(_T('manuelsite:titre_faq'), false, "manuelsite_col");
     45                        $cadre .= debut_cadre('r', find_in_path('images/manuelsite-24.png'), '', $bouton, '', '', false);
     46                        $cadre .= debut_block_depliable(false,"manuelsite_col")
     47                                . '<div class="cadre_padding" id="manuelsite_faq">'
     48                                . _T('manuelsite:explication_faq')
     49                                . manuelsite_lister_blocs_faq()
     50                                . '</div>'
     51                                . fin_block();
     52                        $cadre .= fin_cadre_relief(true);
     53       
     54                        $flux['data'] .= $cadre;
     55                }
     56        }
     57   return $flux;
    4358}
    4459?>
  • _plugins_/manuel_site/plugin.xml

    r53487 r53644  
    11<plugin>
    2         <nom>Manuel de r&#233;daction du site</nom>
    3         <slogan>Un manuel sp&#233;cifique &#224; votre site pour vos r&#233;dacteurs</slogan>
     2        <nom>
     3                <multi>
     4                [fr]Manuel de r&#233;daction du site
     5                [en]Website Editor Manual
     6                </multi>
     7        </nom>
     8        <slogan>
     9                <multi>
     10                [fr]Un manuel sp&#233;cifique &#224; votre site pour vos r&#233;dacteurs
     11                [en]A manual specific to your site for your editors
     12                </multi>
     13        </slogan>
    414        <auteur>Yffic</auteur>
    515        <licence>GPL v3</licence>
    6         <version>0.5.1</version>
     16        <version>0.6.0</version>
    717        <version_base>0.2</version_base>
    818        <etat>stable</etat>
    919        <description>
    1020        <multi>
    11                 [fr]Ce plugin installe une ic&#244;ne d'aide permettant d'afficher depuis n'importe quelle page de l'espace priv&#233; le manuel de r&#233;daction du site. Ce manuel est un article du site.
    12                 [en]This plugin installs an help icon making it possible to post since any page of private space the Website Editor Manual. This manual is an article of the website.
     21                [fr]Ce plugin installe une ic&#244;ne d'aide permettant d'afficher depuis n'importe quelle page de l'espace priv&#233; le manuel de r&#233;daction du site. Ce manuel est un article du site. Le plugin fournit également un jeu d'item de Foire Aux Questions courants pouvant être insérés facilement dans votre manuel.
     22                [en]This plugin installs an help icon making it possible to post since any page of private space the Website Editor Manual. This manual is an article of the website. The plugin also provides a set of Frequently Asked Questions that can be easily inserted in your manual.
    1323        </multi>
    1424        </description>
     
    3343                <inclure>manuelsite_prive_pipelines.php</inclure>
    3444        </pipeline>
     45        <pipeline>
     46                <nom>affiche_gauche</nom>
     47                <inclure>manuelsite_prive_pipelines.php</inclure>
     48        </pipeline>
    3549        <fonctions>manuelsite_fonctions.php</fonctions>
    3650        <necessite id="cfg" version="[1.10;]" />
  • _plugins_/manuel_site/prive/inclure/manuelsite_article.html

    r45445 r53644  
    4343                        $( ".contenu-principal" ).find(hi).each(function(index) {
    4444                                // Creer un div apres le h3 et y placer tout ce qui se trouve apres et jusqu'au hi suivant
    45                                 $(this).after("<div></div>").next().append($(this).next().nextUntil(hi));
     45                                $(this).after("<div class=\"bloc_sous_h\"></div>").next().append($(this).next().nextUntil(hi));
    4646                                // Deplier le contenu du hi
    4747                                $(this).next().hide();
Note: See TracChangeset for help on using the changeset viewer.