OVH Cloud OVH Cloud

Python et Zope et ZPT

22 réponses
Avatar
Dominique Crétel
Bonjour à tous,

Le post « Accès à une liste triée de doublet » m'a beaucoup aidé à
comprendre le fonctionnement des listes.

De plus, j'ai découvert des fonctions fortes intéressantes comme zip,
iter, etc...

Je pense que ce post est à la limite du hors sujet (Python) mais vu le
peu d'informations sur Zope/Python/TAL ......

Alors, excusez-moi si c'est le cas.

Voilà :

Je suis confronté à un problème difficile pour moi.
Le voilà.
J'ai la structure suivante (vu en partie dans le post précédant « Accès
à une liste triée de doublet »), que je ne peux _pas_ modifier (cf.
ci-dessous).
Et je dois aus sein d'un template python (.pt) faire en sorte de
récupérer quelque chose comme ça :

Zope Page Template
==================

<ul>
<li><a href="path11" class="menu6">
<img alt="title11" src="path11.jpg" class="menu1">
</a>
<ul>
<li><a href="subpath111" class="menu7">subtitle111</a></li>
<li><a href="subpath112" class="menu7">subtitle112</a></li>
<li><a href="subpath113" class="menu7">subtitle113</a></li>
<li><a href="subpath114" class="menu7">subtitle114</a></li>
<li><a href="subpath115" class="menu7">subtitle115</a></li>
</ul>
</li>
</ul>

Je réussi pas à utiliser les informations apprises dans le post précédant !
De plus et en plus d'utiliser Python, il faudra utiliser le ZPT (Zope
Python Template language).
Je ne m'en sort pas !
Le problème est de récupérer, à la fois, le titre et le chemin dans un
boucle tal:repeat !!!
Quelqu'un peut-il m'aider ???
MERCI.

Contenu de la liste (Python)
============================

liste =
[
[ # sub tree 1
[ # sub sub tree 1
'title11', 'path11',
'subtitle111', 'subpath111',
'subtitle112', 'subpath112',
'subtitle113', 'subpath113',
'subtitle114', 'subpath114',
'subtitle115', 'subpath115',
],
[ # sub sub tree 2
'title12', 'path12',
'subtitle121', 'subpath121',
'subtitle122', 'subpath122',
'subtitle123', 'subpath123',
'subtitle124', 'subpath124',
'subtitle125', 'subpath125',
]
],
[ # sub tree 2
[ # sub sub tree 1
'title21', 'path21',
'subtitle211', 'subpath211',
'subtitle212', 'subpath212',
'subtitle213', 'subpath213',
'subtitle214', 'subpath214',
'subtitle215', 'subpath215',
],
[ # sub sub tree 2
'title22', 'path22',
'subtitle221', 'subpath221',
'subtitle222', 'subpath222',
'subtitle223', 'subpath223',
'subtitle224', 'subpath224',
'subtitle225', 'subpath225',
],
[ # sub sub tree 3
'title23', 'path23',
'subtitle231', 'subpath231',
'subtitle232', 'subpath232',
'subtitle233', 'subpath233',
'subtitle234', 'subpath234',
'subtitle235', 'subpath235',
]
],
[ # sub tree 3
[# sub sub tree 1
'title31', 'path31',
'subtitle311', 'subpath311',
'subtitle312', 'subpath312',
'subtitle313', 'subpath313',
'subtitle314', 'subpath314',
'subtitle315', 'subpath315',
]
],
]

2 réponses

1 2 3
Avatar
bruno at modulix
Dominique Crétel wrote:
Encore une question :

Contenu de ma liste (Python)
=========================== (snip)




L'ordre des "rubriques/sous-rubriques/sections" est très *important* et
ne peut être changé !!!


s/peut/doit/ !-)

Maintenant qu'on a un template à peu près lisible, il ne reste plus qu'à
implémenter le script qui va transformer ta liste en une structure de
données plus simplement utilisable, ie :

[{
'header': {'path' : 'pathXX',
'title': 'titleXX',
'src': 'pathXX.jpg'},
'entries': [ {'path': 'pathXXX', 'title': 'titleXXX'},
{'path': 'pathXXY', 'title': 'titleXXY'},
# etc...
]
},
# etc...
]



Est-ce que le fait d'utiliser ici un dictionnaire Python, peut entrainer
une modification de l'ordre des "rubriques/sous-rubriques/sections" ?


C'est une *liste* de dictionnaires, donc pas de risque à ce niveau-là -
à condition bien sûr que le script respecte l'ordre d'origine, mais
c'était le cas dans celui que j'avais posté.

Et l'entrée 'entries' de ces dictionnaires est elle aussi une liste de
dictionnaires... (même punition, même motif).


--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in ''.split('@')])"



Avatar
Dominique Crétel

C'est une *liste* de dictionnaires, donc pas de risque à ce niveau-là -
à condition bien sûr que le script respecte l'ordre d'origine, mais
c'était le cas dans celui que j'avais posté.

Et l'entrée 'entries' de ces dictionnaires est elle aussi une liste de
dictionnaires... (même punition, même motif).



Alors, ça me va !

1 2 3