On 9/18/07, tomsoft <[EMAIL PROTECTED]> wrote: > > > Bonjour, > > > Comment faire pour arriver a avoir des templates differents en > fonction du site...En effet, comment faire pour que deux sites > different, affichent deux layouts different. > > Typiquement, j'aimerais que toto.monsite.com affiche par exemple mes > layouts par defaut (ex: application.rhtml ) mais titi.monsite.com > affiche titi.application.rhtml si il existe (et idem pour les autres > vues) > > Pas sur d'etre super clair....
Pour la gestion des vues des controllers c'est très simple, il suffit de redéfinir ActionView::Base.render_file afin qu'au lieu de chercher directement le chemin relatif tu rajoutes un test d'existence du fichier dans un répertoire custom puis s'il n'y a pas de customisation execute le template normal. C'est très court tu peux même en faire un plugin. Les limitations: il faut qu'un template existe dans app/views dans tous les cas car le test d'existence est dans une autre partie d'actionView. Sinon tu peux directement faire un rescue ActionView:TemplateMissing et chercher le template dans un autre répertoire dans ce cas, mais là on arrive à la contrainte contraire, aucun template ne dois exister. Pour ton cas particulier ce chemin supplémentaire pourrait être paramétré à l'aide d'une variable de class qui comme Rails est mono thread pourra être initialisé à la valeur du domain à l'aide d'un before filter. C'est moins simple pour que ca marche avec les template d'actionMailer mais rien d'extremmement compliqué. Renaud --~--~---------~--~----~------------~-------~--~----~ Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de Google Groups. Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse [email protected] Pour résilier votre abonnement envoyez un e-mail à l'adresse [EMAIL PROTECTED] -~----------~----~----~----~------~----~------~--~---
