Le mercredi 01 octobre 2008 à 01:02 +0200, Christophe Combelles a écrit : > Tout d'abord bravo pour ce site, c'est un gros boulot, et le résultat est > impressionnant !
Merci :-) Ça a effectivement été un (très !) gros boulot, et ce n'est pas fini ! La suite risque d'être assez cool aussi si on arrive à faire tout ce qu'on veut... Et comme déjà évoqué, j'aimerais profiter de cette expérience pour faire un peu de buzz autour de Zope3 et montrer, aussi bien à des développeurs que des décideurs, que Python et Zope3 peuvent tout à fait être utilisés dans le cadre de sites web complexes gérant des contenus volumineux. Mais je ne sais pas encore ni où ni comment présenter la chose... On va d'ores et déjà demander à l'un de nos prestataires de faire une étude comparative pour évaluer le coût de développement de notre site, compte tenu des contraintes techniques et des fonctionnalités mises en oeuvre, avec une solution traditionnelle (type PHP ou Java) ; j'attends le résultat avec impatience... > Une URL plus logique (et meilleure pour l'indexation) pour cette page aurait > été: > http://www.onf.fr/activites_nature/evenements/animations-ecoute-du-brame > > "evenements" étant un conteneur, "animations-ecoute-du-brame" un objet > événement, et la vue étant implicitement "@@index.html". > > Mais tout dépend la façon dont sont stockés les choses. > Par ex, je ne comprends pas bien pourquoi tu récupères l'article par une > recherche d'oid dans le catalogue, s'il suffit de le récupérer par sa clé > dans > un conteneur, la clé étant le truc visible dans l'url, débarassé des accents > (ça > porte un nom, j'arrive plus à me souvenir). > > Sinon, à quoi sert l'id de conf ? > ?conf_id:int=1219820993 > Est-ce que ça a un intéret de le transmettre par l'URL ? Est-il susceptible > de > changer pour la même URL ? > > Pourquoi pas un utility qui fournit cette conf ? > > > Le site au sein duquel est affichée cette vue est important puisqu'il > > détermine, notamment, le skin qui va être appliqué ; il ne me paraît > > donc pas possible de simplement travailler avec une vue dans le contexte > > de l'actualité sans tenir compte de ce paramètre. > > À mon avis si, l'objet que tu est en train de publier n'est pas le "site" > activites_nature, mais bien l'article « écoute du brame ». C'est donc > l'article > qui devrait être le contexte. > > Pour changer l'apparence juste dans le site activites_nature, tu peux > utiliser > un beforeTraverseEvent sur le site, qui va rajouter la bonne layer dans ta > request, et donc modifier la skin uniquement pour ce site. > > Mais sinon, puisque c'est un "site", ça veut dire qu'il a un registre local, > et > donc que tu peux faire des inscriptions locales et donc potentiellement tout > changer. > > Sinon avec z3c.template/z3c.pagelet, y a moyen de faire un lookup du template > de > layout (z3c:layout en zcml), donc on peut le changer précisément ou on veut. > Moi > je n'utilise plus que ça, c'est ce que j'ai trouvé de plus souple. > > Mais bon, faudrait que je connaisse un peu mieux les détails. Je suis tout à fait d'accord avec toi de A à Z compte tenu des éléments dont tu disposes ; ta première approche au niveau de la gestion des URLs est tout à fait pertinente mais comme tu le dis dans ta dernière phrase, il te manque sans doute quelques billes que je vais tenter d'éclaircir... Désolé pour la longueur du propos !! Tout d'abord, le "site" dont je parle n'est pas un site au sens "Site Manager" de Zope 3 ; c'est juste le premier niveau de l'arborescence de notre portail. Le seul "site" (au sens Zope 3) est défini à la racine. Pour essayer de comprendre un peu mieux mon problème, le portail est donc structuré autour de deux types d'informations : - des informations "de base", intégrées dans des "sites" (au sens de notre portail) selon une structure arborescente : sites, rubriques, sous-rubriques, sujets, articles - des informations complémentaires et "partagées", stockées dans des conteneurs dédiés et en dehors des sites : actualités, galeries d'images, références commerciales, interviews, compléments, communiqués de presse... Toutes ces informations sont thématisées, géolocalisées et porteuses de ce que l'on appelle une audience qui indique à qui elles sont destinées (grand public, professionnels, journalistes...), avec quelle portée géographique (département(s), région(s), France entière, autres pays) et éventuellement avec quelles restrictions d'accès (pour certaines informations qui seront réservées aux abonnés). Dans le cas des informations partagées, ces paramètres vont nous permettre de "diffuser" ces informations dans différents endroits du portail. La navigation se fait uniquement au sein des sites ; ce qui signifie que quelle que soit l'information que l'on consulte, on est toujours "visuellement" dans le contexte d'un site (ou de la home qui peut être considérée comme un site particulier dans ce cas). Pourquoi est-ce important ? Parce que toutes les pages de consultation des sites sont construites sur la base d'un assemblage de composants, chaque composant étant dédié à un type de contenu particulier. Dans mon exemple, je vais par exemple configurer dans le contexte du site "activités nature" un composant chargé de récupérer une liste d'actualités (celui que l'on peut voir en haut à droite) ; ce site est un site "grand public", de niveau national, portant sur le thème "activités nature", et on va donc paramétrer le composant "actualités" pour qu'il nous affiche des actualités définies avec les mêmes paramètres ; d'autres composants pourraient être paramétrés pour extraire d'autres contenus, dans le même contexte, selon des critères identiques ou non. Là ou la difficulté se fait jour (selon moi) : lorsque j'accède par exemple à une actualité, elle doit s'afficher comme un "post-it" dans le contexte de mon site de départ : le fil d'Ariane n'est pas modifié, la charte graphique est celle de ce site (ça, c'est simple à gérer, comme tu l'indiques, avec un beforeTraverseEvent, ce qui est déjà le cas), et surtout : - le contenu des colonnes gauche et droite est celui correspondant au paramétrage de mon contexte de départ - les fonctions de navigation proposées au sein de mon actualité doivent bien entendu correspondre au contenu de mon composant "actualités" de départ ; comme une actualité donnée peut, en fonction des différents paramètres dont elle est porteuse, être consultée dans le contexte de différents sites (par exemple, une actualité d'intérêt national traitant d'activités nature en Lorraine sera visible à partir du site activités nature mais aussi du site de la Dt Lorraine), il ne faut pas se mélanger les pinceaux ! Et si je navigue d'une brève à l'autre et que je referme le "post-it", je dois bien évidemment revenir à mon contexte initial. Voilà donc pourquoi aujourd'hui je transmets ce fameux "conf_id" dans mon URL, pour indiquer quel est le composant dont je suis parti pour afficher mon actualité ; car pour certains types de composants, il est tout à fait possible d'avoir dans une même page le même composant présent plusieurs fois avec des configurations différentes. L'exemple est débile mais si j'avais deux listes d'actualités dans une même page, avec une même actu affichée deux fois, il faudrait bien que les fonctions de navigation liées à l'affichage de cette actu correspondent au composant dont on est parti pour l'afficher. Il reste encore quelques autres subtilités liées à la gestion de ces composants (avec notamment des notions d'héritage de configuration entre niveaux de l'arborescence, des niveaux de paramétrage différents, une gestion de "cache de résultats" par composant pour limiter les recherches...) mais je ne crois pas que cela modifie le fond du problème... Voilà, j'espère avoir été plus clair sur le pourquoi du comment de mes petits soucis de gestion d'URLs. Donc si vous avez plus d'idées pour m'aider à résoudre ce problème (assez mineur en fait au final, il s'agit juste de "faire de jolies URLs"), je suis toujours preneur ! A+ Thierry -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean. _______________________________________________ zope3-french-user mailing list zope3-french-user@lists.afpy.org http://lists.afpy.org/mailman/listinfo/zope3-french-user