5 votes

Grails - application de marque

Voici le défi : en fonction de l'URL entrant, je veux afficher une page de destination spécifique et, lors de la connexion, une expérience utilisateur spécifique basée sur l'identité de l'utilisateur.

Par exemple, les sites www.abc.com et www.xyz.com pointent tous deux vers une instance Grails unique fournissant une expérience de portail commune. Si l'utilisateur est arrivé par www.abc.com, je veux afficher la page d'accueil ABC avec un formulaire de connexion. Si l'utilisateur est arrivé via www.xyz.com, je veux afficher la page d'accueil XYZ avec un formulaire de connexion.

Une fois que l'utilisateur s'est connecté, je dois conserver le contexte original de la "marque" tel que déterminé par l'URL entrant. Par exemple, même si toutes les SGP, tous les contrôleurs, etc. sont partagés par tous les utilisateurs, les utilisateurs d'ABC prendront leurs propres CSS, paquets de ressources (ou entrées), etc. et l'utilisateur aura une expérience visuelle très différente de celle des utilisateurs de XYZ.

Est-ce possible ? Ou dois-je créer une branche du code de l'application et héberger plusieurs instances indépendantes du portail ?

7voto

Aaron Saunders Points 20454

http://www.grails.org/Views+et+mise+en+scène

Jetez-y un coup d'oeil, je pense qu'il peut résoudre 90% de vos problèmes. Avoir une mise en page spécifique pour chaque domaine. Les mises en page sont chargées pour chaque vue et peuvent aider à définir l'aspect et la convivialité.

vous pouvez définir une variable dans un filtre, basée sur l'URL, qui pourrait ensuite être lue dans la mise en page. http://www.grails.org/Filters

class MyFilters {
   def filters = {
        myFilter(controller:'*', action:'*') {
            after = {
              if (request.requestURI == "xyz") {
                session.layout = "layout1.gsp"
              } else {
                session.layout = "layout2.gsp"
              }
           } 
        }
   }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X