ZEXPF}((U App.ProductqUProductqtqNt.}q(UidqUZSiteMapqUZSiteMapNode_addFormq(UF~q(UOFS.DTMLMethodq U DTMLMethodq ttQU__ac_local_roles__q }q Uahungateq ]qUOwnerqasUZSiteMapNode_addq(UFq(h U DTMLMethodqttQU_objectsq(}q(U meta_typeqU DTML MethodqhUZSiteMapNode_addFormqu}q(hhhUZSiteMapNode_addqu}q(hUZope PermissionqhUZSiteMapNode_add_permissionqu}q(hU Zope FactoryqhUZSiteMapNode_factoryqu}q (hUZ Classq!hU ZSiteMapNodeq"utU ZSiteMapNodeq#(UFq$(UZClasses.ZClassq%UZClassq&ttQUZSiteMapNode_add_permissionq'(UFq((UApp.Permissionq)U Permissionq*ttQUversionq+U1.1q,Utitleq-UInstalled Product ZSiteMapq.UZSiteMapNode_factoryq/(UFq0(U App.Factoryq1UFactoryq2ttQu.F~((UOFS.DTMLMethodqU DTMLMethodqtqNt.}q(UtitleqU#ZSiteMapNode constructor input formqU__name__qUZSiteMapNode_addFormqU__ac_local_roles__q }q Uahungateq ]q UOwnerq asUglobalsq}qUrawqT Add Site Map Node

Add Site Map Node

Id
Title
Link URL
qU_varsq}qu.F((UOFS.DTMLMethodqU DTMLMethodqtqNt.}q(UtitleqUZSiteMapNode constructorqU__name__qUZSiteMapNode_addqU__ac_local_roles__q }q Uahungateq ]q UOwnerq asUglobalsq}qUrawqT Add ZSiteMapNode You must specify a Title to be used in menus and maps You must specify the LinkURL of the referenced object qU_varsq}qu.Ff((UZClasses.ZClassqUZClassqtqNt.}q(U_zclass_propertysheets_classqUFqQUidqU ZSiteMapNodeqU_zbasesq ]q (cZClasses.ZClass ZObject q cZClasses.ObjectManager ZObjectManager q cProducts.Renderable _ZClass_for_Renderable q eU__ac_local_roles__q}qUahungateq]qUOwnerqasU_zclass_qUFqQUtitleqUUpropertysheetsqUFqQu.F((UApp.PermissionqU PermissionqtqNt.}q(UtitleqU#ZSiteMapNode constructor permissionqUidqUZSiteMapNode_add_permissionqUnameq UAdd Site Map Nodesq U__ac_local_roles__q }q Uahungateq ]qUOwnerqasu.F((U App.FactoryqUFactoryqtqNt.}q(UtitleqUZSiteMapNode factoryqUidqUZSiteMapNode_factoryqU__ac_local_roles__q }q Uahungateq ]q UOwnerq asUinitialqUZSiteMapNode_addFormqU object_typeqU Site Map NodeqU permissionqUAdd Site Map Nodesqu.F(cExtensionClass ExtensionClass q(U ZSiteMapNode_PropertySheetsClassq(cZClasses.ZClass PersistentClass qcZClasses.Property ZInstanceSheets qtq}q(UiconqUU _p_changedqKU__doc__q UZSiteMapNode Property Sheetsq U__propset_attrs__q (UBasicq tq UBasicq(UFq(UZClasses.PropertyqUZInstanceSheetqtqtqQU_p_oidqUqU __module__qNU _p_serialqU2UDqutqt.N.F<(cExtensionClass ExtensionClass q(U ZSiteMapNodeq(cZClasses.ZClass PersistentClass qcZClasses.ObjectManager ObjectManager qcProducts.Renderable.Renderable Renderable qcOFS.SimpleItem SimpleItem qtq}q(U _p_changedq KUisPrincipiaFolderishq UYUREADMEq cZClasses.Method MW q NRq }qU$_ZClassMethodPermissionMapperMethod_q(UG@q(UOFS.DTMLMethodqU DTMLMethodqttQsbU_p_oidqUFqU meta_typeqU Site Map NodeqUpropertysheetsqUFqQU index_htmlqh NRq}qU$_ZClassMethodPermissionMapperMethod_q(UFq(hU DTMLMethodqttQsbUtitleqUU__ac_permissions__q )U verticalMenuq!h NRq"}q#h(UFq$(hU DTMLMethodq%ttQsbUiconq&U7Control_Panel/Products/ZSiteMap/ZSiteMapNode/ziconImageq'UisActiveq(h NRq)}q*h(UFq+(hU DTMLMethodq,ttQsbU _p_serialq-U2_E8q.ULinkURLq/UU meta_typesq0(}q1(U permissionq2UAdd Site Map Nodesq3Unameq4U Site Map Nodeq5Uproductq6UZSiteMapq7Uactionq8U/manage_addProduct/ZSiteMap/ZSiteMapNode_factoryq9utq:UhorizontalMenuq;h NRq<}q=h(UFq>(hU DTMLMethodq?ttQsbUmanage_optionsq@(}qA(UlabelqBUContentsqCUactionqDU manage_mainqEu}qF(hBUBasicqGhDUpropertysheets/Basic/manageqHu}qI(hBUSite MapqJhDU index_htmlqKu}qL(UlabelqMURead MeqNUactionqOUREADMEqPutqQU ziconImageqR(UFqS(U OFS.ImageqTUImageqUttQU__doc__qVU ZSiteMapNodeqWUrenderqXh NRqY}qZh(UFq[(hU DTMLMethodq\ttQsbUinPathq]h NRq^}q_h(UFq`(hU DTMLMethodqattQsbU __module__qbU*XmBVKXTD0I2fK5092XTanA==qcU index_nodeqdh NRqe}qfU$_ZClassMethodPermissionMapperMethod_qg(UFqh(hU DTMLMethodqittQsbutqjt.N.F(UFqQNt.}q(Ucommonq(UFq(UZClasses.PropertyqUZInstanceSheetsSheetqttqQUmethodsq(UFq (UZClasses.Methodq UZClassMethodsSheetq tq tq Qu.F~((UZClasses.PropertyqUZInstanceSheetqtqNt.}q(U_mdq}qUidqUBasicqU_baseq (UFq (hU ZCommonSheetq tq tq Qu.G@z((UOFS.DTMLMethodqU DTMLMethodqtqNt.}q(UtitleqU-Simple documentation for the ZSiteMap productqUrawqT ZSiteMap Documentation

ZSiteMap On-Line Documentation

The aim of ZSiteMap was to enable content managers to map out their structure easily, and then have automated menus and sitemaps generated from this information. To do this, you create a "tree" of ZSiteMapNode objects, each of which represents a "Navigation Target" (A place for users to link to).

The first thing to notice is that I did not say "... A place for users to link to within your zope..." as there is no reason why one or more of the links should not be to external sites, they do not even need to be Zope sites!

Here is a simple example of a SiteMap that you could create:

The first thing to do (In ANY ZSiteMap) is:
Create a ZSiteMapNode called sitemap, title Home, LinkURL /
Then you could (for example) under sitemap:
Create a ZSiteMapNode called page1, title My First Page, LinkURL /me_html
Create a ZSiteMapNode called john1, title John's First Page, LinkURL /john_html
Create a ZSiteMapNode called mary1, title Mary's First Page, LinkURL /mary_html
Then under page1:
Create a ZSiteMapNode called page2, title My Second Page, LinkURL /me2_html
Create a ZSiteMapNode called page3, title My Third Page, LinkURL /me3_html
You might also want to add under Home:
Create a ZSiteMapNode called map, title Site Map, LinkURL /sitemap

This will create a site map like this:

Except that the words will be links etc... :) qU__ac_local_roles__q }q Uahungateq ]q UOwnerq asUglobalsq}qU__name__qUREADMEqU_varsq}qu.F(UFqQNt.}q.FP((UOFS.DTMLMethodqU DTMLMethodqtqNt.}q(UtitleqU$Render a full site map as a web pageqU__name__qU index_htmlqU__ac_local_roles__q }q Uahungateq ]q UOwnerq asUglobalsq}qUrawqU

