Skip to content
Extraits de code Groupes Projets
Avatar de nicod_
nicod rédigé
La fonction principale _block_charger_block va récupérer elle même les squelettes des blocks enfants si le block en a.
Si on est dans l'espace privé, on inclut `prive/squelettes/inclure/block_objet` qui contient tout ce qu'il faut pour gérer un block (boutons etc), sinon on charge simplement `inclure/block` du squelette public.
Gros avantage pour l'intégration : dans le squelette d'un block qui peut contenir des blocs, on peut placer un `<!--blocks-->` qui sera remplacé par les blocks enfants, et donc on peut les encapsuler dans un markup personnalisé.
f37b9154
Historique

Blocks

[WIP] Un plugin pour composer des pages sous forme de blocs, rangés les uns à la suite des autres (appelés parfois "lames")

Cf TODO.md

Chaque type de bloc a un identifiant unique (slug), qui permet de chercher un squelette dans le path sous la forme blocks/identifiant.html, sinon on prend blocks/dist.html
Dans le privé, on cherche d'abord blocks_prive/identifiant.html, ce qui permet d'avoir un affichage différent dans l'espace privé du site public (espace plus réduit en largeur, pas les même css ou js chargés)

Dans la configuration de chaque type de block :

  • on peut choisir de restreindre un type de bloc à un objet éditorial
    ex : un block "menu des articles de la rubrique", qu'on ne pourrait associer qu'aux rubriques)
    par défaut : aucune restriction
  • on peut définir quels types de blocks il peut contenir
    ex : un block "recette" qui pourrait contenir des blocks "ingrédient"
    par défaut : aucun (le block n'est pas un conteneur)
  • ou bien au contraire restreindre ce block à ne pouvoir être créé que dans certains types de blocks
    ex : un block "personne" ne pourrait être créé que dans un block "trombinoscope"
    par défaut : aucune restriction

Dans la configuration de chaque block :

  • on peut définir une ancre nommée, pour faire un lien direct vers ce bloc

Dans les squelettes du site public, ajouter simplement #GENERER_BLOCKS pour générer tous les blocs d'un objet.
La balise reconnait le contexte de la boucle en court, sinon on peut utiliser #GENERER_BLOCKS{objet,#ID_OBJET}