Newer
Older
Un plugin pour composer des pages sous forme de blocks, rangés les uns à la suite des autres (appelés parfois "lames")
**[WIP]** En cours de développement, des choses peuvent bouger de façon significative (cf TODO.md)
## Mise à jour / migration en v2
Les types de blocks ne sont plus gérés en wysiwyg dans l'espace privé avec un constructeur de formulaire.\
On se base plutôt sur le même fonctionnement que inserer_modeles, saisies ou compostions, en cherchant des fichiers .yaml dans les répertoires 'blocks' des squelettes.
Les tables spip_blocktypes et spip_blocktypes_liens ne sont donc plus utilisées.
Une procédure de mise à jour est prévue : dans l'espace privé, rendez vous sur ecrire/?exec=update_blocks2 qui vous permettra :
* d'exporter tous les types de blocks existant en yaml dans un répertoire
* de supprimer les tables inutiles
Le champ `ancre` n'est plus géré nativement sur les blocks (fonctionnalité trop spécifique)
Chaque type de block 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)
- on peut choisir de restreindre un type de block à 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 blocks d'un objet.\
La balise reconnait le contexte de la boucle en court, sinon on peut utiliser #GENERER_BLOCKS{objet,#ID_OBJET}
Dans le squelette d'un block "parent" (qui peut contenir des blocks), on peut déclarer un tag `<!--blocks-->` qui sera remplacé par les blocks enfants, ce qui permet de les encapsuler dans un markup personnalisé.\