We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 20488
    • 353 Posts
    Bonjour,

    voici une petite contribution que j’ai utilisé pour la création d’un site. Elle est assez spécifique comme vous pourrez le voir. J’en fais néanmoins profiter la communauté pour ceux qui sont interressés, particulièrement les CSSistes. smiley

    Le but de ce snippet est de permettre une modification de style d’une partie d’une chaîne de caractère qui n’est pas déclarée par défaut en tant que richtText (exemple, [*pagetitle*]). L’avantage de ce snippet reste que la modification de l’aspect est totalement transparent pour l’éditeur en espace admin.

    Vous n’avez pas compris cette explication ? huh huh huh

    C’est normal, voici un exemple concret :

    Je souhaite créer un template permettant de générer ceci :
    <h2><span class="mise_en_majuscule">My beautifull</span> page title</h2>


    Le texte "My beautifull page title" étant inclus dans [*pagetitle*], et ma feuille de style définit la classe mise_en_majuscule bien entendu...


    Je souhaite donc avoir deux mots en majuscule puis le reste tel que défini par la feuille de style, et ce, pour tous les [*pagetitle*] des documents relatifs à mon template.

    On pourrait bien évidemment insérer dans le champs texte "Titre de page" la phrase suivante [tt]<span class=’mise_en_majuscule’>My beautifull</span> page title[/tt] mais cela reste fastidieux à gérer, surtout quand certains rédacteurs ne comprennent pas le langage HTML et ne souhaitent pas en savoir plus (et c’est leur droit le plus strict, on n’est pas payé pour rien tout de même smiley). D’autant que pour les modifications éventuelles lors d’un changement de style, ce n’est pas gagné !

    Aussi, l’idée de mon snippet est de parser une chaîne de caractères en la scindant en deux (et uniquement deux pour l’instant) parties distinctes : une partie balisée, et une non balisée. Ainsi, on peut appliquer à ce titre de page deux styles différents pour deux parties de celui-ci.

    Comment ca marche ?

    Dans mon template : je déclare uniquement cette phrase

    [!StyleIt? &SI_string=`[*pagetitle*]` &SI_tag=`span` &SI_words=2 &SI_class=`mise_en_majuscule`  !]


    et le titre de ma page sera donc en espace admin "My beautifull page title".

    Le résultat va donc me générer

    <span class='mise_en_majuscule'>My beautifull</span> page title


    et à l’écran :

    MY BEAUTIFULL title


    Variables utilisables


    /*
    SI_string [ string ]
    Description : chaîne à scinder
    Default value : ’’
    */



    /*
    SI_class [ string ]
    Description : nom de la classe
    Default value : ’’
    */



    /*
    SI_words [ int ]
    Description : nombre de mots à prendre en compte (peut être négatif smiley)
    Default value : 0
    */



    /*
    SI_letters [ int ]
    Description : nombre de lettres à prendre en compte (peut être négatif smiley)
    Default value : 0
    */



    /*
    SI_tag [ string ]
    Description : nom du tag HTML
    Default value : span
    */



    /*
    SI_includeNextSpace [ 0 | 1 ]
    Description : doit on inclure l’espace (si il existe) entre le dernier mot et la balise fermante.
    Default value : 0
    */



    Exemples d’application (tirés de la documentation du snippet):

    ***** Example 1 ****
    Call : [!StyleIt? &SI_string=`[*pagetitle*]` &SI_words=3 !]
    Displays : <span>My fabulous page</span> title

    ***** Example 2 ****
    Call : [!StyleIt? &SI_string=`[*pagetitle*]` &SI_words=2 &SI_class=`MyFabulousClass` !]
    Displays : <span class="MyFabulousClass">My fabulous</span> page title

    ***** Example 3 ****
    Call : [!StyleIt? &SI_string=`[*pagetitle*]` &SI_tag=`strong` &SI_words=3 !]
    Displays : <strong>My fabulous page</strong> title

    ***** Example 4 ****
    Call : [!StyleIt? &SI_string=`[*pagetitle*]` &SI_tag=`strong` &SI_letters=5 !]
    Displays : <strong>My fa</strong>bulous page title

    ***** Example 5 ****
    [!StyleIt? &SI_string=`[*pagetitle*]` &SI_tag=`strong` &SI_words=3 &SI_includeNextSpace=`1` !]
    Displays : <strong>My fabulous page </strong>title

    ***** Example 6 ****
    Call : [!StyleIt? &SI_string=`[*pagetitle*]` &SI_tag=`strong` &SI_words=-2 !]
    Displays : My fabulous <strong>page title</strong>


    ***** Example 7 ****
    Call : [!StyleIt? &SI_string=`[*pagetitle*]` &SI_tag=`strong` &SI_letters=-8 !]
    Displays : My fabulous pa<strong>ge title</strong>

    ***** Example 8 ****
    Call : [!StyleIt? &SI_string=`[*pagetitle*]` &SI_tag=`strong` &SI_words=-2 !]
    Displays : My fabulous <strong>page title</strong>
    */


    Pour l’installation, c’est du déjà vu pour la plupart d’entre vous. Tout est décrit dans le fichier zip qui comprend un readme, le répertoire StyleIt à uploader dans /assets/snippets/ et le fichier snippet.php à copier/coller.


    wink

    @+




      • 6726
      • 7,075 Posts
      Merci Olivier !

      Effectivement je pense que ça ne concernera que quelques perfectionnistes (dont je fais partie smiley )... mais c’est cool j’en aurai peut-être l’utilité !
        .: COO - Commerce Guys - Community Driven Innovation :.


        MODx est l&#39;outil id
        • 23050
        • 1,842 Posts
        Ah ouais ! Bravo Olivier... je suis sure que je vais en trouver un usage ! wink
          • 20488
          • 353 Posts
          je suis sure que je vais en trouver un usage !

          A vrai dire, je soupçonnais ton interêt vis à vis de ce snippet laugh.

          Voir si pas trop de bug, notamment en ce qui concerne les caractères non alphanumériques.

          ++
            • 23050
            • 1,842 Posts
            Héhé, je teste dès que j’en ai l’occasion wink