2010-09-08 28 views
1

J'ai un navtree sur un site plone, en utilisant déjà cette configuration:Plone: ​​Comment trier le portlet navtree en utilisant une autre liste comme ordre de base?

navigation = mapping['navigation'] 
navigation.includeTop = True 
navigation.currentFolderOnly = False 
navigation.topLevel = 0 
navigation.setProperty('metaTypesNotToList', ['ATBooleanCriterion', ...(another types go here) ..., MemberDataContainer']) 
navigation.setProperty('idsNotToList',['Members', 'events']) 

Il en résulte un portlet NavTree qui me présente ce lien: (les informations en() sont les IDs des éléments, les nous utilisons lorsque nous ne voulons pas navtree montrer alors, mettre ensuite sur la variable idsNotToList sous navtree_properties)

  • Accueil (Je pense que cet identifiant est/root, mais quelqu'un me aider me dire quel est l'identifiant exactement résultat de l'option: navigation.includeTop=True)
  • Aide (/ help)
  • Recherche de bibliographie (/ searchbibliography)
  • Statistiques (/ statistiques)

Maintenant, ce que je veux est un peu ce navtree en utilisant cette autre liste (de ids) comme modèle:

['root', 'searchbibliography', 'help', 'statistics'] 

pour que l'ordre NavTree est exactement affiché comme cet ordre de la liste donnée, me montrant les liens comme ceci:

  • Accueil
  • Recherche sur la bibliographie
  • Aide
  • Statistiques

Nous voyons qu'il n'y a pas d'ordre alphabetycal ici. Il y a exactement un ordre spécifique.

Alors, comment puis-je faire cela?

Répondre

3

Résolu: L'ID de la page racine est front-page
je pourrais résoudre ce problème en faisant sous l'installation du produit:

def install(portal): 
    portal = getToolByName(portal, 'portal_url') 
    portal = portal.getPortalObject() 

    portal.moveObjectsToTop(['front-page', 'searchbibliography', 'help', 'statistics']) 
    portal.plone_utils.reindexOnReorder(portal) 

Commander le folder_contents de mon portail commandé automatiquement le portlet de navigation (qui utilise le même ordre du dossier du portail (c'est-à-dire folder_contents)).

+0

+1 pour répondre correctement à votre propre question –