ZEXPOO((U OFS.FolderqUFolderqtqNt.}q(U__ac_local_roles__q}qU$_Add_Session_Data_Manager_Permissionq(U AnonymousqUManagerq U config_zwookq tq U _propertiesq (}q (UidqUtitleqUmodeqUwUtypeqUstringqu}q(hU type_zwookqhUstringqu}q(hUsystemqhUstringqutqU!_Change_Page_Templates_Permissionq(hh h tqU_Manage_Access_Rules_Permissionq(hh h tqU_ownerq(]qU acl_usersq aUgregq!tq"U-_Manage_Transient_Object_Container_Permissionq#(hh h tq$U_Undo_changes_Permissionq%(hh h tq&U_WebDAV_Lock_items_Permissionq'(hh h tq(U!_Change_DTML_Documents_Permissionq)(hh h tq*Uzwo_docq+(UOq,(hUFolderq-ttQUzwookq.(UOq/(hUFolderq0ttQU_Join_leave_Versions_Permissionq1(hh h tq2U_WebDAV_Unlock_items_Permissionq3(hh h tq4U_View_Permissionq5(hU Authenticatedq6h h tq7U!_Change_cache_settings_Permissionq8(hh h tq9U"_Add_Browser_Id_Manager_Permissionq:(hh h tq;U index_htmlq<(UO q=(U#Products.PythonScripts.PythonScriptq>U PythonScriptq?ttQU#_Change_External_Methods_Permissionq@(hh h tqAUzwo_droits_folderqB(UO qC(h>U PythonScriptqDttQU home_imageqE(UO qF(h>U PythonScriptqGttQU#_Change_Lock_Information_PermissionqH(hh h tqIU_Change_proxy_roles_PermissionqJ(hh h tqKU"_Add_RAM_Cache_Managers_PermissionqL(hh h tqMU#_Change_Database_Methods_PermissionqN(hh h tqOU/_Add_Accelerated_HTTP_Cache_Managers_PermissionqP(hh h tqQU_Add_Zope_Tutorials_PermissionqR(hh h tqSU*_Add_Transient_Object_Container_PermissionqT(hh h tqUU_objectsqV(}qW(U meta_typeqXU User FolderqYUidqZU acl_usersq[u}q\(U meta_typeq]U DTML Documentq^Uidq_Utest_connectionq`u}qa(U meta_typeqbUScript (Python)qcUidqdUzwo_cpyqeu}qf(U meta_typeqgUScript (Python)qhUidqiU zwo_renameqju}qk(U meta_typeqlUScript (Python)qmUidqnhBu}qo(U meta_typeqpUScript (Python)qqUidqrUzwo_user_groupsqsu}qt(U meta_typequUFolderqvUidqwU zwo_imagesqxu}qy(U meta_typeqzUFolderq{Uidq|Uzwo_infoq}u}q~(hzh{h|Uzwookqu}q€(U meta_typeqUFolderq‚UidqƒUzwo_devq„u}q…(U meta_typeq†UFolderq‡UidqˆUzwo_docq‰u}qŠ(U meta_typeq‹UScript (Python)qŒUidqUacl_objqŽu}q(h‹hŒhUacl_urlqu}q‘(h‹hŒhU home_imageq’u}q“(h‹hŒhUstandard_printable_footerq”u}q•(h‹hŒhUstandard_printable_headerq–u}q—(h‹UFolderq˜hUzwo_libq™u}qš(U meta_typeq›UScript (Python)qœUidqUlasttraceinstallqžu}qŸ(U meta_typeq UFolderq¡Uidq¢Uzwo_boq£u}q¤(h h¡h¢U zwo_modulesq¥u}q¦(U meta_typeq§UScript (Python)q¨Uidq©U style_cssqªu}q«(h§h¨h©Uhomeq¬u}q­(h§h¨h©Ustandard_html_footerq®u}q¯(h§h¨h©Ustandard_html_headerq°u}q±(h§UFolderq²h©U zwo_upgradesq³u}q´(U meta_typeqµUScript (Python)q¶Uidq·Uaddfileq¸u}q¹(U meta_typeqºUScript (Python)q»Uidq¼Utoolboxq½u}q¾(U meta_typeq¿U Mail HostqÀUidqÁUMailHostqÂu}qÃ(U meta_typeqÄUScript (Python)qÅUidqÆUinstallqÇu}qÈ(U meta_typeqÉUScript (Python)qÊUidqËU index_html2qÌu}qÍ(hÉhÊhËU index_htmlqÎutqÏU_Add_User_Folders_PermissionqÐ(hh h tqÑU_Change_permissions_PermissionqÒ(hh h tqÓU_Add_Pluggable_Index_PermissionqÔ(hh h tqÕU_Manage_Z_Classes_PermissionqÖ(hh h tq×U._Access_arbitrary_user_session_data_PermissionqØ(hh h tqÙU__allow_groups__qÚ(UO qÛ(UAccessControl.UserqÜU UserFolderqÝttQU _Add_MailHost_objects_PermissionqÞ(hh h tqßU_Access_session_data_Permissionqà(hh6h h tqáU_Change_DTML_Methods_Permissionqâ(hh h tqãU_query_Permissionqä]qå(hh6h h eU zwo_imagesqæ(UO qç(hUFolderqèttQU$_Create_Transient_Objects_Permissionqé(hh h tqêU#_Change_Images_and_Files_Permissionqë(hh h tqìU!_Change_Python_Scripts_Permissionqí(hh h tqîU_Take_ownership_Permissionqï(hh h tqðhs(UOqñ(h>U PythonScriptqòttQUidqóU zwook_099_2qôU_Manage_Vocabulary_Permissionqõ(hh h tqöU_Add_Folders_Permissionq÷(hh h tqøU _Change_configuration_Permissionqù(hh h tqúUhomeqû(UOqü(h>U PythonScriptqýttQU%_Add_Virtual_Host_Monsters_Permissionqþ(hh h tqÿU_Search_ZCatalog_Permissionr(hh6h h trU(_Manage_ZCatalogIndex_Entries_Permissionr(hh h trhÂ(UOr(UProducts.MailHost.MailHostrUMailHostrttQU type_zwookrUsystemrU_Query_Vocabulary_Permissionr (hh6h h tr U'_Change_Database_Connections_Permissionr (hh h tr U _Log_to_the_Event_Log_Permissionr (hh h trU_Use_Factories_Permissionr(hh h trU_Log_Site_Errors_Permissionr(hh h trh„(UOr(hUFolderrttQU style_cssr(UOr(h>U PythonScriptrttQU%_Change_Browser_Id_Manager_Permissionr(hh h trU-_Add_Z_Gadfly_Database_Connections_Permissionr(hh h trUstandard_html_headerr(UOr(h>U PythonScriptrttQU!_Change_cache_managers_Permissionr(hh h tr U'_Change_Session_Data_Manager_Permissionr!(hh h tr"U_Define_permissions_Permissionr#]r$haUinstallr%(UOr&(h>U PythonScriptr'ttQh[(hÛ(hÜU UserFolderr(ttQUzwo_infor)(UOr*(hUFolderr+ttQUacl_urlr,(UOr-(h>U PythonScriptr.ttQU index_html2r/(UOr0(h>U PythonScriptr1ttQU_Add_ChatItems_Permissionr2(hh h tr3U_Manage_properties_Permissionr4(hh h tr5U_Use_external_editor_Permissionr6(hh h tr7U _Add_Database_Methods_Permissionr8(hh h tr9U zwo_renamer:(UOr;(h>U PythonScriptr<ttQU_Add_Python_Scripts_Permissionr=(hh h tr>U _Add_Temporary_Folder_Permissionr?(hh h tr@Ustandard_html_footerrA(UOrB(h>U PythonScriptrCttQU_Manage_users_PermissionrD(hh h trEU!_Use_mailhost_services_PermissionrF(hh6h h trGU zwo_upgradesrH(UOrI(hUFolderrJttQUtoolboxrK(UOrL(h>U PythonScriptrMttQU#_View_management_screens_PermissionrN(hh h trOUzwo_borP(UOrQ(hUFolderrRttQU"_Create_class_instances_PermissionrS(hh h trTU_Add_ZCatalogs_PermissionrU(hh h trVU'_Access_contents_information_PermissionrW(hh6h h trXU_Copy_or_Move_PermissionrY(hh6h h trZU _Add_External_Methods_Permissionr[(hh h tr\U_Add_Site_Roots_Permissionr](hh h tr^U _Use_Database_Methods_Permissionr_(hh6h h tr`Ustandard_printable_headerra(UOrb(h>U PythonScriptrcttQU_Add_ZRTChats_Permissionrd(hh h treU_Add_Versions_Permissionrf(hh h trgU_Delete_objects_Permissionrh(hh h triUstandard_printable_footerrj(UOrk(h>U PythonScriptrlttQU$_Access_Transient_Objects_Permissionrm(hh6h h trnUsystemroUracinerpU zwo_modulesrq(UOrr(hUFolderrsttQUtest_connectionrt(UO ru(UOFS.DTMLDocumentrvU DTMLDocumentrwttQUtitlerxUU%_Test_Database_Connections_Permissionry(hh h trzUacl_objr{(UO!r|(h>U PythonScriptr}ttQhe(UO"r~(h>U PythonScriptrttQU_Add_Vocabularies_Permissionr€(hh h trU_Manage_WebDAV_Locks_Permissionr‚(hh h trƒU __ac_roles__r„(h UOwnerr…hh6h tr†U(_Save_discard_Version_changes_Permissionr‡(hh h trˆUlasttraceinstallr‰(UO#rŠ(h>U PythonScriptr‹ttQU_Change_bindings_PermissionrŒ(hh h trU#_Manage_ZCatalog_Entries_PermissionrŽ(hh h trU!_Import_Export_objects_Permissionr(hh h tr‘U,_Add_Documents__Images__and_Files_Permissionr’(hh h tr“U_FTP_access_Permissionr”(hh h tr•U_Add_Page_Templates_Permissionr–(hh h tr—U_View_History_Permissionr˜(hh6h h tr™U_WebDAV_access_Permissionrš(hh6h h tr›U_Change_Versions_Permissionrœ(hh h trUaddfilerž(UO$rŸ(h>U PythonScriptr ttQUzwo_libr¡(UO%r¢(hUFolderr£ttQU+_Open_Close_Database_Connections_Permissionr¤(hh h tr¥U_Edit_Factories_Permissionr¦(hh h tr§U*_Open_Close_Database_Connection_Permissionr¨(hh h tr©u.Oü((U OFS.FolderqUFolderqtqNt.}q(UHOWTOstructureq(UO&q(UOFS.DTMLDocumentqU DTMLDocumentqtq tq QUidq Uzwo_docq U__ac_local_roles__q }qUxavq]qUOwnerqasU HOWTOStartDevq(UO'q(hU DTMLDocumentqtqtqQU_objectsq(}q(U meta_typeqU DTML DocumentqUidqU HOWTOModulesqu}q(U meta_typeqU DTML DocumentqUidq U license.txtq!u}q"(hUScript (Python)q#h U index_htmlq$u}q%(U meta_typeq&U DTML Documentq'Uidq(hu}q)(h&h'h(UHOWTOdescriptionq*u}q+(U meta_typeq,U DTML Documentq-Uidq.U HOWTOnoyauq/u}q0(U meta_typeq1UFolderq2Uidq3Uimagesq4u}q5(h1U DTML Documentq6h3UHOWTOstructureq7u}q8(h1h6h3UREFmemq9u}q:(U meta_typeq;U DTML DocumentqutU HOWTOModulesq?(UO(q@(hU DTMLDocumentqAtqBtqCQU _propertiesqD(}qE(h UtitleqFUmodeqGUwUtypeqHUstringqIu}qJ(h U type_zwookqKhHhIu}qL(UidqMUsystemqNUtypeqOUstringqPuthKUsystemqQh9(UO)qR(hU DTMLDocumentqStqTtqUQh>(UO*qV(hU DTMLDocumentqWtqXtqYQh/(UO+qZ(hU DTMLDocumentq[tq\tq]QU index_htmlq^(UO,q_(U#Products.PythonScripts.PythonScriptq`U PythonScriptqatqbtqcQUsystemqdUdataqeh*(UO-qf(hU DTMLDocumentqgtqhtqiQU license.txtqj(UO.qk(hU DTMLDocumentqltqmtqnQhFU noyau - docqoUimagesqp(UO/qq(hUFolderqrtqstqtQu.O’((U OFS.FolderqUFolderqtqNt.}q(U__ac_local_roles__q}qU$_Add_Session_Data_Manager_Permissionq(UManagerqtU _propertiesq (}q (Uidq Utitleq Umodeq UwUtypeqUstringqu}q(h U type_zwookqhUstringqu}q(h UsystemqhUstringqu}q(UidqUstandby_contentqUtypeqUstringqu}q(UidqUversionqUtypeqUstringqutU!_Change_Page_Templates_Permissionq (hU config_zwookq!tU_Manage_Access_Rules_Permissionq"(hh!tU-_Manage_Transient_Object_Container_Permissionq#(hU Anonymousq$U Authenticatedq%h!tU_Undo_changes_Permissionq&(hh$h%h!tU_WebDAV_Lock_items_Permissionq'(hh$h%h!tU!_Change_DTML_Documents_Permissionq((hh$h%h!tU)_Add_XSL_Transformer_Registrys_Permissionq)(UManagerq*tU_Edit_Permissionq+(h*tU_WebDAV_Unlock_items_Permissionq,(hh$h%h!tU_View_Permissionq-(hh$h%h!tU!_Change_cache_settings_Permissionq.(htU"_Add_Browser_Id_Manager_Permissionq/(htU#_Change_External_Methods_Permissionq0(htU zwo_dossierq1(UO0q2(hUFolderq3tq4tq5QU#_Change_Images_and_Files_Permissionq6(hh$h%h!tU#_Change_Lock_Information_Permissionq7(hh!tU_Change_proxy_roles_Permissionq8(htU"_Add_RAM_Cache_Managers_Permissionq9(htU/_Add_Accelerated_HTTP_Cache_Managers_Permissionq:(htU*_Add_Transient_Object_Container_Permissionq;(hh$h%tU_objectsq<(}q=(U meta_typeq>U DTML Documentq?Uidq@UtexteqAu}qB(h>UFolderqCh@U zwo_dossierqDu}qE(U meta_typeqFUFolderqGUidqHUmembresqIu}qJ(U meta_typeqKUFolderqLUidqMUzwo_standby_contentqNu}qO(U meta_typeqPUScript (Python)qQUidqRUview_standby_elementqSu}qT(U meta_typeqUUImageqVUidqWUanybrowser.gifqXutU_Add_User_Folders_PermissionqY(htU_Change_permissions_PermissionqZ(hh!thS(UO1q[(U#Products.PythonScripts.PythonScriptq\U PythonScriptq]tq^tq_QUversionq`U0.99.2qaU_Manage_Z_Classes_Permissionqb(hh!tU,_Add_Z_MySQL_Database_Connections_Permissionqc(h*tU._Access_arbitrary_user_session_data_Permissionqd(hh$h%h!thN(UO2qe(hUFolderqftqgtqhQU _Add_MailHost_objects_Permissionqi(hh!tU_Access_session_data_Permissionqj(hh$h%h!tU_Change_DTML_Methods_Permissionqk(hh!tU$_Create_Transient_Objects_Permissionql(hh!tU_Use_external_editor_Permissionqm(hU config_zwookqntU_Change_bindings_Permissionqo(htU!_Change_Python_Scripts_Permissionqp(htUidqqUzwookqrU_Manage_Vocabulary_Permissionqs(hh!tU_Add_Folders_Permissionqt(hh$h%h!tU_Join_leave_Versions_Permissionqu(htU%_Add_Virtual_Host_Monsters_Permissionqv(htU_Search_ZCatalog_Permissionqw(hh$h%h!tU(_Manage_ZCatalogIndex_Entries_Permissionqx(hh!tU type_zwookqyUsystemqzU _Change_configuration_Permissionq{(hh!tU_Query_Vocabulary_Permissionq|(hh$h%h!tU'_Change_Database_Connections_Permissionq}(hh!tU _Log_to_the_Event_Log_Permissionq~(htU_Use_Factories_Permissionq(hh!tU_Log_Site_Errors_Permissionq€(htU,_Add_Documents__Images__and_Files_Permissionq(hh$h%h!tU _Add_Temporary_Folder_Permissionq‚(htU_Add_XML_Transforms_Permissionqƒ(h*tU%_Change_Browser_Id_Manager_Permissionq„(htU-_Add_Z_Gadfly_Database_Connections_Permissionq…(hh!tUmembresq†(UO4q‡(hUFolderqˆtq‰tqŠQU!_Change_cache_managers_Permissionq‹(htU'_Change_Session_Data_Manager_PermissionqŒ(htU_Add_ChatItems_Permissionq(hhntU_Manage_properties_PermissionqŽ(hh$h%h!tU _Add_Database_Methods_Permissionq(hh!tU_Add_Python_Scripts_Permissionq(htU#_Change_Database_Methods_Permissionq‘(hh!tU_Manage_users_Permissionq’(htU!_Use_mailhost_services_Permissionq“(hh$h%h!tU(_Save_discard_Version_changes_Permissionq”(htU#_View_management_screens_Permissionq•(hh!tU"_Create_class_instances_Permissionq–(hh!tU_Add_ZCatalogs_Permissionq—(hh!tU'_Access_contents_information_Permissionq˜(hh$h%h!tU_Copy_or_Move_Permissionq™(hh$h%h!tU_Change_user_folder_Permissionqš(h*tU _Add_External_Methods_Permissionq›(htU_Add_Site_Roots_Permissionqœ(htU _Use_Database_Methods_Permissionq(hh!tU_Add_ZRTChats_Permissionqž(htU_Add_Versions_PermissionqŸ(htU&_Manage_XML_Transform_Cache_Permissionq (h*tU_Delete_objects_Permissionq¡(hh$h%h!tU$_Access_Transient_Objects_Permissionq¢(hh$h%h!tUsystemq£Uracineq¤hX(UO3q¥(U OFS.Imageq¦UImageq§tq¨tq©QUtitleqªUHomeq«U%_Test_Database_Connections_Permissionq¬(hh!tU_Edit_Factories_Permissionq­(hh!tU_Add_Vocabularies_Permissionq®(hh!tU_Manage_WebDAV_Locks_Permissionq¯(hh!tU __ac_roles__q°(UManagerq±UOwnerq²U Anonymousq³U Authenticatedq´tU,_Add_XML_Transform_Cache_Managers_Permissionqµ(h*tU_Add_Zope_Tutorials_Permissionq¶(htU#_Manage_ZCatalog_Entries_Permissionq·(hh!tU!_Import_Export_objects_Permissionq¸(hh$h%tU_Add_Pluggable_Index_Permissionq¹(htU_FTP_access_Permissionqº(hh$h%h!tU_Add_Page_Templates_Permissionq»(htU_View_History_Permissionq¼(hh$h%h!tU_WebDAV_access_Permissionq½(hh$h%h!tU_Change_Versions_Permissionq¾(hthU1U_Take_ownership_Permissionq¿(hh!tUtexteqÀ(UO5qÁ(UOFS.DTMLDocumentqÂU DTMLDocumentqÃtqÄtqÅQU+_Open_Close_Database_Connections_PermissionqÆ(hh!tU*_Open_Close_Database_Connection_PermissionqÇ(hh!tU!_Manage_XML_Transforms_PermissionqÈ(h*tu.O ((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (U _getattr_q U_getattrq U_print_q U_printq UcontextqUmemqU containerqtqU co_argcountqKubU_paramsqUUidqU index_htmlqU__ac_local_roles__q}qUgregq]qUOwnerqasU _bind_namesq(cShared.DC.Scripts.Bindings NameAssignments qoq}qU_asgnsq}q (Uname_containerq!hU name_subpathq"Utraverse_subpathq#U name_m_selfq$Uscriptq%U name_contextq&husbU func_defaultsq'NU_codeq(T&csd„ZdS(Ncs·t}tƒ}||tdƒdƒƒ}|dIJ|d|tdƒƒdIJ|dIJ|dIJ |d IJ |d IJ |d IJ |d IJ|ƒSdS( Nszwo_libsmem_datas4

Première configuration de Zwook

s
ssTConfiguration d'un utilisateur administrateur de Zwook

s7Choisir un login
sGChoisir un password

s
s;
(s _getattr_s_getattrs_print_s_printscontextsmems container(s _getattr_s_getattrs_print_s_printscontextsmems container((sScript (Python)s index_htmls- !      (s index_html(s index_html((sScript (Python)ssq)U_bodyq*Ttmem=context.zwo_lib.mem_data() #print context.standard_html_header(mem) print '

Première configuration de Zwook

' print '
' print '' print 'Configuration d\'un utilisateur administrateur de Zwook

' print 'Choisir un login
' print 'Choisir un password

' print '
' print '
' #print context.standard_html_footer(mem) return printed q+U Script_magicq,KUwarningsq-)Uerrorsq.)U Python_magicq/U*ë q0u.O ((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Urepq U _getitem_q U_getitemq U _getattr_q U_getattrqU AccessControlqUgetSecurityManagerqUaUchlistePermVisiteurqUstringqUlistePermVisiteurqUchlistePermEditeurqUlistePermEditeurqU liste_permqUbUcU nonvisibleqUcontextqUrepgrqUlg1qUlgqUgrqUchgvqUchgeqUgvqUgeq Ugtq!U co_argcountq"KubU_paramsq#Urepq$Uidq%Uzwo_droits_folderq&U__ac_local_roles__q'}q(Uxavq)]q*UOwnerq+asU _bind_namesq,(cShared.DC.Scripts.Bindings NameAssignments q-oq.}q/U_asgnsq0}q1(Uname_containerq2U containerq3U name_subpathq4Utraverse_subpathq5U name_m_selfq6Uscriptq7U name_contextq8Ucontextq9usbU func_defaultsq:NU_codeq;T¯csd„ZdS(Ncs|t}t}dkl}|ƒ}||dƒƒdjo dSn d}"|tdƒ|dƒ} $d} Y|tdƒ| dƒ} [g} \||d ƒƒ}]x2|d ]r%}|^| d ƒ||d ƒƒqÁWdd g}e||tdƒdƒ}g||dƒƒ}hg}jxR|d jrE}k||j o.l|djo|m|d ƒ|ƒnnq>Wo|||dƒdƒdjol|p|dƒd | ƒ|q|dƒ| ƒrx,|d rr}|s|dƒ|gƒqçWudSnw|||dƒdƒ}x|||dƒdƒ}y|tdƒ|dƒ}z|tdƒ|dƒ}|||dƒd | ƒ|}|dƒgƒx,|d r}|€|dƒ|gƒq¿W‚x@|d ‚r3}ƒ|djo|„|dƒ|| ƒnqñW…x@|d …r3}†|djo|‡|dƒ|| ƒnq7WŒdSdS(N(sgetSecurityManagerscalledByExecutableisnonsàAccess Transient Objects Access arbitrary user session data Access contents information Access session data Add Documents, Images, and Files Add Folders Add Transient Object Container Change DTML Documents Change Images and Files Copy or Move Delete objects FTP access Import/Export objects Manage Transient Object Container Manage properties Query Vocabulary Search ZCatalog Undo changes Use mailhost services View View History WebDAV Lock items WebDAV Unlock items WebDAV accessssplits s8Access Transient Objects Access arbitrary user session data Access contents information Access session data Add ChatItems Add Database Methods Add Documents, Images, and Files Add Folders Add MailHost objects Add Vocabularies Add Z Gadfly Database Connections Add ZCatalogs Change DTML Documents Change DTML Methods Change Database Connections Change Database Methods Change Images and Files Change Lock Information Change Page Templates Change configuration Change permissions Copy or Move Create Transient Objects Create class instances Delete objects Edit Factories FTP access Manage Access Rules Manage Transient Object Container Manage Vocabulary Manage WebDAV Locks Manage Z Classes Manage ZCatalog Entries Manage ZCatalogIndex Entries Manage properties Open/Close Database Connection Open/Close Database Connections Query Vocabulary Search ZCatalog Take ownership Test Database Connections Undo changes Use Database Methods Use Factories Use external editor Use mailhost services View View History View management screens WebDAV Lock items WebDAV Unlock items WebDAV accessspermission_settingsisappendsnamesManagerszwo_infosgroupss objectIdsss zwo_dossiers new_droitss0s manage_rolesmanage_acquiredPermissionssgroupes_visiteurssgroupes_editeurss&(s _getitem_s_getitems _getattr_s_getattrs AccessControlsgetSecurityManagersaschlistePermVisiteursstringslistePermVisiteurschlistePermEditeurslistePermEditeurs liste_permsrepsbscs nonvisiblescontextsrepgrslg1slgsgrschgvschgesgvsgesg(sreps _getitem_s_getitems _getattr_s_getattrs AccessControlsgetSecurityManagersaschlistePermVisiteursstringslistePermVisiteurschlistePermEditeurslistePermEditeurs liste_permsbscs nonvisiblescontextsrepgrslg1slgsgrschgvschgesgvsgesg((sScript (Python)szwo_droits_foldersP    5    % (szwo_droits_folder(szwo_droits_folder((sScript (Python)ssqTÓ from AccessControl import getSecurityManager a=getSecurityManager() if a.calledByExecutable()<2: return 'non' # DEBUT LISTE PERMISSIONS ##################### chlistePermVisiteur="""Access Transient Objects Access arbitrary user session data Access contents information Access session data Add Documents, Images, and Files Add Folders Add Transient Object Container Change DTML Documents Change Images and Files Copy or Move Delete objects FTP access Import/Export objects Manage Transient Object Container Manage properties Query Vocabulary Search ZCatalog Undo changes Use mailhost services View View History WebDAV Lock items WebDAV Unlock items WebDAV access""" listePermVisiteur=string.split(chlistePermVisiteur,'\n') chlistePermEditeur="""Access Transient Objects Access arbitrary user session data Access contents information Access session data Add ChatItems Add Database Methods Add Documents, Images, and Files Add Folders Add MailHost objects Add Vocabularies Add Z Gadfly Database Connections Add ZCatalogs Change DTML Documents Change DTML Methods Change Database Connections Change Database Methods Change Images and Files Change Lock Information Change Page Templates Change configuration Change permissions Copy or Move Create Transient Objects Create class instances Delete objects Edit Factories FTP access Manage Access Rules Manage Transient Object Container Manage Vocabulary Manage WebDAV Locks Manage Z Classes Manage ZCatalog Entries Manage ZCatalogIndex Entries Manage properties Open/Close Database Connection Open/Close Database Connections Query Vocabulary Search ZCatalog Take ownership Test Database Connections Undo changes Use Database Methods Use Factories Use external editor Use mailhost services View View History View management screens WebDAV Lock items WebDAV Unlock items WebDAV access""" listePermEditeur=string.split(chlistePermEditeur,'\n') liste_perm=[] b=rep.permission_settings() for c in b: liste_perm.append(c['name']) ##################### # FIN LISTE PERMISSIONS ##################### nonvisible=['Manager'] repgr=context.zwo_info.groups lg1=repgr.objectIds() lg=[] for a in lg1: if not a in nonvisible: if a<>'' : lg.append(a) if rep.zwo_dossier.new_droits=='0': rep.manage_role('Manager', liste_perm) rep.manage_acquiredPermissions(liste_perm) for gr in lg: rep.manage_role(gr, []) return chgv=rep.zwo_dossier.groupes_visiteurs chge=rep.zwo_dossier.groupes_editeurs gv=string.split(chgv,'&') ge=string.split(chge,'&') rep.manage_role('Manager', liste_perm) rep.manage_acquiredPermissions([]) for gr in lg: rep.manage_role(gr, []) for g in gv: if g<>'': rep.manage_role(g, listePermVisiteur) for g in ge: if g<>'': rep.manage_role(g, listePermEditeur) return q?U Script_magicq@KUwarningsqA)U _proxy_rolesqB(UManagerqCtqDU Python_magicqEU*ë qFu.O ‚((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Umemq U _getitem_q U_getitemq U _getattr_q U_getattrqU_print_qU_printqU AccessControlqUgetSecurityManagerqUaUcheminqUlimgqUw_line1qUcoteqUcouleurqUw_lineqUhere_objqU parse_objqUstringqUid_listqUrangeqUlenqUaffqUdosq Ulieniq!U last_lineq"UnUimgq#Ustrq$tq%U co_argcountq&KubU_paramsq'Umemq(Uidq)U home_imageq*U__ac_local_roles__q+}q,Uxavq-]q.UOwnerq/asU_dav_writelocksq0(UO6q1(U Persistenceq2UPersistentMappingq3tq4tq5QU _bind_namesq6(cShared.DC.Scripts.Bindings NameAssignments q7oq8}q9U_asgnsq:}q;(Uname_containerqUtraverse_subpathq?U name_m_selfq@UscriptqAU name_contextqBUcontextqCusbU func_defaultsqDNU_codeqETîcsd„ZdS(Ncs”t}t}tƒ}dkl}|ƒ} || dƒƒdjo dSnd} d} d} d} d }| d}d ||d ƒ}|}| djo | d jo_ |td ƒ| dƒ}!x:tt|ƒƒd!r!} "||||| ƒƒ}qWn#d}$|d}&| djoç'|d}(|d})|d}+|d||dƒƒd},|d}-xa||dƒdƒd-rE}.d|d}/|d|d||d}0|d}qÆW1|d }2|d!}3|d"}n4|d#}6|d$}8d}9d}:xð||d%ƒd&ƒd:rÔ}|;|d'ƒd(jp)||d'ƒd)jp||d'ƒd*jo‰<||jo=|d+}>|d,}n?|d-}D|d.}E|d||d/ƒƒd0}F|d1||d/ƒƒd2t| ƒd3t| ƒd4}G|d5}H|d}I||||dƒƒdd6…ƒd7t||d8ƒƒd9t||d:ƒƒ}J|d;}K|d<}L|d=}M|d}N|||jo'O|d>}P|d?}Q|}nnq„WR|d@}S|d<}T||IJV|ƒSdS(AN(sgetSecurityManagerscalledByExecutableisnons bui68ddlk44iKiis#FFFFCCsÛ id_list=string.split(context.REQUEST.URL1,"/") here_obj=context.zwook_obj() #print id_list[4:] #print here_obj.absolute_url() for elem in id_list[4:]: #print here_obj[elem].getId()+'
' here_obj=here_obj[elem] srep_objsssplits.is@ ss<ss colspan="s rowspan="s align="s valign="s bgcolor="s class="bordures
ssds; sgetIdss
s objectIdssFolders s   s7 ss
s


s
s3 s objectValuessImages content_types image/jpegs image/gifs image/pngs s6 s$ s s6 s
sv
s absolute_urls">s s2
i s swidthsxsheights s
s
(s _getitem_s_getitems _getattr_s_getattrs_print_s_prints AccessControlsgetSecurityManagersascheminslimgsw_line1scotescouleursw_linesmemshere_objs parse_objsstringsid_listsrangeslensaffsdosslienis last_linesnsimgsstr(smems _getitem_s_getitems _getattr_s_getattrs_print_s_prints AccessControlsgetSecurityManagersascheminslimgsw_line1scotescouleursw_lineshere_objs parse_objsstringsid_listsrangeslensaffsdosslienis last_linesnsimgsstr((sScript (Python)s home_imagesv%         !#     ! $!      'B   !=  V         (s home_image(s home_image((sScript (Python)ssqFU_bodyqGTç from AccessControl import getSecurityManager a=getSecurityManager() if a.calledByExecutable()<2: return 'non' chemin='bui68ddlk44' limg=75 w_line1=4 cote=1 #~ oooo o o o oo oo o o #~ o o o o o o o o o oo #~ o o o o o o o o o oo #~ oooo o o oo oo o o #~couleur : couleur de la barre de titre du browser #~limg : largeur de la mini-image affichée #~w_line : nombre d'images affichées en largeur - 1 couleur='#FFFFCC' w_line=w_line1-1 #~~~~~~~~~ récupération de l'objet courrant ~~~~~~~~~~~~~~~~~~~ """ id_list=string.split(context.REQUEST.URL1,"/") here_obj=context.zwook_obj() #print id_list[4:] #print here_obj.absolute_url() for elem in id_list[4:]: #print here_obj[elem].getId()+'
' here_obj=here_obj[elem] """ here_obj=mem['rep_obj'] #~~~~~~~~~ parsing de l'objet courrant ~~~~~~~~~~~~~~~~~~~ parse_obj=here_obj if chemin<>'bui68ddlk44' and chemin<>'': id_list=string.split(chemin,".") for a in range(len(id_list)): parse_obj=parse_obj[id_list[a]] aff='\n' aff=aff+'' #~~~~~~~~~ cote ~~~~~~~~~~~~~~~~~~~ if cote==1: aff=aff+'' aff=aff+'
' aff=aff+'' aff=aff+'' #aff=aff+'
' aff=aff+' '+parse_obj.getId()+'' aff=aff+'
' for dos in parse_obj.objectIds('Folder'): lieni='' aff=aff+'  '+lieni+' '+lieni+dos+'' aff=aff+'
' aff=aff+'
' aff=aff+'


' aff=aff+'
' #~~~~~~~~~ parsing de l'objet courrant ~~~~~~~~~~~~~~~~~~~ aff=aff+'\n' #~boucle affichage des images last_line=0 n=0 for img in parse_obj.objectValues('Image'): if img.content_type=='image/jpeg' or img.content_type=='image/gif' or img.content_type=='image/png': if n==last_line: aff=aff+'\n' aff=aff+'\n' aff=aff+'\n' n=n+1 if n>last_line+w_line: aff=aff+'\n' aff=aff+'\n' last_line=n aff=aff+'
\n' #aff=aff+'/ n='+str(n)+'/ last_line='+str(last_line)+' / t='+str(last_line+w_line) #if img.width' #else: aff=aff+'
' aff=aff+'' aff=aff+'' aff=aff+'
\n' aff=aff+'' aff=aff+img.getId()[:12]+' '+str(img.width)+'x'+str(img.height) aff=aff+'\n' aff=aff+'
' aff=aff+'
\n' aff=aff+'
' print aff return printed qHU Script_magicqIKUwarningsqJ)UerrorsqK)U Python_magicqLU*ë qMu.O ¡((UAccessControl.UserqU UserFolderqtqNt.}q(Udataq(UO7q(U PersistenceqUPersistentMappingqtq tq QU__ac_local_roles__q }q Uxavq ]qUOwnerqasu.O ˜((U OFS.FolderqUFolderqtqNt.}q(UidqU zwo_imagesqU__ac_local_roles__q}qUxavq ]q UOwnerq asU_objectsq (}q (U meta_typeqUFolderqhUadminqu}q(hhhUconfigqu}q(hhhUiconesqu}q(hUImageqhU pixel.gifqu}q(U meta_typeqUFolderqUidqUboqutU _propertiesq(}q(hUtitleqUmodeq UwUtypeq!Ustringq"u}q#(hU type_zwookq$h!Ustringq%u}q&(hUsystemq'h!Ustringq(utU type_zwookq)Usystemq*Uconfigq+(UO8q,(hUFolderq-tq.tq/QUsystemq0Udataq1h(UO9q2(hUFolderq3tq4tq5QUiconesq6(UO:q7(hUFolderq8tq9tq:QUadminq;(UO;q<(hUFolderq=tq>tq?QhUnoyau - imagesq@h(UOsq/Uerrorsq0)U_bodyq1T5from AccessControl import getSecurityManager a=getSecurityManager() if a.calledByExecutable()<2: return 'non' r=context.REQUEST r.form['name']=user r.form['password']='password' r.form['confirm']='pconfirm' r.form['roles']=roles r.form['domains']=[] au=context.acl_users au.manage_users('Change',r) return q2U Script_magicq3KUwarningsq4)U _proxy_rolesq5(UManagerq6tq7U Python_magicq8U*ë q9u.O1Ö((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Udataq U_write_q U_writeq U _getitem_q U_getitemqU _getattr_qU_getattrqU_print_qU_printqU AccessControlqUgetSecurityManagerqUaUmemqUrepqUcontextqUvalqUprinttabqU printcaseqtqU co_argcountqKubU_paramsqUdataqUidqUhomeq U__ac_local_roles__q!}q"Uxavq#]q$UOwnerq%asU _bind_namesq&(cShared.DC.Scripts.Bindings NameAssignments q'oq(}q)U_asgnsq*}q+(Uname_containerq,U containerq-U name_subpathq.Utraverse_subpathq/U name_contextq0hU name_m_selfq1Uscriptq2usbU func_defaultsq3NU_codeq4Thcsd„ZdS(Ncs t}t}t}tƒ}dkl } | ƒ} || dƒƒdjo dSn|‰|ˆdƒ‰d|ˆƒd< ||tdƒd ƒ|ˆd ƒƒ‰ ‡‡‡‡d †‰.‡‡d †‰ňd ƒ} Ç|| IJÈ|ƒSdS(N(sgetSecurityManagerscalledByExecutableisnonsrep_objisinskinszwo_libs tab_to_vals zwo_dossiercs? t}t}t} d}||ˆƒd<||ˆdƒ|ƒ} t | ƒdjoe|t dƒ|| dƒdƒ}t |ƒdjo'ˆd||dƒƒ}|Snng}x=| dr0}|djo||dƒ|ƒnqÜWx|dr}|ˆ|ƒ}d }||d ƒd ƒo ||d ƒ}n"||||td ƒ||d ƒƒdƒˆ|ƒ}#|d jo$|d}n%|djo&|d}n'|djo(|d}n)|djo*|d}nqW,|SdS(Nss couleur_textsccissplitisTsappends+s hasPropertys dispositions zwo_modulesselements view_htmls
s-s s--s   s++s

(s_write_s_writes _getitem_s_getitems _getattr_s_getattrspcasescolortxtsmemsvalscasesccslensstrings tabinlistsprinttabsnccselsrepszelemsspscontext(scasescolortxts_write_s_writes _getitem_s_getitems _getattr_s_getattrspcasesmemsvalsccslensstrings tabinlistsprinttabsnccselsrepszelemsspscontext(svalsprinttabsrepsmem(sScript (Python)s printcase s6 $  :c.Qs .t}t}t}tƒ}/||ˆdƒ|ƒ} 0||ˆdƒ|ƒ} 2h} 3d} 4d}5d}6g}7x(| d7r}8xÜ|d8rÏ}9t| ƒdt|ƒ}:xŒ:|| dƒ|ƒor;| d} <t| ƒdt|ƒ}=| d|jo0|>|dƒ|ƒ?|d}@d} nqÎWA||ˆdƒ|ƒ}B||d ƒ}C||d ƒ}D|d jo Ed }nF|d jo Gd }nHt|ƒ}It|ƒ}Jxpt|ƒdJr]}KxQt|ƒdKr>}Lt| |ƒdt||ƒ}Md || ƒ|s.bordures{border:s px solid s couleurcadres;}ss class=borduresmarges couleurfonds#000000s couleurtextesleftsalignsvalignss
s
sss(.s_write_s_writes _getitem_s_getitems _getattr_s_getattrs_print_s_printsvalstabsptstablesveriftabsisjs nbcolonness lignevideslignescasesstrsidcasespcscolspansrowspansintsrangesiisjjsidcsnblignesspptsptcadresmargetabscouleurfondtabscouleurtextetabsaligntabs valigntabspcccsppcs textcolorsppccspccadrescelsmargeints printcasesaffcel(.stabs_write_s_writes _getitem_s_getitems _getattr_s_getattrs_print_s_printsvalsptstablesveriftabsisjs nbcolonness lignevideslignescasesstrsidcasespcscolspansrowspansintsrangesiisjjsidcsnblignesspptsptcadresmargetabscouleurfondtabscouleurtextetabsaligntabs valigntabspcccsppcs textcolorsppccspccadrescelsmargeints printcasesaffcel(svals printcase(sScript (Python)sprinttab.sø         %     "&      .         ,%," """""   .   1     sT1(s_write_s_writes _getitem_s_getitems _getattr_s_getattrs_print_s_prints AccessControlsgetSecurityManagersasdatasmemsrepscontextsvals printcasesprinttab(sdatas_write_s_writes _getitem_s_getitems _getattr_s_getattrs_print_s_prints AccessControlsgetSecurityManagersasmemsrepscontextsvalsprinttabs printcase((smemsvalsrepsprinttabs printcasesScript (Python)shomes+   *"— (shome(shome((sScript (Python)ssq5U_bodyq6Tgfrom AccessControl import getSecurityManager a=getSecurityManager() if a.calledByExecutable()<2: return 'non' mem=data rep=mem['rep_obj'] mem['inskin']=0 val=context.zwo_lib.tab_to_val(rep.zwo_dossier) def printcase(case,colortxt): pcase='' mem['couleur_text']=colortxt cc=val['cc'][case] if len(cc)==1: tabinlist=string.split(cc[0],'T') if len(tabinlist)>1: pcase=printtab('T'+tabinlist[1]) return pcase ncc=[] for el in cc: if el<>'': ncc.append(el) for el in ncc: zelem=rep[el] sp='+' if zelem.hasProperty('disposition'): sp=zelem.disposition pcase=pcase+context.zwo_modules[zelem.element].view_html(mem,zelem) if sp=="+": pcase=pcase+"
" if sp=="-": pcase=pcase+" " if sp=="--": pcase=pcase+"  " if sp=="++": pcase=pcase+"

" return pcase def printtab(tab): pt=val['pt'][tab] table=val['ct'][tab] veriftab={} i=0 j=0 nbcolonnes=0 lignevide=[] for ligne in table: for case in ligne: idcase=str(i)+'-'+str(j) while veriftab.has_key(idcase): i=i+1 idcase=str(i)+'-'+str(j) if i+1>nbcolonnes: lignevide.append(j) j=j+1 i=0 pc=val['pc'][case] colspan=pc['colspan'] rowspan=pc['rowspan'] if colspan=='': colspan='1' if rowspan=='': rowspan='1' colspan=int(colspan) rowspan=int(rowspan) for ii in range(colspan): for jj in range(rowspan): idc=str(i+ii)+'-'+str(j+jj) veriftab[idc]='oui' i=i+colspan if j==0: nbcolonnes=i j=j+1 i=0 nblignes=j ppt='' if tab=='T1': if pt['hauteur']<>'': ppt=ppt+' height="'+pt['hauteur']+'"' if pt['largeur']<>'': ppt=ppt+' width="'+pt['largeur']+'"' else: ppt=ppt+' height="100%"' ppt=ppt+' width="100%"' ppt=ppt+' cellspacing="0"' ppt=ppt+' cellpadding="0"' ppt=ppt+' border="0"' ptcadre=pt['cadre'] if ptcadre<>'0' and ptcadre<>'': print '' ppt=ppt+' class=bordure'+tab margetab="0" if pt['marge']<>'': margetab=pt['marge'] couleurfondtab="" if pt['couleurfond']<>'': couleurfondtab=pt['couleurfond'] couleurtextetab="#000000" if pt['couleurtexte']<>'': couleurtextetab=pt['couleurtexte'] aligntab="left" if pt['align']<>'': aligntab=pt['align'] valigntab="left" if pt['valign']<>'': valigntab=pt['valign'] print '' j=0 for ligne in table: print '' for case in ligne: if case<>'': pc=val['pc'][case] pccc='' if pc['colspan']<>'' and pc['colspan']<>'1': pccc=pccc+' colspan="'+pc['colspan']+'"' if pc['rowspan']<>'' and pc['rowspan']<>'1': pccc=pccc+' rowspan="'+pc['rowspan']+'"' ppc='' if pc['hauteur']<>'': ppc=ppc+' height="'+pc['hauteur']+'"' if pc['largeur']<>'': ppc=ppc+' width="'+pc['largeur']+'"' if pc['align']<>'': ppc=ppc+' align="'+pc['align']+'"' else : ppc=ppc+' align="'+aligntab+'"' if pc['valign']<>'': ppc=ppc+' valign="'+pc['valign']+'"' else : ppc=ppc+' valign="'+valigntab+'"' if pc['couleurfond']<>'': ppc=ppc+' bgcolor="'+pc['couleurfond']+'"' elif couleurfondtab<>'': ppc=ppc+' bgcolor="'+couleurfondtab+'"' textcolor=couleurtextetab if pc['couleurtexte']<>'': textcolor=pc['couleurtexte'] ppcc='' pccadre=pc['cadre'] if pccadre<>'0' and pccadre<>'': print '' ppcc=' class="bordure'+case+'"' cel='' margeint=margetab if pc['marge']<>'': margeint=pc['marge'] if margeint<>'0': cel=cel+'' else: cel=cel+'' #Affichage cellule affcel=printcase(case,textcolor) if affcel=='': affcel='' cel=cel+affcel if margeint<>'0': cel=cel+'
' cel=cel+'' print cel j=j+1 print '' print '' return printed a=printtab('T1') print a return printed q7U Script_magicq8KUwarningsq9)Utitleq:Unoyauq;Uerrorsq<)U Python_magicq=U*ë q>u.O¿((UProducts.MailHost.MailHostqUMailHostqtqNt.}q(UtitleqUMailHost du siteqUidqUMailHostqU smtp_hostq U localhostq U smtp_portq KU__ac_local_roles__q }q Ugregq]qUOwnerqasu.Oi((U OFS.FolderqUFolderqtqNt.}q(U__ac_local_roles__q}qUxavq]qUOwnerq asU$_Add_Session_Data_Manager_Permissionq (UManagerq tU!_Change_Page_Templates_Permissionq (h tUtotligneq (UO=q(U#Products.PythonScripts.PythonScriptqU PythonScriptqtqtqQU-_Manage_Transient_Object_Container_Permissionq(h tU_Undo_changes_Permissionq(h tU_WebDAV_Lock_items_Permissionq(h tU!_Change_DTML_Documents_Permissionq(h tU_WebDAV_Unlock_items_Permissionq(h tU_View_Permissionq(h tU!_Change_cache_settings_Permissionq(h tU"_Add_Browser_Id_Manager_Permissionq(h tU#_Change_External_Methods_Permissionq(h tU#_Change_Images_and_Files_Permissionq(h tU#_Change_Lock_Information_Permissionq(h tU_Change_proxy_roles_Permissionq(h tU"_Add_RAM_Cache_Managers_Permissionq(h tU/_Add_Accelerated_HTTP_Cache_Managers_Permissionq (h tU_Add_Zope_Tutorials_Permissionq!(h tU*_Add_Transient_Object_Container_Permissionq"(h tU_objectsq#(}q$(U meta_typeq%UScript (Python)q&Uidq'Utestuq(u}q)(U meta_typeq*UScript (Python)q+Uidq,Utotligneq-utU_Add_User_Folders_Permissionq.(h tU_Change_permissions_Permissionq/(h tU_Add_Pluggable_Index_Permissionq0(h tU_Manage_Z_Classes_Permissionq1(h tU._Access_arbitrary_user_session_data_Permissionq2(h tU _Add_MailHost_objects_Permissionq3(h tU_Access_session_data_Permissionq4(h tU_Change_DTML_Methods_Permissionq5(h tU$_Create_Transient_Objects_Permissionq6(h tU_Use_external_editor_Permissionq7(h tU!_Change_Python_Scripts_Permissionq8(h th'Uzwo_devq9U_Manage_Vocabulary_Permissionq:(h tU_Add_Folders_Permissionq;(h tU_Add_ZCatalogs_Permissionq<(h tU_Use_Factories_Permissionq=(h tU%_Add_Virtual_Host_Monsters_Permissionq>(h tU_Search_ZCatalog_Permissionq?(h tU(_Manage_ZCatalogIndex_Entries_Permissionq@(h tU _Change_configuration_PermissionqA(h tU_Query_Vocabulary_PermissionqB(h tU'_Change_Database_Connections_PermissionqC(h tU _Log_to_the_Event_Log_PermissionqD(h tU_Manage_WebDAV_Locks_PermissionqE(h tU_Log_Site_Errors_PermissionqF(h tU,_Add_Documents__Images__and_Files_PermissionqG(h tU _Add_Temporary_Folder_PermissionqH(h tU%_Change_Browser_Id_Manager_PermissionqI(h tU-_Add_Z_Gadfly_Database_Connections_PermissionqJ(h tU!_Change_cache_managers_PermissionqK(h tU'_Change_Session_Data_Manager_PermissionqL(h tU_Add_ChatItems_PermissionqM(h tU_Manage_properties_PermissionqN(h tU _Add_Database_Methods_PermissionqO(h tU_Manage_Access_Rules_PermissionqP(h tU_Add_Python_Scripts_PermissionqQ(h tU#_Change_Database_Methods_PermissionqR(h tU_Manage_users_PermissionqS(h tU!_Use_mailhost_services_PermissionqT(h tU(_Save_discard_Version_changes_PermissionqU(h tU#_View_management_screens_PermissionqV(h tU"_Create_class_instances_PermissionqW(h tU_Join_leave_Versions_PermissionqX(h tU'_Access_contents_information_PermissionqY(h tU_Copy_or_Move_PermissionqZ(h tUtestuq[(UO>q\(hU PythonScriptq]tq^tq_QU _Add_External_Methods_Permissionq`(h tU_Add_Site_Roots_Permissionqa(h tU _Use_Database_Methods_Permissionqb(h tU_Add_ZRTChats_Permissionqc(h tU_Add_Versions_Permissionqd(h tU_Delete_objects_Permissionqe(h tU$_Access_Transient_Objects_Permissionqf(h tUtitleqgUU%_Test_Database_Connections_Permissionqh(h tU_Edit_Factories_Permissionqi(h tU_Add_Vocabularies_Permissionqj(h tU_Change_bindings_Permissionqk(h tU#_Manage_ZCatalog_Entries_Permissionql(h tU!_Import_Export_objects_Permissionqm(h tU_FTP_access_Permissionqn(h tU_Add_Page_Templates_Permissionqo(h tU_View_History_Permissionqp(h tU_WebDAV_access_Permissionqq(h tU_Change_Versions_Permissionqr(h tU_Take_ownership_Permissionqs(h tU+_Open_Close_Database_Connections_Permissionqt(h tU*_Open_Close_Database_Connection_Permissionqu(h tu.O Z((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (U _getattr_q U_getattrq U_print_q U_printq UcontextqUcolqU underlineqUunderqtqU co_argcountqKubUidqU style_cssqU__ac_local_roles__q}qUxavq]qUOwnerqasU _bind_namesq(cShared.DC.Scripts.Bindings NameAssignments qoq}qU_asgnsq}q (Uname_containerq!U containerq"U name_subpathq#Utraverse_subpathq$U name_contextq%hU name_m_selfq&Uscriptq'usbU func_defaultsq(NU_codeq)Tcsd„ZdS(Nc#s!t}tƒ}||||tdƒdƒdƒdƒ}||||tdƒdƒdƒdƒ}d}|djo d}n|d ||d IJ|d IJ |d IJ |d IJ |dIJ |dIJ |dIJ|dIJ|dIJ|ƒSdS(Nszwo_infosgenerals general_datashexas underlinessonstext-decoration:nones a:link,a:hover,a:visited {color:s}s.sans {text-decoration:none}s0.noir_sans {text-decoration:none; color:#000000}s1.blanc_sans {text-decoration:none; color:#FFFFFF}s1.rouge_sans {text-decoration:none; color:#FF0000}s2.rouge2_sans {text-decoration:none; color:#AA0000}s0.gris_sans {text-decoration:none; color:#999999}s0.noir_roll {text-decoration:none; color:#000000}s=.noir_roll:hover {text-decoration: underline;color: #990000;}(s _getattr_s_getattrs_print_s_printscontextscols underlinesunder(s _getattr_s_getattrs_print_s_printscontextscols underlinesunder((sScript (Python)s style_csss--          (s style_css(s style_css((sScript (Python)ssq*U_bodyq+TÑ#mem=context.zwo_lib.mem_data() col=context.zwo_info.general.general_data.hexa underline=context.zwo_info.general.general_data.underline under='' if underline<>'on': under='text-decoration:none' print 'a:link,a:hover,a:visited {color:'+col+under+'}' print '.sans {text-decoration:none}' print '.noir_sans {text-decoration:none; color:#000000}' print '.blanc_sans {text-decoration:none; color:#FFFFFF}' print '.rouge_sans {text-decoration:none; color:#FF0000}' print '.rouge2_sans {text-decoration:none; color:#AA0000}' print '.gris_sans {text-decoration:none; color:#999999}' print '.noir_roll {text-decoration:none; color:#000000}' print '.noir_roll:hover {text-decoration: underline;color: #990000;}' return printed q,U Script_magicq-KUwarningsq.)Utitleq/Unoyauq0Uerrorsq1)U Python_magicq2U*ë q3u.OMa((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Umemq U_write_q U_writeq U _getitem_q U_getitemqU _getattr_qU_getattrqU_print_qU_printqUcontextqUnomqUskinqU titre_pageqU titre_siteqUobqUlmqUlUstringqUdecqUdicoqUokqUchqUdec2qUlenq UmUkU tag_colorq!Utag_imgq"Uvalq#Ulppq$Utppq%UaUfpq&Upbdq'Ualq(U elem_placedq)Uprinttabq*U printcaseq+Ubtq,U co_argcountq-KubU_paramsq.Umemq/Uidq0Ustandard_html_headerq1U__ac_local_roles__q2}q3Uxavq4]q5UOwnerq6asU _bind_namesq7(cShared.DC.Scripts.Bindings NameAssignments q8oq9}q:U_asgnsq;}q<(Uname_containerq=U containerq>U name_subpathq?Utraverse_subpathq@U name_contextqAhU name_m_selfqBUscriptqCusbU func_defaultsqDNU_codeqET,csd„ZdS(Nc'Bs t}t}t}tƒ}|ˆdƒdjo<|dIJ|d|t dƒƒdIJ|ƒSnd|ˆƒd<|ˆd ƒ‰ |ˆd ƒ‰ |ˆd ƒ}  |||||ˆd ƒd ƒdƒdƒdƒ} |dIJ|d| d| dIJ|ˆdƒ}||dƒdƒo||dƒ}xq|drd}|tdƒ|dƒ}h}d}x©|drœ}|tdƒ|dƒ}t|ƒdjoe||dƒdjo||dƒdjo d}n||dƒ||ƒ||dƒ}"nh| d<ƒd?jo id@}"nk|dA|!d"|"IJog}#q‡‡‡‡‡dB†‰˜‡‡dC†‰?ˆdDdƒ\}}&A||IJB|ƒSdS(ENsdroit_vue_dossieris^



Cette page nécessite une identification.



s> Pour vous identifier sur le site,
cliquer sur Se connecter
isinskinsskin_idsskin_objsrep_toiszwo_objszwo_infosgenerals general_datassites ss��� - s���s config_objs hasPropertysmetasssplits!!s=scontentsssså sszwo_libs tab_to_valspages/csGNt}t}|Oˆdƒ|ƒoP|ˆ|ƒSnRdSdS(Nshas_keys(s _getitem_s_getitems _getattr_s_getattrstppskey(skeys _getitem_s_getitems _getattr_s_getattrstpp(stpp(sScript (Python)sfpNssdecvs topmargin="s" marginheight="s topmargin="0" marginheight="0"sdechs leftmargin="sdevhs" marginwidth="s leftmargin="0" marginwidth="0"s couleurpages bgcolor="simages background="szwo_urls/zwo_info/images/fonds/salignscenters
srights
sPas d'élément de skin ici
s[Déplacer la zone principale]s FINHEADERsappends*s hasPropertys dispositions zwo_modulesselements view_htmls+s
s-s s--s   s++s

(s_write_s_writes _getitem_s_getitems _getattr_s_getattrspcasescolortxtsmemsvalscasesccslensstrings tabinlistsprinttabswriteoksnomsnccselsskinszelemsspscontext(scasescolortxtswriteoks_write_s_writes _getitem_s_getitems _getattr_s_getattrspcasesmemsvalsccslensstrings tabinlistsprinttabsnomsnccselsskinszelemsspscontext(sskinsvalsprinttabsnomsmem(sScript (Python)s printcaseqs> $%   :c/XsÁ ˜t}t}t}tƒ} ™||ˆdƒ|ƒ} š||ˆdƒ|ƒ} œh} d}žd}Ÿd} g}¡x(| d¡r}¢xÜ|d¢rÏ}£t|ƒdt|ƒ}¤xŒ¤|| dƒ|ƒor¥|d}¦t|ƒdt|ƒ}§|d|jo0|¨|dƒ|ƒ©|d}ªd}nqÎW«||ˆdƒ|ƒ}¬||d ƒ}­||d ƒ}®|d jo ¯d }n°|d jo ±d }n²t|ƒ}³t|ƒ}´xpt|ƒd´r]}µxQt|ƒdµr>}¶t||ƒdt||ƒ}·d || ƒ|s .Sbordures{border:s px solid s couleurcadres;}ss class=Sborduresmarges couleurfonds#000000s couleurtextesleftsalignsvalignsss colspan="s rowspan="s align="s valign="s bgcolor="s class="Sborduress
sss(/s_write_s_writes _getitem_s_getitems _getattr_s_getattrs_print_s_printsvalstabsptstablesveriftabsisjs nbcolonness lignevideslignescasesstrsidcasespcscolspansrowspansintsrangesiisjjsidcsnblignesspptsptcadresmargetabscouleurfondtabscouleurtextetabsaligntabs valigntabswriteokspcccsppcs textcolorsppccspcasescelsmargeints printcasesaffcel(/stabswriteoks_write_s_writes _getitem_s_getitems _getattr_s_getattrs_print_s_printsvalsptstablesveriftabsisjs nbcolonness lignevideslignescasesstrsidcasespcscolspansrowspansintsrangesiisjjsidcsnblignesspptsptcadresmargetabscouleurfondtabscouleurtextetabsaligntabs valigntabspcccsppcs textcolorsppccspcasescelsmargeints printcasesaffcel(svals printcase(sScript (Python)sprinttab˜s          %     "&      .         ,%," """""    .   1        sT1('s_write_s_writes _getitem_s_getitems _getattr_s_getattrs_print_s_printsmemscontextsnomsskins titre_pages titre_sitesobslmslsstringsdecsdicosokschsdec2slensmsks tag_colorstag_imgsvalslppstppsasfpspbdsals elem_placeds printcasesprinttabsb('smems_write_s_writes _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextsnomsskins titre_pages titre_sitesobslmslsstringsdecsdicosokschsdec2slensmsks tag_colorstag_imgsvalslppstppsasfpspbdsals elem_placedsprinttabs printcasesb((smemstppsskinsvalsprinttabsnoms printcasesScript (Python)sstandard_html_headersˆ4 !6   , - !*       !$ 1 - - 0    '§ (sstandard_html_header(sstandard_html_header((sScript (Python)ssqFU_bodyqGT­if mem['droit_vue_dossier']==0: print '



Cette page nécessite une identification.



' print ' Pour vous identifier sur le site,
cliquer sur Se connecter
' return printed mem['inskin']=1 nom=mem['skin_id'] skin=mem['skin_obj'] titre_page=mem['rep_toi'] titre_site=mem['zwo_obj'].zwo_info.general.general_data.site print '' print ''+titre_site+' - '+titre_page+'' #~meta tags ob=mem['config_obj'] if ob.hasProperty('metas'): lm=ob.metas for l in lm: dec=string.split(l,'!!') dico={} ok=0 for ch in dec: dec2=string.split(ch,'=') if len(dec2)>1: if dec2[0]=='content' and dec2[1]<>'': ok=1 dico[dec2[0]]=dec2[1] if ok==1: m='' print m #fin meta tags print '' print """ """ print '' tag_color='' tag_img='' val=context.zwo_lib.tab_to_val(skin) lpp=string.split(skin.page,'/') tpp={} for a in lpp: if a<>'': dec=string.split(a,'=') if len(dec)>1: tpp[dec[0]]=dec[1] def fp(key): if tpp.has_key(key): return tpp[key] else: return '' pbd='' if fp('decv')<>'': pbd=pbd+' topmargin="'+fp('decv')+'" marginheight="'+fp('decv')+'"' else: pbd=pbd+' topmargin="0" marginheight="0"' if fp('dech')<>'': pbd=pbd+' leftmargin="'+fp('devh')+'" marginwidth="'+fp('devh')+'"' else: pbd=pbd+' leftmargin="0" marginwidth="0"' if fp('couleurpage')<>'': pbd=pbd+' bgcolor="'+fp('couleurpage')+'"' if fp('image')<>'': pbd=pbd+' background="'+mem['zwo_url']+'/zwo_info/images/fonds/'+fp('image')+'"' al='' if fp('align')=='center': al='
' if fp('align')=='right': al='
' print ''+al elem_placed=[] def printcase(case,colortxt,writeok): pcase='' mem['couleur_text']=colortxt cc=val['cc'][case] if len(cc)==1: tabinlist=string.split(cc[0],'T') if len(tabinlist)>1: (pcase,writeok)=printtab('T'+tabinlist[1],writeok) return (pcase,writeok) if cc[0]=='######': pcase=pcase+'Zone Principale
Pas d\'élément de skin ici
' pcase=pcase+'[Déplacer la zone principale]' return ('FINHEADER',writeok) ncc=[] for el in cc: if el<>'': ncc.append(el) for el in ncc: zelem=skin[el] sp='*' if zelem.hasProperty('disposition'): sp=zelem.disposition pcase=pcase+context.zwo_modules[zelem.element].view_html(mem,zelem) if sp=="+": pcase=pcase+"
" if sp=="-": pcase=pcase+" " if sp=="--": pcase=pcase+"  " if sp=="++": pcase=pcase+"

" return (pcase,writeok) def printtab(tab,writeok): pt=val['pt'][tab] table=val['ct'][tab] veriftab={} i=0 j=0 nbcolonnes=0 lignevide=[] for ligne in table: for case in ligne: idcase=str(i)+'-'+str(j) while veriftab.has_key(idcase): i=i+1 idcase=str(i)+'-'+str(j) if i+1>nbcolonnes: lignevide.append(j) j=j+1 i=0 pc=val['pc'][case] colspan=pc['colspan'] rowspan=pc['rowspan'] if colspan=='': colspan='1' if rowspan=='': rowspan='1' colspan=int(colspan) rowspan=int(rowspan) for ii in range(colspan): for jj in range(rowspan): idc=str(i+ii)+'-'+str(j+jj) veriftab[idc]='oui' i=i+colspan if j==0: nbcolonnes=i j=j+1 i=0 nblignes=j ppt='' if tab=='T1': if pt['hauteur']<>'': ppt=ppt+' height="'+pt['hauteur']+'"' if pt['largeur']<>'': ppt=ppt+' width="'+pt['largeur']+'"' else: ppt=ppt+' height="100%"' ppt=ppt+' width="100%"' ppt=ppt+' cellspacing="0"' ppt=ppt+' cellpadding="0"' ppt=ppt+' border="0"' ptcadre=pt['cadre'] if ptcadre<>'0' and ptcadre<>'': print '' ppt=ppt+' class=Sbordure'+tab margetab="0" if pt['marge']<>'': margetab=pt['marge'] couleurfondtab="" if pt['couleurfond']<>'': couleurfondtab=pt['couleurfond'] couleurtextetab="#000000" if pt['couleurtexte']<>'': couleurtextetab=pt['couleurtexte'] aligntab="left" if pt['align']<>'': aligntab=pt['align'] valigntab="left" if pt['valign']<>'': valigntab=pt['valign'] print '' j=0 for ligne in table: print '' for case in ligne: if case<>'' and writeok==1: pc=val['pc'][case] pccc='' if pc['colspan']<>'' and pc['colspan']<>'1': pccc=pccc+' colspan="'+pc['colspan']+'"' if pc['rowspan']<>'' and pc['rowspan']<>'1': pccc=pccc+' rowspan="'+pc['rowspan']+'"' ppc='' if pc['hauteur']<>'': ppc=ppc+' height="'+pc['hauteur']+'"' if pc['largeur']<>'': ppc=ppc+' width="'+pc['largeur']+'"' if pc['align']<>'': ppc=ppc+' align="'+pc['align']+'"' else : ppc=ppc+' align="'+aligntab+'"' if pc['valign']<>'': ppc=ppc+' valign="'+pc['valign']+'"' else : ppc=ppc+' valign="'+valigntab+'"' if pc['couleurfond']<>'': ppc=ppc+' bgcolor="'+pc['couleurfond']+'"' elif couleurfondtab<>'': ppc=ppc+' bgcolor="'+couleurfondtab+'"' textcolor=couleurtextetab if pc['couleurtexte']<>'': textcolor=pc['couleurtexte'] textcolor=couleurtextetab if pc['couleurtexte']<>'': textcolor=pc['couleurtexte'] ppcc='' pcase=pc['cadre'] if pcase<>'0' and pcase<>'': print '' ppcc=' class="Sbordure'+case+'"' cel='' margeint=margetab if pc['marge']<>'': margeint=pc['marge'] if margeint<>'0': cel=cel+'' else: cel=cel+'' #Affichage cellule (affcel,writeok)=printcase(case,textcolor,writeok) if 'FINHEADER'==affcel: writeok=0 print cel return (printed,writeok) else: if affcel=='': affcel='' cel=cel+affcel if writeok==0: print cel return (printed,writeok) if margeint<>'0': cel=cel+'
' cel=cel+'' print cel j=j+1 print '' print '' return (printed,writeok) (a,b)=printtab('T1',1) print a return printed qHU Script_magicqIKUwarningsqJ)UtitleqKUnoyauqLUerrorsqM)U Python_magicqNU*ë qOu.Ol((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Uloginq Upasswordq U _getitem_q U_getitemq U _getattr_qU_getattrqUcontextqUuserfolderzopeqtqU co_argcountqKubU_paramsqUlogin, passwordqUidqUinstallqU__ac_local_roles__q}qUgregq]qUOwnerqasU _bind_namesq(cShared.DC.Scripts.Bindings NameAssignments qoq}q U_asgnsq!}q"(Uname_containerq#U containerq$U name_subpathq%Utraverse_subpathq&U name_m_selfq'Uscriptq(U name_contextq)husbU func_defaultsq*NU_codeq+Tõcsd„ZdS(Ncs"t}t}|tdƒ}||dƒ||dgdƒ|||tdƒdƒdƒdg|gƒ||||tdƒdƒ|ƒd ƒd |ƒ|td ƒd gƒ|tdƒd gd gƒ||dƒdgƒ|||tdƒdƒdƒdƒdS(Ns acl_userssuserFolderAddUsers config_zwooksszwo_infosuserssmanage_renameObjectssadminsmanage_changePropertiesstitlesmanage_delObjectss index_htmls index_html2suserFolderDelUserssREQUESTsRESPONSEsredirects./lasttraceinstall(s _getitem_s_getitems _getattr_s_getattrscontextsuserfolderzopesloginspassword(sloginspasswords _getitem_s_getitems _getattr_s_getattrscontextsuserfolderzope((sScript (Python)sinstalls!(4+(sinstall(sinstall((sScript (Python)ssq,Uerrorsq-)U_bodyq.T·userfolderzope=context.acl_users userfolderzope.userFolderAddUser(login, password, ['config_zwook'], '') context.zwo_info.users.manage_renameObjects(['admin'],[login]) context.zwo_info.users[login].manage_changeProperties(title=login) context.manage_delObjects(['index_html']) context.manage_renameObjects(['index_html2'],['index_html']) userfolderzope.userFolderDelUsers(['admin']) context.REQUEST.RESPONSE.redirect('./lasttraceinstall') q/U Script_magicq0KUwarningsq1)U _proxy_rolesq2(UManagerq3tq4U Python_magicq5U*ë q6u.O®((U OFS.FolderqUFolderqtqNt.}q(UidqUzwo_infoqU__ac_local_roles__q}qUmanuq ]q (UManagerq UOwnerq U config_zwookq esU_objectsq(}q(U meta_typeqUFolderqUidqUskinsqu}q(U meta_typeqUFolderqUidqUusersqu}q(hhhUgroupsqu}q(U meta_typeqUFolderqUidqUgeneralqu}q (U meta_typeq!UFolderq"Uidq#Uimagesq$u}q%(U meta_typeq&UFolderq'Uidq(Uforumsq)u}q*(U meta_typeq+UFolderq,Uidq-U calendrierq.utUimagesq/(UO?q0(hUFolderq1tq2tq3QU _propertiesq4(}q5(hUtitleq6Umodeq7UwUtypeq8Ustringq9u}q:(hU type_zwookq;h8UstringqUsystemq?Utypeq@UstringqAutUgroupsqB(UO@qC(hUFolderqDtqEtqFQU type_zwookqGUsystemqHUskinsqI(UOBqJ(hUFolderqKtqLtqMQUgeneralqN(UOAqO(hUFolderqPtqQtqRQUsystemqSUdataqTU calendrierqU(UOCqV(hUFolderqWtqXtqYQUusersqZ(UODq[(hUFolderq\tq]tq^QUtitleq_UInformation sur le zwookq`h)(UOEqa(hUFolderqbtqctqdQu.OV((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (U _getattr_q U_getattrq U AccessControlq UgetSecurityManagerq UaU containerqtqU co_argcountqKubU_paramsqUUidqUacl_urlqU__ac_local_roles__q}qUxavq]qUOwnerqasU _bind_namesq(cShared.DC.Scripts.Bindings NameAssignments qoq}qU_asgnsq}q(Uname_containerqU containerq U name_subpathq!Utraverse_subpathq"U name_m_selfq#Uscriptq$U name_contextq%Ucontextq&usbU func_defaultsq'NU_codeq(T3csd„ZdS(Ncs`t}dkl}|ƒ}||dƒƒdjo dSn|tdƒƒSdS(N(sgetSecurityManagerscalledByExecutableisnons absolute_url(s _getattr_s_getattrs AccessControlsgetSecurityManagersas container(s _getattr_s_getattrs AccessControlsgetSecurityManagersas container((sScript (Python)sacl_urls  (sacl_url(sacl_url((sScript (Python)ssq)U_bodyq*Ufrom AccessControl import getSecurityManager a=getSecurityManager() if a.calledByExecutable()<2: return 'non' return container.absolute_url() q+U Script_magicq,KUwarningsq-)Utitleq.Unoyauq/Uerrorsq0)U Python_magicq1U*ë q2u.O <((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Uviewq U _getitem_q U_getitemq U _getattr_q U_getattrqU_print_qU_printqUcontextqUmemqtqU co_argcountqKubU_paramsqU view='normal'qUidqU index_html2qU__ac_local_roles__q}qUxavq]qUOwnerqasU _bind_namesq(cShared.DC.Scripts.Bindings NameAssignments qoq }q!U_asgnsq"}q#(Uname_containerq$U containerq%U name_subpathq&Utraverse_subpathq'U name_contextq(hU name_m_selfq)Uscriptq*usbU func_defaultsq+(Unormalq,tq-U_codeq.T‡csdd„ZdS(Nsnormalc st}t}tƒ}||tdƒdƒƒ}| o dSnd||dƒƒjo||dƒSn ||dƒdjoM |dIJ |d |td ƒƒd ||d ƒd IJ |ƒSn|djoX||tdƒ|ƒIJ||tdƒ|ƒIJ||tdƒ|ƒIJn½|djoX||tdƒ|ƒIJ||tdƒ|ƒIJ||tdƒ|ƒIJnU||tdƒ|ƒIJ||tdƒ|ƒIJ||tdƒ|ƒIJ|ƒSdS(Nszwo_libsmem_datas³Vous utilisez un User Zope qui n'est pas enregistré dans Zwook !!!
Delogger vous ICI.
Vous devez ensuite cliquer sur Annuler/Cancel...sretourspskeyssdroit_vue_dossieris^



Cette page nécessite une identification.



s> Pour vous identifier sur le site,
cliquer sur Se connecter
sprintsstandard_printable_headershomesstandard_printable_footersimgsstandard_html_headers home_imagesstandard_html_footer( s _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextsmemsview( sviews _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextsmem((sScript (Python)s index_html2s(3   2  (s index_html2(s index_html2((sScript (Python)ssq/U_bodyq0T÷mem=context.zwo_lib.mem_data() if not mem: return 'Vous utilisez un User Zope qui n\'est pas enregistré dans Zwook !!!
Delogger vous ICI.
Vous devez ensuite cliquer sur Annuler/Cancel...' if 'retoursp' in mem.keys(): return mem['retoursp'] if mem['droit_vue_dossier']==0: print '



Cette page nécessite une identification.



' print ' Pour vous identifier sur le site,
cliquer sur Se connecter
' return printed if view=='print': print context.standard_printable_header(mem) print context.home(mem) print context.standard_printable_footer(mem) elif view=='img': print context.standard_html_header(mem) print context.home_image(mem) print context.standard_html_footer(mem) else: print context.standard_html_header(mem) print context.home(mem) print context.standard_html_footer(mem) return printed q1U Script_magicq2KUwarningsq3)Utitleq4Unoyauq5Uerrorsq6)U Python_magicq7U*ë q8u.O×((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Urepq Uidoldq Uidnewq U _getattr_q U_getattrqU AccessControlqUgetSecurityManagerqUatqU co_argcountqKubU_paramsqUrep,idold,idnewqUidqU zwo_renameqU__ac_local_roles__q}qUxavq]qUOwnerqasU _bind_namesq(cShared.DC.Scripts.Bindings NameAssignments qoq}qU_asgnsq }q!(Uname_containerq"U containerq#U name_subpathq$Utraverse_subpathq%U name_m_selfq&Uscriptq'U name_contextq(Ucontextq)usbU func_defaultsq*NU_codeq+Tucsd„ZdS(Ncsst}dkl}|ƒ}||dƒƒdjo dSn||dƒ|g|gƒdSdS(N(sgetSecurityManagerscalledByExecutableisnonsmanage_renameObjects(s _getattr_s_getattrs AccessControlsgetSecurityManagersasrepsidoldsidnew(srepsidoldsidnews _getattr_s_getattrs AccessControlsgetSecurityManagersa((sScript (Python)s zwo_renames  (s zwo_rename(s zwo_rename((sScript (Python)ssq,Uerrorsq-)U_bodyq.U¢from AccessControl import getSecurityManager a=getSecurityManager() if a.calledByExecutable()<2: return 'non' rep.manage_renameObjects([idold],[idnew]) return q/U Script_magicq0KUwarningsq1)U _proxy_rolesq2(UManagerq3tq4U Python_magicq5U*ë q6u.O=Š((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Umemq U_write_q U_writeq U _getitem_q U_getitemqU _getattr_qU_getattrqU_print_qU_printqUcontextqUOKPRINTqUnomqUskinqUvalqU elem_placedqUprinttabqU printcaseqUaUbUstringqUlppqUtppqUdecqUlenqUfpq Ualq!tq"U co_argcountq#KubU_paramsq$Umemq%Uidq&Ustandard_html_footerq'U__ac_local_roles__q(}q)Uxavq*]q+UOwnerq,asU _bind_namesq-(cShared.DC.Scripts.Bindings NameAssignments q.oq/}q0U_asgnsq1}q2(Uname_containerq3U containerq4U name_subpathq5Utraverse_subpathq6U name_contextq7hU name_m_selfq8Uscriptq9usbU func_defaultsq:NU_codeq;T1#csd„ZdS(Nc s]t}t}t}tƒ}|ˆdƒdjo<|dIJ|d|t dƒƒdIJ|ƒSnd|ˆƒd<g}  |ˆd ƒ‰ |ˆd ƒ‰ ||t d ƒd ƒˆƒ‰g}‡‡‡‡‡d †‰8‡‡d†‰àˆddƒ\}}â||IJä|tdƒ|ˆdƒdƒ}åh‰æx|dært}ç|djo^è|tdƒ|dƒ}ét|ƒdjo)ê||dƒ|ˆƒ||dƒ


Cette page nécessite une identification.



s> Pour vous identifier sur le site,
cliquer sur Se connecter
isinskinsskin_idsskin_objszwo_libs tab_to_valcs t}t}t}d} ||ˆƒd<||ˆdƒ|ƒ} t | ƒdjoÀ|t dƒ|| dƒdƒ}t |ƒdjo6ˆd||dƒ|ƒ\} }| |fSn|| dƒdjo3| d } | d ˆd } d |fSnn g}!x=| d!r0}"|djo|#|d ƒ|ƒnq7W%x|d%r}&|ˆ|ƒ}'d}|)|dƒdƒo*||dƒ}n,| |||tdƒ||dƒƒdƒˆ|ƒ} -|djo.| d} n/|djo0| d} n1|djo2| d} n3|djo4| d} nqzW6| |fSdS(Nss couleur_textsccissplitisTs######s6Zone Principale
Pas d'élément de skin ici
s[Déplacer la zone principale]s DEBUTFOOTERsappends*s hasPropertys dispositions zwo_modulesselements view_htmls+s
s-s s--s   s++s

(s_write_s_writes _getitem_s_getitems _getattr_s_getattrspcasescolortxtsmemsvalscasesccslensstrings tabinlistsprinttabswriteoksnomsnccselsskinszelemsspscontext(scasescolortxtswriteoks_write_s_writes _getitem_s_getitems _getattr_s_getattrspcasesmemsvalsccslensstrings tabinlistsprinttabsnomsnccselsskinszelemsspscontext(sskinsvalsprinttabsnomsmem(sScript (Python)s printcases> $%   :c/OsÐ 8t}t}t}tƒ} 9||ˆdƒ|ƒ} :||ˆdƒ|ƒ} <h} =d}>d}?d}@g}Ax(| dAr}BxÜ|dBrÏ}Ct|ƒdt|ƒ}DxŒD|| dƒ|ƒorE|d}Ft|ƒdt|ƒ}G|d|jo0|H|dƒ|ƒI|d}Jd}nqÎWK||ˆdƒ|ƒ}L||d ƒ}M||d ƒ}N|d jo Od }nP|d jo Qd }nRt|ƒ}St|ƒ}Txpt|ƒdTr]}UxQt|ƒdUr>}Vt||ƒdt||ƒ}Wd || ƒ|s .Sbordures{border:s px solid s couleurcadres;}ss class=Sborduresss colspan="s rowspan="s align="s valign="s bgcolor="s class="Sborduress
sss(/s_write_s_writes _getitem_s_getitems _getattr_s_getattrs_print_s_printsvalstabsptstablesveriftabsisjs nbcolonness lignevideslignescasesstrsidcasespcscolspansrowspansintsrangesiisjjsidcsnblignesspptsmargetabscouleurfondtabscouleurtextetabsaligntabs valigntabswriteoksptcadrespcccsppcs textcolorsppccspccadrescelsmargeints printcasesaffcel(/stabswriteoks_write_s_writes _getitem_s_getitems _getattr_s_getattrs_print_s_printsvalsptstablesveriftabsisjs nbcolonness lignevideslignescasesstrsidcasespcscolspansrowspansintsrangesiisjjsidcsnblignesspptsmargetabscouleurfondtabscouleurtextetabsaligntabs valigntabsptcadrespcccsppcs textcolorsppccspccadrescelsmargeints printcasesaffcel(svals printcase(sScript (Python)sprinttab8s          %     "&           .   ,%," """""  * .   1     sT1ssplitspages/ss=csGìt}t}|íˆdƒ|ƒoî|ˆ|ƒSnðdSdS(Nshas_keys(s _getitem_s_getitems _getattr_s_getattrstppskey(skeys _getitem_s_getitems _getattr_s_getattrstpp(stpp(sScript (Python)sfpìssalignscenters
srights
s(s_write_s_writes _getitem_s_getitems _getattr_s_getattrs_print_s_printsmemscontextsOKPRINTsnomsskinsvals elem_placeds printcasesprinttabsasbsstringslppstppsdecslensfpsal(smems_write_s_writes _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextsOKPRINTsnomsskinsvals elem_placedsprinttabs printcasesasbsstringslppstppsdecslensfpsal((smemsskinstppsvalsprinttabsnoms printcasesScript (Python)sstandard_html_footers84 ! ! '¨ $ 1   (sstandard_html_footer(sstandard_html_footer((sScript (Python)ssq


Cette page nécessite une identification.



' print ' Pour vous identifier sur le site,
cliquer sur Se connecter
' return printed mem['inskin']=1 OKPRINT=[] nom=mem['skin_id'] skin=mem['skin_obj'] val=context.zwo_lib.tab_to_val(skin) elem_placed=[] def printcase(case,colortxt,writeok): pcase='' mem['couleur_text']=colortxt cc=val['cc'][case] if len(cc)==1: tabinlist=string.split(cc[0],'T') if len(tabinlist)>1: (pcase,writeok)=printtab('T'+tabinlist[1],writeok) return (pcase,writeok) if cc[0]=='######': pcase=pcase+'Zone Principale
Pas d\'élément de skin ici
' pcase=pcase+'[Déplacer la zone principale]' return ('DEBUTFOOTER',writeok) ncc=[] for el in cc: if el<>'': ncc.append(el) for el in ncc: zelem=skin[el] sp='*' if zelem.hasProperty('disposition'): sp=zelem.disposition pcase=pcase+context.zwo_modules[zelem.element].view_html(mem,zelem) if sp=="+": pcase=pcase+"
" if sp=="-": pcase=pcase+" " if sp=="--": pcase=pcase+"  " if sp=="++": pcase=pcase+"

" return (pcase,writeok) def printtab(tab,writeok): pt=val['pt'][tab] table=val['ct'][tab] veriftab={} i=0 j=0 nbcolonnes=0 lignevide=[] for ligne in table: for case in ligne: idcase=str(i)+'-'+str(j) while veriftab.has_key(idcase): i=i+1 idcase=str(i)+'-'+str(j) if i+1>nbcolonnes: lignevide.append(j) j=j+1 i=0 pc=val['pc'][case] colspan=pc['colspan'] rowspan=pc['rowspan'] if colspan=='': colspan='1' if rowspan=='': rowspan='1' colspan=int(colspan) rowspan=int(rowspan) for ii in range(colspan): for jj in range(rowspan): idc=str(i+ii)+'-'+str(j+jj) veriftab[idc]='oui' i=i+colspan if j==0: nbcolonnes=i j=j+1 i=0 nblignes=j ppt='' if tab=='T1': if pt['hauteur']<>'': ppt=ppt+' height="'+pt['hauteur']+'"' if pt['largeur']<>'': ppt=ppt+' width="'+pt['largeur']+'"' else: ppt=ppt+' height="100%"' ppt=ppt+' width="100%"' ppt=ppt+' cellspacing="0"' ppt=ppt+' cellpadding="0"' ppt=ppt+' border="0"' margetab="0" if pt['marge']<>'': margetab=pt['marge'] couleurfondtab="" if pt['couleurfond']<>'': couleurfondtab=pt['couleurfond'] couleurtextetab="#000000" if pt['couleurtexte']<>'': couleurtextetab=pt['couleurtexte'] aligntab="left" if pt['align']<>'': aligntab=pt['align'] valigntab="left" if pt['valign']<>'': valigntab=pt['valign'] if writeok>0: ptcadre=pt['cadre'] if ptcadre<>'0' and ptcadre<>'': print '' ppt=ppt+' class=Sbordure'+tab print '' j=0 for ligne in table: if writeok>0: print '' for case in ligne: if case<>'': pc=val['pc'][case] pccc='' if pc['colspan']<>'' and pc['colspan']<>'1': pccc=pccc+' colspan="'+pc['colspan']+'"' if pc['rowspan']<>'' and pc['rowspan']<>'1': pccc=pccc+' rowspan="'+pc['rowspan']+'"' ppc='' if pc['hauteur']<>'': ppc=ppc+' height="'+pc['hauteur']+'"' if pc['largeur']<>'': ppc=ppc+' width="'+pc['largeur']+'"' if pc['align']<>'': ppc=ppc+' align="'+pc['align']+'"' else : ppc=ppc+' align="'+aligntab+'"' if pc['valign']<>'': ppc=ppc+' valign="'+pc['valign']+'"' else : ppc=ppc+' valign="'+valigntab+'"' if pc['couleurfond']<>'': ppc=ppc+' bgcolor="'+pc['couleurfond']+'"' elif couleurfondtab<>'': ppc=ppc+' bgcolor="'+couleurfondtab+'"' textcolor=couleurtextetab if pc['couleurtexte']<>'': textcolor=pc['couleurtexte'] ppcc='' pccadre=pc['cadre'] if pccadre<>'0' and pccadre<>'' and writeok>0: print '' ppcc=' class="Sbordure'+case+'"' cel='' margeint=margetab if pc['marge']<>'': margeint=pc['marge'] if margeint<>'0': cel=cel+'' else: cel=cel+'' #Affichage cellule (affcel,writeok)=printcase(case,textcolor,writeok) if 'DEBUTFOOTER'==affcel: writeok=1 cel='' else: if writeok>0: if affcel=='': affcel='' cel=cel+affcel if margeint<>'0': if writeok>0: cel=cel+'
' if writeok>0: cel=cel+'' print cel j=j+1 if writeok>0: print '' if writeok>0: print '' return (printed,writeok) (a,b)=printtab('T1',0) print a lpp=string.split(skin.page,'/') tpp={} for a in lpp: if a<>'': dec=string.split(a,'=') if len(dec)>1: tpp[dec[0]]=dec[1] def fp(key): if tpp.has_key(key): return tpp[key] else: return '' al='' if fp('align')=='center': al='
' if fp('align')=='right': al='' print al+'' return printed q>U Script_magicq?KUwarningsq@)UtitleqAUnoyauqBUerrorsqC)U Python_magicqDU*ë qEu.OV((U OFS.FolderqUFolderqtqNt.}q(Uactionsq(UOFq(hUFolderqtqtq QUidq U zwo_upgradesq U__ac_local_roles__q }q Uxavq]qUOwnerqasUconstruct_upgradeq(UOGq(U#Products.PythonScripts.PythonScriptqU PythonScriptqtqtqQU_objectsq(}q(U meta_typeqUScript (Python)qh Uconstruct_upgradequ}q(hhh U test_upgradequ}q(hhh U make_upgradequ}q (hhh Uinstallq!u}q"(hUFolderq#h Uactionsq$utUtitleq%UUinstallq&(UOHq'(hU PythonScriptq(tq)tq*QU test_upgradeq+(UOIq,(hU PythonScriptq-tq.tq/QU make_upgradeq0(UOJq1(hU PythonScriptq2tq3tq4Qu.Oä((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (U _getitem_q U_getitemq U _getattr_q U_getattrq U_print_qU_printqUcontextqUmemqUobjectqtqU co_argcountqKubU_paramsqUUidqUtoolboxqU__ac_local_roles__q}qUadminq]qUOwnerqasU _bind_namesq(cShared.DC.Scripts.Bindings NameAssignments qoq}q U_asgnsq!}q"(Uname_containerq#U containerq$U name_subpathq%Utraverse_subpathq&U name_contextq'Ucontextq(U name_m_selfq)Uscriptq*usbU func_defaultsq+NU_codeq,TŸcsd„ZdS(Nc Jsßt}t}tƒ}||tdƒdƒƒ}||dƒdjo dSn|dIJ|dIJ|dIJ|d IJ |d IJ |d IJ |d IJ |d IJ |dIJ|dIJ|dIJ|dIJ|dIJ|dIJx±|||dƒdƒdgƒdr‰}|d||dƒƒdIJ|dIJ|dIJ|dIJ|dIJ|dIJ|d ||dƒƒd!IJq4W|d"IJ |ƒSdS(#Nszwo_libsmem_datasdroit_edit_dossieris.Vous n'avez pas les droits pour cette action !sL Epoz-Toolboxs"

Pour ajouter une image

sD
s
ss s?sLsSss
s=Identification:
titre:
Recherche fichier
s
s

Images

srep_objs objectValuessImageis <dtml-var title_or_id>s
( s _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextsmemsobject( s _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextsmemsobject((sScript (Python)stoolboxs43               0!     % (stoolbox(stoolbox((sScript (Python)ssq-U_bodyq.T“mem=context.zwo_lib.mem_data() if mem['droit_edit_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' print ' Epoz-Toolbox' print '

Pour ajouter une image

' print '
' print '
' print '' print '' print '' print '' print '' print'' print '
' print 'Identification:
titre:
Recherche fichier
' print '
' print'

Images

' for object in mem['rep_obj'].objectValues(['Image']): print '<dtml-var title_or_id>' print '
' return printed q/U Script_magicq0KUwarningsq1)Utitleq2U Epoz toolboxq3Uerrorsq4)U Python_magicq5U*ë q6u.O((U OFS.FolderqUFolderqtqNt.}q(UidqUzwo_boqU__ac_local_roles__q}qUxavq ]q UOwnerq asU choixcouleurq (UOKq (U#Products.PythonScripts.PythonScriptqU PythonScriptqtqtqQU_objectsq(}q(U meta_typeqUFolderqhUeditqu}q(hhhUadminqu}q(U meta_typeqUScript (Python)qUidqUmenuqu}q(U meta_typeqUScript (Python)q Uidq!Ueditionq"u}q#(U meta_typeq$UScript (Python)q%Uidq&U configboxq'u}q((U meta_typeq)UScript (Python)q*Uidq+h u}q,(U meta_typeq-UFolderq.Uidq/Uskinq0u}q1(U meta_typeq2UScript (Python)q3Uidq4U presentationq5u}q6(h2h3h4Uautourq7u}q8(U meta_typeq9UFolderq:Uidq;UarboqUScript (Python)q?Uidq@Upresentation_SAVqAutUarboqB(UOLqC(hUFolderqDtqEtqFQU _propertiesqG(}qH(UidqIUtitleqJUmodeqKUwUtypeqLUstringqMu}qN(hIU type_zwookqOhLUstringqPuthA(UOMqQ(hU PythonScriptqRtqStqTQU type_zwookqUUsystemqVh"(UONqW(hU PythonScriptqXtqYtqZQU configboxq[(UOOq\(hU PythonScriptq]tq^tq_QUmenuq`(UOPqa(hU PythonScriptqbtqctqdQUadminqe(UOQqf(hUFolderqgtqhtqiQUtitleqjUnoyau : back officeqkUeditql(UORqm(hUFolderqntqotqpQUskinqq(UOSqr(hUFolderqstqttquQU presentationqv(UOTqw(hU PythonScriptqxtqytqzQUautourq{(UOUq|(hU PythonScriptq}tq~tqQu.O ä((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Umemq U _getitem_q U_getitemq U _getattr_q U_getattrqU_print_qU_printqUcontextqUaffqtqU co_argcountqKubU_paramsqUmemqUidqUstandard_printable_headerqU__ac_local_roles__q}qUgregq]qUOwnerqasU_dav_writelocksq(UOWq(U Persistenceq UPersistentMappingq!tq"tq#QU _bind_namesq$(cShared.DC.Scripts.Bindings NameAssignments q%oq&}q'U_asgnsq(}q)(Uname_containerq*U containerq+U name_subpathq,Utraverse_subpathq-U name_m_selfq.Uscriptq/U name_contextq0Ucontextq1usbU func_defaultsq2NU_codeq3T§csd„ZdS(Nc sÐt}t}tƒ}||dƒdjo<|dIJ|d|tdƒƒdIJ|ƒSnd}|d}|d |td ƒd } |d } |d } |d} |SdS(Nsdroit_vue_dossieris^



Cette page nécessite une identification.



s> Pour vous identifier sur le site,
cliquer sur Se connecter
sss s���titles���sDs>s"
( s _getitem_s_getitems _getattr_s_getattrs_print_s_printsmemscontextsaff( smems _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextsaff((sScript (Python)sstandard_printable_headers. !     (sstandard_printable_header(sstandard_printable_header((sScript (Python)ssq4U_bodyq5TEif mem['droit_vue_dossier']==0: print '



Cette page nécessite une identification.



' print ' Pour vous identifier sur le site,
cliquer sur Se connecter
' return printed aff="" aff=aff+'' aff=aff+''+context.title+'' aff=aff+'' aff=aff+'' aff=aff+'
' return aff q6U Script_magicq7KUwarningsq8)Uerrorsq9)U Python_magicq:U*ë q;u.Oê((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Umemq U _getitem_q U_getitemq U _getattr_q U_getattrqU_print_qU_printqUcontextqUaffqtqU co_argcountqKubU_paramsqUmemqUidqUstandard_printable_footerqU__ac_local_roles__q}qUgregq]qUOwnerqasU_dav_writelocksq(UOVq(U Persistenceq UPersistentMappingq!tq"tq#QU _bind_namesq$(cShared.DC.Scripts.Bindings NameAssignments q%oq&}q'U_asgnsq(}q)(Uname_containerq*U containerq+U name_subpathq,Utraverse_subpathq-U name_m_selfq.Uscriptq/U name_contextq0Ucontextq1usbU func_defaultsq2NU_codeq3T‘csd„ZdS(Nc s‹t}t}tƒ}||dƒdjo<|dIJ|d|tdƒƒdIJ|ƒSnd}|d}|SdS( Nsdroit_vue_dossieris^



Cette page nécessite une identification.



s> Pour vous identifier sur le site,
cliquer sur Se connecter
ss
( s _getitem_s_getitems _getattr_s_getattrs_print_s_printsmemscontextsaff( smems _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextsaff((sScript (Python)sstandard_printable_footers . !  (sstandard_printable_footer(sstandard_printable_footer((sScript (Python)ssq4U_bodyq5Taif mem['droit_vue_dossier']==0: print '



Cette page nécessite une identification.



' print ' Pour vous identifier sur le site,
cliquer sur Se connecter
' return printed aff='' aff=aff+'
' return aff q6U Script_magicq7KUwarningsq8)Uerrorsq9)U Python_magicq:U*ë q;u.O ã((U OFS.FolderqUFolderqtqNt.}q(Ucontactq(UOhq(hUFolderqtqtq QU__ac_local_roles__q }q U login_managerq (UOXq (hUFolderqtqtqQUtitreq(UOYq(hUFolderqtqtqQU members_listq(UOZq(hUFolderqtqtqQU _propertiesq(}q(UidqUtitleqUmodeqUwUtypeq Ustringq!u}q"(hU type_zwookq#h Ustringq$u}q%(hUsystemq&h Ustringq'utU type_zwookq(Usystemq)Uforums_last_messagesq*(UO[q+(hUFolderq,tq-tq.QU minicalendarq/(UO\q0(hUFolderq1tq2tq3QUquick_forums_last_messagesq4(UO]q5(hUFolderq6tq7tq8QUsystemq9Ulibq:Uflashq;(UO^q<(hUFolderq=tq>tq?QUtextq@(UOvqA(hUFolderqBtqCtqDQU locatebarqE(UO`qF(hUFolderqGtqHtqIQU calendrierqJ(UOaqK(hUFolderqLtqMtqNQUforumqO(UObqP(hUFolderqQtqRtqSQU mesevenementsqT(UOcqU(hUFolderqVtqWtqXQUsuggest_contentqY(UOdqZ(hUFolderq[tq\tq]QU folder_barq^(UOeq_(hUFolderq`tqatqbQU exemplemoduleqc(UOfqd(hUFolderqetqftqgQUidqhU zwo_modulesqiUtotalqj(UOgqk(U#Products.PythonScripts.PythonScriptqlU PythonScriptqmtqntqoQUongletsqp(UOuqq(hUFolderqrtqstqtQUproject_checkerqu(UO_qv(hUFolderqwtqxtqyQUarticleqz(UOjq{(hUFolderq|tq}tq~QUfileq(UOkq€(hUFolderqtq‚tqƒQU navigationq„(UOlq…(hUFolderq†tq‡tqˆQUforums_monitorq‰(UOmqŠ(hUFolderq‹tqŒtqQUbrowsing_modesqŽ(UOnq(hUFolderqtq‘tq’QU mp3_playlistq“(UOoq”(hUFolderq•tq–tq—QU catalogueq˜(UOpq™(hUFolderqštq›tqœQUlienq(UOqqž(hUFolderqŸtq tq¡QU_objectsq¢(}q£(U meta_typeq¤UFolderq¥Uidq¦Uarticleq§u}q¨(h¤h¥h¦Ubrowsing_modesq©u}qª(h¤h¥h¦U directfriendsq«u}q¬(h¤h¥h¦Ufileq­u}q®(h¤h¥h¦Uflashq¯u}q°(h¤h¥h¦U folder_barq±u}q²(h¤h¥h¦Uimageq³u}q´(h¤h¥h¦Ulienqµu}q¶(h¤h¥h¦U locatebarq·u}q¸(h¤h¥h¦Umapq¹u}qº(h¤h¥h¦U members_listq»u}q¼(h¤h¥h¦Uongletsq½u}q¾(h¤h¥h¦Uproject_checkerq¿u}qÀ(h¤h¥h¦Usuggest_contentqÁu}qÂ(h¤UScript (Python)qÃh¦UtotalqÄu}qÅ(h¤h¥h¦U exemplemoduleqÆu}qÇ(h¤h¥h¦U navigationqÈu}qÉ(h¤h¥h¦UtitreqÊu}qË(U meta_typeqÌUFolderqÍUidqÎU calendrierqÏu}qÐ(hÌhÍhÎhTu}qÑ(hÌhÍhÎh/u}qÒ(U meta_typeqÓUFolderqÔUidqÕh˜u}qÖ(hÓhÔhÕUtraitq×u}qØ(U meta_typeqÙUFolderqÚUidqÛU mp3_playlistqÜu}qÝ(hÙhÚhÛUforums_last_messagesqÞu}qß(U meta_typeqàUFolderqáUidqâh4u}qã(U meta_typeqäUFolderqåUidqæUtextqçu}qè(U meta_typeqéUFolderqêUidqëUcontactqìu}qí(U meta_typeqîUFolderqïUidqðUforumqñu}qò(U meta_typeqóUFolderqôUidqõUforums_monitorqöu}q÷(U meta_typeqøUFolderqùUidqúU login_managerqûutUimageqü(UOrqý(hUFolderqþtqÿtrQUtraitr(UOsr(hUFolderrtrtrQU directfriendsr(UOir(hUFolderrtr tr QUtitler Umodulesr Umapr (UOtr(hUFolderrtrtrQu.O i((UOFS.DTMLDocumentqU DTMLDocumentqtqNt.}q(U__ac_local_roles__q}qU_Change_permissions_Permissionq(UManagerqtq U _propertiesq (}q (Uidq Utitleq UmodeqUwUtypeqUstringqu}q(h U type_zwookqhUstringqu}q(h UsystemqhUstringqutqU type_zwookqUsystemqU_Manage_WebDAV_Locks_Permissionq(htqU_Delete_objects_Permissionq(htqU_Manage_properties_Permissionq(htqU_Undo_changes_Permissionq (htq!U_WebDAV_Lock_items_Permissionq"(htq#U!_Change_DTML_Documents_Permissionq$(htq%U_Change_DTML_Methods_Permissionq&(htq'Utitleq(Unoyauq)U_Change_proxy_roles_Permissionq*(htq+Usystemq,Ulibq-U_WebDAV_Unlock_items_Permissionq.(htq/U_View_Permissionq0(U Authenticatedq1htq2U!_Change_cache_settings_Permissionq3(htq4U'_Access_contents_information_Permissionq5(U Anonymousq6h1htq7U#_View_management_screens_Permissionq8(htq9U__name__q:Utest_connectionq;Uglobalsq<}q=Urawq>T




Vous êtes connecté
Redirection automatique.

Pour une redirection manuelle : cliquer ici Pour une redirection manuelle : cliquer ici
q?U_FTP_access_Permissionq@(htqAU_View_History_PermissionqB(htqCU_WebDAV_access_PermissionqD(htqEU_Copy_or_Move_PermissionqF(htqGU_Take_ownership_PermissionqH(htqIU_varsqJ}qKu.O!+((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (U _getattr_q U_getattrq U AccessControlq UgetSecurityManagerq UaU containerqtqU co_argcountqKubU_paramsqUUidqUacl_objqU__ac_local_roles__q}qUxavq]qUOwnerqasU _bind_namesq(cShared.DC.Scripts.Bindings NameAssignments qoq}qU_asgnsq}q(Uname_containerqU containerq U name_subpathq!Utraverse_subpathq"U name_m_selfq#Uscriptq$U name_contextq%Ucontextq&usbU func_defaultsq'NU_codeq(Tcsd„ZdS(NcsTt}dkl}|ƒ}||dƒƒdjo dSntSdS(N(sgetSecurityManagerscalledByExecutableisnon(s _getattr_s_getattrs AccessControlsgetSecurityManagersas container(s _getattr_s_getattrs AccessControlsgetSecurityManagersas container((sScript (Python)sacl_objs  (sacl_obj(sacl_obj((sScript (Python)ssq)U_bodyq*U‚from AccessControl import getSecurityManager a=getSecurityManager() if a.calledByExecutable()<2: return 'non' return container q+U Script_magicq,KUwarningsq-)Utitleq.Unoyauq/Uerrorsq0)U Python_magicq1U*ë q2u.O"¹((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Udepq Udestq Uidobjq Uidfinq U _getattr_qU_getattrqU AccessControlqUgetSecurityManagerqUatqU co_argcountqKubU_paramsqUdep,dest,idobj,idfin=''qUidqUzwo_cpyqU__ac_local_roles__q}qUxavq]qUOwnerqasU _bind_namesq(cShared.DC.Scripts.Bindings NameAssignments qoq}q U_asgnsq!}q"(Uname_containerq#U containerq$U name_subpathq%Utraverse_subpathq&U name_contextq'Ucontextq(U name_m_selfq)Uscriptq*usbU func_defaultsq+(Utq,U_codeq-Túcsdd„ZdS(Nsc s¯t}dkl}|ƒ}||dƒƒdjo dSn||dƒ||dƒ|gƒƒ|djo#||dƒ|g|gƒn dSdS( N(sgetSecurityManagerscalledByExecutableisnonsmanage_pasteObjectssmanage_copyObjectsssmanage_renameObjects( s _getattr_s_getattrs AccessControlsgetSecurityManagersasdestsdepsidobjsidfin( sdepsdestsidobjsidfins _getattr_s_getattrs AccessControlsgetSecurityManagersa((sScript (Python)szwo_cpys % (szwo_cpy(szwo_cpy((sScript (Python)ssq.U _proxy_rolesq/(UManagerq0tq1U_bodyq2Uífrom AccessControl import getSecurityManager a=getSecurityManager() if a.calledByExecutable()<2: return 'non' dest.manage_pasteObjects(dep.manage_copyObjects([idobj])) if idfin<>'': dest.manage_renameObjects([idobj],[idfin]) return q3U Script_magicq4KUwarningsq5)Uerrorsq6)U Python_magicq7U*ë q8u.O#R((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (U _getattr_q U_getattrq Ucontextq UlistPermq UstringqUPermqU containerqtqU co_argcountqKubU_paramsqUUidqUlasttraceinstallqU__ac_local_roles__q}qUxavq]qUOwnerqasU _bind_namesq(cShared.DC.Scripts.Bindings NameAssignments qoq}qU_asgnsq}q (Uname_containerq!U containerq"U name_subpathq#Utraverse_subpathq$U name_contextq%Ucontextq&U name_m_selfq'Uscriptq(usbU func_defaultsq)NU_codeq*TNcsd„ZdS(Ncsˆt}|tdƒdgƒd}|tdƒ|dƒ}|tdƒd|ƒ|||tdƒd ƒd ƒd ƒdS( Nsmanage_delObjectssinstalls«Access Transient Objects Access contents information Access session data Copy or Move Query Vocabulary Search ZCatalog Undo changes Use mailhost services View View Historyssplits s manage_roles AnonymoussREQUESTsRESPONSEsredirects./(s _getattr_s_getattrscontextslistPermsstringsPerms container(s _getattr_s_getattrscontextslistPermsstringsPerms container((sScript (Python)slasttraceinstalls (slasttraceinstall(slasttraceinstall((sScript (Python)ssq+Uerrorsq,)U_bodyq-TYcontext.manage_delObjects(['install']) listPerm="""Access Transient Objects Access contents information Access session data Copy or Move Query Vocabulary Search ZCatalog Undo changes Use mailhost services View View History""" Perm=string.split(listPerm,'\n') container.manage_role('Anonymous', Perm) context.REQUEST.RESPONSE.redirect('./') q.U Script_magicq/KUwarningsq0)U _proxy_rolesq1(UManagerq2tq3U Python_magicq4U*ë q5u.O$ –((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Uidentq Utitreq Ufileq U _getitem_q U_getitemqU _getattr_qU_getattrqUcontextqUmemqUProducts.PythonScripts.standardqU url_quoteqUmessageqtqU co_argcountqKubU_paramsqUident,titre,fileqUidqUaddfileqU__ac_local_roles__q}qUadminq]qUOwnerq asU _bind_namesq!(cShared.DC.Scripts.Bindings NameAssignments q"oq#}q$U_asgnsq%}q&(Uname_containerq'U containerq(U name_subpathq)Utraverse_subpathq*U name_m_selfq+Uscriptq,U name_contextq-Ucontextq.usbU func_defaultsq/NU_codeq0Tcsd„ZdS(s Adds a file to the library. c st}t}d||tdƒdƒƒ}dkl} |djo||dƒ}n|||| |dƒdƒdƒd ƒd |d |d |ƒd ||dƒ} |||tdƒdƒdƒd||tdƒdƒƒ| | ƒfƒSdS(s Adds a file to the library. szwo_libsmem_data(s url_quotessfilenamesrep_objsmanage_addProductsOFSPsmanage_addImagesidstitlesfilesFichier '%s' EnregistrésREQUESTsRESPONSEsredirects %s?message=%sstoolboxs absolute_urlN( s _getitem_s_getitems _getattr_s_getattrscontextsmemsProducts.PythonScripts.standards url_quotestitresfilesidentsmessage( sidentstitresfiles _getitem_s_getitems _getattr_s_getattrscontextsmemsProducts.PythonScripts.standards url_quotesmessage((sScript (Python)saddfiles"4N(saddfile(saddfile((sScript (Python)ssq1U_bodyq2T4""" Adds a file to the library. """ mem=context.zwo_lib.mem_data() from Products.PythonScripts.standard import url_quote if titre == '': titre=file.filename # create the file mem['rep_obj'].manage_addProduct['OFSP'].manage_addImage(id=ident, title=titre, file=file) # create a success message message="Fichier '%s' Enregistré" % file.filename # redirect to main page - this is necessary to make all the URLs # on the main page work correctly. return context.REQUEST.RESPONSE.redirect("%s?message=%s" % (context.toolbox.absolute_url(), url_quote(message))) q3U Script_magicq4KUwarningsq5)Uerrorsq6)U Python_magicq7U*ë q8u.O%¡((U OFS.FolderqUFolderqtqNt.}q(UidqUzwo_libqU__ac_local_roles__q}qU_objectsq (}q (U meta_typeq UScript (Python)q Uidq U mix_id_zopequ}q(U meta_typeqUScript (Python)qUidqU tab_to_valqu}q(U meta_typeqUScript (Python)qUidqU mem_mod_dataqu}q(U meta_typeqUScript (Python)qUidqUmem_dataqu}q(U meta_typeqUScript (Python)q Uidq!U secure_skinq"u}q#(U meta_typeq$UFolderq%Uidq&Uepozq'utU _propertiesq((}q)(hUtitleq*Umodeq+UwUtypeq,Ustringq-u}q.(hU type_zwookq/h,Ustringq0u}q1(hUsystemq2h,Ustringq3uth/Usystemq4U mix_id_zopeq5(UOwq6(U#Products.PythonScripts.PythonScriptq7U PythonScriptq8tq9tq:QU secure_skinq;(UOxq<(h7U PythonScriptq=tq>tq?QUsystemq@UlibqAh'(UOyqB(hUFolderqCtqDtqEQh*Unoyau - bibliothequeqFUmem_dataqG(UOzqH(h7U PythonScriptqItqJtqKQU mem_mod_dataqL(UO{qM(h7U PythonScriptqNtqOtqPQh(UO|qQ(h7U PythonScriptqRtqStqTQu.O& !((UOFS.DTMLDocumentqU DTMLDocumentqtqNt.}q(U_dav_writelocksq(UO}q(U PersistenceqUPersistentMappingqtq tq QU__ac_local_roles__q }q Uxavq ]qUOwnerqasU__name__qUHOWTOstructureqUtitleqU HOWTO Structure de données ZWOOKqUglobalsq}qUrawqT

HOWTO Structure de données ZWOOK ()

CONTENU DE LA RACINE :

  • SCRIPTS :
    • index_html() : parseur general
    • standard_html_header () : parseur du skin avant la zone centrale
    • home() : parseur de la zone centrale
    • standard_html_footer () : parseur du skin apres la zone centrale
    • zwo() : script qui renvoit le container
  • MailHost() : Objet pour l'envoie de mail via SMTP
  • style.css (? modifiable ? uniquement pour les parties admin ? cf greg)

  • repertoire de données:
    • zwo_info : données sur la config de zwook
      zwook : données sur les pages
      zwo_dossier : données sur la config de la page courant
      images : diverses images (note... pourquoi pas zwo_images ? cf greg)
  • repertoire de script:
    • zwo_lib : librairie de code
      zwo_bo : Script du back office de zwook
      zwo_modules : Script qui contiennent le code des modules
  • repertoire de doc:
    • zwo_doc : Contient les docs pour developpeurs et administrateur Zope.
      zwo_dev : divers scripts qui seront utilisé plus tard.

OBJECT ZOPE ET ZWOOK

Chaque objet Zope qui a une propriété type_zwook est un objet zwook.
La propriété type_zwook indique le type d'objet zwook.
Type possible :
  • dossier
  • element : Chaque objet zwook de type element a une propriété element qui precise quel module a produit cet element. Voir la liste des modules pour connaitre les valeurs possible.
  • skin
  • system : Chaque objet zwook de type system a une propriété system qui precise a quoi correspond cet objet.
    Les objets systemes :
    • lib : la librairie de zwook.
    • data : donnée de configuration du zwook, du dossier..
  • à completer
qU_varsq}qu.O' E((UOFS.DTMLDocumentqU DTMLDocumentqtqNt.}q(U_dav_writelocksq(UO~q(U PersistenceqUPersistentMappingqtq tq QU__ac_local_roles__q }q Uxavq ]qUOwnerqasU__name__qU HOWTOStartDevqUtitleqU HOWTO Devenir developpeur ZWOOK.qUglobalsq}qUrawqT'

HOWTO Devenir developpeur ZWOOK. ()

Pré-requis

Connaissances neccessaires en HTML :
- Comprendre la structure des documents HTML.
- Connaitre la syntaxe des balises HTML compatible tout navigateur.
- Maitriser les formulaire HTML.

Comprendre le fonctionnement d'un site client serveur HTTP.

Connaissances neccessaires en python :
- Connaitre l'algorithmique.
- Connaitre les syntaxe de bases de python.
- Connaitre les structures de base de python (dictionnaire et liste).

Maitriser l'interface de ZWOOK au niveau éditeur et administrateur.

Compréhension de ZWOOK

- apprendre la structure des données dans ZWOOK (HOWTO Structure de donnée ZWOOK).
- comprendre le fonctionnement du noyau ZWOOK (HOWTO noyau ZWOOK)

Codage de modules ZWOOK

Necessite la compréhension du ZWOOK ci-dessus.
- HOWTO (Construire un module zwook)

Améliorer le noyau

Si vous maitriser zope/python et la création de module zwook, vous aller pouvoir rentrer plus en profondeur dans le noyau et faire des modification (à vos risques et périls ;).

Références utiles

- Description de la structure de mem (HOWTO mem)


Avec un peu de chance, vous nous enverez vos modules et améliorations du noyau bientôt, pour qu' ils soient inclus dans la prochaine version sur http://www.zwook.com
                                                                              Bon code, Xav ;)

PS : N'hesitez pas a me faire des remarque sur la doc ou sur le zwook (xavier@emencia.com) .qU_varsq}qu.O( Ã((UOFS.DTMLDocumentqU DTMLDocumentqtqNt.}q(U_dav_writelocksq(UOq(U PersistenceqUPersistentMappingqtq tq QU__ac_local_roles__q }q Uxavq ]qUOwnerqasU__name__qU HOWTOModulesqUtitleqU HOWTO Construire un module zwookqUglobalsq}qUrawqT¦

HOWTO Construire un module zwook ()

Création d'un nouveau module :

  • Création du dossier du module
    • Aller dans le repertoire zwo_modules.
    • créer un folder zope avec pour id du nom du module.
    • changer le title pour donner une phrase d'explication.
    • ajouter une propriété appelée skin si le module est utilisable par des skin
    • ajouter une propriété appelée zone_principale si le module est utilisable par des dossiers.
  • Description des propriétés des instances indispensable :
    • type_zwook='element'
    • element : le nom du type de module

  • Description de certains parametres des scripts
    • mem : renvoie un ensemble de donnée pour traiter l'ensemble des modules
    • dossier : dossier qui contiendra l'instance
    • instance : renvoie l'instance du module

  • Divers Conseils :
    • Fonctions utile pour les modules :
      • mem=context.zwo_lib.mem_data(): recupere la memoire mem lorsqu'elle n'est pas passé en parametre
      • idzop=context.zwo_lib.mix_id_zope(titre) : transforme un titre text en idzop

      • mem=context.zwo_lib.mem_mod_data(): idem mem avec en plus :
        • lieu=mem['parent'] : recupere le dossier contenant l'element
        • url_lieu=mem['parent_url'] : recupere l'url de ce dossier
    • On remarquera qu'il faut toujours transmetre :
      • idobj (sauf pour new_xx) : id de l'instance

    • On pourra récupere certaine valeurs utiles :
      • typemod=container.getId() : renvoie le type du module
      • mem['droit_config_dossier'] : droit en config
      • mem['droit_admin'] : droit en admin

    • Autre elements utiles a connaitre :
      • La structure mem

  • Création des scripts principaux
    • new_html(mem,dossier) : Acceuil HTML pour la création de l'instance
    • new_ok(nom, titre, [params...]) : Acceuil HTML pour la création de l'instance
    • config_html(mem, rep, instance) : renvoie un code HTML pour la
    • config_ok(...) : Traite la modif de config et redirige vers la page de configuration
    • view_html(mem,instance) : renvoie le code HTML l'affichage de l'instance du module
qU_varsq}qu.O)v((UOFS.DTMLDocumentqU DTMLDocumentqtqNt.}q(U_dav_writelocksq(UO€q(U PersistenceqUPersistentMappingqtq tq QU__ac_local_roles__q }q Uxavq ]qUOwnerqasU__name__qUREFmemqUtitleqU Reférence sur le dictionaire memqUglobalsq}qUrawqT_

Reférence sur le dictionaire mem ()

Le dictionnaire mem est appelé dans index_html et fourni aux parseurs et aux modules pour l'affichage des modules.

La fonction qui reupere mem est :
mem=context.zwo_lib.mem_data()

Elle peut être appelé indépendement de l'afffichage normale de la page, en particulier pour l'espace d'édition, de config, et des modules.

mem regroupe les valeurs utiles au moin une fois lors de l'affichage d'une page quelqu'elle soit.

Liste des elements du dictionnaire mem (mettre à jour réglièrement) :



mem['url']=url
--> url on on est
mem['zwo_url']=zwo_url
--> url de la racine du zwook
mem['zwo_obj']=zwook
--> objet zwook racine
mem['rep_obj']=rep
--> repertoire courrant
mem['obj_obj']=obj
--> objet courrant
mem['rep_id']=rep.getId()
--> id zope du repertoire
mem['rep_toi']=rep.title_or_id()
mem['obj_id']=obj.getId()
--> id de l'objet courrant
mem['rep_url']=rep.absolute_url()
--> url du repertoire courrant
mem['user_obj']=user
--> objet user de type authenticatedUser
mem['user_zw_obj']=zwuser
mem['user_id']=username
mem['user_roles_id']=list_roles
--> liste des roles de l'user courrant
mem['user_avatar_url']=avatar
mem['config_obj']=conf
--> repertoire de config locale
mem['skin_id']=skin_id
--> id du skin
mem['skin_obj']=skin
--> objet folder du skin
mem['droit_vue_dossier']=dr_vue
mem['droit_admin_dossier']=dr_admin
mem['droit_config_dossier']=dr_conf
mem['zwo_font']=zwook_info.general.general_data.font
mem['zwo_font_size']=zwook_info.general.general_data.font_size
qU_varsq}qu.O* Z((UOFS.DTMLDocumentqU DTMLDocumentqtqNt.}q(U_dav_writelocksq(UOq(U PersistenceqUPersistentMappingqtq tq QU__ac_local_roles__q }q Umatq ]qUOwnerqasU__name__qU Schema cheminqUtitleqUUglobalsq}qUrawqT^
*************************

Rappel

Modules

les 5 scripts essentiels à la création, la modification et l' affichage d'un élément sont :
le script new_html
le script new_ok
le script config_html
le script config_ok
le script view_html

Eléments

Ce sont les liens, images, texte... créé par les modules.
*************************

Schema de création de l'élément dans le contenu

(1)

Vous êtes sur la page ajout d'élément, le fait de cliquer sur un Module (image, lien, ...) envoie une requette http au serveur qui déclenche le script new_html.

(2)

le script new html genere le formulaire de l'Elément choisi.

(3)

Lorsque le formulaire est rempli, le fait de le confirmer envoie une requette http au serveur qui déclenche le script new_ok .

(4)

le script new_ok crée affecte les modifications à l'Elément et redirige par la suite sur la page de placement des eléments.

Schema de modification de l'élément dans le contenu

(1)

Vous êtes sur la page édition du contenu, le fait de cliquer sur un Elément (image, lien, ...) envoie une requette http au serveur qui déclenche le script config_html.

(2)

le script config_html genere le formulaire de modification de l'Elément choisi.

(3)

Lorsque le formulaire est rempli, le fait de le confirmer,(cliquer sur modifier) envoie une requette http au serveur qui déclenche. le script config_ok .

(4)

le script config_ok modifie l'Elément et redirige sur la page de gestion d'édition du contenu.

Desciption du view_html



Tout les éléments encadrés en rouge sont visible, grace au scriptview_config qui les affiche sur la page html.qU_varsq}qu.O+‡((UOFS.DTMLDocumentqU DTMLDocumentqtqNt.}q(U_dav_writelocksq(UO‚q(U PersistenceqUPersistentMappingqtq tq QU__ac_local_roles__q }q Uxavq ]qUOwnerqasU__name__qU HOWTOnoyauqUtitleqUHOWTO noyau ZWOOKqUglobalsq}qUrawqT{

HOWTO ()

Le noyau ZWOOK

ZWOOK est une application client/serveur HTTP.
Elle permet, grace a un client HTTP (navigateur web), d'acceder a un systeme d'information : le system ZWOOK, basé sur le server HTTP Zope.

Le role du noyau :
Gerer l'identification, l'affichage de la navigation dans le systeme d'information selon l'identification.
Il contient les interfaces d'éditions et d'administrations.
Pour effectuer tout cela, le noyau va chercher des données dans la structure de données ZWOOK.

La structure de données ZWOOK est constitué :
- des pages qui contiennent des elements ZWOOK (cf ci-dessous) et des propriétés de mise en page, de sécurité, de référencement...
- les données sur les groupes et les utilisateurs.
- les habillages graphiques (skin).
- des informations générale sur le systeme d'information.
- des données générales d'une application.

Les informations sont essentielement composées d'Eléments ZWOOK.
Les Elements ZWOOK sont générés par les Modules ZWOOK.
Pour l'affichage des modules, le noyau utilise certains scripts des modules.
Un Module ZWOOK est un ensemble de script qui permet de créer, de modifier et d'afficher un élement.
Un Element ZWOOK est une instance de module, c'est a dire un exemple concret créer par un module (liens, images, barres de navigation...).

Chaque Element a un identifiant : il correspond au nom de l'élément. Il sert à reconnaître l'élément dans la page.





Le noyau est composer de :

- le Parser, ou mode visiteur/membre : en fonction de la requette
- Quelques scripts pour la connextion, la redirection, la création du zwook .
- une petite bibliotheque de script (zwo_lib : 5 scripts) .
HTTP, va generé un rendu HTML. (4 scripts)
- Le back office (zwo_bo)
- un MailHost Zope
- un acl_user zope


La structure de donné ZWOOK contient :
- des elements ZWOOK (instance de module ZWOOK)
- les dossier ZWOOK, c'est un dossier zope avec quelques proprités
en plus et qui contient un dossier zwo_dossier avec la configuration du dossier.
- un repertoire images pour les images de l'interface et les images partagés entre utilisateurs...
- un repertoire zwo_info, avec la configuration du systeme d'information, des utilisateurs, des groupes, des skins...
- tous les scripts du noyaux.
- Les scripts des modules (zwo_modules).

Shemas de parcours d'une requette HTTP (image a refaire...)

A quoi servent les requettes HTTP :

  • à visiter le zwook
  • à éditer le contenu
  • à administrer le zwook

Script python qui genere le html(context):

Une fois dans le zope il va falloir creer des pages HTML c'est la que HTML_Header, HTML_footer et le HTML_footer entre en "action"
  • Les trois principales parties
    • HTML_Header
    • Home
    • HTML_footer
Ces trois scripts générent la page html, le HTML_Header et le HTML_footer affiche le Skin. Entre ces deux zones s'inscrit le Home qui est la zone d' édition de contenu c' est cette zone (choisie lors de la création du skin) qui initialise la position du HTML_Header et du HTML_footer et ainsi la découpe du skin.

LE Home ZONE D' EDITION :

  • Chaque dossier à un répertoire Zwo_dossier qui contient les infos du dossier y compris
    • Découpage des tableaux
    • Position des objets
    • Home va donc collecter ces données pour afficher les tables et envoyer l'affichage des éléments
    • View_htmlc'est le fichier d'appel des éléments il va permettre aux modules :
      • d' utiliser mem
      • de savoir quel objet il doit traiter

Définitions de l' élément et du modules dans "le langage dévelopeur"

  • Le Module
  • C'est l'objet, en réalité c' est le code qui permet de créer les objets.
    Le code des modules est toujours placé dans /Zwo_modules/(nom_du_module)
  • les éléments
  • C' est l'instance, L' élément créé à l'aide du Module ils sont positionnés et gerés par Zwo_dossier,
    (cette indication n' est pas indispensable pour coder le module)

ADMIN_SYS

  • Comment installer un ZOPE
  • Coment installer un ZWOOK sur un Zope
qU_varsq}qu.O,Ï((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (U _getitem_q U_getitemq U _getattr_q U_getattrq U_print_qU_printqUcontextqUmemqUdejavuqU containerqUatqU co_argcountqKubU_paramsqUUidqU index_htmlqU__ac_local_roles__q}qUxavq]qUOwnerqasU_dav_writelocksq(UOƒq(U Persistenceq UPersistentMappingq!tq"tq#QU _bind_namesq$(cShared.DC.Scripts.Bindings NameAssignments q%oq&}q'U_asgnsq(}q)(Uname_containerq*U containerq+U name_subpathq,Utraverse_subpathq-U name_m_selfq.Uscriptq/U name_contextq0Ucontextq1usbU func_defaultsq2NU_codeq3Tccsd„ZdS(Nc 2s t}t}tƒ}||tdƒdƒƒ}|dIJ|dIJ|dIJ|dIJ|d||dƒd IJ|d||dƒd IJ |d||dƒd IJ |d||dƒd IJ|d||dƒd IJ|dIJdddddg}|dIJ|dIJx©|t dƒdƒdr} || dƒƒ|j oj|d||dƒd|| dƒƒd|| dƒƒd||| dƒƒdƒƒdIJnqWW|dIJ|d IJ|d!IJ|ƒSdS("Nszwo_libsmem_datasss+

Documentations techniques zwook :

s
    s
  • HOWTO Description generale du zwook
  • s@/zwo_doc/HOWTOStartDev">HOWTO Devenir developpeur ZWOOKsB/zwo_doc/HOWTOstructure">HOWTO Structure de données ZWOOKs//zwo_doc/HOWTOnoyau">HOWTO noyau ZWOOKs@/zwo_doc/HOWTOModules">HOWTO Construire un module zwooks
sHOWTOdescriptions HOWTOModuless HOWTOStartDevsHOWTOstructures HOWTOnoyausE

Autres documentations techniques zwook dans ce repertoire :

s objectValuess DTML DocumentisgetIds /zwo_doc/s">s title_or_ids (sbobobase_modification_timesISOs )ss( s _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextsmemsdejavus containersa( s _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextsmemsdejavus containersa((sScript (Python)s index_htmls(3       $n   (s index_html(s index_html((sScript (Python)ssq4U_bodyq5Tvmem=context.zwo_lib.mem_data() print '' print '' print '

Documentations techniques zwook :

' print '' dejavu=['HOWTOdescription','HOWTOModules','HOWTOStartDev','HOWTOstructure','HOWTOnoyau'] print '

Autres documentations techniques zwook dans ce repertoire :

' print '
    ' for a in container.objectValues('DTML Document'): if not a.getId() in dejavu: print '
  • '+a.title_or_id()+' ('+a.bobobase_modification_time().ISO()+')
  • ' print '
' print '' print '' return printed q6U Script_magicq7KUwarningsq8)Uerrorsq9)U Python_magicq:U*ë q;u.O- A((UOFS.DTMLDocumentqU DTMLDocumentqtqNt.}q(U_dav_writelocksq(UO„q(U PersistenceqUPersistentMappingqtq tq QU__ac_local_roles__q }q Uxavq ]qUOwnerqasU__name__qUHOWTOdescriptionqUtitleqU$HOWTO Description generale du zwook qUglobalsq}qUrawqT

HOWTO Description generale du zwook ()

ZWOOK

ZWOOK est open source.
ZWOOK est un ensemble de script python qui est interprété par ZOPE pour générer une interface d'interaction HTML entre le navigateur web et les informations stoquées sur le serveur ZOPE (base de donnée ZODB).

ZWOOK est un system d'information.
C'est un systeme de partage d'information, on peut donc y déposer des documents et des informations dans des pages internet ou intranet. Chaque client peut s'identifier de manière sécurisé. On peut gerer les droits des utilisateurs et des groupes d'utilisateurs pour chacune des pages.

ZWOOK a une architecture modulaire.
L'information de votre systeme d'information peut prendre plusieurs formes. (article, forum, message privé...). A chaque forme correspond un nouveau module.
Le noyau ZWOOK gere donc la gestion des modules, les utilisateurs, les groupes, les droits, et la pagination (skin).

Etendre les fonctionnalités de ZWOOK
On pourra coder facilement de nouveaux modules ZWOOK sant rentrer profondement dans le noyau ZWOOK. Des connaissances techniques (HTML/python) sont necessaire pour coder de nouveaux modules ZWOOK.

Mieux que l'open source : le ZWOOK est open source on-line
Vous pouvez modifier l'application elle-même, a partir de votre navigateur, et ceci en toute sécurité.

ZOPE

ZOPE est open source.
C'est le serveur d'application sur lequel repose ZWOOK. Il fait entre autre, serveur web, serveur ftp, base de donnée ZODB, serveur webdav et bien d'autre.

Python

Python est open source.
Python est le language dans lequel a été développer ZOPE et ZWOOK et avec lequel on pourra faire evoluer des fonctionalités du ZWOOK. Le language Python fait gagner du temps au programmeur par sa syntaxe puissante claire et concise. Python est un langage portable, dynamique, extensible, qui permet une approche modulaire et orienté objet. qU_varsq}qu.O.C‹((UOFS.DTMLDocumentqU DTMLDocumentqtqNt.}q(U__ac_local_roles__q}qUgregq]qUOwnerq asU__name__q U license.txtq Utitleq U*Licence ZWOOK : GNU GENERAL PUBLIC LICENSEq Uglobalsq}qUrawqT°BGNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ZWOOK version 0.95, Copyright (C) 2002-2003 Grégoire BINET, Xavier MANACH, Roger FERNANDEZ, Emmanuel OURY This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. CONTACT US : EMENCIA 56, rue Galilée 75008 Paris FRANCE Phone : + 33 1 47 20 23 01 Fax : + 33 1 47 20 23 01 E-mail : contact@zwook.com http://www.zwook.com qU_varsq}qu.O/.((U OFS.FolderqUFolderqtqNt.}q(U navfinale.gifq(UO…q(U OFS.ImageqUImageqtq tq QUplaceobjets.gifq (UO†q (hUImageq tqtqQU__ac_local_roles__q}qUmatq]qUOwnerqasUcadrerouge.jpgq(UO‡q(hUImageqtqtqQU_objectsq(}q(U meta_typeqUImageqUidqU Dnewhtml.gifqu}q (hhhUMenuediter.gifq!u}q"(hhhUdescription.gifq#u}q$(hhhUdescription1.gifq%u}q&(hhhU dnav1.gifq'u}q((hhhUformnobjets.gifq)u}q*(hhhhu}q+(hhhh u}q,(U meta_typeq-UImageq.Uidq/U schemaD.gifq0u}q1(h-h.h/U schemad1.gifq2u}q3(U meta_typeq4UImageq5Uidq6Uschemaconf.jpgq7u}q8(U meta_typeq9UImageq:Uidq;U capture.jpgqUImageq?Uidq@Ucadrerouge.jpgqAuth(UOˆqB(hUImageqCtqDtqEQh<(UO‰qF(hUImageqGtqHtqIQh#(UOŠqJ(hUImageqKtqLtqMQUidqNUimagesqOh'(UO‹qP(hUImageqQtqRtqSQh7(UOŒqT(hUImageqUtqVtqWQh)(UOqX(hUImageqYtqZtq[Qh!(UOŽq\(hUImageq]tq^tq_Qh2(UOq`(hUImageqatqbtqcQh0(UOqd(hUImageqetqftqgQh%(UO‘qh(hUImageqitqjtqkQUtitleqlUu.O0b((U OFS.FolderqUFolderqtqNt.}q(Unew_skinqU1UidqU zwo_dossierqU__ac_local_roles__q}q Uxavq ]q UOwnerq asU _propertiesq (}q(hUtitleqUmodeqUwUtypeqUstringqu}q(hU type_zwookqhUstringqu}q(hUsystemqhUstringqu}q(hUskinqhUstringqu}q(hUgroupes_visiteursqhUstringqu}q(Uidq Uordreq!Utypeq"Ustringq#u}q$(Uidq%Utableauxq&Utypeq'Ulinesq(u}q)(Uidq*hUtypeq+Ustringq,u}q-(h*U new_droitsq.h+Ustringq/u}q0(h*Unew_refq1h+Ustringq2u}q3(Uidq4Umetasq5Utypeq6Ulinesq7u}q8(Uidq9Ugroupes_editeursq:Utypeq;Ustringqh1U1Utableauxq?]q@(UCT:T1:C2qAU CC:C2:texte/qBUxPC:C2:colspan=1/rowspan=1/hauteur=/largeur=/marge=/cadre=/couleurcadre=/couleurfond=/couleurtexte=/align=left/valign=topqCUdPT:T1:hauteur=/largeur=/marge=/cadre=/couleurcadre=/couleurfond=/couleurtexte=/align=left/valign=topqDeUsystemqEUdataqFh!Uh.U1hUinformation du dossierqGh5]qH(Uname=author!!content=qIUname=Description!!content=qJU%http-equiv=content-language!!content=qKU5http-equiv=content-type!!content=text/html;iso-8859-1qLU&http-equiv=keywords!!lang=fr!!content=qMU"http-equiv=revisit-after!!content=qNU'http-equiv=robots!!content=index,followqOUhttp-equiv=expires!!content=qPUhttp-equiv=copyright!!content=qQeUgroupes_visiteursqRUAnonymous&AuthenticatedqSUskinqTUdefaultqUUgroupes_editeursqVU config_zwookqWu.O1 —((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Uelq U _getitem_q U_getitemq U _getattr_q U_getattrqU_print_qU_printqUcontextqUmemqUchapqUartqUlinqUstringqUliqUstrqtqU co_argcountqKubU_paramsqUelqUidqUview_standby_elementqU__ac_local_roles__q}q Ugregq!]q"UOwnerq#asU _bind_namesq$(cShared.DC.Scripts.Bindings NameAssignments q%oq&}q'U_asgnsq(}q)(Uname_containerq*U containerq+U name_subpathq,Utraverse_subpathq-U name_contextq.Ucontextq/U name_m_selfq0Uscriptq1usbU func_defaultsq2NU_codeq3Tcsd„ZdS(Nc#s$t}t}tƒ}||tdƒdƒƒ}||||dƒdƒ|ƒ}||tdƒ|ƒIJ||dƒdjon|dIJ |d ||d ƒƒd IJ d }  d }  xF||d ƒd r0}  | d|t dƒ| ddƒd} qáWx>||dƒdr(} | |t dƒ| ddƒ} q-W|d| dIJ|d| dIJ|dt||dƒƒdIJ|dt||dƒƒdIJ|dt|ƒd IJ|dIJn||tdƒ|ƒIJ|ƒSdS( Nszwo_libsmem_datasrep_objszwo_standby_contentsstandard_html_headerstypesarticles-
s'sschapeauissreplaces s
s
s*

s-

' print '

' print '
' print '

' print '' print '
' print context.standard_html_footer(mem) return printed q6U Script_magicq7KUwarningsq8)Uerrorsq9)U Python_magicq:U*ë q;u.O2c((U OFS.FolderqUFolderqtqNt.}q(UidqUzwo_standby_contentqU__ac_local_roles__q}qUjoeq ]q UOwnerq asU_objectsq (}q (U meta_typeqU DTML DocumentqhU1utU _propertiesq(}q(hUtitleqUmodeqUwUtypeqUstringqu}q(hUnumqhUintquthU!Contenu en attente de publicationqhKU1(UO’q(UOFS.DTMLDocumentqU DTMLDocumentqtqtqQu.O4(((U OFS.FolderqUFolderqtqNt.}q(U__ac_local_roles__q}qUp4q]qUOwnerq asU$_Add_Session_Data_Manager_Permissionq (UManagerq tU _propertiesq (}q (UidqUtitleqUmodeqUwUtypeqUstringqu}q(hU type_zwookqhhutU!_Change_Page_Templates_Permissionq(h U config_zwookqtU_Manage_Access_Rules_Permissionq(h htU-_Manage_Transient_Object_Container_Permissionq(h U AuthenticatedqhtU_Undo_changes_Permissionq(h hhtU_WebDAV_Lock_items_Permissionq(h hhtU!_Change_DTML_Documents_Permissionq(h hhtU)_Add_XSL_Transformer_Registrys_Permissionq(h tU_Edit_Permissionq(h tU_WebDAV_Unlock_items_Permissionq(h hhtU_View_Permissionq (h hhtU!_Change_cache_settings_Permissionq!(h tU"_Add_Browser_Id_Manager_Permissionq"(h tU#_Change_External_Methods_Permissionq#(h tU%_Change_Browser_Id_Manager_Permissionq$(h tU#_Change_Lock_Information_Permissionq%(h htU_Change_proxy_roles_Permissionq&(h tU"_Add_RAM_Cache_Managers_Permissionq'(h tU/_Add_Accelerated_HTTP_Cache_Managers_Permissionq((h tU*_Add_Transient_Object_Container_Permissionq)(h htU_objectsq*(}q+(U meta_typeq,UFolderq-hU zwo_dossierq.u}q/(U meta_typeq0UFolderq1Uidq2Uzwo_standby_contentq3utU_Add_User_Folders_Permissionq4(h tU_Change_permissions_Permissionq5(h htU_Add_Pluggable_Index_Permissionq6(h th3(UO“q7(hUFolderq8tq9tq:QU_Manage_Z_Classes_Permissionq;(h htU,_Add_Z_MySQL_Database_Connections_Permissionq<(h tU._Access_arbitrary_user_session_data_Permissionq=(h hhtU _Add_MailHost_objects_Permissionq>(h htU_Access_session_data_Permissionq?(h hhtU_Change_DTML_Methods_Permissionq@(h htU$_Create_Transient_Objects_PermissionqA(h htU#_Change_Images_and_Files_PermissionqB(h hhtU_Change_bindings_PermissionqC(h tU!_Change_Python_Scripts_PermissionqD(h thUmembresqEU_Manage_Vocabulary_PermissionqF(h htU_Add_Folders_PermissionqG(h hhtU_Add_ZCatalogs_PermissionqH(h htU%_Add_Virtual_Host_Monsters_PermissionqI(h tU_Search_ZCatalog_PermissionqJ(h hhtU(_Manage_ZCatalogIndex_Entries_PermissionqK(h hthUdossierqLU _Change_configuration_PermissionqM(h htU_FTP_access_PermissionqN(h hhtU_Query_Vocabulary_PermissionqO(h hhtU'_Change_Database_Connections_PermissionqP(h htU _Log_to_the_Event_Log_PermissionqQ(h tU_Manage_WebDAV_Locks_PermissionqR(h htU_Log_Site_Errors_PermissionqS(h tU,_Add_Documents__Images__and_Files_PermissionqT(h hhtU _Add_Temporary_Folder_PermissionqU(h tU_Add_XML_Transforms_PermissionqV(h th.(UO”qW(hUFolderqXtqYtqZQU-_Add_Z_Gadfly_Database_Connections_Permissionq[(h htU!_Change_cache_managers_Permissionq\(h tU'_Change_Session_Data_Manager_Permissionq](h tU_Manage_properties_Permissionq^(h hhtU _Add_Database_Methods_Permissionq_(h htU_Add_Python_Scripts_Permissionq`(h tU#_Change_Database_Methods_Permissionqa(h htU_Manage_users_Permissionqb(h tU!_Use_mailhost_services_Permissionqc(h hhtU(_Save_discard_Version_changes_Permissionqd(h tU#_View_management_screens_Permissionqe(h htU"_Create_class_instances_Permissionqf(h htU_Join_leave_Versions_Permissionqg(h tU'_Access_contents_information_Permissionqh(h hhtU_Copy_or_Move_Permissionqi(h hhtU_Change_user_folder_Permissionqj(h tU _Add_External_Methods_Permissionqk(h tU_Add_Site_Roots_Permissionql(h tU _Use_Database_Methods_Permissionqm(h htU_Add_Versions_Permissionqn(h tU&_Manage_XML_Transform_Cache_Permissionqo(h tU_Delete_objects_Permissionqp(h hhtU$_Access_Transient_Objects_Permissionqq(h hhthUMembresqrU%_Test_Database_Connections_Permissionqs(h htU_Edit_Factories_Permissionqt(h htU_Add_Vocabularies_Permissionqu(h htU,_Add_XML_Transform_Cache_Managers_Permissionqv(h tU_Add_Zope_Tutorials_Permissionqw(h tU#_Manage_ZCatalog_Entries_Permissionqx(h htU!_Import_Export_objects_Permissionqy(h htU_Use_Factories_Permissionqz(h htU_Add_Page_Templates_Permissionq{(h tU_View_History_Permissionq|(h hhtU_WebDAV_access_Permissionq}(h hhtU_Change_Versions_Permissionq~(h tU_Take_ownership_Permissionq(h htU+_Open_Close_Database_Connections_Permissionq€(h htU*_Open_Close_Database_Connection_Permissionq(h htU!_Manage_XML_Transforms_Permissionq‚(h tu.O3\((U OFS.ImageqUImageqtqNt.}q(UsizeqM€UdataqT€GIF87aXÕÿÿÿÿûúÿíèÿ3ÌÌÌËÌÌÊÌÌÊËÍÉËÍÈËÍÇÊÎÆÊο¿¿²²²¦¦¦™™™ŒŒŒrrrfffZZZMMM3™ÿ3330ï-†ß)|Ï&s¿&&&#i¯ _ŸVM€Cp:`0P &@ 0  ,XÿÀ–pH,ȤrÉ\žÐ¨tJ­Z¯ØlUx¿‚xL.›Ïè´ú\X‡]°×M¯»“¬¦@¿vbvzK|\`Oav -!†tˆJŠ-qsvC•wByC(#ª 'G™q^-!„„bÀ–E(ÊËÌ$E±~œŽt!-Ÿ-¶-¡ !·-ØÆC'ÌìÌ#DÑrÔnÚDŸØÚ¡-·êÑЮ  )†Ä“cgÌe7æ[‡h·ćuìÞíé#¯N¹s#å£(ÆZÀŒBJtȰÌCºv ’dHÇ—ÿ2Á~ &F‡@GR”‚N‹þtµf¥CzžŽ\ô€€yTÏœ4„äˆ 4 æÜªi–¬°j<ø‰´‰´—­m±PX¸€3 I–—ÝÞhRÃð J7p%"ÚeøP"…V¾;Áè&$DÇ… hç!¡Ë}á›x4Ö"Ú™>mjÛ’ŸL\Á£¯A…|ã«?¢Á" B)/ >3í´6[Yš9 ¡IÈ[ßÍ}–ô “å*LekýµrC( ‰Í®t‹P÷I¼Y"|‘T ƤÏÁÜÒO ŒW„6&4vSaúq5Ka¬ö_$WÈ¥! äÂ`&˜pÑf…àÀvå=Do ±…ÖaÕ4ý!à‡€ÞgyÖ wLpM>š3VŒB¤@P;ŒÐN¤ôEËbÁqA‘ñ1ctÉåp_29ß“l BBO.ƒP , †£k€]’DjSÑIU+¨`§·ñ¤'hp@ ( ÀŒ"`@–ÇŸ”VŠG),¬ÀB)–vêé§H;qU__ac_local_roles__q}q Ugregq ]q UOwnerq asU__name__q Uanybrowser.gifqU content_typeqU image/gifqUtitleqhU preconditionqUUwidthqKXUheightqKu.O5Ý((UOFS.DTMLDocumentqU DTMLDocumentqtqNt.}q(Udataq]q(UX
Zwook est un projet open-source basé sur le serveur Zope. ActuellementqU?disponible en version beta, ce logiciel sous license GPL permetqU?notamment de créer des sites web et intranet sans connaissancesq U|techniques. Zwook.org : documentationq U4Zwook.com !
q eU__ac_local_roles__q }q Uxavq]qUOwnerqasU _propertiesq(}q(UidqUtitleqUmodeqUwUtypeqUstringqu}q(hU type_zwookqhhu}q(hUelementqhhu}q(hUformatqhhu}q(hhhUlinesqu}q (hU rapideditq!hhu}q"(Uidq#U dispositionq$Utypeq%Ustringq&utq'h$U++q(U__name__q)Utexteq*Uglobalsq+}q,hhUrawq-UŒ

This is the Document.

q.hUtextq/hUtextq0hUtexteq1h!U1U_varsq2}q3u.O6B((U PersistenceqUPersistentMappingqtqNt.}qU _containerq}qs.O7((U PersistenceqUPersistentMappingqtqNt.}qU _containerq}qUadminq(UO•q(UAccessControl.Userq UUserq tq tq Qss.O8((U OFS.FolderqUFolderqtqNt.}q(UidqUconfigqU__ac_local_roles__q}qUgregq ]q UOwnerq asU skins.gifq (UO–q (U OFS.ImageqUImageqtqtqQU_objectsq(}q(U meta_typeqUImageqhh u}q(U meta_typeqUImageqUidqU membres.gifqu}q(hhhU groupes.gifqu}q(U meta_typeqUImageqUidq U infos.gifq!u}q"(U meta_typeq#UImageq$Uidq%U modules.jpgq&utUtitleq'UU groupes.gifq((UO—q)(hUImageq*tq+tq,QU membres.gifq-(UO˜q.(hUImageq/tq0tq1Qh&(UO™q2(hUImageq3tq4tq5Qh!(UOšq6(hUImageq7tq8tq9Qu.O9)Ú((U OFS.FolderqUFolderqtqNt.}q(Ur_rond_edit.gifq(UO›q(U OFS.ImageqUImageqtq tq QU__ac_local_roles__q }q Uxavq ]qUOwnerqasUr_cercle_admin.gifq(UOœq(hUImageqtqtqQUrond_renommer_page.gifq(UOq(hUImageqtqtqQUr_carre_detruit_ligne.gifq(UOžq(hUImageqtqtqQUrond_plus_page.gifq(UOŸq (hUImageq!tq"tq#QUr_rond_zwook.gifq$(UO q%(hUImageq&tq'tq(QUzwook_module.gifq)(UO¡q*(hUFileq+tq,tq-QUrond_coche_elem.gifq.(UO¢q/(hUImageq0tq1tq2QUrond_skin_detruit_soustab.gifq3(UO£q4(hUImageq5tq6tq7QUcarre_skin_ajout_colonne.gifq8(UO¤q9(hUImageq:tq;tq(hUImageq?tq@tqAQUrond_editer_skin.gifqB(UOùqC(hUImageqDtqEtqFQUr_rond_detruit_col.gifqG(UO¨qH(hUImageqItqJtqKQUrond_duplique_page.gifqL(UO©qM(hUImageqNtqOtqPQU carre_ici.gifqQ(UOªqR(hUImageqStqTtqUQUrond_edit_fusion.gifqV(UO¬qW(hUImageqXtqYtqZQU rond_bug.gifq[(UO­q\(hUImageq]tq^tq_QUrond_ouvre.gifq`(UO½qa(hUImageqbtqctqdQUrond_annule.gifqe(UO®qf(hUImageqgtqhtqiQUrond_zwook.gifqj(UOóqk(hUImageqltqmtqnQUr_carre_ici.gifqo(UOÏqp(hUImageqqtqrtqsQUrond_detruit_page.gifqt(UO¯qu(hUImageqvtqwtqxQUr_carre_detruit_colonne.gifqy(UO±qz(hUImageq{tq|tq}QUrond_deplace_page.gifq~(UO²q(hUImageq€tqtq‚QUrond_deplace_elem.gifqƒ(UO³q„(hUImageq…tq†tq‡QUrond_duplique_elem.gifqˆ(UO«q‰(hUImageqŠtq‹tqŒQUrond_renommer_skin.gifq(UOµqŽ(hUImageqtqtq‘QU_objectsq’(}q“(U meta_typeq”UFileq•Uidq–Uzwook_edit.gifq—u}q˜(h”h•h–Uzwook_skin.gifq™u}qš(h”h•h–Uzwook_arbo.gifq›u}qœ(h”h•h–Uzwook_admin.gifqu}qž(U meta_typeqŸUImageq Uidq¡Uf_cercle_edit.gifq¢u}q£(hŸh h¡Ur_cercle_edit.gifq¤u}q¥(hŸh h¡Uf_cercle_skin.gifq¦u}q§(hŸh h¡Ur_cercle_skin.gifq¨u}q©(hŸh h¡Uf_cercle_arbo.gifqªu}q«(hŸh h¡Ur_cercle_arbo.gifq¬u}q­(hŸh h¡Uf_cercle_admin.gifq®u}q¯(hŸh h¡hu}q°(hŸh h¡Uf_cercle_zope.gifq±u}q²(hŸh h¡Ur_cercle_zope.gifq³u}q´(hŸh h¡Ucercle_edit.gifqµu}q¶(hŸh h¡Ucercle_skin.gifq·u}q¸(hŸh h¡Ucercle_arbo.gifq¹u}qº(hŸh h¡Ucercle_admin.gifq»u}q¼(hŸh h¡Ucercle_zope.gifq½u}q¾(hŸh h¡Ur_rond_help.gifq¿u}qÀ(hŸh h¡U rond_help.gifqÁu}qÂ(hŸh h¡Ur_rond_annule.gifqÃu}qÄ(hŸh h¡heu}qÅ(hŸh h¡hju}qÆ(U meta_typeqÇUImageqÈUidqÉh`u}qÊ(hÇhÈhÉUrond_ferme.gifqËu}qÌ(U meta_typeqÍUImageqÎUidqÏUrond_list_elem.gifqÐu}qÑ(hÍhÎhÏhQu}qÒ(U meta_typeqÓUImageqÔUidqÕUrond_edit_elem.gifqÖu}q×(hÓhÔhÕhƒu}qØ(hÓhÔhÕhˆu}qÙ(hÓhÔhÕUrond_detruire_elem.gifqÚu}qÛ(hÓhÔhÕUrond_select_elem.gifqÜu}qÝ(hÓhÔhÕUrond_unselect_elem.gifqÞu}qß(hÓhÔhÕUrond_renommer_elem.gifqàu}qá(U meta_typeqâUImageqãUidqäh.u}qå(hâhãhäUrond_decoche_elem.gifqæu}qç(U meta_typeqèUImageqéUidqêUr_rond_ferme.gifqëu}qì(hèhéhêUr_rond_ouvre.gifqíu}qî(U meta_typeqïUImageqðUidqñUr_rond_plus.gifqòu}qó(U meta_typeqôUImageqõUidqöhu}q÷(hôhõhöUr_rond_coche.gifqøu}qù(hôhõhöUr_rond_decoche.gifqúu}qû(hôhõhöUr_rond_deplace.gifqüu}qý(hôhõhöUr_rond_detruire.gifqþu}qÿ(hôhõhöUr_rond_duplique.gifru}r(hôhõhöUr_rond_renommer.gifru}r(hôhõhöhGu}r(hôhõhöUrond_detruit_col.gifru}r(hôhõhöUrond_detruit_ligne.gifru}r(hôhõhöUr_rond_detruit_ligne.gifr u}r (hôhõhöUr_rond_coche_case.gifr u}r (hôhõhöUr_rond_decoche_case.gifr u}r(hôhõhöUrond_coche_case.gifru}r(hôhõhöUrond_decoche_case.gifru}r(U meta_typerUImagerUidrh=u}r(jjjUr_rond_modif_li_co.gifru}r(U meta_typerUImagerUidrUr_carre_ajout_colonne.gifru}r(jjjUcarre_edit_ajout_colonne.gifru}r(jjjUcarre_edit_ajout_ligne.gifr u}r!(jjjUr_carre_ajout_ligne.gifr"u}r#(jjjhyu}r$(jjjhu}r%(jjjUcarre_detruit_colonne.gifr&u}r'(jjjUcarre_detruit_ligne.gifr(u}r)(U meta_typer*UImager+Uidr,hVu}r-(j*j+j,Ur_rond_fusion.gifr.u}r/(j*j+j,Urond_edit_annule_fusion.gifr0u}r1(j*j+j,Ur_rond_annule_fusion.gifr2u}r3(j*j+j,Urond_edit_ajout_soustab.gifr4u}r5(j*j+j,Ur_rond_ajout_soustab.gifr6u}r7(j*j+j,Urond_edit_detruit_soustab.gifr8u}r9(j*j+j,Ur_rond_detruit_soustab.gifr:u}r;(U meta_typer<UImager=Uidr>U mapcolor.jpgr?u}r@(U meta_typerAUImagerBUidrChou}rD(U meta_typerEUImagerFUidrGUrond_detruire_skin.gifrHu}rI(jEjFjGUrond_dupliquer_skin.gifrJu}rK(jEjFjGhBu}rL(jEjFjGUrond_plus_skin.gifrMu}rN(jEjFjGhu}rO(jEjFjGh8u}rP(jEjFjGUcarre_skin_ajout_ligne.gifrQu}rR(U meta_typerSUImagerTUidrUUrond_skin_ajout_soustab.gifrVu}rW(jSjTjUUrond_skin_annule_fusion.gifrXu}rY(jSjTjUUrond_skin_coche_case.gifrZu}r[(jSjTjUUrond_skin_decoche_case.gifr\u}r](jSjTjUh3u}r^(jSjTjUUrond_skin_fusion.gifr_u}r`(jSjTjUUrond_skin_modif_li_co.gifrau}rb(U meta_typercUImagerdUidreUr_rond_zone_edit.gifrfu}rg(jcjdjeUrond_zone_edit.gifrhu}ri(U meta_typerjUImagerkUidrlUr_rond_droit.gifrmu}rn(jjjkjlUr_rond_refer.gifrou}rp(jjjkjlUr_rond_skin.gifrqu}rr(jjjkjlUrond_droit.gifrsu}rt(jjjkjlUrond_refer.gifruu}rv(jjjkjlU rond_skin.gifrwu}rx(U meta_typeryUImagerzUidr{h~u}r|(jyjzj{htu}r}(jyjzj{hLu}r~(jyjzj{hu}r(jyjzj{hu}r€(U meta_typerUImager‚UidrƒUrond_detruit_groupe.gifr„u}r…(jj‚jƒUrond_detruit_user.gifr†u}r‡(jj‚jƒUrond_duplique_groupe.gifrˆu}r‰(jj‚jƒUrond_edit_user.gifrŠu}r‹(jj‚jƒUrond_edit_groupe.gifrŒu}r(jj‚jƒUrond_plus_groupe.gifrŽu}r(jj‚jƒUrond_plus_user.gifru}r‘(U meta_typer’UImager“Uidr”h[u}r•(j’j“j”Ur_rond_bug.gifr–u}r—(U meta_typer˜UImager™Uidršh$u}r›(U meta_typerœUFilerUidržUzwook_module.gifrŸu}r (U meta_typer¡UFolderr¢Uidr£Udispor¤utj(UO¶r¥(hUImager¦tr§tr¨Qhª(UO·r©(hUImagerªtr«tr¬Qju(UO¸r­(hUImager®tr¯tr°Qh™(UO¹r±(hUFiler²tr³tr´Qj_(UOårµ(hUImager¶tr·tr¸Qh¬(UOÙr¹(hUImagerºtr»tr¼QjZ(UOôr½(hUImager¾tr¿trÀQjm(UOörÁ(hUImagerÂtrÃtrÄQh¨(UO»rÅ(hUImagerÆtrÇtrÈQj (UO¼rÉ(hUImagerÊtrËtrÌQh–UborÍj†(UPrÎ(hUImagerÏtrÐtrÑQj(UO¿rÒ(hUImagerÓtrÔtrÕQhÖ(UOÀrÖ(hUImager×trØtrÙQjw(UOÁrÚ(hUImagerÛtrÜtrÝQjŒ(UOÂrÞ(hUImagerßtràtráQUzwook_admin.gifrâ(UOÃrã(hUFilerätråtræQj((UOÄrç(hUImagerètrétrêQj–(UOÅrë(hUImagerìtrítrîQjf(UOÆrï(hUImagerðtrñtròQhÐ(UOÇró(hUImagerôtrõtröQj2(UOÈr÷(hUImagerøtrùtrúQj6(UOÉrû(hUImagerütrýtrþQj:(UOÊrÿ(hUImagertrtrQjh(UOËr(hUImagertrtrQhú(UOÌr(hUImagertr tr Qj(UOÍr (hUImager tr trQj (UO§r(hUImagertrtrQj?(UOÐr(hUImagertrtrQja(UOÑr(hUImagertrtrQj„(UOÒr(hUImagertrtrQhø(UOür(hUImager tr!tr"Qjˆ(UOÓr#(hUImager$tr%tr&QUcarre_edit_ajout_colonne.gifr'(UOÔr((hUImager)tr*tr+Qjs(UOÕr,(hUImager-tr.tr/Qhæ(UOÖr0(hUImager1tr2tr3Qh¿(UO×r4(hUImager5tr6tr7Qj (UOØr8(hUImager9tr:tr;QhÞ(UO°r<(hUImager=tr>tr?QjH(UOÚr@(hUImagerAtrBtrCQh¢(UOÛrD(hUImagerEtrFtrGQhÚ(UOÜrH(hUImagerItrJtrKQhË(UOÝrL(hUImagerMtrNtrOQj\(UOÞrP(hUImagerQtrRtrSQhà(UOßrT(hUImagerUtrVtrWQUcercle_skin.gifrX(UOàrY(hUImagerZtr[tr\Qj"(UOár](hUImager^tr_tr`Qhü(UOâra(hUImagerbtrctrdQj.(UOãre(hUImagerftrgtrhQj(UOäri(hUImagerjtrktrlQhë(UO´rm(hUImagerntrotrpQjŽ(UO¾rq(hUImagerrtrstrtQUcercle_zope.gifru(UOçrv(hUImagerwtrxtryQjQ(UOèrz(hUImager{tr|tr}Qhþ(UOér~(hUImagertr€trQjJ(UOêr‚(hUImagerƒtr„tr…Qhò(UP r†(hUImager‡trˆtr‰Qh¦(UOërŠ(hUImager‹trŒtrQj0(UOírŽ(hUImagertrtr‘Qh¤(UOìr’(hUImager“tr”tr•QUcercle_arbo.gifr–(UOïr—(hUImager˜tr™tršQhÁ(UOðr›(hUImagerœtrtržQhÜ(UOñrŸ(hUImager tr¡tr¢Qh—(UOòr£(hUFiler¤tr¥tr¦QUcercle_edit.gifr§(UOær¨(hUImager©trªtr«QUtitler¬Uj(UOõr­(hUImager®tr¯tr°QjX(UOºr±(hUImager²tr³tr´QUcercle_admin.gifrµ(UO÷r¶(hUImager·tr¸tr¹Qh±(UOørº(hUImager»tr¼tr½Qh®(UOÎr¾(hUImager¿trÀtrÁQUdisporÂ(UOúrÃ(hUFolderrÄtrÅtrÆQj&(UOûrÇ(hUImagerÈtrÉtrÊQh³(UOîrË(hUImagerÌtrÍtrÎQhÃ(UOýrÏ(hUImagerÐtrÑtrÒQjŠ(UOþrÓ(hUImagerÔtrÕtrÖQjM(UOÿr×(hUImagerØtrÙtrÚQj(UPrÛ(hUImagerÜtrÝtrÞQh›(UPrß(hUFileràtrátrâQjq(UPrã(hUImagerätråtræQj8(UPrç(hUImagerètrétrêQjo(UPrë(hUImagerìtrítrîQhí(UPrï(hUImagerðtrñtròQj4(UPró(hUImagerôtrõtröQj(UPr÷(hUImagerøtrùtrúQjV(UO¦rû(hUImagerütrýtrþQj(UP rÿ(hUImagertrtrQj (UP r(hUImagertrtrQj(UP r(hUImagertr tr Qu.O:¥((U OFS.FolderqUFolderqtqNt.}q(U sel_no_r.gifq(UP q(U OFS.ImageqUImageqtq tq QU__ac_local_roles__q }q Uinsert_colonne.gifq (UPq(hUImageqtqtqQU duplique.gifq(UPq(hUImageqtqtqQU _propertiesq(}q(UidqUtitleqUmodeqUwUtypeqUstringqu}q(hU type_zwookqhUstringq utU edit_del_movq!(UPq"(hUFolderq#tq$tq%QUr_manage_ico.gifq&(UPq'(hUImageq(tq)tq*QU sel_yes_r.gifq+(UPq,(hUImageq-tq.tq/QUtitleq0UUadd_page38.gifq1(UPq2(hUImageq3tq4tq5QUpropriete_tab.gifq6(UPq7(hUImageq8tq9tq:QUconfig_ico.gifq;(UPq<(hUImageq=tq>tq?QUr_config_ico.gifq@(UPqA(hUImageqBtqCtqDQU voir_ico.gifqE(UPqF(hUImageqGtqHtqIQUdel.gifqJ(UPqK(hUImageqLtqMtqNQU logo_elementsqO(UPqP(hUFolderqQtqRtqSQUconfig_ico_t.gifqT(UPqU(hUImageqVtqWtqXQU_objectsqY(}qZ(U meta_typeq[UImageq\Uidq]U dossier.gifq^u}q_(U meta_typeq`UImageqaUidqbUdossier_plus.gifqcu}qd(U meta_typeqeUImageqfUidqgU retour.gifqhu}qi(U meta_typeqjUImageqkUidqlU skins_ico.gifqmu}qn(hjhkhlUretour_ico.gifqou}qp(U meta_typeqqUImageqrUidqsU poubelle.gifqtu}qu(hqhrhsU stylo.gifqvu}qw(hqhrhsU users_ico.gifqxu}qy(U meta_typeqzUImageq{Uidq|Ugroupes_ico.gifq}u}q~(U meta_typeqUFolderq€UidqU edit_del_movq‚u}qƒ(hh€hU logo_elementsq„u}q…(U meta_typeq†UImageq‡UidqˆUdel.gifq‰u}qŠ(U meta_typeq‹UImageqŒUidqUmove.gifqŽu}q(U meta_typeqUImageq‘Uidq’Uici.gifq“u}q”(U meta_typeq•UImageq–Uidq—Uplus.gifq˜u}q™(h•h–h—U add_page.gifqšu}q›(U meta_typeqœUImageqUidqžh&u}qŸ(hœhhžUr_voir_ico.gifq u}q¡(U meta_typeq¢UImageq£Uidq¤U add_page_.gifq¥u}q¦(U meta_typeq§UImageq¨Uidq©h1u}qª(h§h¨h©U admin_ico.gifq«u}q¬(h§h¨h©Uconfig_ico.gifq­u}q®(h§h¨h©Uconfig_ico_t.gifq¯u}q°(h§h¨h©Umanage_ico.gifq±u}q²(h§h¨h©Umanage_ico_t.gifq³u}q´(h§h¨h©Ur_config_ico.gifqµu}q¶(h§h¨h©U voir_ico.gifq·u}q¸(U meta_typeq¹UImageqºUidq»hu}q¼(U meta_typeq½UImageq¾Uidq¿h6u}qÀ(h½h¾h¿h u}qÁ(h½h¾h¿Uinsert_ligne.gifqÂu}qÃ(h½h¾h¿U sel_no.gifqÄu}qÅ(h½h¾h¿hu}qÆ(h½h¾h¿U sel_yes.gifqÇu}qÈ(h½h¾h¿h+u}qÉ(U meta_typeqÊUFolderqËUidqÌUoldqÍu}qÎ(U meta_typeqÏUImageqÐUidqÑUadmin_ico_t.gifqÒu}qÓ(hÏhÐhÑUr_admin_ico.gifqÔu}qÕ(U meta_typeqÖUImageq×UidqØU browsing1.gifqÙu}qÚ(hÖh×hØU browsing2.gifqÛu}qÜ(U meta_typeqÝUFolderqÞUidqßUforumsqàutUmanage_ico_t.gifqá(UPqâ(hUImageqãtqätqåQUmove.gifqæ(UPqç(hUImageqètqétqêQh (UPqë(hUImageqìtqítqîQhÛ(UPqï(hUImageqðtqñtqòQhc(UP qó(hUImageqôtqõtqöQhÂ(UP!q÷(hUImageqøtqùtqúQU type_zwookqûUdossierqühÄ(UP"qý(hUImageqþtqÿtrQUadmin_ico_t.gifr(UP#r(hUImagertrtrQUoldr(UP$r(hUFolderrtr tr QhÙ(UP%r (hUImager tr trQho(UP&r(hUImagertrtrQhÇ(UP'r(hUImagertrtrQUgroupes_ico.gifr(UPr(hUImagertrtrQU admin_ico.gifr(UP)r(hUImagertrtr Qh¥(UP*r!(hUImager"tr#tr$QUr_admin_ico.gifr%(UP+r&(hUImager'tr(tr)Qh˜(UP,r*(hUImager+tr,tr-QUidr.Uiconesr/Uforumsr0(UP-r1(hUFolderr2tr3tr4QUici.gifr5(UP.r6(hUImager7tr8tr9Qhv(UP/r:(hUImager;tr<tr=Qht(UP0r>(hUImager?tr@trAQU retour.gifrB(UP1rC(hUImagerDtrEtrFQhm(UP2rG(hUImagerHtrItrJQU users_ico.gifrK(UP3rL(hUImagerMtrNtrOQh^(UP(rP(hUImagerQtrRtrSQhš(UP4rT(hUImagerUtrVtrWQUmanage_ico.gifrX(UP5rY(hUImagerZtr[tr\Qu.O;((U OFS.FolderqUFolderqtqNt.}q(Uarrondi_fin.gifq(UP6q(U OFS.ImageqUImageqtq tq QU onglet3.gifq (UPGq (hUImageq tqtqQU__ac_local_roles__q}qU_objectsq(}q(U meta_typeqUImageqUidqUb_d.gifqu}q(hhhUb_g.gifqu}q(hhhUh_d.gifqu}q(hhhUh_g.gifqu}q(hhhU pixel.gifqu}q (U meta_typeq!UImageq"Uidq#Udroit_admin.jpgq$u}q%(h!h"h#Udroit_aucun.jpgq&u}q'(h!h"h#U droit_vue.jpgq(u}q)(h!h"h#Uaffectation.jpgq*u}q+(U meta_typeq,UImageq-Uidq.Upt1.gifq/u}q0(h,h-h.Upt2.gifq1u}q2(h,h-h.U trait1.gifq3u}q4(U meta_typeq5UImageq6Uidq7Uajouter-element.gifq8u}q9(h5h6h7Ulogo-apercu.gifq:u}q;(U meta_typeqU onglet1.gifq?u}q@(hU onglet2.gifqAu}qB(hh u}qC(hU onglet2_o.gifqDu}qE(hU onglet3_o.gifqFu}qG(hU onglet1_o.gifqHu}qI(U meta_typeqJUImageqKUidqLUlogo.gifqMu}qN(U meta_typeqOUImageqPUidqQU add_page2.gifqRu}qS(U meta_typeqTUImageqUUidqVhu}qW(hThUhVUarrondi_menu.gifqXu}qY(hThUhVU menu_sup.gifqZu}q[(U meta_typeq\UImageq]Uidq^U menu_inf.gifq_uthA(UP9q`(hUImageqatqbtqcQhH(UP:qd(hUImageqetqftqgQh?(UP;qh(hUImageqitqjtqkQh$(UP=ql(hUImageqmtqntqoQh:(UPqy(hUImageqztq{tq|Qh(UP?q}(hUImageq~tqtq€Qh((UP@q(hUImageq‚tqƒtq„QU menu_inf.gifq…(UPJq†(hUImageq‡tqˆtq‰QhUadminqŠhR(UPAq‹(hUImageqŒtqtqŽQh&(UPCq(hUImageqtq‘tq’Qh8(UPDq“(hUImageq”tq•tq–QhD(UPEq—(hUImageq˜tq™tqšQU trait1.gifq›(UPFqœ(hUImageqtqžtqŸQhF(UP7q (hUImageq¡tq¢tq£QhZ(UPHq¤(hUImageq¥tq¦tq§Qh(UPIq¨(hUImageq©tqªtq«Qh(UP8q¬(hUImageq­tq®tq¯QUlogo.gifq°(UPKq±(hUImageq²tq³tq´Qh(UPLqµ(hUImageq¶tq·tq¸Qh/(UPMq¹(hUImageqºtq»tq¼QUtitleq½UhX(UPNq¾(hUImageq¿tqÀtqÁQh(UPOqÂ(hUImageqÃtqÄtqÅQu.O<M((U OFS.ImageqUImageqtqNt.}q(UsizeqL43L UdataqU+GIF89a€ÿÿÿ!ù,D;qU_dav_writelocksq(UPPq (U Persistenceq UPersistentMappingq tq tq QUwidthqKU__name__qU pixel.gifqUtitleqUU content_typeqU image/gifqU preconditionqUUheightqKU__ac_local_roles__q}qUgregq]qUOwnerqasu.O=€((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (U _getattr_q U_getattrq U_print_q U_printq UcontextqUfUctqU co_argcountqKubU_paramsqUUidqUtotligneqU__ac_local_roles__q}qUxavq]qUOwnerqasU _bind_namesq(cShared.DC.Scripts.Bindings NameAssignments qoq}qU_asgnsq}q(Uname_containerqU containerq U name_subpathq!Utraverse_subpathq"U name_m_selfq#Uscriptq$U name_contextq%husbU func_defaultsq&NU_codeq'T csd„ZdS(NcsQt}tƒ}|tdƒ}‡d†‰|ˆ|ƒIJ|ƒSdS(Nsessai_V098_8_3c sát}d}xƒ||dƒdƒdrg}|tdƒ||dƒƒdƒ}x4|dr'}|djo |d}nqiWq-W x5||dƒd ƒd r} |ˆ|ƒ}q¶W |SdS( Nis objectValuessScript (Python)ssplits document_srcs sisFolder( s _getattr_s_getattrsasrsdsstringslslisc( srs _getattr_s_getattrsasdsstringslslisc(sc(sScript (Python)scs  $'$(s _getattr_s_getattrs_print_s_printscontextsfsc(s _getattr_s_getattrs_print_s_printscontextsfsc((scsScript (Python)stotlignes! (stotligne(stotligne((sScript (Python)ssq(U_bodyq)T f=context.essai_V098_8_3 def c(r): a=0 for d in r.objectValues('Script (Python)'): l=string.split(d.document_src(),'\n') for li in l: if li<>'': a=a+1 for d in r.objectValues('Folder'): a=a+c(d) return a print c(f) return printed q*U Script_magicq+KUwarningsq,)Uerrorsq-)U Python_magicq.U*ë q/u.O>÷((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (U _getitem_q U_getitemq U _getattr_q U_getattrq U_print_qU_printqUcontextqUzUrUatqU co_argcountqKubU_paramsqUUidqUtestuqU__ac_local_roles__q}qUxavq]qUOwnerqasU _bind_namesq(cShared.DC.Scripts.Bindings NameAssignments qoq}qU_asgnsq}q (Uname_containerq!U containerq"U name_subpathq#Utraverse_subpathq$U name_m_selfq%Uscriptq&U name_contextq'Ucontextq(usbU func_defaultsq)NU_codeq*TÉcsd„ZdS(Nc sÈt}t}tƒ}|tdƒ}||dƒƒ}xx|drk} || IJ||| dƒIJ||| dƒIJ||| dƒIJ||| dƒIJqHW |ƒSdS(Nszwooksundoable_transactionsistimesids user_names description( s _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextszsrsa( s _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextszsrsa((sScript (Python)stestus' (stestu(stestu((sScript (Python)ssq+U_bodyq,U¤z=context.zwook r=z.undoable_transactions() for a in r: print a print a['time'] print a['id'] print a['user_name'] print a['description'] return printed q-U Script_magicq.KUwarningsq/)Uerrorsq0)U Python_magicq1U*ë q2u.O?õ((U OFS.FolderqUFolderqtqNt.}q(UidqUimagesqU__ac_local_roles__q}qUxavq ]q UOwnerq asUfondsq (UPRq (hUFolderqtqtqQU_objectsq(}q(U meta_typeqUFolderqhUavatarqu}q(hhhUfondsqu}q(hhhU navigationqutU navigationq(UPQq(hUFolderqtqtqQU _propertiesq(}q (hUtitleq!Umodeq"UwUtypeq#Ustringq$u}q%(hUsystemq&h#Ustringq'u}q((hU type_zwookq)h#Ustringq*utUavatarq+(UPSq,(hUFolderq-tq.tq/Qh!UU type_zwookq0Usystemq1Usystemq2Udataq3u.O@ø((U OFS.FolderqUFolderqtqNt.}q(UidqUgroupsqU__ac_local_roles__q}qU pages_managerq (UPTq (hUFolderq tq tq QU_objectsq(}q(U meta_typeqUFolderqUidqU Anonymousqu}q(hhhU Authenticatedqu}q(hhhUManagerqu}q(U meta_typeqUFolderqUidqU config_zwookqu}q(U meta_typeqUFolderqUidq U skin_editorq!u}q"(hhh U pages_managerq#utU _propertiesq$(}q%(hUtitleq&Umodeq'UwUtypeq(Ustringq)u}q*(hU type_zwookq+h(Ustringq,u}q-(hUsystemq.h(Ustringq/utU Anonymousq0(UPUq1(hUFolderq2tq3tq4QU type_zwookq5Usystemq6UManagerq7(UPVq8(hUFolderq9tq:tq;Qh(UPWq<(hUFolderq=tq>tq?QUsystemq@UdataqAU skin_editorqB(UPXqC(hUFolderqDtqEtqFQh&UU AuthenticatedqG(UPYqH(hUFolderqItqJtqKQu.OB((U OFS.FolderqUFolderqtqNt.}q(UidqUskinsqU__ac_local_roles__q}qU_objectsq (}q (U meta_typeq UFolderq Uidq U orange_sunqu}q(U meta_typeqUFolderqUidqUdefaultqu}q(U meta_typeqUFolderqUidqU blue_moonquth(UP]q(hUFolderqtqtqQU _propertiesq(}q(UidqUtitleq Umodeq!UwUtypeq"Ustringq#u}q$(hU type_zwookq%h"Ustringq&u}q'(hUsystemeq(h"Ustringq)uth(Udataq*U type_zwookq+Usystemq,Utitleq-UUdefaultq.(UP\q/(hUFolderq0tq1tq2Qh(UP^q3(hUFolderq4tq5tq6Qu.OA((U OFS.FolderqUFolderqtqNt.}q(UidqUgeneralqU__ac_local_roles__q}qUgregq ]q UOwnerq asU general_dataq (UPZq (UOFS.DTMLDocumentqU DTMLDocumentqtqtqQUsystemqUdataqU_objectsq(}q(U meta_typeqU DTML DocumentqhU general_dataqu}q(U meta_typeqU DTML DocumentqUidqUstandby_contentqutU _propertiesq(}q(Uidq Utitleq!Umodeq"UwUtypeq#Ustringq$u}q%(h U type_zwookq&h#Ustringq'u}q((h Usystemq)h#Ustringq*utU type_zwookq+Usystemq,Utitleq-UUstandby_contentq.(UP[q/(hU DTMLDocumentq0tq1tq2Qu.OCÐ((U OFS.FolderqUFolderqtqNt.}q(UtitleqUUidqU calendrierqU__ac_local_roles__q}q Uxavq ]q UOwnerq asUtousq (UP_q(hUFolderqtqtqQU_objectsq(}q(U meta_typeqUFolderqhUtousqutu.ODŠ((U OFS.FolderqUFolderqtqNt.}q(UidqUusersqU__ac_local_roles__q}qU_objectsq (}q (U meta_typeq UFolderq Uidq UadminqutU _propertiesq(}q(hUtitleqUmodeqUwUtypeqUstringqu}q(hU type_zwookqhUstringqu}q(hUsystemqhUstringqu}q(UidqU params_stringqUtypeqUstringqu}q (hU params_intq!hUstringq"u}q#(hUavatarq$hUbooleanq%u}q&(hUemailq'hUbooleanq(u}q)(hU date_creationq*hUbooleanq+u}q,(hU params_linesq-hUstringq.u}q/(hU params_floatq0hUstringq1uth!UUavatarq2KUemailq3KU type_zwookq4Usystemq5h-UUsystemq6Udataq7h0UUadminq8(UP`q9(hUFolderq:tq;tqtq?QUtitleq@UU changescriptqA(UPgqB(h#U PythonScriptqCtqDtqEQU newdtmldocqF(UPhqG(h#U PythonScriptqHtqItqJQU changeversionqK(UPiqL(h#U PythonScriptqMtqNtqOQu.OG0@((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (U _getitem_q U_getitemq U _getattr_q U_getattrq U_print_qU_printqUzusaqUzuspqUzusiqUfiltreqUcontextqUupzwtqUstringqUnvzwtqUvUidzwtqtqU co_argcountqKubUidqUconstruct_upgradeqU__ac_local_roles__q}qUxavq]q UOwnerq!asU _bind_namesq"(cShared.DC.Scripts.Bindings NameAssignments q#oq$}q%U_asgnsq&}q'(Uname_containerq(U containerq)U name_subpathq*Utraverse_subpathq+U name_contextq,hU name_m_selfq-Uscriptq.usbU func_defaultsq/NU_codeq0Tãcsd„ZdS(NcsÒt}t}tƒ}dd‰dd‰dd‰‡‡‡‡d†‰oˆd||t dƒdƒ||t d ƒd ƒƒ} r|t d ƒ||||t dƒdƒd ƒd d…ƒddƒ} s| dˆdˆdˆdˆ| ˆ} w||||t d ƒd ƒd ƒd d…ƒ}xd|d}z|||t dƒdƒƒjo&||{t dƒdƒ|gƒn|||t dƒdƒ|| ƒ~|dIJ|ƒSdS(Ns&&&ZPsSA&&&sSP&&&sSI&&&c sHt}t}t}d} x||dƒƒdr} || dƒ}  d| djoç|t jo"|| dƒƒ||dƒƒjoŒ|||| dƒƒƒ} || d ƒƒ|| d ƒƒjoy| d ˆd ˆ|ˆd ˆ|| dƒƒˆd ˆ|| dƒƒˆdˆ|| d ƒƒˆ} n|| dƒdƒp|| dƒdƒou|| dƒdƒp|| dƒdƒ oA| dˆd ˆ|ˆd ˆ|| dƒƒˆ} nnh}x8|| dƒƒdr\}}|||ƒ|sq1U_bodyq2T™zusa='&&&ZP'+'SA&&&' zusp='&&&ZP'+'SP&&&' zusi='&&&ZP'+'SI&&&' def filtre(ch,rn,rv): upfiltre='' for a in rn.objectValues(): m=a.meta_type """ if m=='File': #test propriétés """ if m=='DTML Document': if rv<>None and a.getId() in rv.objectIds() : b=rv[a.getId()] if a.document_src()<>b.document_src(): upfiltre=upfiltre+'newdtmldoc'+zusp+'rep'+zusi+ch+zusp+'scid'+zusi+a.getId()+zusp+'tit'+zusi+a.title_or_id()+zusp+'txt'+zusi+a.document_src()+zusa if (a.manage_haveProxy('Manager') or a.manage_haveProxy('config_zwook')): if not (b.manage_haveProxy('Manager') or b.manage_haveProxy('config_zwook')): upfiltre=upfiltre+'scriptProxyManager'+zusp+'rep'+zusi+ch+zusp+'scid'+zusi+a.getId()+zusa dcn={} for (p,v) in a.propertyItems(): dcn[p]=v dco={} for (p,v) in b.propertyItems(): dco[p]=v dcnk=dcn.keys() dcok=dco.keys() for p in dcnk: dd="l" t=a.getPropertyType(p) v=dcn[p] if not p in dcok: upfiltre=upfiltre+'addparam'+zusp+'rep'+zusi+ch+zusp+'scid'+zusi+a.getId()+zusp+'param'+zusi+p+zusp+'type'+zusi+t+zusp+'value'+zusi+str(v)+zusa elif dco[p]<>dcn[p]: upfiltre=upfiltre+'changeparam'+zusp+'rep'+zusi+ch+zusp+'scid'+zusi+a.getId()+zusp+'param'+zusi+p+zusp+'type'+zusi+t+zusp+'value'+zusi+str(v)+zusa else: upfiltre=upfiltre+'newdtmldoc'+zusp+'rep'+zusi+ch+zusp+'scid'+zusi+a.getId()+zusp+'tit'+zusi+a.title_or_id()+zusp+'txt'+zusi+a.document_src()+zusa if a.manage_haveProxy('Manager') or a.manage_haveProxy('config_zwook'): upfiltre=upfiltre+'scriptProxyManager'+zusp+'rep'+zusi+ch+zusp+'scid'+zusi+a.getId()+zusa for (p,v) in a.propertyItems(): t=a.getPropertyType(p) if p=='title': upfiltre=upfiltre+'changeparam'+zusp+'rep'+zusi+ch+zusp+'scid'+zusi+a.getId()+zusp+'param'+zusi+p+zusp+'type'+zusi+t+zusp+'value'+zusi+str(v)+zusa else: upfiltre=upfiltre+'addparam'+zusp+'rep'+zusi+ch+zusp+'scid'+zusi+a.getId()+zusp+'param'+zusi+p+zusp+'type'+zusi+t+zusp+'value'+zusi+str(v)+zusa if m=='Image': if rv<>None and a.getId() in rv.objectIds() : b=rv[a.getId()] if a.data<>b.data: upfiltre=upfiltre+'newimage'+zusp+'rep'+zusi+ch+zusp+'scid'+zusi+a.getId()+zusp+'image'+zusi+a.data+zusa else: upfiltre=upfiltre+'newimage'+zusp+'rep'+zusi+ch+zusp+'scid'+zusi+a.getId()+zusp+'image'+zusi+a.data+zusa if m=='Script (Python)': if rv<>None and a.getId() in rv.objectIds() : b=rv[a.getId()] if a.read()<>b.read(): upfiltre=upfiltre+'changescript'+zusp+'rep'+zusi+ch+zusp+'scid'+zusi+a.getId()+zusp+'text'+zusi+a.read()+zusa if (a.manage_haveProxy('Manager') or a.manage_haveProxy('config_zwook')): if not (b.manage_haveProxy('Manager') or b.manage_haveProxy('config_zwook')): upfiltre=upfiltre+'scriptProxyManager'+zusp+'rep'+zusi+ch+zusp+'scid'+zusi+a.getId()+zusa else: upfiltre=upfiltre+'newscript'+zusp+'rep'+zusi+ch+zusp+'scid'+zusi+a.getId()+zusp+'text'+zusi+a.read()+zusa if a.manage_haveProxy('Manager') or a.manage_haveProxy('config_zwook'): upfiltre=upfiltre+'scriptProxyManager'+zusp+'rep'+zusi+ch+zusp+'scid'+zusi+a.getId()+zusa if m=='Folder': rv2=None if rv: if a.getId() in rv.objectIds(): rv2=rv[a.getId()] if not rv2: upfiltre=upfiltre+'newfolder'+zusp+'rep'+zusi+ch+zusp+'scid'+zusi+a.getId()+zusa for (p,v) in a.propertyItems(): t=a.getPropertyType(p) if p=='title': upfiltre=upfiltre+'changeparam'+zusp+'rep'+zusi+ch+zusp+'scid'+zusi+a.getId()+zusp+'param'+zusi+p+zusp+'type'+zusi+t+zusp+'value'+zusi+str(v)+zusa else: upfiltre=upfiltre+'addparam'+zusp+'rep'+zusi+ch+zusp+'scid'+zusi+a.getId()+zusp+'param'+zusi+p+zusp+'type'+zusi+t+zusp+'value'+zusi+str(v)+zusa else: dcn={} for (p,v) in a.propertyItems(): dcn[p]=v dco={} for (p,v) in rv2.propertyItems(): dco[p]=v dcnk=dcn.keys() dcok=dco.keys() for p in dcnk: dd="l" t=a.getPropertyType(p) v=dcn[p] if not p in dcok: upfiltre=upfiltre+'addparam'+zusp+'rep'+zusi+ch+zusp+'scid'+zusi+a.getId()+zusp+'param'+zusi+p+zusp+'type'+zusi+t+zusp+'value'+zusi+str(v)+zusa elif dco[p]<>dcn[p]: upfiltre=upfiltre+'changeparam'+zusp+'rep'+zusi+ch+zusp+'scid'+zusi+a.getId()+zusp+'param'+zusi+p+zusp+'type'+zusi+t+zusp+'value'+zusi+str(v)+zusa upfiltre=upfiltre+filtre(ch+'/'+a.getId(),a,rv2) return upfiltre upzwt=filtre('0',context.image_apres.vnew,context.image_avant.vold) nvzwt=string.replace(context.image_apres.vnew.title[1:],'_','.') upzwt=upzwt+'changeversion'+zusp+'rep'+zusi+'0'+zusp+'newversion'+zusi+nvzwt+zusa v=context.image_avant.vold.title[1:] idzwt='zwook_v'+v+'_up.zwt' if idzwt in context.zwt.objectIds(): context.zwt.manage_delObjects([idzwt]) context.zwt.manage_addFile(idzwt,upzwt) print 'ok' return printed q3U Script_magicq4KUwarningsq5)Uerrorsq6)U Python_magicq7U*ë q8u.OHæ((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (U _getattr_q U_getattrq Ucontextq tq U co_argcountqKubUidqUinstallqU__ac_local_roles__q}qUxavq]qUOwnerqasU _bind_namesq(cShared.DC.Scripts.Bindings NameAssignments qoq}qU_asgnsq}q(Uname_containerqU containerqU name_subpathqUtraverse_subpathqU name_contextq h U name_m_selfq!Uscriptq"usbU func_defaultsq#NU_codeq$Tþcsd„ZdS(Nc s»t}d||tdƒdƒƒj o dSn||tdƒdƒdgƒ|tdƒ|tdƒ|tdƒdƒ||tdƒdƒdgƒ d d SdS( Nsadmins zwo_upgradess objectIdssdeja installé...szwo_bosmanage_delObjectsszwo_cpys  obj=context.acl_obj() ra=context.zwo_upgrades.actions for s in ra.objectIds(): context.zwo_cpy(ra,obj,s) context.zwo_upgrades.manage_delObjects(['actions']) s install ok(s _getattr_s_getattrscontext(s _getattr_s_getattrscontext((sScript (Python)sinstalls ,1(sinstall(sinstall((sScript (Python)ssq%U_bodyq&T¦if not 'admin' in context.zwo_upgrades.objectIds(): return 'deja installé...' context.zwo_bo.manage_delObjects(['admin']) context.zwo_cpy(context.zwo_upgrades,context.zwo_bo,'admin') context.zwo_upgrades.manage_delObjects(['admin']) """ obj=context.acl_obj() ra=context.zwo_upgrades.actions for s in ra.objectIds(): context.zwo_cpy(ra,obj,s) context.zwo_upgrades.manage_delObjects(['actions']) """ return 'install ok' q'U Script_magicq(KUwarningsq))Uerrorsq*)U Python_magicq+U*ë q,u.OIï((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (U_write_q U_writeq U _getitem_q U_getitemq U _getattr_qU_getattrqU_print_qU_printqUcontextqUrepdestqUvUidzwtqUstrqUdtqUstringqUactionsqUaUparamsqUpsqUiUpUldebugqUnrqUtmpidqUidqUlpqUpremsq Uelpq!Unrrq"Uscobjq#tq$U co_argcountq%KubhU test_upgradeq&U__ac_local_roles__q'}q(Uxavq)]q*UOwnerq+asU _bind_namesq,(cShared.DC.Scripts.Bindings NameAssignments q-oq.}q/U_asgnsq0}q1(Uname_containerq2U containerq3U name_subpathq4Utraverse_subpathq5U name_contextq6hU name_m_selfq7Uscriptq8usbU func_defaultsq9NU_codeq:TP csd„ZdS(NcsKt}t}t}tƒ}d||tdƒdƒƒjo&||tdƒdƒdgƒn|tdƒ|tdƒ|tdƒdƒ||tdƒdƒ} ||||tdƒdƒdƒƒdd…ƒ} d | d } t |||td ƒ| ƒd ƒƒ}  |td ƒ| ddƒ} xë|d rÞ} |tdƒ|ƒdjo¹ |td ƒ|ddƒ}h}d}xó|dræ}|djod}||dƒ}n²|djo2| }|td ƒ|||ƒddƒ}||dƒ}||dƒ}||}|td ƒ|dƒ}d}x‚|dru}|djo d}nS |||dƒƒj o|!|dƒ|ƒn"|||ƒ}#|}qŠW$|d}%|||ƒ|s : BUG : s
s
ss : OKsok(s_write_s_writes _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextsrepdestsvsidzwtsstrsdtsstringsactionssasparamsspssispsldebugsnrstmpidsidslpspremsselpsnrrsscobj(s_write_s_writes _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextsrepdestsvsidzwtsstrsdtsstringsactionssasparamsspssispsldebugsnrstmpidsidslpspremsselpsnrrsscobj((sScript (Python)s test_upgrades\F#+6*    (      . -! (s test_upgrade(s test_upgrade((sScript (Python)ssq;U_bodyq'': params=string.split(a,'&&&ZP'+'SP&&&') ps={} i=0 for p in params : if i==0: i=1 ldebug=params[0] elif i==1: nr=repdest tmpid=string.split(params[i],'&&&ZP'+'SI&&&') id=tmpid[0] p=tmpid[1] ldebug=ldebug+p lp=string.split(p,'/') prems=0 for elp in lp: if prems==0: prems=1 else: if not elp in nr.objectIds(): nr.manage_addFolder(elp) nrr=nr[elp] nr=nrr i=i+1 ps[id]=nr else: (id,p)=string.split(params[i],'&&&ZP'+'SI&&&') ps[id]=p i=i+1 if id=='scid': ldebug=ldebug+p scobj=context.zwo_upgrades.actions[params[0]] try: scobj(ps) except: print ''+ldebug+' : BUG : '+'
' #print a print '

' else: print ''+ldebug+' : OK'+'
' print 'ok' return printed q=U Script_magicq>KUwarningsq?)Uerrorsq@)U Python_magicqAU*ë qBu.OJ*((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (U_write_q U_writeq U _getitem_q U_getitemq U _getattr_qU_getattrqU_print_qU_printqU AccessControlqUgetSecurityManagerqUaUcontextqUaclobjqUrepdestqUstringqUvUidzwtqUstrqUdtqUactionsqUparamsqUpsqUiUpUldebugqUnrqUtmpidq Uidq!Ulpq"Upremsq#Uelpq$Unrrq%Uscobjq&tq'U co_argcountq(Kubh!U make_upgradeq)U__ac_local_roles__q*}q+Uxavq,]q-UOwnerq.asU _bind_namesq/(cShared.DC.Scripts.Bindings NameAssignments q0oq1}q2U_asgnsq3}q4(Uname_containerq5U containerq6U name_subpathq7Utraverse_subpathq8U name_contextq9hU name_m_selfq:Uscriptq;usbU func_defaultsq|ƒSdS(#N(sgetSecurityManagerscalledByExecutableisnons5UPGRADE............................
sacl_objsreplaceszwooksversions.s_szwook_vs_up.zwtszwtsdatassplits&&&ZPsSA&&&isstripssSP&&&isSI&&&s/s objectIdssmanage_addFoldersscidsactionsss : BUG : s
sP else: print ''+ldebug+' : OK'+'
' s'
UPGRADE TERMINEE ! (!s_write_s_writes _getitem_s_getitems _getattr_s_getattrs_print_s_prints AccessControlsgetSecurityManagersascontextsaclobjsrepdestsstringsvsidzwtsstrsdtsactionssparamsspssispsldebugsnrstmpidsidslpspremsselpsnrrsscobj(!s_write_s_writes _getitem_s_getitems _getattr_s_getattrs_print_s_prints AccessControlsgetSecurityManagersascontextsaclobjsrepdestsstringsvsidzwtsstrsdtsactionssparamsspssispsldebugsnrstmpidsidslpspremsselpsnrrsscobj((sScript (Python)s make_upgradesb+   0*    (      . $ (s make_upgrade(s make_upgrade((sScript (Python)ssq>U_bodyq?TÃfrom AccessControl import getSecurityManager a=getSecurityManager() if a.calledByExecutable()<2: return 'non' print 'UPGRADE............................
' aclobj=context.acl_obj() repdest=context.acl_obj() v=string.replace(context.zwook.version,'.','_') idzwt='zwook_v'+v+'_up.zwt' dt=str(context.zwt[idzwt].data) actions=string.split(dt,'&&&ZP'+'SA&&&') for a in actions: if string.strip(a)<>'': params=string.split(a,'&&&ZP'+'SP&&&') ps={} i=0 for p in params : if i==0: i=1 ldebug=params[0] elif i==1: nr=repdest tmpid=string.split(params[i],'&&&ZP'+'SI&&&') id=tmpid[0] p=tmpid[1] ldebug=ldebug+p lp=string.split(p,'/') prems=0 for elp in lp: if prems==0: prems=1 else: if not elp in nr.objectIds(): nr.manage_addFolder(elp) nrr=nr[elp] nr=nrr i=i+1 ps[id]=nr else: (id,p)=string.split(params[i],'&&&ZP'+'SI&&&') ps[id]=p i=i+1 if id=='scid': ldebug=ldebug+p scobj=context.actions[params[0]] try: scobj(ps) except: print ''+ldebug+' : BUG : '+'
' print params """ else: print ''+ldebug+' : OK'+'
' """ print '
UPGRADE TERMINEE ! ' return printed q@U Script_magicqAKUwarningsqB)UerrorsqC)U Python_magicqDU*ë qEu.OKb8((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Unomformq Unomchampq Ucouleurq U _getitem_q U_getitemqU_print_qU_printqURRqUVVqUBBqUlenqtqU co_argcountqKubU_paramsqUnomform,nomchamp,couleur=NoneqUidqU choixcouleurqU__ac_local_roles__q}qUxavq]qUOwnerqasU_dav_writelocksq (UPjq!(U Persistenceq"UPersistentMappingq#tq$tq%QU _bind_namesq&(cShared.DC.Scripts.Bindings NameAssignments q'oq(}q)U_asgnsq*}q+(Uname_containerq,U containerq-U name_subpathq.Utraverse_subpathq/U name_contextq0Ucontextq1U name_m_selfq2Uscriptq3usbU func_defaultsq4(Ntq5U_codeq6T+1cstd„ZdS(Nc Est}tƒ}d|}|dIJ|dIJ|dIJz|d|d|dIJ{|dIJ‚|d IJƒ|d IJ„|d IJ†d }‡d }ˆd } Š|of‹t |ƒd joLŒ||dd…ƒ}||dd…ƒ}Ž||dd …ƒ} nn|dIJ’|dIJt|dIJu|d|dIJv|d|dIJw|d| dIJx|d||| dIJy|dIJz|dIJ{|d||| dIJ||dIJ}|dIJ~|d IJ|d!IJ€|ƒSdS("Ns#s s"Choix de la couleurs# ss
sF
Choisir une couleur.
sffiiiisisì

s
s%s% [select]s s
s ( s _getitem_s_getitems_print_s_printscouleursnomformsnomchampsRRsVVsBBslen( snomformsnomchampscouleurs _getitem_s_getitems_print_s_printsRRsVVsBBslen((sScript (Python)s choixcouleursL   v           ÿÿÿÿÿÿÿé       (sNones choixcouleur(sNones choixcouleur((sScript (Python)ssq7U_bodyq8Tü-couleur='#'+couleur print '' print 'Choix de la couleur' print """ """ print '' print '
' print '
Choisir une couleur.
' RR="ff" VV="ff" BB="ff" if couleur: if len(couleur)>=7: RR=couleur[1:3] VV=couleur[3:5] BB=couleur[5:7] print '' print """

""" print '' print '' print '' print '' print '
[select]
' print ' ' print '
' print '' return printed q9U Script_magicq:KUwarningsq;)Uerrorsq<)U Python_magicq=U*ë q>u.OL¿((U OFS.FolderqUFolderqtqNt.}q(U__ac_local_roles__q}qUxavq]qUOwnerq asU_objectsq (}q (U meta_typeq UScript (Python)q UidqU insertpageokqu}q(U meta_typeqUScript (Python)qUidqU dupliquerokqu}q(U meta_typeqUScript (Python)qUidqUrenommer_pagesqu}q(U meta_typeqUScript (Python)qUidqUdupliquer_pagesqu}q(U meta_typeq UScript (Python)q!Uidq"Udetruire_pagesq#u}q$(h h!h"U detruireokq%u}q&(U meta_typeq'UScript (Python)q(Uidq)Udeplacer_pagesq*u}q+(h'h(h)U deplaceokq,u}q-(U meta_typeq.UScript (Python)q/Uidq0Uskinokq1u}q2(U meta_typeq3UScript (Python)q4Uidq5Urefokq6u}q7(U meta_typeq8UScript (Python)q9Uidq:Udroitokq;u}q<(U meta_typeq=UScript (Python)q>Uidq?U index_htmlq@u}qA(h=h>h?U valid_selqBu}qC(h=h>h?U renommerokqDu}qE(h=h>h?UskinsqFu}qG(h=h>h?U change_skinqHu}qI(h=h>h?UrefersqJu}qK(h=h>h?U change_refqLu}qM(h=h>h?UdroitsqNu}qO(h=h>h?U change_droitqPutUdroitsqQ(UPkqR(U#Products.PythonScripts.PythonScriptqSU PythonScriptqTtqUtqVQU change_skinqW(UPlqX(hSU PythonScriptqYtqZtq[QUdetruire_pagesq\(UPmq](hSU PythonScriptq^tq_tq`Qh1(UPnqa(hSU PythonScriptqbtqctqdQU index_htmlqe(UPoqf(hSU PythonScriptqgtqhtqiQU dupliquerokqj(UPpqk(hSU PythonScriptqltqmtqnQh;(UPqqo(hSU PythonScriptqptqqtqrQUrenommer_pagesqs(UPrqt(hSU PythonScriptqutqvtqwQU change_refqx(UP}qy(hSU PythonScriptqztq{tq|QUtitleq}Uh,(UPsq~(hSU PythonScriptqtq€tqQU valid_selq‚(UPuqƒ(hSU PythonScriptq„tq…tq†QUidq‡UarboqˆUrefersq‰(UPvqŠ(hSU PythonScriptq‹tqŒtqQh(UPwqŽ(hSU PythonScriptqtqtq‘Qh6(UPxq’(hSU PythonScriptq“tq”tq•QU detruireokq–(UPyq—(hSU PythonScriptq˜tq™tqšQUskinsq›(UPzqœ(hSU PythonScriptqtqžtqŸQU change_droitq (UP{q¡(hSU PythonScriptq¢tq£tq¤QU renommerokq¥(UP|q¦(hSU PythonScriptq§tq¨tq©QUdupliquer_pagesqª(UPtq«(hSU PythonScriptq¬tq­tq®QUdeplacer_pagesq¯(UP~q°(hSU PythonScriptq±tq²tq³Qu.OMÃ((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (U_write_q U_writeq Uprq tq U co_argcountqKubU_paramsqUUidqUpresentation_SAVqU__ac_local_roles__q}qUxavq]qUOwnerqasU _bind_namesq(cShared.DC.Scripts.Bindings NameAssignments qoq}qU_asgnsq}q(Uname_containerqU containerqU name_subpathqUtraverse_subpathq U name_m_selfq!Uscriptq"U name_contextq#Ucontextq$usbU func_defaultsq%NU_codeq&T csd„ZdS(NcsŽt}h}d||ƒd<d||ƒd<d||ƒd<d||ƒd<d ||ƒd <d ||ƒd < d ||ƒd< d||ƒd< d||ƒd< d||ƒd< d||ƒd<d||ƒd<d||ƒd<d||ƒd<d||ƒd<d||ƒd<d||ƒd<d||ƒd<d||ƒd<d||ƒd<d||ƒd <d!||ƒd"<d||ƒd#<d$||ƒd%<d||ƒd&<d'||ƒd(<d||ƒd)<d*||ƒd+< d||ƒd,<!d-||ƒd.<"d||ƒd/<#d0||ƒd1<$d||ƒd2<%d3||ƒd4<&d||ƒd5<'d6||ƒd7<(d||ƒd8<*d9||ƒd:<+d;||ƒd<<,d0||ƒd=<.d>||ƒd?</d@||ƒdA<0dB||ƒdC<1dD||ƒdE<2dF||ƒdG<4dH||ƒdI<5dJ||ƒdK<6dL||ƒdM<7dN||ƒdO<8dP||ƒdQ<9dP||ƒdR<:dP||ƒdS<<dT||ƒdU<=dT||ƒdV<>dW||ƒdX<?dW||ƒdY<BdW||ƒdZ<CdT||ƒd[<Dd\||ƒd]<Gd^||ƒd_<K|SdS(`Ns#cceeffscolor_fond_modules#ffce9escolor_fond_edits#fedeffscolor_fond_skins#ddddddscolor_fond_admins#efea8escolor_fond_arbos#f0f0ffscolor_fond_menus#FF0000scolor_fond_menu_valids#ffffffscolor_fond_editions#000000scolor_txt_modulescolor_txt_editscolor_txt_skinscolor_txt_adminscolor_txt_arboscolor_txt_menuscolor_txt_editions#ff9933s color_edits color_t_edits color_modulescolor_t_modules#990099s color_skins color_t_skins#3399ccs color_elementscolor_t_elements#ffff33s color_navs color_t_navs#FFFFFFs color_pages color_t_pages#AAFFAAs color_admins color_t_admins#BBCCDDs color_infos color_t_infos#999999s color_mems color_t_mems#cc9999s color_users color_t_users#990033s color_groups color_t_groups#ffcc99scolor_case_sels#ffbbffscolor_skin_case_sels color_actionsEDITION DU CONTENUstxt_editsEDITION DES SKINSstxt_skinsADMINISTRATION DU ZWOOKs txt_adminsADMINISTRATION DES PAGESstxt_arbosEDITION D'UN ELEMENTs txt_modules200slargeur_colonnes130slargeur_case_droites5s espacements28slargeur_cercles14s largeur_ronds largeur_carres hauteur_carres1smarge_haut_titresmarge_bas_titres3smarge_haut_htmlsmarge_bas_htmlsepaisseur_tableausepaisseur_cases10sespacement_tableaus80shauteur_mini_case(s_write_s_writespr(s_write_s_writespr((sScript (Python)s presentationsz(s presentation(s presentation((sScript (Python)ssq'U_bodyq(TKpr={} pr['color_fond_module']='#cceeff' pr['color_fond_edit']='#ffce9e' #pr['color_fond_edit']='#000000' pr['color_fond_skin']='#fedeff' pr['color_fond_admin']='#dddddd' pr['color_fond_arbo']='#efea8e' pr['color_fond_menu']='#f0f0ff' pr['color_fond_menu_valid']='#FF0000' pr['color_fond_edition']='#ffffff' pr['color_txt_module']='#000000' pr['color_txt_edit']='#000000' pr['color_txt_skin']='#000000' pr['color_txt_admin']='#000000' pr['color_txt_arbo']='#000000' pr['color_txt_menu']='#000000' pr['color_txt_edition']='#000000' pr['color_edit']='#ff9933' pr['color_t_edit']='#ffffff' pr['color_module']='#ff9933' pr['color_t_module']='#ffffff' pr['color_skin']='#990099' pr['color_t_skin']='#ffffff' pr['color_element']='#3399cc' pr['color_t_element']='#ffffff' pr['color_nav']='#ffff33' pr['color_t_nav']='#000000' pr['color_page']='#FFFFFF' pr['color_t_page']='#000000' pr['color_admin']='#AAFFAA' pr['color_t_admin']='#000000' pr['color_info']='#BBCCDD' pr['color_t_info']='#000000' pr['color_mem']='#999999' pr['color_t_mem']='#000000' pr['color_user']='#cc9999' pr['color_t_user']='#000000' pr['color_group']='#990033' pr['color_t_group']='#ffffff' pr['color_case_sel']='#ffcc99' pr['color_skin_case_sel']='#ffbbff' pr['color_action']='#999999' pr['txt_edit']='EDITION DU CONTENU' pr['txt_skin']='EDITION DES SKINS' pr['txt_admin']='ADMINISTRATION DU ZWOOK' pr['txt_arbo']='ADMINISTRATION DES PAGES' pr['txt_module']='EDITION D\'UN ELEMENT' pr['largeur_colonne']='200' pr['largeur_case_droite']='130' pr['espacement']='5' pr['largeur_cercle']='28' pr['largeur_rond']='14' pr['largeur_carre']='14' pr['hauteur_carre']='14' pr['marge_haut_titre']='1' pr['marge_bas_titre']='1' pr['marge_haut_html']='3' pr['marge_bas_html']='3' pr['epaisseur_tableau']='3' pr['epaisseur_case']='1' pr['espacement_tableau']='10' pr['hauteur_mini_case']='80' return pr q)U Script_magicq*KUwarningsq+)Uerrorsq,)U Python_magicq-U*ë q.u.ON#Y((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Uzwuq Uprq UcUtitreq Uhtmlq U _getitem_qU_getitemqU _getattr_qU_getattrqUstringqUccqU colorfondqUlenqUcolorqUcolortqUstrqUintqUlUlllqUllqUliqUzwuiqUrollqUidtitreqUnewtitreq UFFFq!UNoneq"Urettq#tq$U co_argcountq%KubU_paramsq&Uzwu,pr,c,titre,html=Noneq'Uidq(Ueditionq)U__ac_local_roles__q*}q+Uxavq,]q-UOwnerq.asU_dav_writelocksq/(UPq0(U Persistenceq1UPersistentMappingq2tq3tq4QU _bind_namesq5(cShared.DC.Scripts.Bindings NameAssignments q6oq7}q8U_asgnsq9}q:(Uname_containerq;U containerqU name_contextq?Ucontextq@U name_m_selfqAUscriptqBusbU func_defaultsqC(NtqDU_codeqETcstd„ZdS(Nc sýt}t}|tdƒ|dƒ} ||dƒ} t | ƒdjo#||d|| dƒƒ} n||d|| dƒƒ} ||d|| dƒƒ} t dt ||d ƒƒt ||d ƒƒƒ} t d t ||d ƒƒt ||d ƒƒƒ} t t |ƒt |ƒƒ} t t |ƒdt ||d ƒƒƒ}|d }d„}|} xz |tdƒ|dƒd joV!||tdƒ|ddƒdƒ||tdƒ|ddƒdƒ}"|}qW$d}%x4|d%r'}&|djo'||}nqW(|}*d}|,|dƒdƒo7-|d||dƒjo.t}/d}nn1d|d}2|d||dƒd||d ƒd| d}3|d|d||dƒd}4|d }5|d!|d"| d}6|d#|d}7|d|d$||d ƒd}8||}9|d%|d"| d&};|o|<||d'|d(||d)|d*ƒ}=|d }>|d||d+ƒd|d| d}?|d|d||d+ƒd}@|d,}B|d|d}C|d||d-ƒd|d.| d}D|d|d||d-ƒd}E|d/}G|d0||d ƒd"| d}H|d|d1||d ƒd}I|d2}K|d0|d"| d}L|d#||d3ƒd}M||}N|d4}P|d0||d ƒd"| d}Q|d|d1||d ƒd}R|d2}T|d5||d6ƒd|d.| d}U|d|d||d6ƒd}V|d,}nÄZ|djo[|d|d7}n-]||d'|d8||d9|d:ƒ}^|d }_|d||d+ƒd|d| d}`|d|d||d+ƒd}a|d,}c|SdS(;Nssplits*scolor_fond_menuiscolor_iscolor_t_is espacements largeur_rondiøslargeur_colonnes/zwo_images/bo/csÓd|d}|d|d|d}|d}|d|d|d}|d}