Bonjour,
Je commence à utiliser CMSMS et comme tous les débutants je tombe un peu dans tous les pièges. Mais je n'ai pas réussi à trouver la réponse à ma question dans les forums, même en anglais (peut-être faute de savoir bien formuler la question).
Voilà mon problème, j'ai un site avec quelques gabarits qui ne varient que par le fait que certains ont une organisation du contenu en colonnes et d'autre dans toute la largeur de la page.
Je voulais donc avoir quelque chose du genre header et footer à rajouter en haut et en bas de chaque gabarit nouvellement créé de manière à n'avoir que le moins possible de redondance de code smarty/HTML.
J'ai trouvé les contenus globaux et j'ai donc saisi mon code html et smarty dans deux contenus globaux header et footer. Je les appelle dans mes gabarits. Cela fonctionne à condition de ne pas éditer les contenus avec un éditeur WYSIWYG qui "nettoie" le html sauvagement. Il m'a donc fallu désactiver l'édition WYSIWYG pour ces contenus.
Comme je suis seul à travailler sur ce CMS ce n'est pas trop grave, je peux faire attention à ce que je fais. Mais dans le cas de séparation des rôles (designer et rédacteur) ce n'est pas satisfaisant car les contenus globaux, comme leur nom l'indique, sont dans le menu contenu et pas disposition et peuvent être changés par les rédacteurs et non les designer. Il suffit qu'un rédacteur regarde les fichiers avec l'éditeur WYSIWYG et enregistre pour que la mise en page soit cassée, et qu'un designer n'aie pas les droits d'édition pour ne pas pouvoir y toucher.
Je n'ai pas vu de balise du genre {template} où l'on pourrait saisir un truc de style { template name="header"}. J'ai bien vu un {get_template_vars} que je ne sais pas trop comment utiliser mais dont je doute qu'il réponde à mon besoin.
Quelle est la technique propre pour inclure des entêtes et pieds de page dans des gabarits ? Il serait bien lourd de se retrouver comme en html traditionnel à devoir répercuter à la main une modification d'entête sur tous les gabarits d'un site un par un.
Merci d'avance à ceux qui pourront me mettre sur la voie d'une solution adéquate.
[Résolu] Inclure un gabarit dans un autre
Moderator: jce76350
[Résolu] Inclure un gabarit dans un autre
Last edited by Alarch on Mon Jun 28, 2010 1:14 pm, edited 1 time in total.
Re: Inclure un gabarit dans un autre
Bonjour,
Normalement si tu desactive globalement l'utilisation du WYSIWYG pour les blocs de contenu globaux pour tous les utilisateurs, tu ne devrais pas avoir ce probléme d'édition par un autre.
Sinon, c'est comme ça que je fais sur mon site pour des headers et footer différents.
Normalement si tu desactive globalement l'utilisation du WYSIWYG pour les blocs de contenu globaux pour tous les utilisateurs, tu ne devrais pas avoir ce probléme d'édition par un autre.
Sinon, c'est comme ça que je fais sur mon site pour des headers et footer différents.
Re: Inclure un gabarit dans un autre
Bonjour et merci de ta réponse.
C'est un peu la réponse que je craignais. Je peux en effet bidouiller puisque je suis seul à utiliser le CMS, mais ce n'est pas utilisable pour un client ce type d'astuces.
C'est bien dommage qu'il n'existe pas des "globals templates" de manière à pouvoir factoriser le code sur le même modèle que les includes de contenu. Ça me semble étrange, du coup je cherche encore, car ça semble tellement une fonctionnalité de base... rien d'autre que l'équivalent d'un include ou d'un require php.
Je vais regarder un peu dans le code, si il y a moyen de créer une balise d'inclusion de gabarit.
C'est un peu la réponse que je craignais. Je peux en effet bidouiller puisque je suis seul à utiliser le CMS, mais ce n'est pas utilisable pour un client ce type d'astuces.
C'est bien dommage qu'il n'existe pas des "globals templates" de manière à pouvoir factoriser le code sur le même modèle que les includes de contenu. Ça me semble étrange, du coup je cherche encore, car ça semble tellement une fonctionnalité de base... rien d'autre que l'équivalent d'un include ou d'un require php.
Je vais regarder un peu dans le code, si il y a moyen de créer une balise d'inclusion de gabarit.
Last edited by Alarch on Sun Jun 20, 2010 5:10 pm, edited 1 time in total.
Re: Inclure un gabarit dans un autre
Heu attends, je me suis peut être mal exprimé.
En fait l'éditeur WYSIWYG est désactivé pour les gabarits et les blocs de contenu globaux, c'est préférable pour ne pas voir encoder certains caractères.
Par contre, il l'est pour le contenu des pages.
Voici mon gabarit :
Où gabarit_ante_content correspond à toute la partie de mon gabarit avant le contenu, et gabarit_post_content à la suite.
Cela n'a pas à être modifié par les autres utilisateurs, qui chez moi ne sont que des contributeurs. Et même si qqun pouvait éditer un bloc de contenu global il ne pourrait utiliser le WYSIWYG.
Donc pas de problème ?
En fait l'éditeur WYSIWYG est désactivé pour les gabarits et les blocs de contenu globaux, c'est préférable pour ne pas voir encoder certains caractères.
Par contre, il l'est pour le contenu des pages.
Voici mon gabarit :
Code: Select all
{global_content name='gabarit_ante_content'}
{content}
<br /><br />
{global_content name='gabarit_post_content'}
Cela n'a pas à être modifié par les autres utilisateurs, qui chez moi ne sont que des contributeurs. Et même si qqun pouvait éditer un bloc de contenu global il ne pourrait utiliser le WYSIWYG.
Donc pas de problème ?
Re: Inclure un gabarit dans un autre
Pardon pour le délais de réponse, j'ai été pris ces deux derniers jours.
ce que tu décris correspond à ce que j'ai fait, mais je considère que c'est de l'ordre du contournement, car du coup on ne peut laisser des utilisateurs simples (ce que tu appelles contributeurs) avoir accès aux contenux globaux. Sauf à leur faire une aveugle confiance, or on ne fait jamais confiance à des utilisateurs...
Tu me diras que dans beaucoup de cas on n'a pas besoin de laisser l'accès aux contenus globaux à de simples utiliateurs, qui risquent de ne pas en comprendre l'intérêt, c'est vrai.
Merci encore de tes réponses
ce que tu décris correspond à ce que j'ai fait, mais je considère que c'est de l'ordre du contournement, car du coup on ne peut laisser des utilisateurs simples (ce que tu appelles contributeurs) avoir accès aux contenux globaux. Sauf à leur faire une aveugle confiance, or on ne fait jamais confiance à des utilisateurs...
Tu me diras que dans beaucoup de cas on n'a pas besoin de laisser l'accès aux contenus globaux à de simples utiliateurs, qui risquent de ne pas en comprendre l'intérêt, c'est vrai.
Merci encore de tes réponses
-
Jean le Chauve
Re: Inclure un gabarit dans un autre
Tu as l'occasion de définir, grâce à la permission des groupes, que tel ou tel groupe ne peut accéder aux blocs globaux.
Si tu refuses l'accès aux rédacteurs, tu peux cependant leur donner la possibilité d'accéder à certains blocs grâce à l'option "Autres éditeurs :" en bas de la page du BCG.
Tu peux ainsi laisser le wysiwig activé, le designer ayant été prévenu qu'il devait décocher "Activer le WYSIWYG pour les blocs de contenus globaux :" dans les préférences de l'utilisateur.
Si tu refuses l'accès aux rédacteurs, tu peux cependant leur donner la possibilité d'accéder à certains blocs grâce à l'option "Autres éditeurs :" en bas de la page du BCG.
Tu peux ainsi laisser le wysiwig activé, le designer ayant été prévenu qu'il devait décocher "Activer le WYSIWYG pour les blocs de contenus globaux :" dans les préférences de l'utilisateur.
Last edited by Jean le Chauve on Fri Jun 25, 2010 6:31 am, edited 1 time in total.
Re: Inclure un gabarit dans un autre
Merci Jean le Chauve, c'est exactement la conclusion à laquelle je suis arrivé.
Déclarer pour mes contenus globaux de tête et pied qu'on ne peut y utiliser le WYSIWYG, les attribuer au groupe designer et pas aux créateurs de contenu, et laisser ces derniers utiliser le WYSIWYG pour des contenus réellement de données.
C'est étonnant par contre que je n'aie pas trouvé d'infos sur cette façon de faire car je suppose que presque tout le monde a besoin de factoriser les entêtes et pieds de page pour un site, ça n'a rien d'une fonctionnalité "avancée"... je faisais déjà ça en 1998 avec les pages shtml !
Déclarer pour mes contenus globaux de tête et pied qu'on ne peut y utiliser le WYSIWYG, les attribuer au groupe designer et pas aux créateurs de contenu, et laisser ces derniers utiliser le WYSIWYG pour des contenus réellement de données.
C'est étonnant par contre que je n'aie pas trouvé d'infos sur cette façon de faire car je suppose que presque tout le monde a besoin de factoriser les entêtes et pieds de page pour un site, ça n'a rien d'une fonctionnalité "avancée"... je faisais déjà ça en 1998 avec les pages shtml !

