Carnet de notes

Derniers billets

  • Ne pas afficher un menu si il ne contient qu’une entrée

    , par jeanmarie

    Cas concret : on veut mettre en place un menu de navigation entre les articles d’une même rubrique. Le problème est que si on n’a qu’un article, il s’affiche, ce qui ne sert à rien et est perturbant.

    1. <B_menu>
    2.     <div class="menu menu-container">
    3.         <ul class="menu-items menu-liste">
    4.             <BOUCLE_menu(ARTICLES) {id_rubrique} {!par titre}>[(#TOTAL_BOUCLE|>{1}|oui)
    5.                 <li class="item menu-entree[ (#EXPOSE)]">
    6.                     <a href="#URL_ARTICLE">[(#TITRE|couper{80})]</a>
    7.                 </li>
    8.             ]</BOUCLE_menu>
    9.         </ul>
    10.     </div>
    11. </B_menu>

    Télécharger

    Si #TOTAL_BOUCLE est supérieur à 1, tu affiches ce que tu veux.
    Sinon, le test ne renvoie rien est la boucle vide ne s’affiche pas.

    Une précision importante : les crochets ouvrants et fermant du test doivent obligatoirement être collés aux balises ouvrantes et fermantes de le la boucle. Sinon, la boucle renvoie des espaces même si le test est négatif.

  • Afficher les dates des 1er et dernier évènements liés à un article

    , par jeanmarie

    Le but ici est d’afficher les dates des 1er et dernier évènements liés à un article.
    La petite subtilité est que, si l’article à 2 évènements le même jour mais à des heures différentes, on ne veut afficher qu’une seule fois le jour pour éviter d’avoir "17 janvier 2016 > 17 janvier 2016".

    1. [(#REM) On rentre tous les évènements par date dans un tableau ]
    2. #SET{tableau_evenements,#ARRAY}
    3. <BOUCLE_evenements(EVENEMENTS){id_article}{par date}>
    4.         #SET{tableau_evenements, #GET{tableau_evenements}|push{#DATE_DEBUT|affdate}}                           
    5. </BOUCLE_evenements>
    6.  
    7. [(#REM) Avec 2 boucles DATA, on sort le 1er et le dernier évènement ]
    8. <BOUCLE_date_debut(DATA){source tableau,#GET{tableau_evenements}}{0,1}{par cle}>#SET{date_debut,#VALEUR}</BOUCLE_date_debut>                                   
    9. <BOUCLE_date_fin(DATA){source tableau,#GET{tableau_evenements}}{0,1}{!par cle}>#SET{date_fin,#VALEUR}</BOUCLE_date_fin>
    10.  
    11. [(#REM) Si les 2 évènements ont lieu le même jour, on n'affiche que le 1er,
    12.                 sinon, on affiche les 2 ]
    13. [(#GET{date_debut}|=={#GET{date_fin}}|?{
    14.                 #GET{date_debut}
    15.         ,                                      
    16.                 #GET{date_debut}" > "#GET{date_fin}
    17. })]

    Télécharger

  • Supprimer l’apostrophe de formatage pour les nombres

    , par jeanmarie

    Les nombres et dates non reconnus comme nombres sont précédés d’un apostrophe pour être formatés comme texte. Pour pouvoir les utiliser en formule ou les formater comme des nombres, il faut supprimer cet apostrophe.

    Méthode

    1. ouvrir le menu Édition > Rechercher & Remplacer
    2. dans le champ «  rechercher  », saisir ^[0-9]
    3. dans le champ «  remplacer  », saisir &
    4. cochez Expressions régulières (dans Autres options)
    5. validez en cliquant sur Tout remplacer

    Explications : ^[0-9] est une expression régulière qui trouve «  tout ce qui commence par un chiffre  » (cette recherche ignore l’apostrophe de formatage). L’esperluette du champ «  Remplacer  » signifie que l’on veut remplacer la chaîne par ce qui a été trouvé, dans le cas présent une suite de caractères sans l’apostrophe.

    Source : http://www.jmagnin.fr/?p=114

  • Commandes SSH

    , par jeanmarie

    Connaitre le poids d’un dossier

    du -h arborescence/vers/mon/dossier

    Zipper un dossier

    zip -9 -r mon_archive.zip mon_dossier

    - 9 est le taux de compression / -r indique qu’il s’agit d’un dossier et non d’un fichier /

    Copier un dossier localement (sur la même machine)

    cp -R arborescence/dossier_parent_souce/dossier_source arborescence/dossier_parent_cible/

    - R : indique la récursivité (le dossier et tout son contenu)

  • Tester plusieurs valeurs

    , par jeanmarie

    Version plus pertinente : Test sur plusieurs valeur (bis et mieux)

    Afficher un message uniquement lorsque l’on est dans les rubriques 6 et 7 :

    1. [(#ID_RUBRIQUE|match{^(6|7)$}|oui) Mon message /> ]

    Exemple : ne pas afficher le menu secondaire dans les rubriques 6 et 7 et sur les pages créées avec le plugin Pages Uniques dont l’id_rubrique est -1.

    1. [(#ID_RUBRIQUE|match{^(6|7|-1)$}|non) <INCLURE{fond=inclure/menu-secondaire,env} /> ]

    Merci à b_b pour l’astuce d’origine : http://www.weblog.eliaz.fr/article79.html

  • "De" ou "D’" selon la première lettre d’un titre

    , par jeanmarie

    Selon qu’un titre (ou tout autre champ) commence par une voyelle ou une consonne, il peut être utile d’adapter l’article : De Brest / D’Angoulême

    [(#TITRE|match{^(a|e|i|o|u|y)}|?{"D'", "De "})]#TITRE

    Explication : On teste avec match (équivalent à == mais avec plusieurs critères) si le titre commence (le circonflexe de la regex) par une voyelle (a|e|i|o|u|y) ou pas.

    Mais comme le précise Christian : "Faut penser aussi aux accents (âtre, éveil, ère...), je ne sais pas comment ils passent le « match » en UTF-8. Et attention aux diphtongues, par exemple on dit (et écrit) « la yourte », le « iatus »....."

    Question posée par lapeg sur la liste SPIP user : http://thread.gmane.org/gmane.comp.web.spip.user/194763