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]
-~----------~----~----~----~------~----~------~--~---

Répondre à