Développer avec RBS Change : Thème : zone modifiable

  • 39989.1

    18/08/2011 11:47


    guiom
    Rang : Expert
    Bonjour,

    Je suis entrain de mettre en place un thème dans l'une des zone reprend les coordonnées du clients. Est-il possible de définir une zone modifiable dans le thème qui soit ensuite remplit dans le backoffice pour l'ensemble des pages utilisant ce thème ?
    Le but étant de permettre au client de modifier cette zone sans avoir à le faire sur toutes les pages et sans devoir éditer le thème.

    Merci
    Ps: je suis sur la version 3.5

    Édité par guiom 18/08/2011 11:48

  • 39989.2 en réponse à 39989.1 écrit par guiom

    18/08/2011 16:43


    seb
    Rang : Expert
    Bonjour
    Il me semble qu'il faut simplement créer un "gabarit de page" dans Change.
    >> Il suffit de créer une page (en utilisant le thème) et on ajoute le contenu.
    >> Au lieu de cliquer sur "enregistrer la page", on clique sur "enregistrer en tant que gabarit".

    La page apparait ensuite dans les gabarits de page dans les propriétés d'une page à sa création...
    Je ne sais pas si cela répond à la question mais en tout cas... ça dépanne bien !
  • 39989.3 en réponse à 39989.1 écrit par guiom

    18/08/2011 17:35


    Eric Voltzenlogel
    Rang : Adepte
    S'il s'agit de permettre de modifier de temps en temps cette info, je pense qu'une locale placée dans le template pourrait faire l'affaire. Les locales sont facilement éditables dans le module traduction. On peut même l'éditer en html si besoin.

    S'il s'agit de permettre de modifier souvent cette info, je ne crois pas qu'il existe une interface en standard. Il faut peut-être passer par la création d'un module dédié.
  • 39989.4

    18/08/2011 17:56


    Gaël Port
    Titre : Développeur RBS Change
    Rang : Expert
    Bonjour,

    Le plus simple reste d'utiliser le bloc Xhtmltemplate du module website qui consiste à simplement exécuter un template sans exécuter des traitement ni charger de données dans le bloc. Ce bloc peut être inséré dans un template de page de la manière suivante :
    <change:templateblock type="modules_website_xhtmltemplate" __template="MyTemplate" />
    Le paramètre __template permet de définir le template à utiliser. Ici c'est le template nommé Website-Block-Xhtmltemplate-MyTemplate.all.all.html du module website qui sera utilisé. Le module website ne propose pas de template particulier pour ce bloc mais vous pouvez placer vos propres templates dans themes/<votrethème>/modules/website/templates.

    Vous pouvez donc définir votre template comme contenant une ou plusieurs clés de traduction dont les valeurs seront modifiables en backoffice dans le module traductions. Les valeurs par défaut de ces clés peuvent être définies directement dans le dossier i18n du thème.
    Par exemple, le template Website-Block-Xhtmltemplate-MyTemplate.all.all.html suivant :
    <p>${trans:t.developer.fo.contact-informations,ucf}</p>
    Associé au fichier de traduction themes/<votrethème>/i18n/fo/fr_FR.xml :
    <?xml version="1.0" encoding="utf-8"?>
    <i18n baseKey="t.developer.fo" lcid="fr_FR">
    	<key id="contact-informations" format="html"><![CDATA[RBS<br />AEROPARC 1<br />11 rue Icare<br />67836<br />ENTZHEIM<br />France]]></key>
    </i18n>


    @seb : la solution que tu proposes ne répondra pas à la question car cela permet juste d'initialiser des pages avec un contenu prédéfini. en aucun cas le contenu d'un tel gabarit ne peut pas être modifié en une fois sur l'ensemble des pages qui l'utilisent.
  • 39989.5 en réponse à 39989.4 écrit par Gaël Port

    18/08/2011 19:47


    guiom
    Rang : Expert
    Bonjour,

    Merci pour vos propositions, la réponse donnée par Gaël me semble parfaitement correspondre.
    En utilisant cette méthode, peut-on y spécifier une image (initialiser par le thème, modifiable via le backoffice) ?

    J'aurais une autre question qui est peut être lié, dans le module thème, lors de l'édition d'un modèle de page, il y a un onglet "Blocs éditables". Est-ce que j'aurais pu utiliser cette option ? je n'ai pas trouver d'exemple d'utilisation ni de documentation.

    Merci
  • 39989.6 en réponse à 39989.5 écrit par guiom

    19/08/2011 09:21


    Gaël Port
    Titre : Développeur RBS Change
    Rang : Expert
    Une image modifiable en backoffice, ça risque d'être déjà un peu plus difficile en restant sur le bloc Xhtmltemplate... À moins de passer par le module habillage.



    Mais sinon, oui, les blocs éditables pourraient être une meilleure solution si vous avez plus de paramétrages que juste du texte. Pour activer cette fonctionnalité il suffit d'ajouter l'attribut editname sur un change:templateblock dans le modèle de page (la valeur de cet attribut étant un nom qui doit être unique dans le modèle de page et qui sera visible dans l'interface backoffice pour identifier ce bloc). Un tel bloc apparaitra alors (après avoir exécuté la commande theme.compile-theme) dans l'onglet blocs éditable et pourra être remplacé par UN autre bloc ou bien configuré globalement pour l'ensemble des pages utilisant ce modèle de page.

    Là par contre il vous faudra faire un bloc spécifique avec l'ensemble des paramètres que vous voulez offrir à l'utilisateur.

    Notons que cette fonctionnalité a certaines limitations :
    - un modèle de page n'est pas traduisible, donc si des textes sont saisis dans la configuration du bloc, ils seront les mêmes dans toutes les langues
    - il n'est pas possible d'avoir deux version d'un même modèle de page avec des configurations de blocs différentes, les configuration s'appliquent donc forcément à l'ensemble des pages qui l'utilisent



    Sinon, si les données sont plus complexes, une solution sera toujours de faire un document dans un module avec son bloc d'affichage, c'est un petit peu plus long à mettre en œuvre mais ce sera nettement plus souple (quitte à combiner ça avec un bloc éditable pour sélectionner lequel de ces document doit être utilisé).

    Édité par Gaël Port 19/08/2011 14:42

  • 39989.7 en réponse à 39989.6 écrit par Gaël Port

    19/08/2011 14:29


    guiom
    Rang : Expert
    Bonjour,

    Merci pour ces précisions, j'ai essayé de mettre en œuvre les blocs éditables. J'ai partiellement réussit avec un bloc de type "modules_website_menu", par contre, pour ce qui est du type richedit, impossible d'éditer le contenue ou même de le lier à un document.

    J'ai un autre problème avec la méthode précédente, il semble que mes références aux ressources de langue ne fonctionne pas. De même, le nom des template n'est pas traduit.
    J'ai mis ceci dans le fichier mytheme/i18n/templates/fr_FR.xml :
    <?xml version="1.0" encoding="utf-8"?>
    <i18n baseKey="t.mytheme.templates" lcid="fr_FR">
      <key id="tplleftcolumn">1 colonne à gauche</key>
    </i18n>

    et j'ai déclaré mon template comme ceci :
    <pagetemplate byCodename="mytheme/tplLeftColumn" ... 
  • 39989.8 en réponse à 39989.7 écrit par guiom

    19/08/2011 15:59


    Gaël Port
    Titre : Développeur RBS Change
    Rang : Expert
    L'édition des propriétés d'un bloc repose sur le système de configuration décrit ici. Le bloc richtext est un bloc particulier qui n'est pas éditable de cette manière.

    Il vous faudra plutôt définir votre propre bloc avec les paramètres adaptés à votre cas.



    Concernant les traduction avez-vous lancé la commande de compilation compile-locales après modification des fichiers ? (elle consiste à placer toutes les traduction en base de données, les fichiers XML n'étant plus interrogés lors du rendu des pages)

    Édité par Gaël Port 19/08/2011 15:59

  • 39989.9 en réponse à 39989.8 écrit par Gaël Port

    19/08/2011 16:37


    guiom
    Rang : Expert
    Merci pour tout,

    Je n'avais effectivement pas fait la commande compile-locales. J'ai pu faire tout ce que j'avais besoin pour le moment.
 
Merci de prendre connaissance et de respecter les règles des forums.
 
1362 membres
Aucun membre connecté