Nouveaux concepts

Shortcodes imbriqués

Une grande nouveauté est la possibilité d'inclure un shortcode dans un autre. Cela permet aux actions de s'entraider. Un exemple :

{up readmore={up icon=plus} Ouvrir}

Aide à la saisie (prefset)

Jusqu'à présent, il était possible de définir les options par défaut dans le fichier custom/prefs.ini.
Il est maintenant possible de définir des jeux d'options.
Au lieu de saisir des tas de code, le rédacteur doit juste indiquer le mot-clé défini par le webmaster.

Méthode tradidionnelle

shortcode saisi par le rédacteur :

{up jnews=8,17
 | maxi=8
 | image-src=images/css/news.jpg
 | main-tag=0
 | item-tag=0}
<div class="fg-row fg-gap bd-bleu bd0 bdb1"><div class="fg-c2 fg-cs2">{image}</div><div class="fg-c10 fg-cs10"><h4 class="lh80 mv0 pv0 notoc">{title}<br><small>{subtitle}</small></h4><p class="pt1">{intro-text,200}</p><p class="fs80 mb0 "><a href="/{link}" class="float-right fs120 b pr1">Lire la suite</a> crée le {date-crea} par {author}</p></div></div>
{/up jnews}

Méthode jeu d'options

shortcode saisi par le rédacteur :

{up jnews=8,17 | prefset=compact}

Code ajouté par le webmaster dans le fichier prefs.ini

[compact]
maxi="8"
image-src="images/css/news.jpg"
main-tag="0"
item-tag="0"
template="<div class=\"fg-row fg-gap bd-bleu bd0 bdb1\"><div class=\"fg-c2 fg-cs2\">{image}</div><div class=\"fg-c10 fg-cs10\"><h4 class=\"lh80 mv0 pv0 notoc\">{title}<br><small>{subtitle}</small></h4><p class=\"pt1\">{intro-text,200}</p><p class=\"fs80 mb0 \"><a href=\"{link}\" class=\"float-right fs120 b pr1\">Lire la suite</a> crée le {date-crea} par {author}</p></div></div>"

Le rédacteur peut surcharger une option. S'il veut 12 articles, le shorcode devient {up jnews=8,17 | pref=compact | maxi=12}

Un ajustement à postériori par le webmaster sera appliqué sur les anciennes utilisations 🤩

Cette possibilité est incluse dans le noyau de UP. Toutes les actions en bénéficient, même si l'option prefset n'est pas indiquée dans sa doc.
Il est aussi possible de mettre le prefset comme argument principal de l'action. Il suffit d'écrire {up hr=i-love-up} pour obtenir la ligne horizontale ci-dessous.


Saisie CSS

Pour saisir une règle CSS, il faut utiliser des crochets à la place des traditionnelles accolades. Cela interdisait la saisie de crochets pour définir les sélecteurs. Il est maintenant possible d'échapper les crochets avec un antislash. exemple :

{up addcsshead=\[test="foo"\] li:nth-of-type(odd)[color:red]}

Filter

Filter : le fait d'inclure des shortcodes dans des shortcodes, mais surtout d'analyser les enfants avant les parents bloque les capacités de filtrage de l'action filter pour toutes les actions qui effectuent une action immédiate. Pour ces dernières, une option filter a été ajoutée. Elle reprend les fonctionnalités de l'action de même nom

Suite à un post sur le forum, j'ai ajouté 2 règles de filtrage qui me rendent bien service.

Pour UP, je maintiens 3 sites quasi-identiques : celui en ligne (up.lomart.fr), un en local pour le développement (up-dev-AAMMJJ) et un autre pour les versions finalisées (up-site-AAMMJJ).

En backend, j'utilise cette astuce, mais il me manquait un moyen simple de reconnaître les versions en frontend. C'est maintenant chose faite avec ces shortcodes que j'ai mis dans le module LM-Custom que j'ai sur tous mes sites. Un module contenu personnalisé de Joomla aurait également fait l'affaire.

{up corner=up-site | bgcolor=yellow | color=darkred | filter=server-host:up-site}
{up corner=up-dev | filter=server-host:up-dev}

css-head

Généralisation de cette option qui permet d'ajouter des règles CSS dans le head de la page. Nous disposons de l'action addcsshead, mais il est délicat de limiter son action à un élément. Cela n'est plus le cas avec cette option.

Un exemple : css-head=#id h3[color:red]. #id sera remplacé par l'id de l'action. Donc la couleur rouge ne concernera que les titres h3 de cette action.

Nouvelles actions

Pour cette nouvelle version du site, j'avais plusieurs besoins que j'ai comblés à l'aide de ces nouvelles actions.

TOC

C'est le petit bouton sommaire que vous pouvez voir sur le coté droit de cette page. Un simple shortcode pour construire automatiquement le shortcode de la page.

jcontent-by-categories ou jnews

Sur la nouvelle page d'accueil, je voulais reprendre automatiquement les nouveautés du site. J'ai donc créer cette extension qui est une version plus aboutie de l'action article-category

jcontent-in-content

Souvent, nous avons des morceaux de texte que nous réutilisons dans plusieurs articles. Cette action permet d'insérer un article Joomla dans un autre article avec un contrôle total de la mise en page.

jcontent-by-tags

Une variante de jcontent-by-categories pour afficher les articles correspondants à un mot-clé.

jcategories-by-tags

