Changeset 109380 in spip-zone


Ignore:
Timestamp:
Mar 8, 2018, 5:49:27 PM (3 years ago)
Author:
jcvilleneuve@…
Message:

Escal V4 : possibilité d'afficher le texte d'un article en 2 colonnes s'il a le mot-clé "texte2colonnes" + ajout du mot-clé dans le groupe affichage + ajout d'un formulaire pour le plugin "liens sociaux"

Location:
_squelettes_/escal/trunk
Files:
1 added
7 edited

Legend:

Unmodified
Added
Removed
  • _squelettes_/escal/trunk/escal_administrations.php

    r108643 r109380  
    2929    );
    3030   
    31     $maj['1.0.12'] =array(
     31    $maj['1.0.13'] =array(
    3232        array('update_groupe_mots')
    3333    );
  • _squelettes_/escal/trunk/escal_fonctions.php

    r108087 r109380  
    271271                'titre'=>'special',
    272272                'descriptif'=> _T('escal:mot_special'),
     273                'type'=>'affichage'
     274            ),
     275            array(
     276                'titre'=>'texte2colonnes',
     277                'descriptif'=> _T('escal:mot_texte2colonnes'),
    273278                'type'=>'affichage'
    274279            ),           
     
    692697    }
    693698}
     699
     700
     701
     702/*######
     703#
     704# Filtre SPIP 'decouper_en_XD_parties'
     705# 4 Alexandra By Apsulis
     706# 14 janvier 2007
     707#
     708# OBJET :
     709# -------
     710# Pour decouper un contenu texte en X parties egale avec cesure mot entier.
     711# Retourne la partie Y demandee.
     712#
     713# USAGE :
     714# -------
     715# Dans le squelette :
     716# [(#TEXTE*|decouper_en_XD_parties{X,Y}|propre)]
     717#
     718# Dans le fichier mes_fonctions.php (a ranger par exemple dans votre dossier de squelettes) :
     719# placer la fonction qui suit depuis "function decouper"... jusqu'a "return $partie_isolee; }"
     720#
     721#
     722# Remarque :
     723# ----------
     724# - Fonctionne avec n'importe quel contenu texte : #INTRO, #TEXTE, #DESCRIPTIF, #PS, etc...
     725# - Pour remplir X colonnes, dans le cadre d'une boucle (ou pas, vous faites ce que vous voulez),
     726# utiliser X fois le filtre en changeant la partie Y demandee.
     727#
     728#######*/
     729
     730
     731
     732function decouper_en_XD_parties($texte,$nb_parties,$partie_a_retourner){
     733
     734        /* On traite les erreurs positives et negatives au cas ou */
     735        if($partie_a_retourner > $nb_parties){
     736                $partie_a_retourner = $nb_parties;
     737        }
     738        if($partie_a_retourner == 0){
     739                $partie_a_retourner = 1;
     740        }
     741
     742       
     743//var_dump($nb_parties);
     744        $longueur = strlen($texte);                                                                 // Longueur totale de la chaine de caractere
     745        $partie = $longueur/$nb_parties;                                        // Taille en caracteres d'une partie
     746        $decoupe = str_word_count($texte, 2, '.&<|>');                        // On decoupe le texte par mot pour savoir a quels mots couper les parties
     747
     748//print_r(str_word_count($texte, 2, '.&'));
     749
     750        $mots_cesure[0] = 0;                                                                                        // Premiere borne = 0
     751        $j = 1;
     752
     753       
     754                        while($j < $nb_parties){                                                                        // On recherche la fin du dernier mot de la partie pour ne pas le couper (=cesure)
     755                $i = $partie*($j);                                                                                        // On debute la recherche a partie, et ensuite on incremente de la taille d'une partie pour trouver le mot suivant                         
     756                while(!isset($decoupe[$i])){                                                // On part du caractere ou on devrait couper,
     757                        $i++;                                                                                                                                        // et on avance jusqu'a trouver la fin du mot
     758                }
     759        /*###
     760        # CORRECTIF par Pierre
     761        # Pour eviter de couper les colonnes au milieu d'une ligne (par exemple une ligne de un ou deux mots)
     762        # La coupure se fait  la fin d'une phrase, aprs le point.
     763        # (ligne 49)"$decoupe = str_word_count($texte, 2, '.&');" ici le troisime parametre est l'ensemble des caracteres autorises dans un mot dont le point ce qui permet la coupure.
     764        ###*/
     765                while(!preg_match('`\.$`',"$decoupe[$i]")){   //tant que le mot ne se termine pas par un point...
     766                        $i++;                                                                                                                                                                //incrementation d'un caractere
     767                        while(!isset($decoupe[$i])){                                               
     768                        $i++;                                                                                                                               
     769                        }
     770                }
     771                $i++;
     772                        while(!isset($decoupe[$i])){                                               
     773                        $i++;                                                                                                                               
     774                        }
     775        //echo $decoupe[$i];
     776               
     777        /*### FIN DU CORRECTIF ###*/       
     778               
     779               
     780                $mots_cesure[$j] = $i;                                                                        // On range la valeur en caractere du mot clef pour la cesure
     781                $j++;                                                                                                                                                // On passe a la partie suivante
     782        }
     783        $mots_cesure[$j] = $longueur;                                                        // Derniere borne = fin du texte
     784
     785        // On isole la partie qu'on renvoi pour affichage par SPIP
     786        $partie_isolee = substr($texte, $mots_cesure[$partie_a_retourner-1], $mots_cesure[$partie_a_retourner]-$mots_cesure[$partie_a_retourner-1]);
     787
     788        return propre($partie_isolee);
     789}
    694790?>
  • _squelettes_/escal/trunk/escal_options.php

    r108836 r109380  
    1010|parametrage_blocs!deplier_replier:titre_contenu
    1111|style!fonds:bords:arrondis
    12 |plugins!galleria:rainette:mentions:articlepdf:spipdf:licence:spip400:socialtags:facebook:signalement:shoutbox
     12|plugins!galleria:rainette:mentions:articlepdf:spipdf:licence:spip400:socialtags:liens_sociaux:facebook:signalement:shoutbox
    1313');
    1414
  • _squelettes_/escal/trunk/inclusions/inc-article.html

    r108239 r109380  
    135135        ]
    136136
    137                                 [<div id="chapo" class="#EDIT{chapo}">(#CHAPO)</div>]
    138 
    139                         <!--Affichage du texte de l'article -->
    140                                 [<div class="#EDIT{texte}">
     137                [<div id="chapo" class="#EDIT{chapo}">(#CHAPO)</div>]
     138
     139                <!--Affichage du texte de l'article -->
     140               
     141                <BOUCLE_2colonnes(ARTICLES){id_article}{titre_mot="texte2colonnes"}>
     142                <div class="container-colonnes">       
     143                        <div id="colonne1" >
     144                        [<div class="#EDIT{texte}">
     145                        (#TEXTE*
     146                        |decouper_en_XD_parties{2,1}|propre
     147                        |image_reduire{[(#CONFIG{escal/config/largeurimage,400})],0
     148                        |replace{<aide>,<div class="aide">}
     149               |replace{</aide>,</div>}
     150               |replace{<important>,<div class="important">}
     151               |replace{</important>,</div>}
     152               |replace{<avertissement>,<div class="avertissement">}
     153               |replace{</avertissement>,</div>}
     154               |replace{<info>,<div class="info">}
     155               |replace{</info>,</div>}
     156               |replace{<centrer>,<div style="text-align:center;">}
     157               |replace{</centrer>,</div>})
     158               </div>]
     159                        </div>
     160                       
     161                        <div id="colonne2">
     162                        [<div class="#EDIT{texte}">
     163                        (#TEXTE*
     164                        |decouper_en_XD_parties{2,2}|propre
     165                        |image_reduire{[(#CONFIG{escal/config/largeurimage,400})],0
     166                        |replace{<aide>,<div class="aide">}
     167               |replace{</aide>,</div>}
     168               |replace{<important>,<div class="important">}
     169               |replace{</important>,</div>}
     170               |replace{<avertissement>,<div class="avertissement">}
     171               |replace{</avertissement>,</div>}
     172               |replace{<info>,<div class="info">}
     173               |replace{</info>,</div>}
     174               |replace{<centrer>,<div style="text-align:center;">}
     175               |replace{</centrer>,</div>})
     176               </div>]
     177                        </div>
     178                </div>
     179                </BOUCLE_2colonnes>     
     180               
     181                </B_2colonnes> 
     182                        [<div class="#EDIT{texte}">
    141183                (#TEXTE
    142184                |image_reduire{[(#CONFIG{escal/config/largeurimage,400})],0}
     
    153195                )
    154196                </div>]
     197           <//B_2colonnes>
     198               
     199             
     200         
     201
     202               
     203               
    155204                                        <!-- et hop, un petit div pour récupérer le flux normal d'affichage
    156205                                                au cas où l'article se finisse par une image non centrée -->
  • _squelettes_/escal/trunk/lang/escal_fr.php

    r108549 r109380  
    3636'cfg_page_layout' => 'Mise en page',
    3737'cfg_page_licence' => 'Licence',
     38'cfg_page_liens_sociaux' => 'Liens sociaux',
    3839'cfg_page_mentions' => 'Mentions légales',
    3940'cfg_page_menuh' => 'Menu horizontal',
     
    103104'mot_site_exclu' => 'pour exclure des sites dans le bloc "Sur le web"',
    104105'mot_special' => 'pour choisir la rubrique et/ou les articles qui seront affichés dans le bloc à personnaliser',
     106'mot_texte2colonnes' => 'Pour afficher un texte d\'article en 2 colonnes dans une page article',
    105107'mot_video_une' => 'pour choisir les articles dont les vidéos seront affichées dans le bloc "Vidéo"',
    106108
     
    478480'licence_explication' => 'Si vous avez activé le <a class="spip_out" href="http://contrib.spip.net/Une-licence-pour-un-article" title="Documentation">plugin "Licence"</a>,
    479481            vous n\'avez rien d\'autre à faire, l\'icône correspondant à la licence que vous avez choisi pour un article s\'affichera automatiquement en haut de l\'article.',
    480 
     482'liens_sociaux_plugin' => 'Plugin Liens sociaux',
     483'liens_sociaux_explication' => 'Si vous avez activé le <a class="spip_out" href="https://contrib.spip.net/Liens-sociaux" title="Documentation">plugin "Liens sociaux"</a>,
     484les réseaux sociaux que vous aurez paramétré apparaîtront automatiquement en pied de page.',
    481485// M
    482486'meme_rub' => 'Dans la même rubrique',
     
    777781        A vous de jouer !',
    778782'texte_coupe' => 'On coupe le texte à',
     783'texte_sous_image' => 'Texte sous le logo (sinon, à côté)',
    779784'titre' => 'Titre',
    780785'titre_coupe' => 'Nombre de caractères affichés pour le titre des articles',
     
    975980'telechargement' => 'Fichier à télécharger :',
    976981'telechargements' => 'Fichiers à télécharger :',
    977 'texte_sous_image' => 'Texte sous l\'image (sinon, à côté)',
    978982'title_articles_derniers' => 'Derniers articles',
    979983'title_contact' => 'Contacter le référent technique',
  • _squelettes_/escal/trunk/paquet.xml

    r109340 r109380  
    22        prefix="escal"
    33        categorie="squelette"
    4         version="4.0.44"
    5         schema="1.0.12"
     4        version="4.0.45"
     5        schema="1.0.13"
    66        etat="dev"
    77        compatibilite="[3.2.0;3.2.*]"
  • _squelettes_/escal/trunk/styles/general.css

    r108779 r109380  
    10651065        line-height: 140%;
    10661066}
     1067.container-colonnes{           
     1068        display: flex;
     1069        flex-wrap: wrap;
     1070        justify-content: center;
     1071}
     1072
     1073#texte-article #colonne1, #texte-article #colonne2{     
     1074        margin:5px;
     1075        flex-grow: 1;
     1076        display: flex;
     1077        width:40%;
     1078}
     1079#texte-article #colonne1{
     1080        border-right:1px solid grey;
     1081}
     1082
     1083@media screen and (max-width: 800px) {
     1084#texte-article #colonne1, #texte-article #colonne2{
     1085        width: 100%;
     1086}
     1087#texte-article #colonne1{
     1088        border-right: none;
     1089}
     1090}
    10671091#texte-article p {
    10681092        text-indent: 1.5em;
     
    10851109        margin: 5px;
    10861110}
     1111
    10871112#texte-article .aide,
    10881113#texte-article .important,
Note: See TracChangeset for help on using the changeset viewer.