cocoon-users-fr mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sylvain Wallez <sylv...@apache.org>
Subject Re: Structure d'un site sur 3 colonnes
Date Mon, 14 Mar 2005 18:24:48 GMT
daneel wrote:

> Bonjour,
>
> Je m'appelle Sébastien ARBOGAST, je suis élève-ingénieur en informatique
> à l'INSA de Rennes. En ce moment et depuis le mois d'août, je suis à
> Montréal (CANADA) pour ma dernière année et mon projet de fin d'études.
>
> C'est justement ce projet qui m'a amené à Cocoon. Je fais mon stage dans
> un laboratoire de l'Ecole Polytechnique de Montréal, le LARIM (pour
> Laboratoire de Recherche en Réseautique et Informatique Mobile) et mon
> projet c'est de proposer une architecture de gestion de contenu adaptée
> à la mobilité des services. En clair ce que je veux faire c'est une
> espèce de CMS qui ne diffuse pas le contenu sur du HTTP comme le font la
> plupart des CMS traditionnels, mais uniquement en Web Services, de façon
> à pouvoir faire appel à une passerelle pour diffuser effectivement sur
> différents média (un jour le Web à travers des portlets mais pour
> l'instant surtout le Wap, iMode, MMS et compagnie). Je n'ai rien trouvé
> de similaire pour l'instant et si vous en connaissez, je vous serai
> reconnaissant de me le faire savoir. Mais j'ai pensé qu'il pourrait être
> intéressant d'avoir un outil qui simplifie le développement de services
> mobiles en utilisant les dernières technos serveur.
>
> Toujours est-il que pour ce genre de choses, un framework XML
> s'imposait. J'ai testé Orbeon Presentation Server : intéressant mais
> encore trop marginal. Et là je suis en train de me familiariser avec
> Cocoon depuis une petite semaine donc je suis vraiment un pur newbie.
> J'ai eu un peu de mal à accéder à cette mailing liste donc j'ai laissé
> ma question sur un forum de developpez.com mais je pense que j'ai plus
> de chances de trouver de l'aide sur cette liste alors je vous forwarde
> ma question :
>
> Bonjour,
>
> Dans la série "je découvre Cocoon", je suis maintenant en train 
> d'essayer d'établir la structure de base de mon application.
> Dans un premier temps, je vise une structure assez classique de ce 
> genre :
> Code:
>
> -----------------------------------
> |                north            |
> -----------------------------------
> | west |      center      |  east |
> -----------------------------------
> |                south            |
> -----------------------------------
>
> Oh le beau BorderLayout ! Eh oui je viens du Java...
> Vous allez me dire, c'est un design classique et il existe plein de 
> tutoriels pour ça ! C'est vrai et je les ai essayés et soit ils sont 
> beaucoup trop compliqués (et que je t'utilise des actions et des 
> selectors et des... eh doucement je démarre !) soit ils ne remplissent 
> pas mes objectifs.
>
> Bon plus concrètement voilà comment je vois les choses :
> - la cellule "north" ça sera pour l'entête avec éventuellement des 
> onglets paramétrables (histoire que l'onglet correspondant à la 
> section courante soit en avant par exemple mais bon ça c'est pas 
> prioritaire) et des petits boutons genre "contact", "choix de la 
> langue", "choix du thème", etc.
> - la cellule "west" ça sera pour le menu de navigation : comme mon 
> appli sera un CMS, l'idée c'est d'avoir un menu de navigation sous 
> forme d'arborescence comme dans la console d'admin de tomcat, mais bon 
> pour ça on verra plus tard
> - la cellule "east", je sais pas encore ce qu'il pourra y avoir 
> dedans, des informations contextuelles par exemple, mais bon je 
> préfère la prévoir au cas où
> - la cellule "south", c'est pour le copyright, les "powered by" et 
> tout le tremblement.
> - et le meilleur pour la fin : la cellule "center ça sera pour le 
> contenu effectif de la section courante, de la page appelée.
>
> Au niveau de mon pipeline voilà comment j'aimerais que les choses 
> s'agencent
> 1 - je charge la page xml depuis un fichier
> 2 - j'applique le thème
> 2.1 j'aggrège le contenu xml des différentes cellules autour de celui 
> de la page pour arriver à une structure du type
> Code:
>
> <view>
>   <header/>
>   <navigation/>
>   <page/>
>   <contextual/>
>   <footer/>
> </view>
>
> 2.2 je passe tout ça à la moulinette XSLT pour en ressortir une page 
> XHTML 1.1 Strict (tant qu'à faire)
> 3 - je localise en utilisant le transformer adequat
> 4 - je sérialise
>
> Comme vous vous en doutez peut etre le gros de la difficulté pour moi 
> se situe au niveau de la notion de thème : en fait j'aime bien l'idée 
> de pouvoir changer l'apparence d'une application à la volée donc 
> j'aimerais bien que la transformation qui consiste à appliquer le 
> thème soit "à part". Par exemple je n'aime pas trop l'idée de faire un 
> truc du genre :
> Code:
>
> <map:pipeline>
>   <map:match pattern="*">
>     <map:aggregate element="view">
>       <map:part src="header.xml"/>
>       <map:part src="navigation.xml"/>
>       <map:part src="content/{1}.xml"/>
>       <map:part src="contextual.xml"/>
>       <map:part src="footer.xml"/>
>     </map:aggregate>
>     <map:transform type="xslt" src="stylesheets/view2xhtml.xsl"/>
>     <map:transform type="i18n"/>
>     <map:serialize type="xhtml"/>
>   </map:match>
> </map:pipeline>
>
> Parce qu'alors le chargement de la page se fait à l'intérieur de la 
> procédure d'application du thème que je voudrais externaliser.


Je ne comprends pas bien ce qui ne te convient pas. Est-ce parce que le 
nom de la XSL est fixe?

Dans ce cas, tu peux aussi écrire
  <map:transform type="xslt" src="stylesheets/{session-attr:theme}.xsl"/>

Ca va chercher le thème à appliquer dans l'attribut de session "thème". 
Cette notation utilise les "input modules" de Cocoon qui permettent 
d'aller piocher des infos simples à peu près n'importe où !

> Ce que je voudrais c'est un truc du genre:
> Code:
>
> <map:pipeline>
>   <map:match pattern="*">
>     <map:generate src="content/{1}.xml"/>
>     <!-- Application du thème par appel d'une ressource par exemple si 
> c'est possible -->
>     <map:transform type="i18n"/>
>     <map:serialize type="xhtml"/>
>   </map:match>
> </map:pipeline>
>
>
> Pour l'instant je n'ai aucune idée de comment je peux faire ça. Peu 
> m'importe pour l'instant le paramétrage des différents éléments pour 
> faire en sorte par exemple que le lien de la page chargée soit en 
> surbrillance dans le menu de navigation.
>
> Je ne sais pas si je suis très clair. S'il vous manque des données 
> n'hésitez pas à demander, je repréciserai.
> Merci beaucoup par avance pour toute l'aide que vous pourrez m'apporter.
>
> daneel

-- 
Sylvain Wallez                        Anyware Technologies
http://apache.org/~sylvain            http://anyware-tech.com
Apache Software Foundation Member     Research & Technology Director


---------------------------------------------------------------------
Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
Pour vous desinscrire : mailto:users-fr-unsubscribe@cocoon.apache.org
Autres commandes : mailto:users-fr-help@cocoon.apache.org


Mime
View raw message