[eZ Publish] Gestion de permalink
Bonjour,
Je débute avec Ez Publish et je souhaite intégrer des images directement par des permalinks (photos provenant d'une photothèque) sans les uploader sur le serveur.
La classe image présente dans Ez publish ne permet pas de gérer les permalinks et je n'arrive pas à développer une classe permettant de le faire.
Avez-vous des pistes pour pouvoir gérer de manière simple les image en permaliens?
Merci d'avance
eZ Publish, Online Editor, HTML : bonnes et mauvaises pratiques
Bonjour à tous,
la question soulevée ici remonte fréquemment avec eZ Publish et le Online Editor.
Avant de commencer : ce qu'il faut savoir
Il faut avant tout savoir que la volonté d'eZ est de bien séparer le fond et la forme. Donc le contenu de sa représenation. Cette logique est particulièrement poussée.
C'est de cette notion que tout commence. En particulier la gestion des classes permettant la définition de contenus précis à la place de l'article basique qui sert à tout et n'importe quoi.
Mais cette notion s'applique aussi à l'éditeur de texte riche. De fait, pour éviter toute dérive des contributeurs, le stcokage du contenu est effectué en eZXML, un format particulier et très précis ayant pour vocation de permettre une restitution personnalisée des contenus (là ou beaucoup d'autres CMS se limitent à du HTML).
C'est là que votre question arrive : comment fait-on pour aller plus loin que les options par défaut ? Des éléments de réponse ci-dessous ;)
Les possibilités
Insérer du HTML dans l'éditeur de texte
Première option, qui n'est pas ma préférée, autoriser l'insertion de HTML dans les contenus riches.
Pour cela, direction content.ini (1). Vous y trouverez le bloc [literal], décommentez la ligne #AvailableClasses[]=html
Une fois que vous aurez fait cette modification, vous pourrez définir la classe HTML à la balise "literal" (icône qui ressemble à un document).
Dès qu'une balise literal est trouvée avec la classe HTML, le code inclus est restitué directement dans la page.
A noter : pas besoin de désactiver l'éditeur pour insérer du HTML ça ne vous avancerait pas plus !
Créer une balise personnalisée
L'autre solution consiste à créer une balise personnalisée.
L'idée générale est d'étendre le format eZXML avec vos propres balises qui auront leurs propres attributs et leur propre template de restitution.
Exemple avec la balise Image
Etape 1 : direction content.ini (1)
Ajoutez les éléments ci-dessous
Code:
1 2 3 4 5 6 7 8 9 10
|
[CustomTagSettings]
AvailableCustomTags[]=external-image
[external-image]
CustomAttributes[]
CustomAttributes[]=src
CustomAttributes[]=alt
CustomAttributes[]=id
CustomAttributes[]=title |
Vous pouvez maintenant ajouter votre image externe via le bouton "<?>"
Etape 2 : créer la template associée
Il reste alors à créer la template associée pour la représentation :
extension/<votre extension>/design/standard/templates/content/datatype/view/ezxmltags/external-image.tpl
Code:
1 2
|
<img src="{$src}" {if $classification|trim()|ne("")} class="{$classification}"{/if} alt="{$alt}" {if $title|trim()|ne("")} title="{$title}"{/if}{if $id|trim()|ne("")} id="{$id}"{/if}/> |
Et hop, on vide les caches, et on teste. C'est gagné :ccool:
Conclusion
La logique d'eZ Publish voudrait que seule la gestion via les tags personnalisés soit employée. C'est la seule qui vous permet d'avoir la main sur le HTML généré par eZ Publish (et donc de maintenir un niveau d'accesibilité). Mais la multitude des besoins entraîne souvent le besoin de HTML libre.
Si j'ai une préférence pour la gestion en tags, c'est à vous de juger...
(1) comprendre ici : créer une surcharge de content.ini dans override/content.ini.append.php et modifier la valeur souhaitée