Site Map

qU_varsq}qu.F((UOFS.DTMLMethodqU DTMLMethodqtqNt.}q(UtitleqU0Render a menu from here down to the current pageqUrawqT Render a horizontal menu of just this level as a table. qU__ac_local_roles__q }q Uahungateq ]q UOwnerq asUglobalsq}qU__name__qU verticalMenuqU_varsq}qu.F((UOFS.DTMLMethodqU DTMLMethodqtqNt.}q(UtitleqU6Return true if the current url is the url of this linkqU__name__qUisActiveqU__ac_local_roles__q }q Uahungateq ]q UOwnerq asUglobalsq}qUrawqU"qU_varsq}qu.F((UOFS.DTMLMethodqU DTMLMethodqtqNt.}q(UtitleqU Render a menu of just this levelqU__name__qUhorizontalMenuqU__ac_local_roles__q }q Uahungateq ]q UOwnerq asUglobalsq}qUrawqU Render a horizontal menu of just this level as a table. qU_varsq}qu.FX((U OFS.ImageqUImageqtqNt.}q(UsizeqKUdataqUGIF89aPPP!,@XIR41hzwa vl# Ȥ99KBIa6ZY+o6;qU__name__qU ziconImageq Utitleq UU content_typeq U image/gifq U preconditionq UUwidthqU16qUheightqU16qu.F((UOFS.DTMLMethodqU DTMLMethodqtqNt.}q(UtitleqURender this item for a menuqU__name__qUrenderqU__ac_local_roles__q }q Uahungateq ]q UOwnerq asUglobalsq}qUrawqUactive contains normal id=new >  qU_varsq}qu.FE((UOFS.DTMLMethodqU DTMLMethodqtqNt.}q(UtitleqU?Return true if this links URL is a substring of the current URLqU__name__qUinPathqU__ac_local_roles__q }q Uahungateq ]q UOwnerq asUglobalsq}qUrawqTZ Ok, basically, we return 1 if LinkURL is a substring of REQUEST['PATH_INFO']. _BUT_ if LinkURL=='/' then we return the result from isActive instead. qU_varsq}qu.F((UOFS.DTMLMethodqU DTMLMethodqtqNt.}q(UtitleqU Render this node on the site mapqU__name__qU index_nodeqU__ac_local_roles__q }q Uahungateq ]q UOwnerq asUglobalsq}qUrawqU
  • qU_varsq}qu.F(cExtensionClass ExtensionClass q(U!ZSiteMapNode_ZPropertySheetsClassq(cZClasses.ZClass PersistentClass qcZClasses.ObjectManager ZObjectManagerPropertySheets qcOFS.PropertySheets PropertySheets qcZClasses.ZClass ZClassSheets qcApp.PersistentExtra Persistent qtq}q (Uiconq UU _p_changedq KU__doc__q U!ZSiteMapNode_ZPropertySheetsClassq U __module__qNU_p_oidqUqutqt.N.F((UZClasses.PropertyqUZInstanceSheetsSheetqtqNt.}q(UBasicq(UFq(UZClasses.PropertyqU ZCommonSheetqttq QU_objectsq (}q (U meta_typeq UCommon Instance Property Sheetq UidqUBasicqutu.F((UZClasses.MethodqUZClassMethodsSheetqtqNt.}q(U_mdq}qUidqUmethodsqU_objectsq (}q (U meta_typeq U DTML Methodq hUinPath q u}q(h h hU isActive qu}q(U meta_typeqU DTML MethodqUidqU index_html qu}q(hhhUrender qu}q(hhhUhorizontalMenu qu}q(hhhU verticalMenu qu}q(U meta_typeqU DTML MethodqUidqU index_node qu}q (U meta_typeq!U DTML Methodq"Uidq#UREADME q$utu.F((UZClasses.PropertyqU ZCommonSheetqtqNt.}q(UtitleqUBasic propertiesqU_mdq}qUidq UBasicq U _propertiesq (}q (Umetaq }qh UtitleqUtypeqUstringqu}q(h }qh ULinkURLqhUstringqutu.