Afficher toutes les pages d'un dossier à la queue leuleu
Pour participer à cette discussion, cliquez ici pour vous inscrire.
| Auteur | Discussion |
|---|---|
|
kikan |
Afficher toutes les pages d'un dossier à la queue leuleu Jolie expression que voilà... Je cherche à créer une vue par défaut (un index_html pour l'instant) pour un dossier, qui affiche l'un derrière l'autre les contenus des Documents du dossier. Exemple : dans un dossier, je publie trois documents : titi, toto, et tutu. Je voudrais créer une page index_html (une ZPT), qui affiche le contenu (titre + description + contenu) de chacun de ces documents l'un après l'autre, dans la même page. Je pense qu'il faut faire un tal:repeat, j'ai essayé, mais je ne parviens qu'à exploiter les métadata (titre, description...). Je dois donc manipuler des brains, et il faudrait que j'accède à l'objet lui-même, mais j'ai oublié comment faire... Posté le 14/02/2005 @ 17:33
|
|
amine |
getObject()?
exemple python: Posté le 14/02/2005 @ 17:43
|
|
kikan |
getObject : ça ne marche pas
J'essaie effectivement GetObject, mais sans succès (d'ailleurs, container.catalog() ne rend rien de bien chez moi). J'ai fait ça : cat = container.objectValues() for items in cat:objet =items.getObject() print objet.getId() return printed Mais getObject() ne passe pas... Error Type: AttributeError Error Value: getObject un autre indice ? Posté le 14/02/2005 @ 18:45
|
|
amine |
essaye ça...
si tu utilises un zcatalog: for items in container.catalog(): sinon : for objet in container.objectValues(): helas, je n'ai pas eu le temps de tester, j'ai peut etre laissé trainer un chtit bug.... Posté le 14/02/2005 @ 19:38
|
|
zyons |
re
Je ne suis pas certain que faire appel au catalogue pour lister le contenu d'un dossier soit la meilleure solution en terme de performances. De plus, utiliser "objectValues" présente le risque de se prendre un "insufficient privileges" dès qu'un objet sera privé dans ce dossier. Perso j'essayerais plutot ça dans un python script : checkPermission = context.portal_membership.checkPermission objects = [obj for obj in mycontainer.getFolderListingFolderContents(suppressHiddenFiles=1) if checkPermission( return objects Ensuite il suffit d'appeler ce script depuis la page template : tal:define="results python:here.mypythonscript()" Puis de faire une boucle sur chacun de ces objets pour afficher les champs : {tal:loop tal:repeat="item results"} {span tal:replace="item/fieldname" /} {/tal:loop} Voilà. Il se peu que le "checkPermission" soit inutilé en fait, à tester. Il sera toujours possible de trier la liste des objets dans le script python en rajoutant une ligne. Posté le 15/02/2005 @ 08:12
|
|
kikan |
Merci !
Merci pour tous vos conseils, ça m'a bien mis sur le chemin. J'ai écrit ça pour l'instant, dans une ZPT : {span tal:define="items python:container.objectValues(
|
|
kikan |
Présentation de mes posts...
Désolé pour la présentation pourrie de mes posts... Où trouver de quoi publier mieux ? :-) Posté le 15/02/2005 @ 14:01
|
|
kikan |
Coercing to unicode
J'ai trouvé comment convertir mon texte unicode en texte iso-8859-1 depuis la ZPT {span tal:content="structure python:unicode(str(item.text), Remarque : si on ne transforme pas item.text avec str(item.text), on a l'erreur suivante : coercing to Unicode Posté le 15/02/2005 @ 17:51
|

Log in
Forgot your password?