Une variante de jcontent-by-tags pour afficher les catégories avec un mot-clé.

lang

Dans le but de simplifier la saisie des shortcodes, cette action vient en complément de l'ancienne méthode permettant de saisir du contenu (textes, images, codes) selon le langage du visiteur.

Scroller

Pour mettre un peu d'animations sur les news, j'ai pensé à cette méthode. Ci-dessous, les shortcodes utilisés pour afficher les news.

{up scroller=4 | speed=3000 | css-head=#id >*:nth-child(5),#id >*:nth-child(6)[opacity:.4] }
	{up article-news=8,17  | maxi=8 | pref=compact | image-src=images/css/news.jpg}
{/up scroller}

Counter

Pour mettre en évidence le nombre d'actions disponibles pour UP, ce compteur me semble faire son effet.

HR

Cela faisait longtemps que je cherchais un moyen de faire facilement des lignes horizontales pour structurer des articles (avec ou sans icône et texte).

Cette action introduit une nouvelle méthode pour définir des jeux d'options dans le fichier custom/prefs.ini. Au lieu de saisir un à un tous les paramètres, on part d'un jeu préparé par le webmaster qui sera adaptable au moment de l'utilisation. Un exemple {up hr=typo-feuille | hr-width=50%} :


Php-error

A usage très confidentiel, cela me permet de régler le niveau des messages d'erreurs PHP localement.
Pratique pour voir {up php-error} ou masquer {up php-error=0} temporairement des alertes

Actions modifiées

article-category devient jcontent-list

Il s'agit d'une mise à jour legère pour l'accorder aux nouvelles actions jcontent...

Icon

Une refonte totale pour gérer tous les types : polices d'icônes, caractères Unicode et images

Cette action a été l'occasion d'introduire un nouveau concept pour faciliter le travail des rédacteurs et soulager le travail du concepteur du site :
création d'un catalogue "affichable" des icônes du site

Exemple : pour afficher l'étoile définie par le webmaster, ce shortcode suffit : {up icon=etoile}

tab

Un truc m'interpelait sur les panneaux des onglets : la justification verticale

J'ai essayé d'apporter une solution par l'ajout d'une option espace-vertical qui va (merci flex) répartir les éléments sur la hauteur.

Le CSS est disponible en version SCSS. A dupliquer dans le sous-dossier custom pour harmoniser les onglets au style de votre site.

addCodeHead

Ajout du mode, déjà utilisé pour l'action HTML, attribut=valeur. Cela permet de saisir des codes avec un éditeur wysiwyg.

Slideshow-billboard

  • Ecureuil rouge eurasien
  • Leopard africain
  • Black crested macaque

Ajout d'une option zoom-suffix afin d'utiliser l'action modal pour avoir une galerie plein écran.
Ces simples shortcodes suffisent pour afficher le slideshow ci-contre 😀

{up modal=img}
   {up slideshow-billboard = images/photos/2
     | zoom-suffix=-mini | transition =up}
{/up modal}

CSS

Une facette moins connue de UP, sa feuille de style couvre une grande partie des besoins en édition. Avec 2 grands atouts :

  • des noms très courts pour faciliter la saisie
  • un aide-mémoire qui tient sur une page A4.

L'ajout et la modification d'actions est l'occasion de créer de nouvelles règles CSS.

fg-auto

Passage de 6 à 12 du nombre de colonnes maxi.

ff-mono / ff-cursive

Un moyen simple d'appliquer ponctuellement une autre famille de police

ff-mono - ff-cursive

Badge

<span class="badge"> il est possible que l'aspect soit celui de la classe de même nom de votre template

<span class="badge-rouge"> <span class="badge-bleu"> <span class="badge-vert">

Il est possible de modifier l'aspect par l'ajout d'autres classes

<span class="badge-rouge t-jaune"> <span class="badge-bleu ff-mono"> <span class="badge-vert bg-vertFonce ph3">

Répartition verticale du contenu

Pour les news, il était indispensable de prendre le contrôle de l'alignement vertical. Cela peut être fait à l'aide de 2 séries de classes.

  • m-child-raz[-1|-2] qui supprime les marges externes du premier et dernier bloc enfant, ou petit-enfant (-1) ou arrière-petit-enfant (-2)
  • fg-vspace-[between|arround|evenly|start|center|end] pour choisir le mode de répartition.
    il existe fg-vspace-between[-1|-2] pour cibler les descendants
fg-vspace-between

Titre H3

1ère ligne de contenu

et la suivante

Le pied de bloc

fg-vspace-around

Titre H3

1ère ligne de contenu

et la suivante

Le pied de bloc

fg-vspace-evenly

Titre H3

1ère ligne de contenu

et la suivante

Le pied de bloc

fg-vspace-center

Titre H3

1ère ligne de contenu

et la suivante

Le pied de bloc

fg-vspace-start

Titre H3

1ère ligne de contenu

et la suivante

Le pied de bloc

fg-vspace-end

Titre H3

1ère ligne de contenu

et la suivante

Le pied de bloc

Le code pour les blocs ci-dessus. demo2 est un classe locale pour ajouter des bordures colorées.

	<div style="height:300px" class="demo2 fg-vspace-between m-child-raz">
		<h3>Titre H3</h3>
		<div>
		<p>1ère ligne de contenu</p>
		<p>et la suivante</p>
		</div>
		<p>Le pied de bloc</p>
	</div>