ZEXP iot((U OFS.FolderqUFolderqtqNt.}q(U__ac_local_roles__q}qUxavq]qUOwnerq asU$_Add_Session_Data_Manager_Permissionq (U Anonymousq UManagerq U config_zwookq tqU _propertiesq(}q(UidqUtitleqUmodeqUwUtypeqUstringqu}q(hU type_zwookqhUstringqu}q(hUsystemqhUstringqutqU!_Change_Page_Templates_Permissionq(h h h tqU_Manage_Access_Rules_Permissionq(h h h tq U_ownerq!(]q"U acl_usersq#aUxavq$tq%U-_Manage_Transient_Object_Container_Permissionq&(h h h tq'U_Undo_changes_Permissionq((h h h tq)U_WebDAV_Lock_items_Permissionq*(h h h tq+U!_Change_DTML_Documents_Permissionq,(h h h tq-Uzwo_docq.(U ipq/(hUFolderq0ttQUzwookq1(U iqq2(hUFolderq3ttQU_Join_leave_Versions_Permissionq4(h h h tq5U_WebDAV_Unlock_items_Permissionq6(h h h tq7U_View_Permissionq8(h U Authenticatedq9h h tq:U!_Change_cache_settings_Permissionq;(h h h tqU index_htmlq?(U isq@(U#Products.PythonScripts.PythonScriptqAU PythonScriptqBttQU#_Change_External_Methods_PermissionqC(h h h tqDUzwo_droits_folderqE(U itqF(hAU PythonScriptqGttQU home_imageqH(U iuqI(hAU PythonScriptqJttQU#_Change_Lock_Information_PermissionqK(h h h tqLU_Change_proxy_roles_PermissionqM(h h h tqNU"_Add_RAM_Cache_Managers_PermissionqO(h h h tqPU/_Add_Accelerated_HTTP_Cache_Managers_PermissionqQ(h h h tqRU_Add_Zope_Tutorials_PermissionqS(h h h tqTU*_Add_Transient_Object_Container_PermissionqU(h h h tqVU_objectsqW(}qX(U meta_typeqYU User FolderqZUidq[U acl_usersq\u}q](U meta_typeq^U DTML Documentq_Uidq`Utest_connectionqau}qb(U meta_typeqcUScript (Python)qdUidqeUzwo_cpyqfu}qg(U meta_typeqhUScript (Python)qiUidqjU zwo_renameqku}ql(U meta_typeqmUScript (Python)qnUidqohEu}qp(U meta_typeqqUScript (Python)qrUidqsUzwo_user_groupsqtu}qu(U meta_typeqvU Mail HostqwUidqxUMailHostqyu}qz(hvUScript (Python)q{hxU style_cssq|u}q}(hvUFolderq~hxU zwo_imagesqu}q(U meta_typeqUFolderqUidqUzwo_infoqu}q(hhhUzwookqu}q(U meta_typeqUFolderqUidqUzwo_devqu}q(U meta_typeqUFolderqUidqUzwo_docqu}q(U meta_typeqUScript (Python)qUidqUacl_objqu}q(hhhUacl_urlqu}q(hhhUhomequ}q(hhhU home_imagequ}q(hhhUstandard_html_footerqu}q(hhhUstandard_html_headerqu}q(hhhUstandard_printable_footerqu}q(hhhUstandard_printable_headerqu}q(hUFolderqhUzwo_libqu}q(U meta_typeqUScript (Python)qUidqUinstallqu}q(hhhUlasttraceinstallqu}q(hhhU index_html2qu}q(hhhU index_htmlqu}q(U meta_typeqUFolderqUidqUzwo_boqu}q(hhhU zwo_modulesqutqU_Add_User_Folders_Permissionq(h h h tqU_Change_permissions_Permissionq(h h h tqU_Add_Pluggable_Index_Permissionq(h h h tqU_Manage_Z_Classes_Permissionq(h h h tqU._Access_arbitrary_user_session_data_Permissionq(h h h tqU__allow_groups__q(U ivq(UAccessControl.UserqU UserFolderqttQU _Add_MailHost_objects_Permissionq(h h h tqU_Access_session_data_Permissionq(h h9h h tqU_Change_DTML_Methods_Permissionq(h h h tqU_query_Permissionq]q(h h9h h eU zwo_imagesq(U iwq(hUFolderqttQU$_Create_Transient_Objects_Permissionq(h h h tqU#_Change_Images_and_Files_Permissionq(h h h tqU!_Change_Python_Scripts_Permissionq(h h h tqht(U ixq(hAU PythonScriptqttQUidqU zwook_V099qU_Manage_Vocabulary_Permissionq(h h h tqU_Add_Folders_Permissionq(h h h tqU _Change_configuration_Permissionq(h h h tqUhomeq(U iyq(hAU PythonScriptqttQU%_Add_Virtual_Host_Monsters_Permissionq(h h h tqU_Search_ZCatalog_Permissionq(h h9h h tqU(_Manage_ZCatalogIndex_Entries_Permissionq(h h h tqUMailHostq(U izq(UProducts.MailHost.MailHostqUMailHostqttQU type_zwookqUsystemqU_Query_Vocabulary_Permissionq(h h9h h tqU'_Change_Database_Connections_Permissionq(h h h tqU _Log_to_the_Event_Log_Permissionq(h h h tqU_Use_Factories_Permissionq(h h h tqU_Log_Site_Errors_Permissionq(h h h tqh(U i{q(hUFolderqttQU style_cssq(U i|q(hAU PythonScriptrttQU _Add_Temporary_Folder_Permissionr(h h h trU%_Change_Browser_Id_Manager_Permissionr(h h h trU-_Add_Z_Gadfly_Database_Connections_Permissionr(h h h trUstandard_html_headerr(U i}r(hAU PythonScriptr ttQU!_Change_cache_managers_Permissionr (h h h tr U'_Change_Session_Data_Manager_Permissionr (h h h tr Uinstallr(U i~r(hAU PythonScriptrttQh\(h(hU UserFolderrttQUzwo_infor(U ir(hUFolderrttQUacl_urlr(U ir(hAU PythonScriptrttQU index_html2r(U ir(hAU PythonScriptrttQU_Add_ChatItems_Permissionr(h h h trU_Manage_properties_Permissionr(h h h trU_Use_external_editor_Permissionr(h h h tr U _Add_Database_Methods_Permissionr!(h h h tr"U zwo_renamer#(U ir$(hAU PythonScriptr%ttQU_Add_Python_Scripts_Permissionr&(h h h tr'U#_Change_Database_Methods_Permissionr((h h h tr)Ustandard_html_footerr*(U ir+(hAU PythonScriptr,ttQU_Manage_users_Permissionr-(h h h tr.U!_Use_mailhost_services_Permissionr/(h h9h h tr0U(_Save_discard_Version_changes_Permissionr1(h h h tr2U#_View_management_screens_Permissionr3(h h h tr4Uzwo_bor5(U ir6(hUFolderr7ttQU"_Create_class_instances_Permissionr8(h h h tr9U_Add_ZCatalogs_Permissionr:(h h h tr;U'_Access_contents_information_Permissionr<(h h9h h tr=U_Copy_or_Move_Permissionr>(h h9h h tr?U _Add_External_Methods_Permissionr@(h h h trAU_Add_Site_Roots_PermissionrB(h h h trCU _Use_Database_Methods_PermissionrD(h h9h h trEUstandard_printable_headerrF(U irG(hAU PythonScriptrHttQU_Add_ZRTChats_PermissionrI(h h h trJU_Add_Versions_PermissionrK(h h h trLU_Delete_objects_PermissionrM(h h h trNUstandard_printable_footerrO(U irrP(hAU PythonScriptrQttQU$_Access_Transient_Objects_PermissionrR(h h9h h trSUsystemrTUracinerUU zwo_modulesrV(U irW(hUFolderrXttQUtest_connectionrY(U irZ(UOFS.DTMLDocumentr[U DTMLDocumentr\ttQUtitler]UU%_Test_Database_Connections_Permissionr^(h h h tr_Uacl_objr`(U ira(hAU PythonScriptrbttQhf(U irc(hAU PythonScriptrdttQU_Add_Vocabularies_Permissionre(h h h trfU_Manage_WebDAV_Locks_Permissionrg(h h h trhU __ac_roles__ri(h UOwnerrjh h9h trkUlasttraceinstallrl(U irm(hAU PythonScriptrnttQU_Change_bindings_Permissionro(h h h trpU#_Manage_ZCatalog_Entries_Permissionrq(h h h trrU!_Import_Export_objects_Permissionrs(h h h trtU,_Add_Documents__Images__and_Files_Permissionru(h h h trvU_FTP_access_Permissionrw(h h h trxU_Add_Page_Templates_Permissionry(h h h trzU_View_History_Permissionr{(h h9h h tr|U_WebDAV_access_Permissionr}(h h9h h tr~U_Change_Versions_Permissionr(h h h trU_Take_ownership_Permissionr(h h h trUzwo_libr(U ir(hUFolderrttQU+_Open_Close_Database_Connections_Permissionr(h h h trU_Edit_Factories_Permissionr(h h h trU*_Open_Close_Database_Connection_Permissionr(h h h tru. ip((U OFS.FolderqUFolderqtqNt.}q(UHOWTOstructureq(U iq(UOFS.DTMLDocumentqU DTMLDocumentqtq tq QUidq Uzwo_docq U__ac_local_roles__q }qUxavq]qUOwnerqasU HOWTOStartDevq(U iq(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?(U iq@(hU DTMLDocumentqAtqBtqCQU _propertiesqD(}qE(h UtitleqFUmodeqGUwUtypeqHUstringqIu}qJ(h U type_zwookqKhHhIu}qL(UidqMUsystemqNUtypeqOUstringqPuthKUsystemqQh9(U iqR(hU DTMLDocumentqStqTtqUQh>(U iqV(hU DTMLDocumentqWtqXtqYQh/(U iqZ(hU DTMLDocumentq[tq\tq]QU index_htmlq^(U iq_(U#Products.PythonScripts.PythonScriptq`U PythonScriptqatqbtqcQUsystemqdUdataqeh*(U iqf(hU DTMLDocumentqgtqhtqiQU license.txtqj(U iqk(hU DTMLDocumentqltqmtqnQhFU noyau - docqoUimagesqp(U iqq(hUFolderqrtqstqtQu. iq((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 Authenticatedq$h!tU_Undo_changes_Permissionq%(hh$h!tU_WebDAV_Lock_items_Permissionq&(hh$h!tU!_Change_DTML_Documents_Permissionq'(hh$h!tU_WebDAV_Unlock_items_Permissionq((hh$h!tU_View_Permissionq)(hh$h!tU!_Change_cache_settings_Permissionq*(htU"_Add_Browser_Id_Manager_Permissionq+(htU#_Change_External_Methods_Permissionq,(htU zwo_dossierq-(U iq.(hUFolderq/tq0tq1QU#_Change_Images_and_Files_Permissionq2(hh$h!tU#_Change_Lock_Information_Permissionq3(hh!tU_Change_proxy_roles_Permissionq4(htU"_Add_RAM_Cache_Managers_Permissionq5(htU/_Add_Accelerated_HTTP_Cache_Managers_Permissionq6(htU_Add_Zope_Tutorials_Permissionq7(htU*_Add_Transient_Object_Container_Permissionq8(hh$tU_objectsq9(}q:(U meta_typeq;UFolderq(htU_Change_permissions_Permissionq?(hh!tU_Add_Pluggable_Index_Permissionq@(htUversionqAU0.99qBU_Manage_Z_Classes_PermissionqC(hh!tU._Access_arbitrary_user_session_data_PermissionqD(hh$h!tU _Add_MailHost_objects_PermissionqE(hh!tU_Access_session_data_PermissionqF(hh$h!tU_Change_DTML_Methods_PermissionqG(hh!tU$_Create_Transient_Objects_PermissionqH(hh!tU_Use_external_editor_PermissionqI(hh!tU!_Change_Python_Scripts_PermissionqJ(htUidqKUzwookqLU_Manage_Vocabulary_PermissionqM(hh!tU_Add_Folders_PermissionqN(hh$h!tU_Add_ZCatalogs_PermissionqO(hh!tU%_Add_Virtual_Host_Monsters_PermissionqP(htU_Search_ZCatalog_PermissionqQ(hh$h!tU(_Manage_ZCatalogIndex_Entries_PermissionqR(hh!tU type_zwookqSUsystemqTU _Change_configuration_PermissionqU(hh!tU_Query_Vocabulary_PermissionqV(hh$h!tU'_Change_Database_Connections_PermissionqW(hh!tU _Log_to_the_Event_Log_PermissionqX(htU_Use_Factories_PermissionqY(hh!tU_Log_Site_Errors_PermissionqZ(htU,_Add_Documents__Images__and_Files_Permissionq[(hh$h!tU _Add_Temporary_Folder_Permissionq\(htU%_Change_Browser_Id_Manager_Permissionq](htU-_Add_Z_Gadfly_Database_Connections_Permissionq^(hh!tU!_Change_cache_managers_Permissionq_(htU'_Change_Session_Data_Manager_Permissionq`(htU_Add_ChatItems_Permissionqa(hh!tU_Manage_properties_Permissionqb(hh$h!tU _Add_Database_Methods_Permissionqc(hh!tU_Add_Python_Scripts_Permissionqd(htU#_Change_Database_Methods_Permissionqe(hh!tU_Manage_users_Permissionqf(htU!_Use_mailhost_services_Permissionqg(hh$h!tU(_Save_discard_Version_changes_Permissionqh(htU#_View_management_screens_Permissionqi(hh!tU"_Create_class_instances_Permissionqj(hh!tU_Join_leave_Versions_Permissionqk(htU'_Access_contents_information_Permissionql(hh$h!tU_Copy_or_Move_Permissionqm(hh$h!tU _Add_External_Methods_Permissionqn(htU_Add_Site_Roots_Permissionqo(htU _Use_Database_Methods_Permissionqp(hh!tU_Add_ZRTChats_Permissionqq(htU_Add_Versions_Permissionqr(htU_Delete_objects_Permissionqs(hh$h!tU$_Access_Transient_Objects_Permissionqt(hh$h!tUsystemquUracineqvUtitleqwUstartqxU%_Test_Database_Connections_Permissionqy(hh!tU_Edit_Factories_Permissionqz(hh!tU_Add_Vocabularies_Permissionq{(hh!tU_Manage_WebDAV_Locks_Permissionq|(hh!tU __ac_roles__q}(UManagerq~UOwnerqU AnonymousqU AuthenticatedqtU_Change_bindings_Permissionq(htU#_Manage_ZCatalog_Entries_Permissionq(hh!tU!_Import_Export_objects_Permissionq(hh$tU_FTP_access_Permissionq(hh$h!tU_Add_Page_Templates_Permissionq(htU_View_History_Permissionq(hh$h!tU_WebDAV_access_Permissionq(hh$h!tU_Change_Versions_Permissionq(hthU1U_Take_ownership_Permissionq(hh!tU+_Open_Close_Database_Connections_Permissionq(hh!tU*_Open_Close_Database_Connection_Permissionq(hh!tu. is((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 U containerqtqU co_argcountqKubU_paramsqUUidqU index_htmlqU__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(TXcsdZdS(Ncst}t}|dIJ|d|tddIJ|dIJ|dIJ|dIJ|dIJ|SdS( Ns(

Premire configuration de zwook

s
s?

Configuration d'un utilisateur administrateur de zwook

s7Choisir un login
sGChoisir un password

s;
(s _getattr_s_getattrs_print_s_prints container(s _getattr_s_getattrs_print_s_prints container((sScript (Python)s index_htmls !    (s index_html(s index_html((sScript (Python)ssq)Uerrorsq*)U_bodyq+Tprint '

Premire configuration de zwook

' print '
' print '

Configuration d\'un utilisateur administrateur de zwook

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

' print '
' return printed q,U Script_magicq-KUwarningsq.)U _proxy_rolesq/(UManagerq0tq1U Python_magicq2U* q3u. it((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;TcsdZdS(Ncs|t}t}dkl}|}||ddjo dSn d}"|td|d} $d} Y|td| d} [g} \||d }]x2|d ]r%}|^| d ||d qWdd g}e||tdd}g||d}hg}jxR|d jrE}k||j o.l|djo|m|d |nnq>Wo|||dddjol|p|dd | |q|d| rx,|d rr}|s|d|gqWudSnw|||dd}x|||dd}y|td|d}z|td|d}|||dd | |}|dgx,|d r}||d|gqWx@|d r3}|djo||d|| nqWx@|d r3}|djo||d|| nq7WdSdS(N(sgetSecurityManagerscalledByExecutableisnonsAccess 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. iu((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(U iq1(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_codeqETcsdZdS(Ncst}t}t}dkl}|} || ddjo 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||dd},|d}-xa||ddd-rE}.d|d}/|d|d||d}0|d}qW1|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||||ddd6d7t||d8d9t||d:}J|d;}K|d<}L|d=}M|d}N|||jo'O|d>}P|d?}Q|}nnqWR|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 affiche #~w_line : nombre d'images affiches en largeur - 1 couleur='#FFFFCC' w_line=w_line1-1 #~~~~~~~~~ rcupration 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. iv((UAccessControl.UserqU UserFolderqtqNt.}q(Udataq(U iq(U PersistenceqUPersistentMappingqtq tq QU__ac_local_roles__q }q Uxavq ]qUOwnerqasu. iw((U OFS.FolderqUFolderqtqNt.}q(UidqU zwo_imagesqUconfigq(U iq(hUFolderq tq tq QU_objectsq (}q (U meta_typeqUFolderqhUadminqu}q(hhhUconfigqu}q(hhhUiconesqu}q(hUImageqhU pixel.gifqu}q(U meta_typeqUFolderqUidqUboqutqU _propertiesq(}q(hUtitleq Umodeq!UwUtypeq"Ustringq#u}q$(hU type_zwookq%h"Ustringq&u}q'(hUsystemq(h"Ustringq)utq*U__ac_local_roles__q+}q,Uxavq-]q.UOwnerq/asU type_zwookq0Usystemq1Usystemq2Udataq3h(U iq4(hUFolderq5tq6tq7QUiconesq8(U iq9(hUFolderq:tq;tq(hUFolderq?tq@tqAQh Unoyau - imagesqBh(U iqC(U OFS.ImageqDUImageqEtqFtqGQu. ix((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Uuserq Urolesq U_write_q U_writeq U _getattr_qU_getattrqU AccessControlqUgetSecurityManagerqUaUcontextqUrUauqtqU co_argcountqKubU_paramsqU user,rolesqUidqUzwo_user_groupsqU__ac_local_roles__q}qUxavq]qUOwnerqasU _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_codeq.TcsdZdS(Nc s#t}t}dkl}|}||ddjo dSn|td} |||| dd<d||| dd< d ||| dd < |||| dd < g||| dd < |td } | | dd| dSdS(N(sgetSecurityManagerscalledByExecutableisnonsREQUESTsformsnamespasswordspconfirmsconfirmsrolessdomainss acl_userss manage_userssChange( s_write_s_writes _getattr_s_getattrs AccessControlsgetSecurityManagersascontextsrsusersrolessau( susersroless_write_s_writes _getattr_s_getattrs AccessControlsgetSecurityManagersascontextsrsau((sScript (Python)szwo_user_groupss  (szwo_user_groups(szwo_user_groups((sScript (Python)ssq/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. iy1((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"Ugregq#]q$UOwnerq%asU_dav_writelocksq&(U iq'(U Persistenceq(UPersistentMappingq)tq*tq+QU _bind_namesq,(cShared.DC.Scripts.Bindings NameAssignments q-oq.}q/U_asgnsq0}q1(Uname_containerq2U containerq3U name_subpathq4Utraverse_subpathq5U name_contextq6Ucontextq7U name_m_selfq8Uscriptq9usbU func_defaultsq:NU_codeq;TcsdZdS(Ncs t}t}t}t}dkl } | } || ddjo dSn||dd|d< ||tdd |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|| dd}t |djo'd||d}|Snng}x=| dr0}|djo||d|nqWx|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.Ts .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} nqWA||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
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)ssq1: 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 pt['hauteur']<>'': ppt=ppt+' height="'+pt['hauteur']+'"' if pt['largeur']<>'': ppt=ppt+' width="'+pt['largeur']+'"' 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 q>U Script_magicq?KUwarningsq@)UtitleqAUnoyauqBUerrorsqC)U Python_magicqDU* qEu. iz((UProducts.MailHost.MailHostqUMailHostqtqNt.}q(UtitleqUnoyauqUidqUMailHostqU smtp_hostq UU smtp_portq KU__ac_local_roles__q }q Uxavq ]qUOwnerqasu. i{((U OFS.FolderqUFolderqtqNt.}q(U__ac_local_roles__q}qUxavq]qUOwnerq asU$_Add_Session_Data_Manager_Permissionq (UManagerq tq U!_Change_Page_Templates_Permissionq (h tqUtotligneq(U iq(U#Products.PythonScripts.PythonScriptqU PythonScriptqtqtqQU-_Manage_Transient_Object_Container_Permissionq(h tqU_Undo_changes_Permissionq(h tqU_WebDAV_Lock_items_Permissionq(h tqU!_Change_DTML_Documents_Permissionq(h tqU_WebDAV_Unlock_items_Permissionq(h tqU_View_Permissionq(h tq U!_Change_cache_settings_Permissionq!(h tq"U"_Add_Browser_Id_Manager_Permissionq#(h tq$U#_Change_External_Methods_Permissionq%(h tq&U#_Change_Images_and_Files_Permissionq'(h tq(U#_Change_Lock_Information_Permissionq)(h tq*U_Change_proxy_roles_Permissionq+(h tq,U"_Add_RAM_Cache_Managers_Permissionq-(h tq.U#_Change_Database_Methods_Permissionq/(h tq0U/_Add_Accelerated_HTTP_Cache_Managers_Permissionq1(h tq2U_Add_Zope_Tutorials_Permissionq3(h tq4U*_Add_Transient_Object_Container_Permissionq5(h tq6U_objectsq7(}q8(U meta_typeq9UScript (Python)q:Uidq;UtestuqUScript (Python)q?Uidq@UtotligneqAutqBU_Add_User_Folders_PermissionqC(h tqDU_Change_permissions_PermissionqE(h tqFU_Add_Pluggable_Index_PermissionqG(h tqHU_Manage_Z_Classes_PermissionqI(h tqJU._Access_arbitrary_user_session_data_PermissionqK(h tqLU _Add_MailHost_objects_PermissionqM(h tqNU_Access_session_data_PermissionqO(h tqPU_Change_DTML_Methods_PermissionqQ(h tqRU$_Create_Transient_Objects_PermissionqS(h tqTU_Use_external_editor_PermissionqU(h tqVU!_Change_Python_Scripts_PermissionqW(h tqXh;Uzwo_devqYU_Manage_Vocabulary_PermissionqZ(h tq[U_Add_Folders_Permissionq\(h tq]U_Add_ZCatalogs_Permissionq^(h tq_U%_Add_Virtual_Host_Monsters_Permissionq`(h tqaU_Search_ZCatalog_Permissionqb(h tqcU _Change_configuration_Permissionqd(h tqeU_Query_Vocabulary_Permissionqf(h tqgU'_Change_Database_Connections_Permissionqh(h tqiU _Log_to_the_Event_Log_Permissionqj(h tqkU_Use_Factories_Permissionql(h tqmU_Log_Site_Errors_Permissionqn(h tqoU,_Add_Documents__Images__and_Files_Permissionqp(h tqqU _Add_Temporary_Folder_Permissionqr(h tqsU%_Change_Browser_Id_Manager_Permissionqt(h tquU-_Add_Z_Gadfly_Database_Connections_Permissionqv(h tqwU!_Change_cache_managers_Permissionqx(h tqyU'_Change_Session_Data_Manager_Permissionqz(h tq{U_Add_ChatItems_Permissionq|(h tq}U_Manage_properties_Permissionq~(h tqU _Add_Database_Methods_Permissionq(h tqU_Manage_Access_Rules_Permissionq(h tqU_Add_Python_Scripts_Permissionq(h tqU(_Manage_ZCatalogIndex_Entries_Permissionq(h tqU_Manage_users_Permissionq(h tqU!_Use_mailhost_services_Permissionq(h tqU(_Save_discard_Version_changes_Permissionq(h tqU#_View_management_screens_Permissionq(h tqU"_Create_class_instances_Permissionq(h tqU_Join_leave_Versions_Permissionq(h tqU'_Access_contents_information_Permissionq(h tqU_Copy_or_Move_Permissionq(h tqUtestuq(U iq(hU PythonScriptqtqtqQU _Add_External_Methods_Permissionq(h tqU_Add_Site_Roots_Permissionq(h tqU _Use_Database_Methods_Permissionq(h tqU_Add_ZRTChats_Permissionq(h tqU_Add_Versions_Permissionq(h tqU_Delete_objects_Permissionq(h tqU$_Access_Transient_Objects_Permissionq(h tqUtitleqUU%_Test_Database_Connections_Permissionq(h tqU_Edit_Factories_Permissionq(h tqU_Add_Vocabularies_Permissionq(h tqU_Manage_WebDAV_Locks_Permissionq(h tqU_Change_bindings_Permissionq(h tqU#_Manage_ZCatalog_Entries_Permissionq(h tqU!_Import_Export_objects_Permissionq(h tqU_FTP_access_Permissionq(h tqU_Add_Page_Templates_Permissionq(h tqU_View_History_Permissionq(h tqU_WebDAV_access_Permissionq(h tqU_Change_Versions_Permissionq(h tqU_Take_ownership_Permissionq(h tqU+_Open_Close_Database_Connections_Permissionq(h tqU*_Open_Close_Database_Connection_Permissionq(h tqu. i| ((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_argcountqKubU_paramsqUUidqU style_cssqU__ac_local_roles__q}qUgregq]qUOwnerqasU_dav_writelocksq(U iq(U PersistenceqUPersistentMappingqtq 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_contextq,Ucontextq-U name_m_selfq.Uscriptq/usbU func_defaultsq0NU_codeq1TcsdZdS(Nc#s%t}t}||||tdddd}||||tdddd}d}|djo d}n|d |d |d IJ|d IJ |d IJ |dIJ |dIJ |dIJ |dIJ|dIJ|dIJ|SdS(Nszwo_infosgenerals general_datashexas underlinessonstext-decoration:nones A {color:s;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)ssq2U_bodyq3T#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 {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 q4U Script_magicq5KUwarningsq6)Utitleq7Unoyauq8Uerrorsq9)U Python_magicq:U* q;u. i}L((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}q3Ugregq4]q5UOwnerq6asU_dav_writelocksq7(U iq8(U Persistenceq9UPersistentMappingq:tq;tqoq?}q@U_asgnsqA}qB(Uname_containerqCU containerqDU name_subpathqEUtraverse_subpathqFU name_m_selfqGUscriptqHU name_contextqIUcontextqJusbU func_defaultsqKNU_codeqLT+csdZdS(Nc'Bs t}t}t}t}|ddjo<|dIJ|d|t ddIJ|Snd|d<|d  |d  |d }  |||||d d ddd} |dIJ|d| d| dIJ|d}||ddo||d}xq|drd}|td|d}h}d}x|dr}|td|d}t|djoe||ddjo||ddjo d}n||d||||d}"nh| d<d?jo id@}"nk|dA|!d"|"IJog}#qdBdC;dDd\}}&=||IJ>|SdS(ENsdroit_vue_dossieris^



Cette page ncessite 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}|Od|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'lment de skin ici
s[Dplacer 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/[s t}t}t}t} ||d|} ||d|} h} d}d}d}g}x(| dr}x|dr}t|dt|}x|| d|or|d}t|dt|}|d|jo0||d||d}d}nqW||d|}||d }||d }|d jo d }n|d jo d }nt|}t|}xpt|dr]}xQt|dr>}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="Sbordures
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)sprinttabs         %     ""    .         ,%," """""    .   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_headers4 !6   , - !*       !$ 1 - - 0    ' (sstandard_html_header(sstandard_html_header((sScript (Python)ssqMU_bodyqNT"if mem['droit_vue_dossier']==0: print '



Cette page ncessite 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\'lment de skin ici
' pcase=pcase+'[Dplacer 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 pt['hauteur']<>'': ppt=ppt+' height="'+pt['hauteur']+'"' if pt['largeur']<>'': ppt=ppt+' width="'+pt['largeur']+'"' 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 qOU Script_magicqPKUwarningsqQ)UtitleqRUnoyauqSUerrorsqT)U Python_magicqUU* qVu. i~t((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}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_m_selfq'Uscriptq(U name_contextq)Ucontextq*usbU func_defaultsq+NU_codeq,TcsdZdS(Ncs"t}t}|td}||d||dgd|||tddddg|g||||tdd|d d ||td d g|tdd gd g||ddg|||tdddddS(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/Tuserfolderzope=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') q0U Script_magicq1KUwarningsq2)U _proxy_rolesq3(UManagerq4tq5U Python_magicq6U* q7u. i((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/(U iq0(hUFolderq1tq2tq3QU _propertiesq4(}q5(hUtitleq6Umodeq7UwUtypeq8Ustringq9u}q:(hU type_zwookq;h8UstringqUsystemq?Utypeq@UstringqAutUgroupsqB(U iqC(hUFolderqDtqEtqFQU type_zwookqGUsystemqHUgeneralqI(U iqJ(hUFolderqKtqLtqMQUskinsqN(U iqO(hUFolderqPtqQtqRQUsystemqSUdataqTU calendrierqU(U iqV(hUFolderqWtqXtqYQUusersqZ(U iq[(hUFolderq\tq]tq^QUtitleq_UInformation sur le zwookq`h)(U iqa(hUFolderqbtqctqdQu. iV((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(T3csdZdS(Ncs`t}dkl}|}||ddjo dSn|tdSdS(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. i J((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_dav_writelocksq(U iq(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_contextq.Ucontextq/U name_m_selfq0Uscriptq1usbU func_defaultsq2(Unormalq3tq4U_codeq5TZcsddZdS(Nsnormalc st}t}t}||tdd}| o dSnd||djo||dSn ||ddjo< |dIJ |d |td d IJ |Sn|d joX||td |IJ||td|IJ||td|IJn|djoX||td|IJ||td|IJ||td|IJnU||td|IJ||td|IJ||td|IJ|SdS(Nszwo_libsmem_datasVous 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 ncessite 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_htmls(3   !  (s index_html(s index_html((sScript (Python)ssq6U_bodyq7Tmem=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 ncessite 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 q8U Script_magicq9KUwarningsq:)Utitleq;UnoyauqU* q?u. i((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+TucsdZdS(Ncsst}dkl}|}||ddjo dSn||d|g|gdSdS(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.Ufrom 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. i<((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)Ugregq*]q+UOwnerq,asU_dav_writelocksq-(U iq.(U Persistenceq/UPersistentMappingq0tq1tq2QU _bind_namesq3(cShared.DC.Scripts.Bindings NameAssignments q4oq5}q6U_asgnsq7}q8(Uname_containerq9U containerq:U name_subpathq;Utraverse_subpathqU name_contextq?Ucontextq@usbU func_defaultsqANU_codeqBT"csdZdS(Nc s]t}t}t}t}|ddjo<|dIJ|d|t ddIJ|Snd|d<g}  |d  |d  ||t d d g}d 8ddd\}}||IJ|td|dd}hx|drt}|djo^|td|d}t|djo)||d|||d


Cette page ncessite une identification.



s> Pour vous identifier sur le site,
cliquer sur Se connecter
isinskinsskin_idsskin_objszwo_libs tab_to_valcst}t}t}d} ||d<||d|} t | djo|t d|| dd}t |djo6d||d|\} }| |fSn|| ddjo3| d } | d d } d |fSnn g}!x=| d!r0}"|djo|#|d |nq7W%x|d%r}&||}'d}|)|ddo*||d}n,| |||td||dd|} -|djo.| d} n/|djo0| d} n1|djo2| d} n3|djo4| d} nqzW6| |fSdS(Nss couleur_textsccissplitisTs######s6Zone Principale
Pas d'lment de skin ici
s[Dplacer la zone principale]s DEBUTFOOTERsappends+s hasPropertys dispositions zwo_modulesselements view_htmls
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/Rs 8t}t}t}t} 9||d|} :||d|} <h} =d}>d}?d}@g}Ax(| dAr}Bx|dBr}Ct|dt|}DxD|| d|orE|d}Ft|dt|}G|d|jo0|H|d|I|d}Jd}nqWK||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="Sbordures
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=csGt}t}|d|o||SndSdS(Nshas_keys(s _getitem_s_getitems _getattr_s_getattrstppskey(skeys _getitem_s_getitems _getattr_s_getattrstpp(stpp(sScript (Python)sfpssalignscenters
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)ssqCU_bodyqDTif mem['droit_vue_dossier']==0: print '



Cette page ncessite 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\'lment de skin ici
' pcase=pcase+'[Dplacer 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 pt['hauteur']<>'': ppt=ppt+' height="'+pt['hauteur']+'"' if pt['largeur']<>'': ppt=ppt+' width="'+pt['largeur']+'"' 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 qEU Script_magicqFKUwarningsqG)UtitleqHUnoyauqIUerrorsqJ)U Python_magicqKU* qLu. i((U OFS.FolderqUFolderqtqNt.}q(UidqUzwo_boqU__ac_local_roles__q}qUxavq ]q UOwnerq asU choixcouleurq (U iq (U#Products.PythonScripts.PythonScriptqU PythonScriptqttqQU_objectsq(}q(U meta_typeqUFolderqhUeditqu}q(hhhUarboqu}q(hhhUadminqu}q(U meta_typeqUScript (Python)qUidqU presentationqu}q(U meta_typeq UScript (Python)q!Uidq"Umenuq#u}q$(U meta_typeq%UScript (Python)q&Uidq'Ueditionq(u}q)(U meta_typeq*UScript (Python)q+Uidq,Uautourq-u}q.(U meta_typeq/UScript (Python)q0Uidq1U configboxq2u}q3(U meta_typeq4UScript (Python)q5Uidq6h u}q7(U meta_typeq8UFolderq9Uidq:Uskinq;uth(U iq<(hUFolderq=ttq>QU _propertiesq?(}q@(UidqAUtitleqBUmodeqCUwUtypeqDUstringqEu}qF(hAU type_zwookqGhDUstringqHutU type_zwookqIUsystemqJh((U iqK(hU PythonScriptqLttqMQU configboxqN(U iqO(hU PythonScriptqPttqQQUmenuqR(U iqS(hU PythonScriptqTttqUQUadminqV(U iqW(hUFolderqXttqYQUtitleqZUnoyau : back officeq[Ueditq\(U iq](hUFolderq^ttq_QUskinq`(U iqa(hUFolderqbttqcQU presentationqd(U iqe(hU PythonScriptqfttqgQUautourqh(U iqi(hU PythonScriptqjtqktqlQu. i ((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(U iq(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_codeq3TcsdZdS(Nc st}t}t}||ddjo<|dIJ|d|tddIJ|Snd}|d}|d |td d } |d } |d } |d} |SdS(Nsdroit_vue_dossieris^



Cette page ncessite 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 ncessite 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. ir((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(U iq(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_codeq3TcsdZdS(Nc st}t}t}||ddjo<|dIJ|d|tddIJ|Snd}|d}|SdS( Nsdroit_vue_dossieris^



Cette page ncessite 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 ncessite 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. i((U OFS.FolderqUFolderqtqNt.}q(U__ac_local_roles__q}qU login_managerq(U iq(hUFolderq ttQU_objectsq (}q (U meta_typeq UFolderq UidqUarticlequ}q(h h hUbrowsing_modesqu}q(h h hU directfriendsqu}q(h h hUfilequ}q(h h hUflashqu}q(h h hU folder_barqu}q(h h hUforumqu}q(h h hUimagequ}q(h h hUlienqu}q (h h hU locatebarq!u}q"(h h hUmapq#u}q$(h h hU members_listq%u}q&(h h hUongletsq'u}q((h h hUproject_checkerq)u}q*(h h hUsuggest_contentq+u}q,(h h hUtextq-u}q.(h UScript (Python)q/hUtotalq0u}q1(h h hU exemplemoduleq2u}q3(h h hU navigationq4u}q5(h h hUtitreq6u}q7(h h hU login_managerq8u}q9(U meta_typeq:UFolderq;Uidq(h:h;hT8




Vous tes connect
Redirection automatique.

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. i+((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(TcsdZdS(NcsTt}dkl}|}||ddjo 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*Ufrom 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. i((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_m_selfq'Uscriptq(U name_contextq)Ucontextq*usbU func_defaultsq+(Utq,U_codeq-TcsddZdS(Nsc st}dkl}|}||ddjo dSn||d||d|g|djo#||d|g|gn 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.Uerrorsq/)U_bodyq0Ufrom 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 q1U Script_magicq2KUwarningsq3)U _proxy_rolesq4(UManagerq5tq6U Python_magicq7U* q8u. iR((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*TNcsdZdS(Ncst}|tddgd}|td|d}|tdd||||tdd d d dS( Nsmanage_delObjectssinstallsAccess 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. i((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)qUidqUmem_dataqu}q(U meta_typeqUScript (Python)qUidqU tab_to_valqu}q(U meta_typeqUScript (Python)qUidqU mem_mod_dataqutU _propertiesq(}q(hUtitleq Umodeq!UwUtypeq"Ustringq#u}q$(hU type_zwookq%h"Ustringq&u}q'(hUsystemq(h"Ustringq)uth%Usystemq*U mix_id_zopeq+(U iq,(U#Products.PythonScripts.PythonScriptq-U PythonScriptq.ttq/QUsystemq0Ulibq1h Unoyau - bibliothequeq2Umem_dataq3(U iq4(h-U PythonScriptq5ttq6QU mem_mod_dataq7(U iq8(h-U PythonScriptq9ttq:Qh(U iq;(h-U PythonScriptqQu. i !((UOFS.DTMLDocumentqU DTMLDocumentqtqNt.}q(U_dav_writelocksq(U iq(U PersistenceqUPersistentMappingqtq tq QU__ac_local_roles__q }q Uxavq ]qUOwnerqasU__name__qUHOWTOstructureqUtitleqU HOWTO Structure de donnes ZWOOKqUglobalsq}qUrawqT

HOWTO Structure de donnes 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 donnes:
    • zwo_info : donnes sur la config de zwook
      zwook : donnes sur les pages
      zwo_dossier : donnes 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 proprit type_zwook est un objet zwook.
La proprit type_zwook indique le type d'objet zwook.
Type possible :
  • dossier
  • element : Chaque objet zwook de type element a une proprit 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 proprit system qui precise a quoi correspond cet objet.
    Les objets systemes :
    • lib : la librairie de zwook.
    • data : donne de configuration du zwook, du dossier..
  • completer
qU_varsq}qu. i E((UOFS.DTMLDocumentqU DTMLDocumentqtqNt.}q(U_dav_writelocksq(U iq(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.

Comprhension de ZWOOK

- apprendre la structure des donnes dans ZWOOK (HOWTO Structure de donne ZWOOK).
- comprendre le fonctionnement du noyau ZWOOK (HOWTO noyau ZWOOK)

Codage de modules ZWOOK

Necessite la comprhension du ZWOOK ci-dessus.
- HOWTO (Construire un module zwook)

Amliorer le noyau

Si vous maitriser zope/python et la cration de module zwook, vous aller pouvoir rentrer plus en profondeur dans le noyau et faire des modification ( vos risques et prils ;).

Rfrences utiles

- Description de la structure de mem (HOWTO mem)


Avec un peu de chance, vous nous enverez vos modules et amliorations du noyau bientt, 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. i ((UOFS.DTMLDocumentqU DTMLDocumentqtqNt.}q(U_dav_writelocksq(U iq(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 ()

Cration d'un nouveau module :

  • Cration du dossier du module
    • Aller dans le repertoire zwo_modules.
    • crer un folder zope avec pour id du nom du module.
    • changer le title pour donner une phrase d'explication.
    • ajouter une proprit appele skin si le module est utilisable par des skin
    • ajouter une proprit appele zone_principale si le module est utilisable par des dossiers.
  • Description des proprits des instances indispensable :
    • type_zwook='element'
    • element : le nom du type de module

  • Description de certains parametres des scripts
    • mem : renvoie un ensemble de donne 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 rcupere 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

  • Cration des scripts principaux
    • new_html(mem,dossier) : Acceuil HTML pour la cration de l'instance
    • new_ok(nom, titre, [params...]) : Acceuil HTML pour la cration 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. iv((UOFS.DTMLDocumentqU DTMLDocumentqtqNt.}q(U_dav_writelocksq(U iq(U PersistenceqUPersistentMappingqtq tq QU__ac_local_roles__q }q Uxavq ]qUOwnerqasU__name__qUREFmemqUtitleqU Refrence sur le dictionaire memqUglobalsq}qUrawqT_

Refrence 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 indpendement 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 rglirement) :



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. i Z((UOFS.DTMLDocumentqU DTMLDocumentqtqNt.}q(U_dav_writelocksq(U iq(U PersistenceqUPersistentMappingqtq tq QU__ac_local_roles__q }q Umatq ]qUOwnerqasU__name__qU Schema cheminqUtitleqUUglobalsq}qUrawqT^
*************************

Rappel

Modules

les 5 scripts essentiels la cration, la modification et l' affichage d'un lment sont :
le script new_html
le script new_ok
le script config_html
le script config_ok
le script view_html

Elments

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

Schema de cration de l'lment dans le contenu

(1)

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

(2)

le script new html genere le formulaire de l'Elment choisi.

(3)

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

(4)

le script new_ok cre affecte les modifications l'Elment et redirige par la suite sur la page de placement des elments.

Schema de modification de l'lment dans le contenu

(1)

Vous tes sur la page dition du contenu, le fait de cliquer sur un Elment (image, lien, ...) envoie une requette http au serveur qui dclenche le script config_html.

(2)

le script config_html genere le formulaire de modification de l'Elment choisi.

(3)

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

(4)

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

Desciption du view_html



Tout les lments encadrs en rouge sont visible, grace au scriptview_config qui les affiche sur la page html.qU_varsq}qu. i((UOFS.DTMLDocumentqU DTMLDocumentqtqNt.}q(U_dav_writelocksq(U iq(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 donnes dans la structure de donnes ZWOOK.

La structure de donnes ZWOOK est constitu :
- des pages qui contiennent des elements ZWOOK (cf ci-dessous) et des proprits de mise en page, de scurit, de rfrencement...
- les donnes sur les groupes et les utilisateurs.
- les habillages graphiques (skin).
- des informations gnrale sur le systeme d'information.
- des donnes gnrales d'une application.

Les informations sont essentielement composes d'Elments ZWOOK.
Les Elements ZWOOK sont gnrs 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 crer, de modifier et d'afficher un lement.
Un Element ZWOOK est une instance de module, c'est a dire un exemple concret crer par un module (liens, images, barres de navigation...).

Chaque Element a un identifiant : il correspond au nom de l'lment. Il sert reconnatre l'lment 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 cration 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 proprits
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 partags 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 gnrent 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 cration du skin) qui initialise la position du HTML_Header et du HTML_footer et ainsi la dcoupe du skin.

LE Home ZONE D' EDITION :

  • Chaque dossier un rpertoire Zwo_dossier qui contient les infos du dossier y compris
    • Dcoupage des tableaux
    • Position des objets
    • Home va donc collecter ces donnes pour afficher les tables et envoyer l'affichage des lments
    • View_htmlc'est le fichier d'appel des lments il va permettre aux modules :
      • d' utiliser mem
      • de savoir quel objet il doit traiter

Dfinitions de l' lment et du modules dans "le langage dvelopeur"

  • Le Module
  • C'est l'objet, en ralit c' est le code qui permet de crer les objets.
    Le code des modules est toujours plac dans /Zwo_modules/(nom_du_module)
  • les lments
  • C' est l'instance, L' lment cr l'aide du Module ils sont positionns et gers 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. i((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(U iq(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_contextq.Ucontextq/U name_m_selfq0Uscriptq1usbU func_defaultsq2NU_codeq3TccsdZdS(Nc 2s t}t}t}||tdd}|dIJ|dIJ|dIJ|dIJ|d||dd IJ|d||dd IJ |d||dd IJ |d||dd IJ|d||dd IJ|dIJdddddg}|dIJ|dIJx|t dddr} || d|j oj|d||dd|| dd|| dd||| dddIJnqWW|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 donnes 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. i A((UOFS.DTMLDocumentqU DTMLDocumentqtqNt.}q(U_dav_writelocksq(U iq(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 interprt par ZOPE pour gnrer une interface d'interaction HTML entre le navigateur web et les informations stoques sur le serveur ZOPE (base de donne ZODB).

ZWOOK est un system d'information.
C'est un systeme de partage d'information, on peut donc y dposer des documents et des informations dans des pages internet ou intranet. Chaque client peut s'identifier de manire scuris. 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 fonctionnalits 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-mme, a partir de votre navigateur, et ceci en toute scurit.

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 donne ZODB, serveur webdav et bien d'autre.

Python

Python est open source.
Python est le language dans lequel a t dvelopper ZOPE et ZWOOK et avec lequel on pourra faire evoluer des fonctionalits 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. iC((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}qUrawqTBGNU 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 Grgoire 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 Galile 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. i.((U OFS.FolderqUFolderqtqNt.}q(U navfinale.gifq(U iq(U OFS.ImageqUImageqtq tq QUplaceobjets.gifq (U iq (hUImageq tqtqQU__ac_local_roles__q}qUmatq]qUOwnerqasUcadrerouge.jpgq(U iq(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(U iqB(hUImageqCtqDtqEQh<(U iqF(hUImageqGtqHtqIQh#(U iqJ(hUImageqKtqLtqMQUidqNUimagesqOh'(U iqP(hUImageqQtqRtqSQh7(U iqT(hUImageqUtqVtqWQh)(U iqX(hUImageqYtqZtq[Qh!(U iq\(hUImageq]tq^tq_Qh2(U iq`(hUImageqatqbtqcQh0(U iqd(hUImageqetqftqgQh%(U iqh(hUImageqitqjtqkQUtitleqlUu. iV((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@(UdPT:T1:hauteur=/largeur=/marge=/cadre=/couleurcadre=/couleurfond=/couleurtexte=/align=left/valign=topqAUCT:T1:C2qBUqPC:C2:couleurcadre=/hauteur=/couleurfond=/valign=/marge=/cadre=/couleurtexte=/largeur=/align=/colspan=1/rowspan=1qCUCC:C2:qDeUsystemqEUdataqFh!U page_testqGh.U1hUinformation du dossierqHh5]qI(Uname=author!!content=qJUname=Description!!content=qKU%http-equiv=content-language!!content=qLU5http-equiv=content-type!!content=text/html;iso-8859-1qMU&http-equiv=keywords!!lang=fr!!content=qNU"http-equiv=revisit-after!!content=qOU'http-equiv=robots!!content=index,followqPUhttp-equiv=expires!!content=qQUhttp-equiv=copyright!!content=qReUgroupes_visiteursqSU AuthenticatedqTUskinqUUdefaultqVUgroupes_editeursqWU config_zwookqXu. iB((U PersistenceqUPersistentMappingqtqNt.}qU _containerq}qs. i((U PersistenceqUPersistentMappingqtqNt.}qU _containerq}qUadminq(U iq(UAccessControl.Userq UUserq tq tq Qss. i((U OFS.FolderqUFolderqtqNt.}q(UidqUconfigqU__ac_local_roles__q}qUgregq ]q UOwnerq asU skins.gifq (U iq (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((U iq)(hUImageq*tq+tq,QU membres.gifq-(U iq.(hUImageq/tq0tq1Qh&(U iq2(hUImageq3tq4tq5Qh!(U iq6(hUImageq7tq8tq9Qu. i)((U OFS.FolderqUFolderqtqNt.}q(Ur_rond_edit.gifq(U iq(U OFS.ImageqUImageqtq tq QU__ac_local_roles__q }q Uxavq ]qUOwnerqasUr_cercle_admin.gifq(U iq(hUImageqtqtqQUrond_renommer_page.gifq(U iq(hUImageqtqtqQUr_carre_detruit_ligne.gifq(U iq(hUImageqtqtqQUrond_plus_page.gifq(U iq (hUImageq!tq"tq#QUr_rond_zwook.gifq$(U iq%(hUImageq&tq'tq(QUzwook_module.gifq)(U iq*(hUFileq+tq,tq-QUrond_coche_elem.gifq.(U iq/(hUImageq0tq1tq2QUrond_skin_detruit_soustab.gifq3(U iq4(hUImageq5tq6tq7QUcarre_skin_ajout_colonne.gifq8(U iq9(hUImageq:tq;tq(hUImageq?tq@tqAQUcercle_admin.gifqB(U jQqC(hUImageqDtqEtqFQUrond_skin_ajout_soustab.gifqG(U jaqH(hUImageqItqJtqKQUcarre_edit_ajout_ligne.gifqL(U j)qM(hUImageqNtqOtqPQUr_rond_detruit_col.gifqQ(U jqR(hUImageqStqTtqUQUrond_duplique_page.gifqV(U jqW(hUImageqXtqYtqZQUrond_deplace_page.gifq[(U j q\(hUImageq]tq^tq_QU carre_ici.gifq`(U jqa(hUImageqbtqctqdQUrond_duplique_elem.gifqe(U j qf(hUImageqgtqhtqiQUrond_edit_fusion.gifqj(U jqk(hUImageqltqmtqnQU rond_bug.gifqo(U jqp(hUImageqqtqrtqsQUrond_annule.gifqt(U jqu(hUImageqvtqwtqxQUrond_detruit_page.gifqy(U j qz(hUImageq{tq|tq}QUrond_unselect_elem.gifq~(U j4q(hUImageqtqtqQUr_carre_detruit_colonne.gifq(U j q(hUImageqtqtqQUr_rond_coche.gifq(U j-q(hUImageqtqtqQUrond_deplace_elem.gifq(U j q(hUImageqtqtqQUr_rond_ferme.gifq(U j@q(hUImageqtqtqQUrond_renommer_skin.gifq(U jq(hUImageqtqtqQU_objectsq(}q(U meta_typeqUFileqUidqUzwook_edit.gifqu}q(hhhUzwook_skin.gifqu}q(hhhUzwook_arbo.gifqu}q(hhhUzwook_admin.gifqu}q(U meta_typeqUImageqUidqUf_cercle_edit.gifqu}q(hhhUr_cercle_edit.gifqu}q(hhhUf_cercle_skin.gifqu}q(hhhUr_cercle_skin.gifqu}q(hhhUf_cercle_arbo.gifqu}q(hhhUr_cercle_arbo.gifqu}q(hhhUf_cercle_admin.gifqu}q(hhhhu}q(hhhUf_cercle_zope.gifqu}q(hhhUr_cercle_zope.gifqu}q(hhhUcercle_edit.gifqu}q(hhhUcercle_skin.gifqu}q(hhhUcercle_arbo.gifqu}q(hhhUcercle_admin.gifqu}q(hhhUcercle_zope.gifqu}q(hhhUr_rond_help.gifqu}q(hhhU rond_help.gifqu}q(hhhUr_rond_annule.gifqu}q(hhhhtu}q(hhhUrond_zwook.gifqu}q(U meta_typeqUImageqUidqUrond_ouvre.gifqu}q(hhhUrond_ferme.gifqu}q(U meta_typeqUImageqUidqUrond_list_elem.gifqu}q(hhhh`u}q(U meta_typeqUImageqUidqUrond_edit_elem.gifqu}q(hhhhu}q(hhhheu}q(hhhUrond_detruire_elem.gifqu}q(hhhUrond_select_elem.gifqu}q(hhhh~u}q(hhhUrond_renommer_elem.gifqu}q(U meta_typeqUImageqUidqh.u}q(hhhUrond_decoche_elem.gifqu}q(U meta_typeqUImageqUidqhu}q(hhhUr_rond_ouvre.gifqu}q(U meta_typeqUImageqUidqUr_rond_plus.gifqu}q(U meta_typeqUImageqUidrhu}r(hhjhu}r(hhjUr_rond_decoche.gifru}r(hhjUr_rond_deplace.gifru}r(hhjUr_rond_detruire.gifru}r(hhjUr_rond_duplique.gifr u}r (hhjUr_rond_renommer.gifr u}r (hhjhQu}r (hhjUrond_detruit_col.gifru}r(hhjUrond_detruit_ligne.gifru}r(hhjUr_rond_detruit_ligne.gifru}r(hhjUr_rond_coche_case.gifru}r(hhjUr_rond_decoche_case.gifru}r(hhjUrond_coche_case.gifru}r(hhjUrond_decoche_case.gifru}r(U meta_typerUImagerUidrh=u}r(jjjUr_rond_modif_li_co.gifr u}r!(U meta_typer"UImager#Uidr$Ur_carre_ajout_colonne.gifr%u}r&(j"j#j$Ucarre_edit_ajout_colonne.gifr'u}r((j"j#j$hLu}r)(j"j#j$Ur_carre_ajout_ligne.gifr*u}r+(j"j#j$hu}r,(j"j#j$hu}r-(j"j#j$Ucarre_detruit_colonne.gifr.u}r/(j"j#j$Ucarre_detruit_ligne.gifr0u}r1(U meta_typer2UImager3Uidr4hju}r5(j2j3j4Ur_rond_fusion.gifr6u}r7(j2j3j4Urond_edit_annule_fusion.gifr8u}r9(j2j3j4Ur_rond_annule_fusion.gifr:u}r;(j2j3j4Urond_edit_ajout_soustab.gifr<u}r=(j2j3j4Ur_rond_ajout_soustab.gifr>u}r?(j2j3j4Urond_edit_detruit_soustab.gifr@u}rA(j2j3j4Ur_rond_detruit_soustab.gifrBu}rC(U meta_typerDUImagerEUidrFU mapcolor.jpgrGu}rH(U meta_typerIUImagerJUidrKUr_carre_ici.gifrLu}rM(U meta_typerNUImagerOUidrPUrond_detruire_skin.gifrQu}rR(jNjOjPUrond_dupliquer_skin.gifrSu}rT(jNjOjPUrond_editer_skin.gifrUu}rV(jNjOjPUrond_plus_skin.gifrWu}rX(jNjOjPhu}rY(jNjOjPh8u}rZ(jNjOjPUcarre_skin_ajout_ligne.gifr[u}r\(U meta_typer]UImager^Uidr_hGu}r`(j]j^j_Urond_skin_annule_fusion.gifrau}rb(j]j^j_Urond_skin_coche_case.gifrcu}rd(j]j^j_Urond_skin_decoche_case.gifreu}rf(j]j^j_h3u}rg(j]j^j_Urond_skin_fusion.gifrhu}ri(j]j^j_Urond_skin_modif_li_co.gifrju}rk(U meta_typerlUImagermUidrnUr_rond_zone_edit.gifrou}rp(jljmjnUrond_zone_edit.gifrqu}rr(U meta_typersUImagertUidruUr_rond_droit.gifrvu}rw(jsjtjuUr_rond_refer.gifrxu}ry(jsjtjuUr_rond_skin.gifrzu}r{(jsjtjuUrond_droit.gifr|u}r}(jsjtjuUrond_refer.gifr~u}r(jsjtjuU rond_skin.gifru}r(U meta_typerUImagerUidrh[u}r(jjjhyu}r(jjjhVu}r(jjjhu}r(jjjhu}r(U meta_typerUImagerUidrUrond_detruit_groupe.gifru}r(jjjUrond_detruit_user.gifru}r(jjjUrond_duplique_groupe.gifru}r(jjjUrond_edit_user.gifru}r(jjjUrond_edit_groupe.gifru}r(jjjUrond_plus_groupe.gifru}r(jjjUrond_plus_user.gifru}r(U meta_typerUImagerUidrhou}r(jjjUr_rond_bug.gifru}r(U meta_typerUImagerUidrh$u}r(U meta_typerUFilerUidrUzwook_module.gifrutj (U jr(hUImagertrtrQh(U jr(hUImagertrtrQj~(U jr(hUImagertrtrQh(U jr(hUFilertrtrQja(U jPr(hUImagertrtrQh(U jr(hUImagertrtrQj(U jr(hUImagertrtrQh(U jr(hUImagertrtrQj(U jr(hUImagertrtrQh(U jr(hUImagertrtrQj(U jr(hUImagertrtrQj(U jr(hUImagertrtrQUzwook_admin.gifr(U jr(hUFilertrtrQj0(U jr(hUImagertrtrQj(U j r(hUImagertrtrQjo(U j!r(hUImagertrtrQh(U j"r(hUImagertrtrQj:(U j#r(hUImagertrtrQj>(U j$r(hUImagertrtrQjB(U j%r(hUImagertrtrQjq(U j&r(hUImagertrtrQUtitlerUj(U j'r(hUImagertrtrQj(U j(r(hUImagertrtrQh(U jSr(hUImagertr tr QjL(U jr (hUImager tr trQjG(U j*r(hUImagertrtrQjj(U j+r(hUImagertrtrQj(U j,r(hUImagertrtrQj(U j.r(hUImagertrtrQUcarre_edit_ajout_colonne.gifr(U j/r (hUImager!tr"tr#Qj|(U j0r$(hUImager%tr&tr'QhUbor(h(U j1r)(hUImager*tr+tr,Qh(U j2r-(hUImager.tr/tr0Qj(U j3r1(hUImager2tr3tr4Qh(U jr5(hUImager6tr7tr8QjQ(U j5r9(hUImager:tr;tr<Qh(U j6r=(hUImager>tr?tr@Qh(U j7rA(hUImagerBtrCtrDQh(U j8rE(hUImagerFtrGtrHQje(U j9rI(hUImagerJtrKtrLQh(U j:rM(hUImagerNtrOtrPQUcercle_skin.gifrQ(U j;rR(hUImagerStrTtrUQj*(U jr^(hUImager_tr`traQj (U j?rb(hUImagerctrdtreQjh(U jrf(hUImagergtrhtriQj(U jArj(hUImagerktrltrmQUcercle_zope.gifrn(U jBro(hUImagerptrqtrrQj[(U jCrs(hUImagerttrutrvQj(U jDrw(hUImagerxtrytrzQjS(U jEr{(hUImager|tr}tr~QUcercle_edit.gifr(U jNr(hUImagertrtrQh(U jGr(hUImagertrtrQj8(U jHr(hUImagertrtrQh(U jIr(hUImagertrtrQUcercle_arbo.gifr(U jJr(hUImagertrtrQh(U jKr(hUImagertrtrQh(U jLr(hUImagertrtrQh(U jMr(hUFilertrtrQh(U jr(hUImagertrtrQjc(U jr(hUImagertrtrQj%(U jOr(hUImagertrtrQjv(U jr(hUImagertrtrQj(U jr(hUImagertrtrQh(U jRr(hUImagertrtrQjU(U ir(hUImagertrtrQj.(U jTr(hUImagertrtrQh(U jUr(hUImagertrtrQh(U jVr(hUImagertrtrQj(U jWr(hUImagertrtrQjW(U jXr(hUImagertrtrQj(U jYr(hUImagertrtrQh(U jZr(hUFilertrtrQjz(U j[r(hUImagertrtrQj@(U j\r(hUImagertrtrQjx(U j]r(hUImagertrtrQh(U j^r(hUImagertrtrQj<(U j_r(hUImagertrtrQj (U j`r(hUImagertrtrQh(U jFr(hUImagertrtrQj(U jbr(hUImagertrtrQj(U jcr(hUImagertrtrQj(U jdr(hUImagertrtrQu. i0((U OFS.FolderqUFolderqtqNt.}q(U sel_no_r.gifq(U jeq(U OFS.ImageqUImageqtq tq QU__ac_local_roles__q }q Uinsert_colonne.gifq (U jfq(hUImageqtqtqQU duplique.gifq(U jgq(hUImageqtqtqQU _propertiesq(}q(UidqUtitleqUmodeqUwUtypeqUstringqu}q(hU type_zwookqhUstringq utUgroupes_ico.gifq!(U jq"(hUImageq#tq$tq%QU edit_del_movq&(U jiq'(hUFolderq(tq)tq*QUr_manage_ico.gifq+(U jjq,(hUImageq-tq.tq/QU sel_yes_r.gifq0(U jlq1(hUImageq2tq3tq4QUadd_page38.gifq5(U jmq6(hUImageq7tq8tq9QUpropriete_tab.gifq:(U jnq;(hUImageqQUconfig_ico.gifq?(U joq@(hUImageqAtqBtqCQUr_config_ico.gifqD(U jpqE(hUImageqFtqGtqHQU voir_ico.gifqI(U jqqJ(hUImageqKtqLtqMQUdel.gifqN(U jrqO(hUImageqPtqQtqRQU logo_elementsqS(U jsqT(hUFolderqUtqVtqWQUconfig_ico_t.gifqX(U jtqY(hUImageqZtq[tq\QU_objectsq](}q^(U meta_typeq_UImageq`UidqaU dossier.gifqbu}qc(U meta_typeqdUImageqeUidqfUdossier_plus.gifqgu}qh(U meta_typeqiUImageqjUidqkU retour.gifqlu}qm(U meta_typeqnUImageqoUidqpU skins_ico.gifqqu}qr(hnhohpUretour_ico.gifqsu}qt(U meta_typequUImageqvUidqwU poubelle.gifqxu}qy(huhvhwU stylo.gifqzu}q{(huhvhwU users_ico.gifq|u}q}(U meta_typeq~UImageqUidqUgroupes_ico.gifqu}q(U meta_typeqUFolderqUidqU edit_del_movqu}q(hhhU logo_elementsqu}q(U meta_typeqUImageqUidqUdel.gifqu}q(U meta_typeqUImageqUidqUmove.gifqu}q(U meta_typeqUImageqUidqUici.gifqu}q(U meta_typeqUImageqUidqUplus.gifqu}q(hhhU add_page.gifqu}q(U meta_typeqUImageqUidqh+u}q(hhhUr_voir_ico.gifqu}q(U meta_typeqUImageqUidqU add_page_.gifqu}q(U meta_typeqUImageqUidqh5u}q(hhhU admin_ico.gifqu}q(hhhUconfig_ico.gifqu}q(hhhUconfig_ico_t.gifqu}q(hhhUmanage_ico.gifqu}q(hhhUmanage_ico_t.gifqu}q(hhhUr_config_ico.gifqu}q(hhhU voir_ico.gifqu}q(U meta_typeqUImageqUidqhu}q(U meta_typeqUImageqUidqh:u}q(hhhh u}q(hhhUinsert_ligne.gifqu}q(hhhU sel_no.gifqu}q(hhhhu}q(hhhU sel_yes.gifqu}q(hhhh0u}q(U meta_typeqUFolderqUidqUoldqu}q(U meta_typeqUImageqUidqUadmin_ico_t.gifqu}q(hhhUr_admin_ico.gifqu}q(U meta_typeqUImageqUidqU browsing1.gifqu}q(hhhU browsing2.gifqutUmanage_ico_t.gifq(U juq(hUImageqtqtqQUmove.gifq(U jvq(hUImageqtqtqQh(U jwq(hUImageqtqtqQh(U jxq(hUImageqtqtqQhg(U jyq(hUImageqtqtqQh(U jzq(hUImageqtqtqQU type_zwookqUdossierqh(U j{q(hUImageqtqtqQUadmin_ico_t.gifr(U j|r(hUImagertrtrQUoldr(U jr(hUFolderrtrtr Qh(U j}r (hUImager tr tr Qhs(U j~r(hUImagertrtrQh(U jhr(hUImagertrtrQhb(U jkr(hUImagertrtrQU admin_ico.gifr(U jr(hUImagertrtrQh(U jr(hUImager tr!tr"QUr_admin_ico.gifr#(U jr$(hUImager%tr&tr'Qh(U jr((hUImager)tr*tr+QUidr,Uiconesr-Uici.gifr.(U jr/(hUImager0tr1tr2Qhz(U jr3(hUImager4tr5tr6Qhx(U jr7(hUImager8tr9tr:QU retour.gifr;(U jr<(hUImager=tr>tr?Qhq(U jr@(hUImagerAtrBtrCQU users_ico.gifrD(U jrE(hUImagerFtrGtrHQUtitlerIUh(U jrJ(hUImagerKtrLtrMQUmanage_ico.gifrN(U jrO(hUImagerPtrQtrRQu. i((U OFS.FolderqUFolderqtqNt.}q(Uarrondi_fin.gifq(U jq(U OFS.ImageqUImageqtq tq QU onglet3_o.gifq (U jq (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(hU onglet3.gifqCu}qD(hU onglet2_o.gifqEu}qF(hh u}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_uth(U jq`(hUImageqatqbtqcQhA(U jqd(hUImageqetqftqgQhH(U jqh(hUImageqitqjtqkQh?(U jql(hUImageqmtqntqoQh:(U jqp(hUImageqqtqrtqsQh$(U jqt(hUImagequtqvtqwQh1(U jqx(hUImageqytqztq{Qh(U jq|(hUImageq}tq~tqQh((U jq(hUImageqtqtqQhUadminqhR(U jq(hUImageqtqtqQUaffectation.jpgq(U jq(hUImageqtqtqQh&(U jq(hUImageqtqtqQh8(U jq(hUImageqtqtqQhE(U jq(hUImageqtqtqQU trait1.gifq(U jq(hUImageqtqtqQhC(U jq(hUImageqtqtqQhZ(U jq(hUImageqtqtqQh(U jq(hUImageqtqtqQU menu_inf.gifq(U jq(hUImageqtqtqQUlogo.gifq(U jq(hUImageqtqtqQh(U jq(hUImageqtqtqQh/(U jq(hUImageqtqtqQUtitleqUhX(U jq(hUImageqtqtqQh(U jq(hUImageqtqtqQu. iM((U OFS.ImageqUImageqtqNt.}q(UsizeqL43L UdataqU+GIF89a!,D;qU_dav_writelocksq(U jq (U Persistenceq UPersistentMappingq tq tq QU__name__qU pixel.gifqUtitleqUU content_typeqU image/gifqU__ac_local_roles__q}qUgregq]qUOwnerqasU preconditionqUUwidthqKUheightqKu. iB((U PersistenceqUPersistentMappingqtqNt.}qU _containerq}qs. i((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_contextq#hU name_m_selfq$Uscriptq%usbU func_defaultsq&NU_codeq'T csdZdS(NcsQt}t}|td}d||IJ|SdS(Nsessai_V098_8_3c st}d}x||dddrg}|td||dd}x4|dr'}|djo |d}nqiWq-W x5||dd d r} ||}qW |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. i((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_contextq%Ucontextq&U name_m_selfq'Uscriptq(usbU func_defaultsq)NU_codeq*TcsdZdS(Nc st}t}t}|td}||d}xx|drk} || IJ||| dIJ||| dIJ||| dIJ||| dIJqHW |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,Uz=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. iB((U PersistenceqUPersistentMappingqtqNt.}qU _containerq}qs. iB((U PersistenceqUPersistentMappingqtqNt.}qU _containerq}qs. i((U OFS.FolderqUFolderqtqNt.}q(UidqUimagesqU navigationq(U jq(hUFolderq tq tq QUfondsq (U jq (hUFolderqtqtqQU_objectsq(}q(U meta_typeqUFolderqhUavatarqu}q(hhhUfondsqu}q(hhhU navigationqutU__ac_local_roles__q}qUxavq]qUOwnerqasU _propertiesq(}q (hUtitleq!Umodeq"UwUtypeq#Ustringq$u}q%(hUsystemq&h#Ustringq'u}q((hU type_zwookq)h#Ustringq*utUavatarq+(U jq,(hUFolderq-tq.tq/Qh!UU type_zwookq0Usystemq1Usystemq2Udataq3u. iI((U OFS.FolderqUFolderqtqNt.}q(UidqUgroupsqU__ac_local_roles__q}qU_objectsq (}q (U meta_typeq UFolderq Uidq U Anonymousqu}q(h h h U Authenticatedqu}q(h h h UManagerqu}q(U meta_typeqUFolderqUidqU config_zwookqutU _propertiesq(}q(hUtitleqUmodeqUwUtypeqUstringqu}q(hU type_zwookqhUstringq u}q!(hUsystemq"hUstringq#utU Anonymousq$(U jq%(hUFolderq&tq'tq(QU type_zwookq)Usystemq*UManagerq+(U jq,(hUFolderq-tq.tq/Qh(U jq0(hUFolderq1tq2tq3QUsystemq4Udataq5hUU Authenticatedq6(U jq7(hUFolderq8tq9tq:Qu. i((U OFS.FolderqUFolderqtqNt.}q(UidqUgeneralqUsystemqUdataqU__ac_local_roles__q }q Ugregq ]q UOwnerq asU general_dataq(U jq(UOFS.DTMLDocumentqU DTMLDocumentqtqtqQU_objectsq(}q(U meta_typeqU DTML DocumentqhU general_dataqutU _propertiesq(}q(UidqUtitleqUmodeqUwUtypeqUstringqu}q (hU type_zwookq!hUstringq"u}q#(hUsystemq$hUstringq%utU type_zwookq&Usystemq'Utitleq(Uu. ic((U OFS.FolderqUFolderqtqNt.}q(UidqUskinsqU__ac_local_roles__q}qU_objectsq (}q (U meta_typeq UFolderq Uidq UdefaultqutUdefaultq(U jq(hUFolderqtqtqQU _propertiesq(}q(UidqUtitleqUmodeqUwUtypeqUstringqu}q(hU type_zwookqhUstringqu}q(hUsystemeqhUstringq utU type_zwookq!Usystemq"Utitleq#UhUdataq$u. i((U OFS.FolderqUFolderqtqNt.}q(UtitleqUUidqU calendrierqU__ac_local_roles__q}q Uxavq ]q UOwnerq asUtousq (U jq(hUFolderqtqtqQU_objectsq(}q(U meta_typeqUFolderqhUtousqutu. i((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(U jq9(hUFolderq:tq;tqs"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. i%((U OFS.FolderqUFolderqtqNt.}q(U__ac_local_roles__q}qUxavq]qUOwnerq asU_objectsq (}q (U meta_typeq UScript (Python)q UidqU index_htmlqu}q(U meta_typeqUScript (Python)qUidqU insertpageokqu}q(hhhU valid_selqu}q(U meta_typeqUScript (Python)qUidqU dupliquerokqu}q(hhhU renommerokqu}q(U meta_typeqUScript (Python)q Uidq!Urenommer_pagesq"u}q#(U meta_typeq$UScript (Python)q%Uidq&Udupliquer_pagesq'u}q((U meta_typeq)UScript (Python)q*Uidq+Udetruire_pagesq,u}q-(h)h*h+U detruireokq.u}q/(U meta_typeq0UScript (Python)q1Uidq2Udeplacer_pagesq3u}q4(h0h1h2U deplaceokq5u}q6(U meta_typeq7UScript (Python)q8Uidq9Uskinsq:u}q;(U meta_typeqU change_skinq?u}q@(U meta_typeqAUScript (Python)qBUidqCUskinokqDu}qE(U meta_typeqFUScript (Python)qGUidqHUrefersqIu}qJ(hFhGhHU change_refqKu}qL(U meta_typeqMUScript (Python)qNUidqOUrefokqPu}qQ(U meta_typeqRUScript (Python)qSUidqTUdroitsqUu}qV(hRhShTU change_droitqWu}qX(U meta_typeqYUScript (Python)qZUidq[Udroitokq\utUdroitsq](U jq^(U#Products.PythonScripts.PythonScriptq_U PythonScriptq`tqatqbQU change_skinqc(U jqd(h_U PythonScriptqetqftqgQUdetruire_pagesqh(U jqi(h_U PythonScriptqjtqktqlQhD(U jqm(h_U PythonScriptqntqotqpQU index_htmlqq(U jqr(h_U PythonScriptqstqttquQU dupliquerokqv(U jqw(h_U PythonScriptqxtqytqzQh\(U jq{(h_U PythonScriptq|tq}tq~QUrenommer_pagesq(U jq(h_U PythonScriptqtqtqQhK(U jq(h_U PythonScriptqtqtqQUtitleqUh5(U jq(h_U PythonScriptqtqtqQU valid_selq(U jq(h_U PythonScriptqtqtqQUidqUarboqUrefersq(U jq(h_U PythonScriptqtqtqQh(U jq(h_U PythonScriptqtqtqQhP(U jq(h_U PythonScriptqtqtqQU detruireokq(U jq(h_U PythonScriptqtqtqQUskinsq(U jq(h_U PythonScriptqtqtqQhW(U jq(h_U PythonScriptqtqtqQU renommerokq(U jq(h_U PythonScriptqtqtqQUdupliquer_pagesq(U jq(h_U PythonScriptqtqtqQUdeplacer_pagesq(U jq(h_U PythonScriptqtqtqQu. i#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/(U jq0(U Persistenceq1UPersistentMappingq2tq3tq4QU _bind_namesq5(cShared.DC.Scripts.Bindings NameAssignments q6oq7}q8U_asgnsq9}q:(Uname_containerq;U containerqU name_m_selfq?Uscriptq@U name_contextqAUcontextqBusbU func_defaultsqC(NtqDU_codeqETcstdZdS(Nc st}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|dd joV!||td|ddd||td|ddd}"|}qW$d}%x4|d%r'}&|djo'||}nqW(|}*d}|,|ddo7-|d||djo.t}/d}nn1d|d}2|d||dd||d d| d}3|d|d||dd}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#||d3d}M||}N|d4}P|d0||d d"| d}Q|d|d1||d d}R|d2}T|d5||d6d|d.| d}U|d|d||d6d}V|d,}nZ|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_rondislargeur_colonnes/zwo_images/bo/csd|d}|d|d|d}|d}|d|d|d}|d}|d|d}|d}|djo|d }n|d |d |d }|SdS( Ns (surlsrettsnomsrolsimg(snomsurlsimgsrolsrett((sScript (Python)srolls   sfinds>sss ssrollsconfigbox?typ=F&id=srond_ferme.gifsr_rond_ferme.gifsmarge_bas_titressmarge_haut_htmls" colspan="3" bgcolor="ss sconfigbox?typ=O&id=srond_ouvre.gifsr_rond_ouvre.gif(s _getitem_s_getitems _getattr_s_getattrsstringscsccsprs colorfondslenscolorscolortsstrsintslslllsllsliszwuszwuisrollstitresidtitresnewtitresFFFsNoneshtmlsrett(szwusprscstitreshtmls _getitem_s_getitems _getattr_s_getattrsstringsccs colorfondslenscolorscolortsstrsintslslllsllsliszwuisrollsidtitresnewtitresFFFsNonesrett((sScript (Python)seditions'#55,  )I    7& &  , .& .& &&   && .&, .& (sNonesedition(sNonesedition((sScript (Python)ssqFU_bodyqGTcc=string.split(c,'*') colorfond=pr['color_fond_menu'] if len(cc)>1: colorfond=pr['color_'+cc[1]] color=pr['color_'+cc[0]] colort=pr['color_t_'+cc[0]] l=str(2*int(pr['espacement'])+int(pr['largeur_rond']) ) lll=str( 760-int(pr['largeur_colonne'])-int(pr['espacement']) ) ll=str(int(lll)-int(l)) li=str( int(lll)-2*int(pr['espacement']) ) zwui=zwu+'/zwo_images/bo/' def roll(nom,url,img,rol): rett='' return rett idtitre=titre while string.find(idtitre,'>')<>-1: newtitre=string.split(idtitre,'<',1)[0]+string.split(idtitre,'>',1)[1] idtitre=newtitre newtitre="" for l in idtitre: if l in 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ': newtitre=newtitre+l idtitre=newtitre FFF=0 if pr.has_key('box'): if idtitre+'=F' in pr['box']: html=None FFF=1 rett='' rett=rett+'' rett=rett+'' rett=rett+'
' rett=rett+'' rett=rett+'
' rett=rett+'' rett=rett+'' rett=rett+titre rett=rett+'' if html: rett=rett+roll('roll'+idtitre,'configbox?typ=F&id='+idtitre,zwui+'rond_ferme.gif',zwui+'r_rond_ferme.gif') rett=rett+'
' rett=rett+'' rett=rett+'
' rett=rett+'' rett=rett+'' rett=rett+'' rett=rett+'' rett=rett+'' rett=rett+'
' rett=rett+'' rett=rett+'
' rett=rett+'' rett=rett+'' rett=rett+'' rett=rett+html rett=rett+'' rett=rett+'' rett=rett+'
' rett=rett+'' rett=rett+'
' else: if FFF==0: rett=rett+'' else: rett=rett+roll('roll'+idtitre,'configbox?typ=O&id='+idtitre,zwui+'rond_ouvre.gif',zwui+'r_rond_ouvre.gif') rett=rett+'' rett=rett+'' rett=rett+'' rett=rett+'' return rett qHU Script_magicqIKUwarningsqJ)UerrorsqK)U Python_magicqLU* qMu. i ((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Utypq Uidq U _getitem_q U_getitemq U _getattr_qU_getattrqUcontextqUmemqUuoqUboxqUoldboxqUlUstringqUdecqtqU co_argcountqKubU_paramsqUtyp,idqh U configboxqU__ac_local_roles__q}qUxavq]qUOwnerq asU_dav_writelocksq!(U jq"(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_subpathq0U name_m_selfq1Uscriptq2U name_contextq3husbU func_defaultsq4NU_codeq5TcsdZdS(Ncst}t}||tdd}||ddjo dSn||d}d} ||dd  o+| |d d |d |gd n g}  ||d }  xa| d  rT} |t d| d } || d |jo|| d| nqW|| d|d |||dd | |||tdddddSdS(Nszwo_libsmem_datasdroit_edit_dossieris.Vous n'avez pas les droits pour cette action !s user_zw_objss hasPropertys configboxsmanage_addPropertys=slinesissplitsappendsmanage_changePropertiessREQUESTsRESPONSEsredirects./(s _getitem_s_getitems _getattr_s_getattrscontextsmemsuosboxsidstypsoldboxslsstringsdec(stypsids _getitem_s_getitems _getattr_s_getattrscontextsmemsuosboxsoldboxslsstringsdec((sScript (Python)s configboxs *  ( (s configbox(s configbox((sScript (Python)ssq6U_bodyq7Tmem=context.zwo_lib.mem_data() if mem['droit_edit_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' uo=mem['user_zw_obj'] box='' if not uo.hasProperty('configbox'): uo.manage_addProperty('configbox',[id+'='+typ],'lines') else: box=[] oldbox=uo.configbox for l in oldbox: dec=string.split(l,'=') if dec[0]<>id: box.append(l) box.append(id+'='+typ) uo.manage_changeProperties(configbox=box) context.REQUEST.RESPONSE.redirect('./') return q8U Script_magicq9KUwarningsq:)Uerrorsq;)U Python_magicqUscriptq?usbU func_defaultsq@(NNtqAU_codeqBT2csttdZdS(Ncs\t}t} ||d|} ||d|} tdt ||dt ||d}tt ||dt |}tt ||ddt ||d}|d} d }|}xz| td |d d joV|| td |dd d|| td |d d d }|}qWd}x4|dr'}|djo||}nqW |}"d}| $|ddo7%|d||djo&t}'d }nn*d||dd}+|d||dd||dd| d},|d|d||dd}-|d}.|d||dd | d}/|d|d!||dd"}0|d#|d | d$}1|d%| d}2||}3|d&|d | d'}5|o>6||d(|d)||d*|d+}7|d}8|d||d,d||dd| d}9|d|d||d,d}:|d-}<|d||dd}=|d||d.d||dd||d/d}>|d|d||d.d}?|d0}A|d1||dd ||d/d}B|d|d2||dd}C|d3}E|d1|d ||d/d}F|d%||d4d}G||}H|d5}J|d1||dd ||d/d}K|d|d2||dd}L|d3}N|d6||d7d||dd||d/d}O|d|d||d7d}P|d}Q|oZR|d8||dd9||d:d;}S|d<}T||}U|d=}nW|d>}n[|djo\|d|d?}n-^||d(|d@||dA|dB}_|d}`|d||d,d||dd| d}a|d|d||d,d}b|d-}d|SdS(CNscolor_scolor_t_is espacements largeur_rondslargeur_colonneis/zwo_images/bo/cs  d|d} |d|d|d} |d} |d|d|d}|d}|d|d}|d}|djo|d }n|d |d |d }|SdS( Ns (surlsrettsnomsrolsimg(snomsurlsimgsrolsrett((sScript (Python)sroll s   sfinds>issplitsss sss$srollsconfigbox?typ=F&id=srond_ferme.gifsr_rond_ferme.gifsmarge_bas_titressmarge_haut_htmlscolor_fond_menuss ssss,/zwo_images/pixel.gif" height="1" width="1">sconfigbox?typ=O&id=srond_ouvre.gifsr_rond_ouvre.gif(s _getitem_s_getitems _getattr_s_getattrsprscscolorscolortsstrsintslsllsliszwuszwuisrollstitresidtitresstringsnewtitresFFFsNoneshtmlsrettsvalid(szwusprscstitreshtmlsvalids _getitem_s_getitems _getattr_s_getattrscolorscolortsstrsintslsllsliszwuisrollsidtitresstringsnewtitresFFFsNonesrett((sScript (Python)smenus"5(5  )I    7& &&  , 7& @& /& &  /& @&  /  , 7& (sNonesmenu(sNonesmenu((sScript (Python)ssqCU_bodyqDTecolor=pr['color_'+c] colort=pr['color_t_'+c] l=str(2*int(pr['espacement'])+int(pr['largeur_rond']) ) ll=str( int(pr['largeur_colonne'])-int(l) ) li=str( int(pr['largeur_colonne'])-3*int(pr['espacement']) ) zwui=zwu+'/zwo_images/bo/' def roll(nom,url,img,rol): rett='' return rett idtitre=titre while string.find(idtitre,'>')<>-1: newtitre=string.split(idtitre,'<',1)[0]+string.split(idtitre,'>',1)[1] idtitre=newtitre newtitre="" for l in idtitre: if l in 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ': newtitre=newtitre+l idtitre=newtitre FFF=0 if pr.has_key('box'): if idtitre+'=F' in pr['box']: html=None FFF=1 rett='' rett=rett+'' rett=rett+'' rett=rett+'
' rett=rett+'' rett=rett+'
' rett=rett+'' rett=rett+'' rett=rett+'' rett=rett+titre rett=rett+'' if html: rett=rett+roll('roll'+idtitre,'configbox?typ=F&id='+idtitre,zwui+'rond_ferme.gif',zwui+'r_rond_ferme.gif') rett=rett+'
' rett=rett+'' rett=rett+'
' rett=rett+'' rett=rett+'' rett=rett+'' rett=rett+'' rett=rett+'' rett=rett+'' if valid: rett=rett+'' rett=rett+'
' rett=rett+'' rett=rett+'
' rett=rett+'' rett=rett+'' rett=rett+'' rett=rett+html rett=rett+'' rett=rett+'' rett=rett+'
' rett=rett+'' rett=rett+'
' rett=rett+'' rett=rett+valid rett=rett+'
' else: if FFF==0: rett=rett+'' else: rett=rett+roll('roll'+idtitre,'configbox?typ=O&id='+idtitre,zwui+'rond_ouvre.gif',zwui+'r_rond_ouvre.gif') rett=rett+'' rett=rett+'' rett=rett+'' rett=rett+'' return rett qEU Script_magicqFKUwarningsqG)UerrorsqH)U Python_magicqIU* qJu. i\((U OFS.FolderqUFolderqtqNt.}q(U index_htmlq(U jq(U#Products.PythonScripts.PythonScriptqU PythonScriptqtq tq QUidq Uadminq Umodulesq (U jq(hUFolderqtqtqQUgroupsq(U jq(hUFolderqtqtqQU_objectsq(}q(U meta_typeqUScript (Python)qUidqU index_htmlqu}q(U meta_typeqUScript (Python)qUidq Uparamokq!u}q"(U meta_typeq#UFolderq$Uidq%Uusersq&u}q'(U meta_typeq(UFolderq)Uidq*Ugroupsq+u}q,(h(h)h*Umodulesq-utUtitleq.Uh!(U jq/(hU PythonScriptq0tq1tq2QUusersq3(U jq4(hUFolderq5tq6tq7QU__ac_local_roles__q8}q9Uxavq:]q;UOwnerq(U meta_typeq?UScript (Python)q@UidqAU modif_li_coqBu}qC(U meta_typeqDUScript (Python)qEUidqFU addligneokqGu}qH(hDhEhFU addcolonneokqIu}qJ(hDhEhFU add_soustabokqKu}qL(hDhEhFh u}qM(hDhEhFU del_soustabokqNu}qO(hDhEhFUfusionokqPu}qQ(hDhEhFU delligneokqRu}qS(hDhEhFU delcolonneokqTu}qU(U meta_typeqVUScript (Python)qWUidqXU modifpropcasqYu}qZ(U meta_typeq[UScript (Python)q\Uidq]U index_htmlq^utUdeplacer_elementsq_(U jq`(h U PythonScriptqatqbtqcQUrenommer_elementsqd(U jqe(h U PythonScriptqftqgtqhQUplaceqi(U jqj(h U PythonScriptqktqltqmQhY(U jqn(h U PythonScriptqotqptqqQU index_htmlqr(U jqs(h U PythonScriptqttqutqvQhK(U jqw(h U PythonScriptqxtqytqzQh6(U jq{(h U PythonScriptq|tq}tq~QhR(U jq(h U PythonScriptqtqtqQhI(U jq(h U PythonScriptqtqtqQhT(U jq(h U PythonScriptqtqtqQh(U jq(h U PythonScriptqtqtqQh%(U jq(h U PythonScriptqtqtqQUidqUeditqhP(U jq(h U PythonScriptqtqtqQUplaceokq(U jq(h U PythonScriptqtqtqQh/(U jq(h U PythonScriptqtqtqQUdupliquer_elementsq(U jq(h U PythonScriptqtqtqQhG(U jq(h U PythonScriptqtqtqQU modif_li_coq(U jq(h U PythonScriptqtqtqQh=(U jq(h U PythonScriptqtqtqQUdetruire_elementsq(U jq(h U PythonScriptqtqtqQhN(U jq(h U PythonScriptqtqtqQU ajout_elementq(U jq(h U PythonScriptqtqtqQUtitleqUu. i {((U OFS.FolderqUFolderqtqNt.}q(U__ac_local_roles__q}qUxavq]qUOwnerq asUannule_fusionokq (U jq (U#Products.PythonScripts.PythonScriptq U PythonScriptq tqtqQUediter_elementq(U jq(h U PythonScriptqtqtqQU_objectsq(}q(U meta_typeqUScript (Python)qUidqU index_htmlqu}q(U meta_typeqUScript (Python)qUidqU list_elementqu}q (hhhU ajout_elementq!u}q"(hhhUplaceq#u}q$(hhhUplaceokq%u}q&(U meta_typeq'UScript (Python)q(Uidq)U valid_selq*u}q+(U meta_typeq,UScript (Python)q-Uidq.hu}q/(h,h-h.Udeplacer_elementsq0u}q1(h,h-h.Udetruire_elementsq2u}q3(h,h-h.U detruireokq4u}q5(U meta_typeq6UScript (Python)q7Uidq8Udupliquer_elementsq9u}q:(h6h7h8U dupliquerokq;u}q<(U meta_typeq=UScript (Python)q>Uidq?Urenommer_elementsq@u}qA(h=h>h?U renommerokqBu}qC(U meta_typeqDUScript (Python)qEUidqFU modif_li_coqGu}qH(U meta_typeqIUScript (Python)qJUidqKU addligneokqLu}qM(hIhJhKU addcolonneokqNu}qO(hIhJhKU add_soustabokqPu}qQ(hIhJhKh u}qR(hIhJhKU del_soustabokqSu}qT(hIhJhKUfusionokqUu}qV(hIhJhKU delligneokqWu}qX(hIhJhKU delcolonneokqYu}qZ(U meta_typeq[UScript (Python)q\Uidq]U modifpropcasq^u}q_(U meta_typeq`UFolderqaUidqbUskinsqcu}qd(U meta_typeqeUScript (Python)qfUidqgU modifproptabqhu}qi(U meta_typeqjUScript (Python)qkUidqlUplace_zone_editqmu}qn(hjhkhlUplace_zone_editokqou}qp(U meta_typeqqUScript (Python)qrUidqsU validationqtutht(U jqu(h U PythonScriptqvtqwtqxQUrenommer_elementsqy(U jqz(h U PythonScriptq{tq|tq}QUplaceq~(U jq(h U PythonScriptqtqtqQhUskinqU index_htmlq(U jq(h U PythonScriptqtqtqQhP(U jq(h U PythonScriptqtqtqQh;(U jq(h U PythonScriptqtqtqQhW(U jq(h U PythonScriptqtqtqQhN(U jq(h U PythonScriptqtqtqQUplace_zone_editq(U jq(h U PythonScriptqtqtqQhY(U jq(h U PythonScriptqtqtqQh(U jq(h U PythonScriptqtqtqQh*(U jq(h U PythonScriptqtqtqQh^(U jq(h U PythonScriptqtqtqQhU(U jq(h U PythonScriptqtqtqQUplaceokq(U jq(h U PythonScriptqtqtqQh4(U jq(h U PythonScriptqtqtqQUdupliquer_elementsq(U jq(h U PythonScriptqtqtqQhL(U jq(h U PythonScriptqtqtqQhh(U jq(h U PythonScriptqtqtqQU modif_li_coq(U jq(h U PythonScriptqtqtqQUskinsq(U jq(hUFolderqtqtqQUdeplacer_elementsq(U jq(h U PythonScriptqtqtqQhB(U kq(h U PythonScriptqtqtqQUdetruire_elementsq(U kq(h U PythonScriptqtqtqQhS(U kq(h U PythonScriptqtqtqQU ajout_elementq(U kq(h U PythonScriptqtqtqQho(U kq(h U PythonScriptqtqtqQUtitleqUu. i((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_paramsqUUidqU presentationqU__ac_local_roles__q}qUxavq]qUOwnerqasU_dav_writelocksq(U kq(U PersistenceqUPersistentMappingqtqtqQU _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 csdZdS(Ncst}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+<"d,||d-<#d||d.<$d/||d0<%d||d1<&d2||d3<'d ||d4<)d5||d6<*d7||d8<+d,||d9<-d:||d;<.d<||d=</d>||d?<0d@||dA<1dB||dC<3dD||dE<4dF||dG<5dH||dI<6dJ||dK<7dL||dM<8dL||dN<9dL||dO<;dP||dQ<<dP||dR<=dS||dT<>dS||dU<AdS||dV<BdP||dW<CdX||dY<FdZ||d[<J|SdS(\Ns#000000scolor_fond_modulescolor_fond_editscolor_fond_skins#ddddddscolor_fond_adminscolor_fond_arbos#ccccccscolor_fond_menus#FF0000scolor_fond_menu_valids#ffffffscolor_fond_editionscolor_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#ff0000s 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.T*pr={} pr['color_fond_module']='#000000' pr['color_fond_edit']='#000000' pr['color_fond_skin']='#000000' pr['color_fond_admin']='#dddddd' pr['color_fond_arbo']='#dddddd' pr['color_fond_menu']='#cccccc' pr['color_fond_menu_valid']='#FF0000' pr['color_fond_edition']='#ffffff' pr['color_txt_module']='#cccccc' pr['color_txt_edit']='#cccccc' pr['color_txt_skin']='#cccccc' 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']='#ff0000' 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_magicq0KUwarningsq1)Uerrorsq2)U Python_magicq3U* q4u. iG((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Umemq Uprq Utypq Uchq U _getitem_qU_getitemqUzwuqUzwuiqUretqUintqUaUtotqU list_rolesqUlspqUlUrollqUroll2qUroll2lqUstrqUspqUsp2qUllqUheadqUspmqUmidq Uspeq!Ufootq"tq#U co_argcountq$KubU_paramsq%U mem,pr,typ,chq&Uidq'Uautourq(U__ac_local_roles__q)}q*Uxavq+]q,UOwnerq-asU_dav_writelocksq.(U kq/(U Persistenceq0UPersistentMappingq1tq2tq3QU _bind_namesq4(cShared.DC.Scripts.Bindings NameAssignments q5oq6}q7U_asgnsq8}q9(Uname_containerq:U containerq;U name_subpathqUcontextq?U name_m_selfq@UscriptqAusbU func_defaultsqBNU_codeqCT}$csdZdS(Nc(sCt}|ddd}|d}e|d|d}f|d||d|d }g|d }|d }|d ||d d}|dd|d}t ||d} d} |ddjo| d} n|ddjo| d} n|d} d| jo| d} nt ||d} | | | d| }dd}d}|dt|d }dd ||dd!}dd tt ||ddd!}||}|ddjov||}|||d"d#}||}|||d$d%}||}|||d&d'}n|ddjo*||}|||d(d)}n|d} d| jo<||}|d*d+d,d-d.}n||}d/|t ||d0t ||d }|d1t|d2||d3|d }|||d4|}|d5|}|d6||d0d7||d3|d }|d5}|d8|d9d:d;d<}|d=}|d>||dd?||dd@}|ddA||ddB}|dC}|dD}|d1||d dE}|}dF||ddG||d dHdA||ddI}td/t ||d t ||d}d||dd }|d|dE}dF||ddG|dHdA||ddI}dJ}|dK}|||||fSdS(LNszwo_urls/zwo_images/bo/s~sR sZwook - s���ssk sBs
s slargeur_cercleisdroit_edit_dossieriisdroit_config_dossiers user_roles_idsManagers espacementics#d}d}|djod|d}d}nd|d|d}|d|d |d}|d |d}|d|d |d}|d }|d|d}|d }|d jo|d}n|d|d|d}|SdS(Nss poplink('s');s killlink();s (shlptxtshlptxt2shelpsurlsrettsnomsrolsimg(snomsurlsimgsrolshelpshlptxtshlptxt2srett((sScript (Python)srolls      cs||joAd|d|d|dd|d|Sn>d|d|d|dd|d|SdS(Nsrolls/zwo_bo/scercle_s.gifs r_cercle_s f_cercle_(stypsnowsrollszwuszwuishelp(stypsnowshelpsrollszwuszwui(szwuiszwusroll(sScript (Python)sroll2sAcst}||joJd||dd|d|dd|d|SnGd||dd|d|dd|d|SdS(Nsrollsrep_urls/zwo_bo/scercle_s.gifs r_cercle_s f_cercle_(s _getitem_s_getitemstypsnowsrollsmemszwuishelp(stypsnowshelps _getitem_s_getitemsrollsmemszwui(szwuisrollsmem(sScript (Python)sroll2ls JsseditsEdition du contenusskinsEdition des skinssarbosAdministration des pagessadminsAdministration du zwooksrollzopes/managesf_cercle_zope.gifsr_cercle_zope.gifsInterface Zopeislargeur_case_droites
s/zwo_images/pixel.gif" height="s width="1">s
sBs" valign="top">s:
ss(s _getitem_s_getitemsmemszwuszwuisretschsprstypsintsastots list_rolesslspslsrollsroll2sroll2lsstrsspssp2sllsheadsspmsmidsspesfoot(smemsprstypschs _getitem_s_getitemszwuszwuisretsintsastots list_rolesslspslsrollsroll2sroll2lsstrsspssp2sllsheadsspmsmidsspesfoot((smemszwuiszwusrollsScript (Python)sautours   _" -   "2      / 303 0 /&   D5;  (sautour(sautour((sScript (Python)ssqDU_bodyqET,zwu=mem['zwo_url'] zwui=zwu+'/zwo_images/bo/' ret='' ret=ret+""" """ ret=ret+'Zwook - '+ch+'' ret=ret+'' ret=ret+""" """ ret=ret+'' ret=ret+'
' ret=ret+'' a=int(pr['largeur_cercle']) tot=0 if mem['droit_edit_dossier']==1: tot=tot+3 if mem['droit_config_dossier']==1: tot=tot+1 list_roles=mem['user_roles_id'] if 'Manager' in list_roles: tot=tot+1 lsp=int(pr['espacement']) l=tot*(a+lsp)+2*lsp def roll(nom,url,img,rol,help): hlptxt='' hlptxt2='' if help<>'': hlptxt=' poplink(\''+help+'\');' hlptxt2='killlink();' rett='' return rett def roll2(typ,now,help): if typ==now: return roll('roll'+now,zwu+'/zwo_bo/'+now,zwui+'cercle_'+now+'.gif',zwui+'r_cercle_'+now+'.gif',help) else: return roll('roll'+now,zwu+'/zwo_bo/'+now,zwui+'f_cercle_'+now+'.gif',zwui+'r_cercle_'+now+'.gif',help) def roll2l(typ,now,help): if typ==now: return roll('roll'+now,mem['rep_url']+'/zwo_bo/'+now,zwui+'cercle_'+now+'.gif',zwui+'r_cercle_'+now+'.gif',help) else: return roll('roll'+now,mem['rep_url']+'/zwo_bo/'+now,zwui+'f_cercle_'+now+'.gif',zwui+'r_cercle_'+now+'.gif',help) ret=ret+'' sp='' sp2='' ret=ret+sp if mem['droit_edit_dossier']==1: ret=ret+sp2 ret=ret+roll2l(typ,"edit",'Edition du contenu') ret=ret+sp2 ret=ret+roll2l(typ,"skin",'Edition des skins') ret=ret+sp2 ret=ret+roll2(typ,"arbo",'Administration des pages') if mem['droit_config_dossier']==1: ret=ret+sp2 ret=ret+roll2(typ,"admin",'Administration du zwook') list_roles=mem['user_roles_id'] if 'Manager' in list_roles: ret=ret+sp2 ret=ret+roll('rollzope',zwu+'/manage',zwui+'f_cercle_zope.gif',zwui+'r_cercle_zope.gif','Interface Zope') ret=ret+sp ll=760-l-int(pr['largeur_case_droite'])-int(pr['largeur_colonne']) ret=ret+'' ret=ret+pr['txt_'+typ] ret=ret+'
'+ch ret=ret+'
' #ret=ret+'a-faire' ret=ret+'
' #ret=ret+roll('rollhelp',zwu+'/help',zwui+'rond_help.gif',zwui+'r_rond_help.gif','Aide Zwook') #ret=ret+sp #ret=ret+roll('rollannule',zwu+'/annule',zwui+'rond_annule.gif',zwui+'r_rond_annule.gif','Annuler derniere modification') #ret=ret+sp ret=ret+roll('rollzwook',mem['rep_url'],zwui+'rond_zwook.gif',zwui+'r_rond_zwook.gif','Quitter Back Office') ret=ret+'
' ret=ret+'
' ret=ret+'' ret=ret+'
' ret=ret+'' ret=ret+'
' head=ret spm='
' l=str(760-(int(pr['largeur_colonne']))-(int(pr['espacement']))) mid='
' mid=mid+'' spe='
' foot='
' foot=foot+"" return (head,spm,mid,spe,foot) qFU Script_magicqGKUwarningsqH)UerrorsqI)U Python_magicqJU* qKu. iB((U PersistenceqUPersistentMappingqtqNt.}qU _containerq}qs. iB((U PersistenceqUPersistentMappingqtqNt.}qU _containerq}qs. i((U OFS.FolderqUFolderqtqNt.}q(U__ac_local_roles__q}qU_objectsq(}q(U meta_typeq UScript (Python)q Uidq Unew_htmlq u}q (h h h U config_htmlqu}q(U meta_typeqUScript (Python)qUidqU view_htmlqu}q(U meta_typeqUScript (Python)qUidqU config_okqu}q(U meta_typeqUScript (Python)qUidqU inscriptionqu}q(U meta_typeqUScript (Python)q Uidq!Uinscription_okq"u}q#(hUFolderq$h!Uusers_non_activeq%u}q&(U meta_typeq'UScript (Python)q(Uidq)U activationq*u}q+(U meta_typeq,UScript (Python)q-Uidq.U new_html_oldq/u}q0(h,h-h.U new_ok_oldq1utU _propertiesq2(}q3(hUtitleq4Umodeq5UwUtypeq6Ustringq7u}q8(hUskinq9h6Ustringq:u}q;(UidqUintq?u}q@(hUstringqBu}qC(hhBu}qE(hhBu}qG(hhBu}qI(hhBu}qK(UidqLU descriptionqMUtypeqNUlinesqOutU view_htmlqP(U kqQ(U#Products.PythonScripts.PythonScriptqRU PythonScriptqStqTtqUQhAU0.1qVh=KdhDU90%qWh1(U kqX(hRU PythonScriptqYtqZtq[QhJUgreg@emencia.comq\h (U kq](hRU PythonScriptq^tq_tq`QUtitleqaU Login ManagerqbhHUnonqch%(U k qd(hUFolderqetqftqgQU __ac_roles__qh(UManagerqiUOwnerqjU AnonymousqkU AuthenticatedqlU admin_zwookqmth U login_managerqnh"(U k qo(hRU PythonScriptqptqqtqrQhFUnonqsU config_okqt(U k qu(hRU PythonScriptqvtqwtqxQh/(U k qy(hRU PythonScriptqztq{tq|QU activationq}(U kq~(hRU PythonScriptqtqtqQh(U kq(hRU PythonScriptqtqtqQhM]q(UPermet l'administrateur du systme et aux membres autoriss de se logger. Un formulaire d'inscription y est inclu afin de faciliter l'adhsion de nouveaux membres. Ce module est configurableqUUUUeUskinqU1U inscriptionq(U k q(hRU PythonScriptqtqtqQu. i?((U OFS.FolderqUFolderqtqNt.}q(U experimentalqUU__ac_local_roles__q}qU_objectsq(}q (U meta_typeq UScript (Python)q Uidq Unew_htmlq u}q(U meta_typeqUScript (Python)qUidqUnew_okqu}q(U meta_typeqUScript (Python)qUidqU config_htmlqu}q(hhhU config_okqu}q(U meta_typeqUScript (Python)qUidqU view_htmlqu}q(U meta_typeq UScript (Python)q!Uidq"U edit_memberq#u}q$(h h!h"U edit_avatarq%u}q&(U meta_typeq'UScript (Python)q(Uidq)Uedit_avatar_okq*u}q+(U meta_typeq,UScript (Python)q-Uidq.Uedit_member_okq/utU _propertiesq0(}q1(Uidq2Utitleq3Umodeq4UwUtypeq5Ustringq6u}q7(Uidq8U experimentalq9Utypeq:Ustringq;u}q<(Uidq=Unoteq>Utypeq?Uintq@u}qA(h=UversionqBh?UstringqCu}qD(h=UdevqEh?hCu}qF(h=U certifdevqGh?hCu}qH(h=U certifwebqIh?hCu}qJ(h=U moderateurqKh?hCu}qL(h=Uzone_principaleqMh?hCu}qN(UidqOU descriptionqPUtypeqQUlinesqRuthMU1U view_htmlqS(U kqT(U#Products.PythonScripts.PythonScriptqUU PythonScriptqVtqWtqXQhBU0.1qYh>KFhEU70%qZh%(U kq[(hUU PythonScriptq\tq]tq^QhKUgreg@emencia.comq_Utitleq`UListe des membresqahIUnonqbh#(U kqc(hUU PythonScriptqdtqetqfQUidqgU members_listqhUnew_okqi(U kqj(hUU PythonScriptqktqltqmQhGUnonqnU config_okqo(U kqp(hUU PythonScriptqqtqrtqsQh*(U kqt(hUU PythonScriptqutqvtqwQh/(U kqx(hUU PythonScriptqytqztq{QhP]q|(UzCe module permet de rpertoriers tous les membres de votre site. Chaque membre peut avoir accs ses donnes personnellesq}UeUnew_htmlq~(U kq(hUU PythonScriptqtqtqQU config_htmlq(U kq(hUU PythonScriptqtqtqQu. i((U OFS.FolderqUFolderqtqNt.}q(U experimentalqUUidqU minicalendarqU__ac_local_roles__q}q Unew_htmlq (U k#q (U#Products.PythonScripts.PythonScriptq U PythonScriptq tqtqQUcalendarq(U kq(h U PythonScriptqtqtqQUnew_okq(U k q(h U PythonScriptqtqtqQU _propertiesq(}q(UidqUtitleqUmodeqUwUtypeqUstringq u}q!(Uidq"U experimentalq#Utypeq$Ustringq%u}q&(Uidq'Unoteq(Utypeq)Uintq*u}q+(h'Uskinq,h)Ustringq-u}q.(Uidq/Uversionq0Utypeq1Ustringq2u}q3(h/Udevq4h1h2u}q5(h/U certifdevq6h1h2u}q7(h/U certifwebq8h1h2u}q9(h/U moderateurq:h1h2u}q;(UidqUlinesq?u}q@(UidqAUzone_principaleqBUtypeqCUstringqDuthBU1U view_htmlqE(U k!qF(h U PythonScriptqGtqHtqIQh0U0.1qJh6UnonqKUnoteqLKLh4U90%qMUaffichage_moisqN(U k"qO(h U PythonScriptqPtqQtqRQU_objectsqS(}qT(U meta_typeqUUScript (Python)qVUidqWU view_htmlqXu}qY(U meta_typeqZUScript (Python)q[h'U config_htmlq\u}q](hZh[h'Unew_htmlq^u}q_(hZh[h'Unew_okq`u}qa(hZh[h'Uaffichage_moisqbu}qc(hZh[h'Ucalendarqduth:Uxavier@emencia.comqeUskinqfU1UtitleqgUmini calendrierqhh=]qi(ULe module calendrier permet d'informer indpendament vos diffrents groupes d'utilisateurs (visiteurs, membres, dpartement marketing ou commercial, ...) d'vnements ou d'actions venir ou pass.qjUESeul les personnes autoriss pourront publier de nouveaux vnements.qkU%Vu possible: Journalire ou MensuelleqlUUUeh8UnonqmU config_htmlqn(U k$qo(h U PythonScriptqptqqtqrQu. i ((U OFS.FolderqUFolderqtqNt.}q(Umenuq(U kq(U#Products.PythonScripts.PythonScriptqU PythonScriptqtq tq QU__ac_local_roles__q }q U_objectsq (}q(U meta_typeqUScript (Python)qUidqUnew_htmlqu}q(U meta_typeqUScript (Python)qUidqUnew_okqu}q(U meta_typeqUScript (Python)qUidqU config_htmlqu}q(U meta_typeqUScript (Python)qUidq U conf_menuq!u}q"(hhh Umenuq#u}q$(hhh Uconf_1q%u}q&(hhh U conf_1_validq'u}q((U meta_typeq)UScript (Python)q*Uidq+Uconf_2q,u}q-(h)h*h+U conf_2_validq.u}q/(U meta_typeq0UScript (Python)q1Uidq2U add_imageq3u}q4(U meta_typeq5UScript (Python)q6Uidq7Uadd_image_validq8u}q9(U meta_typeq:UScript (Python)q;Uidq(U meta_typeq?UScript (Python)q@UidqAU conf_3_bisqBu}qC(U meta_typeqDUScript (Python)qEUidqFU conf_3_delqGu}qH(hDhEhFU conf_3_validqIu}qJ(U meta_typeqKUScript (Python)qLUidqMUconf_4qNu}qO(U meta_typeqPUScript (Python)qQUidqRUMIX_INFOqSu}qT(U meta_typeqUUScript (Python)qVUidqWUrep_ajouter_imagesqXu}qY(U meta_typeqZUScript (Python)q[Uidq\Urep_ajouter_images_validq]u}q^(hZh[h\Urep_delete_imagesq_u}q`(U meta_typeqaUScript (Python)qbUidqcU view_htmlqdutU _propertiesqe(}qf(UidqgUtitleqhUmodeqiUwUtypeqjUstringqku}ql(UidqmUskinqnUtypeqoUstringqpu}qq(UidqrUnoteqsUtypeqtUintquu}qv(hrUversionqwhtUstringqxu}qy(hrUdevqzhthxu}q{(hrU certifdevq|hthxu}q}(hrU certifwebq~hthxu}q(hrU moderateurqhthxu}q(UidqU descriptionqUtypeqUlinesqutU view_htmlq(U kq(hU PythonScriptqtqtqQhwU0.1qhsKbUidqU navigationqhI(U kq(hU PythonScriptqtqtqQh!(U kq(hU PythonScriptqtqtqQhzU90%qhUxavier@emencia.com qUtitleqUMenu de navigationqh_(U kq(hU PythonScriptqtqtqQh~Unonqh'(U kq(hU PythonScriptqtqtqQhX(U kq(hU PythonScriptqtqtqQUnew_okq(U kq(hU PythonScriptqtqtqQh|Unonqh.(U kq(hU PythonScriptqtqtqQUMIX_INFOq(U kq(hU PythonScriptqtqtqQh3(U kq(hU PythonScriptqtqtqQh](U kq(hU PythonScriptqtqtqQUconf_2q(U kq(hU PythonScriptqtqtqQUconf_3q(U kq(hU PythonScriptqtqtqQUconf_1q(U kq(hU PythonScriptqtqtqQh8(U kq(hU PythonScriptqtqtqQUconf_4q(U kq(hU PythonScriptqtqtqQhB(U kq(hU PythonScriptqtqtqQh]q(ULe module de navigation automatique est indispensable pour gnrer les rubriques et sous rubriques de votre systme. Il fait parti des modules les plus labors et demande une certaine rigueur pour sa mise en place. qUUehG(U kq(hU PythonScriptqtqtqQUnew_htmlq(U kq(hU PythonScriptqtqtqQU config_htmlq(U kq(hU PythonScriptqtqtqQUskinqU1u. i((U OFS.FolderqUFolderqtqNt.}q(UidqUflashqU__ac_local_roles__q}qUnew_okq (U k0q (U#Products.PythonScripts.PythonScriptq U PythonScriptq tq tqQU _propertiesq(}q(UidqUtitleqUmodeqUwUtypeqUstringqu}q(hUskinqhUstringqu}q(UidqUzone_principaleqUtypeqUstringqu}q(UidqUnoteq Utypeq!Uintq"u}q#(hUversionq$h!Ustringq%u}q&(hUdevq'h!h%u}q((hU certifdevq)h!h%u}q*(hU certifwebq+h!h%u}q,(hU moderateurq-h!h%u}q.(Uidq/U descriptionq0Utypeq1Ulinesq2utU config_okq3(U k1q4(h U PythonScriptq5tq6tq7QUzone_principaleq8U1U view_htmlq9(U k2q:(h U PythonScriptq;tqh)Unonq?h K8h'U80%q@U_objectsqA(}qB(U meta_typeqCUScript (Python)qDhUnew_htmlqEu}qF(hChDhh u}qG(hChDhU config_htmlqHu}qI(hChDhh3u}qJ(U meta_typeqKUScript (Python)qLhU view_htmlqMu}qN(U meta_typeqOUScript (Python)qPUidqQUhelpqRuth+UnonqSh-Uxavier@emencia.comqTUskinqUU1UtitleqVUAfficher une Animation flashqWh0]qX(UDCe module permet d'intgrer des animations flash sur votre systme. qYUf=> Il est cependant essentiel de rappeler que les utilisateurs finaux n'ont pas tous le plug in flash.qZUUehE(U k/q[(h U PythonScriptq\tq]tq^QhH(U k3q_(h U PythonScriptq`tqatqbQUhelpqc(U k4qd(h U PythonScriptqetqftqgQu. i((U OFS.FolderqUFolderqtqNt.}q(U experimentalqUUidqU locatebarqU__ac_local_roles__q}q Unew_okq (U k6q (U#Products.PythonScripts.PythonScriptq U PythonScriptq tqtqQU _propertiesq(}q(UidqUtitleqUmodeqUwUtypeqUstringqu}q(UidqU experimentalqUtypeqUstringqu}q(UidqUnoteqUtypeqUintq u}q!(hUversionq"hUstringq#u}q$(hUdevq%hh#u}q&(hU certifdevq'hh#u}q((hU certifwebq)hh#u}q*(hU moderateurq+hh#u}q,(hUskinq-hh#u}q.(hUzone_principaleq/hh#u}q0(Uidq1U descriptionq2Utypeq3Ulinesq4uth)Unonq5h/U1U view_htmlq6(U k7q7(h U PythonScriptq8tq9tq:Qh"U0.1q;h'Unonq(}q?(U meta_typeq@UScript (Python)qAhUnew_htmlqBu}qC(h@hAhh u}qD(h@hAhU config_htmlqEu}qF(U meta_typeqGUScript (Python)qHhU view_htmlqIuth+Ugreg@emencia.comqJh-U1UtitleqKU LocatebarqLh2]qM(UmLa locate bar permet, dans le cas d'une architecture complexe, de faciliter la navigation pour l'utilisateur qNUehB(U k5qO(h U PythonScriptqPtqQtqRQhE(U k8qS(h U PythonScriptqTtqUtqVQu. i((U OFS.FolderqUFolderqtqNt.}q(U view_newsq(U k9q(U#Products.PythonScripts.PythonScriptqU PythonScriptqtq tq QU__ac_local_roles__q }q Uxavinskyq ]qUOwnerqasU_objectsq(}q(U meta_typeqUScript (Python)qUidqUaffichage_moisqu}q(U meta_typeqUScript (Python)qUidqUcreer_evenementqu}q(U meta_typeqUScript (Python)qUidqU new_evenementqu}q (hhhUview_evenementq!u}q"(hhhUsupprime_evenementq#u}q$(U meta_typeq%UScript (Python)q&Uidq'Uedit_evenementq(u}q)(U meta_typeq*UScript (Python)q+Uidq,Umodifier_evenementq-u}q.(U meta_typeq/UScript (Python)q0Uidq1Unew_htmlq2u}q3(U meta_typeq4UScript (Python)q5Uidq6U index_htmlq7u}q8(U meta_typeq9UScript (Python)q:Uidq;U new_eventqu}q?(h9h:h;U edit_eventq@utU new_evenementqA(U k:qB(hU PythonScriptqCtqDtqEQh#(U kCqF(hU PythonScriptqGtqHtqIQUversionqJU0.1qKUnoteqLJU index_htmlqM(U k;qN(hU PythonScriptqOtqPtqQQUdevqRU80%qSh((U kqy(hU PythonScriptqztq{tq|QU new_eventq}(U k?q~(hU PythonScriptqtqtqQh(U k@q(hU PythonScriptqtqtqQh(U kBq(hU PythonScriptqtqtqQhn]q(UCe module ne doit pas tre utilis pour creer un element. Il contient juste des scripts necessaires a d'autres modules et il est installer de base dans le zwook.qUeU edit_eventq(U kAq(hU PythonScriptqtqtqQUnew_htmlq(U kDq(hU PythonScriptqtqtqQu. i q((U OFS.FolderqUFolderqtqNt.}q(Uno_post_anonymeq(U k]q(U#Products.PythonScripts.PythonScriptqU PythonScriptqtq tq QU experimentalq UU__ac_local_roles__q }q Uadd_thread_process_BUGq(U kEq(hU PythonScriptqtqtqQU_objectsq(}q(U meta_typeqUScript (Python)qUidqUadd_msg_processqu}q(hhhUedit_msg_processqu}q(U meta_typeqUScript (Python)qUidqUdel_msg_processqu}q (U meta_typeq!UScript (Python)q"Uidq#U all_statsq$u}q%(U meta_typeq&UScript (Python)q'Uidq(U add_messageq)u}q*(h&h'h(U edit_messageq+u}q,(U meta_typeq-UScript (Python)q.Uidq/U add_threadq0u}q1(h-h.h/U del_messageq2u}q3(U meta_typeq4UScript (Python)q5Uidq6U view_threadq7u}q8(U meta_typeq9UScript (Python)q:Uidq;Udetail_all_statsqu}q?(U meta_typeq@UScript (Python)qAUidqBU config_htmlqCu}qD(h@hAhBU config_okqEu}qF(h@hAhBUnew_htmlqGu}qH(h@hAhBUnew_okqIu}qJ(h@hAhBU view_htmlqKu}qL(U meta_typeqMUScript (Python)qNUidqOUadd_thread_processqPu}qQ(U meta_typeqRUScript (Python)qSUidqTUsortqUu}qV(U meta_typeqWUScript (Python)qXUidqYU rename_titleqZu}q[(hWhXhYUrename_title_processq\u}q](U meta_typeq^UScript (Python)q_Uidq`hu}qa(U meta_typeqbUScript (Python)qcUidqdhu}qe(U meta_typeqfUScript (Python)qgUidqhU del_threadqiu}qj(hfhghhUdel_thread_processqku}ql(U meta_typeqmUScript (Python)qnUidqoUdel_msg_process_OLDqputU _propertiesqq(}qr(hBUtitleqsUmodeqtUwUtypequUstringqvu}qw(hBUzone_principaleqxhuUstringqyu}qz(Uidq{U experimentalq|Utypeq}Ustringq~u}q(UidqUnoteqUtypeqUintqu}q(hUversionqhUstringqu}q(hUdevqhhu}q(hU certifdevqhhu}q(hU certifwebqhhu}q(hU moderateurqhhu}q(UidqU descriptionqUtypeqUlinesquth(U kHq(hU PythonScriptqtqtqQUzone_principaleqU1U view_htmlq(U kIq(hU PythonScriptqtqtqQhU0.1qU thread_statsq(U kFq(hU PythonScriptqtqtqQU edit_messageq(U kYq(hU PythonScriptqtqtqQU add_threadq(U kJq(hU PythonScriptqtqtqQhp(U kKq(hU PythonScriptqtqtqQh\(U kLq(hU PythonScriptqtqtqQU add_messageq(U kMq(hU PythonScriptqtqtqQhUgreg@emencia.comqhU65%qUtitleqUForum de discussionqhKPh<(U kNq(hU PythonScriptqtqtqQhUnonqh7(U kOq(hU PythonScriptqtqtqQh(U kPq(hU PythonScriptqtqtqQUidqUforumqUnew_okq(U kRq(hU PythonScriptqtqtqQhi(U kSq(hU PythonScriptqtqtqQhUnonqhk(U kTq(hU PythonScriptqtqtqQh(U kUq(hU PythonScriptqtqtqQUadd_thread_processq(U kVq(hU PythonScriptqtqtqQUnew_htmlq(U k[q(hU PythonScriptqtqtqQU all_statsq(U kWq(hU PythonScriptqtqtqQhZ(U kXq(hU PythonScriptqtqtqQh]q(USi vous souhaitez faire participer vos membres ou les visiteurs de votre site sur des sujets bien prcis, le forum est l'outil adquate. Le module Forum est simple et facile modrer.qUeU del_messageq(U kGq(hU PythonScriptqtqtqQU config_okq(U kZq(hU PythonScriptqtqtqQU config_htmlq(U k\r(hU PythonScriptrtrtrQUsortr(U kQr(hU PythonScriptrtrtrQu. i((U OFS.FolderqUFolderqtqNt.}q(U experimentalqUUidqU mesevenementsqU__ac_local_roles__q}q Unew_htmlq (U k`q (U#Products.PythonScripts.PythonScriptq U PythonScriptq tqtqQUnew_okq(U k^q(h U PythonScriptqtqtqQU _propertiesq(}q(UidqUtitleqUmodeqUwUtypeqUstringqu}q(UidqU experimentalqUtypeqUstringq u}q!(Uidq"Unoteq#Utypeq$Uintq%u}q&(h"Uskinq'h$Ustringq(u}q)(h"Uzone_principaleq*h$Ustringq+u}q,(Uidq-Uversionq.Utypeq/Ustringq0u}q1(h-Udevq2h/h0u}q3(h-U certifdevq4h/h0u}q5(h-U certifwebq6h/h0u}q7(h-U moderateurq8h/h0u}q9(Uidq:U descriptionq;UtypeqU1U view_htmlq?(U k_q@(h U PythonScriptqAtqBtqCQh.U0.1qDh4UnonqEUnoteqFKJh2U80%qGU_objectsqH(}qI(U meta_typeqJUScript (Python)qKUidqLU view_htmlqMu}qN(U meta_typeqOUScript (Python)qPUidqQU config_htmlqRu}qS(hOhPhQUnew_htmlqTu}qU(hOhPhQUnew_okqVuth8Uxavier@emencia.comqWUskinqXU1UtitleqYUmes evenementsqZh;]q[(UCe petit module est complmentaire au module "mini calendrier". Il permet aux utilisateurs (selon leurs droits) de visualiser le rcapitulatif des vnements ou de leurs taches de la journeq\UU' vnements qu'ils leurs est destines.q]UUUeh6Unonq^U config_htmlq_(U kaq`(h U PythonScriptqatqbtqcQu. i((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Umemq Uprntq U _getitem_q U_getitemq U _getattr_qU_getattrqU_print_qU_printqUcontextqUprqUheadqUspmqUmidqUspeqUfootqUtitreqtqU co_argcountqKubU_paramsqUmem,prntqUidqUtotalqU__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_m_selfq/Uscriptq0U name_contextq1husbU func_defaultsq2NU_codeq3T7csdZdS(Ncs9t}t}t}||tdd} ||tdd|| dd\} } } } }|| IJd|| dd} |||tdd ||d | d |IJ || IJ || IJ|||tdd ||d | dd |IJ||IJ|SdS(Nszwo_bos presentationsautoursmodulesEdition d'elementsRETOURsmenuszwo_urlsnavseditionsEDITION ELEMENT(s _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextsprsmemsheadsspmsmidsspesfootstitresprnt(smemsprnts _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextsprsheadsspmsmidsspesfootstitre((sScript (Python)stotals39 7  : (stotal(stotal((sScript (Python)ssq4U_bodyq5Tpr=context.zwo_bo.presentation() # AFFICHAGE DU BANDEAU HAUT (head,spm,mid,spe,foot)=context.zwo_bo.autour(mem,pr,'module','Edition d\'element') print head titre='RETOUR' print context.zwo_bo.menu(mem['zwo_url'],pr,'nav',titre) print spm print mid print context.zwo_bo.edition(mem['zwo_url'],pr,'module','EDITION ELEMENT',prnt) print foot return printed q6U Script_magicq7KUwarningsq8)Uerrorsq9)U Python_magicq:U* q;u. i[((U OFS.FolderqUFolderqtqNt.}q(U experimentalqUUidqU folder_barqU__ac_local_roles__q}q Unew_okq (U kzq (U#Products.PythonScripts.PythonScriptq U PythonScriptq tqtqQU _propertiesq(}q(UidqUtitleqUmodeqUwUtypeqUstringqu}q(UidqU experimentalqUtypeqUstringqu}q(UidqUnoteqUtypeqUintq u}q!(hUversionq"hUstringq#u}q$(hUdevq%hh#u}q&(hU certifdevq'hh#u}q((hU certifwebq)hh#u}q*(hU moderateurq+hh#u}q,(hUskinq-hh#u}q.(hUzone_principaleq/hh#u}q0(Uidq1U descriptionq2Utypeq3Ulinesq4uth)Unonq5h/U1U view_htmlq6(U k{q7(h U PythonScriptq8tq9tq:Qh"U0.1q;h'Unonq(}q?(U meta_typeq@UScript (Python)qAhUnew_htmlqBu}qC(h@hAhh u}qD(h@hAhU config_htmlqEu}qF(U meta_typeqGUScript (Python)qHhU view_htmlqIuth+Ugreg@emencia.comqJh-U1UtitleqKU,Liste des dossiers contenus dans ce dossier.qLh2]qM(UCIl s'agit d'une sous navigation automatique sous forme de dossiers.qNUCIl permet d'afficher clairement les sous rubriques d'une navigationqOUehB(U kyqP(h U PythonScriptqQtqRtqSQhE(U k|qT(h U PythonScriptqUtqVtqWQu. if((U OFS.FolderqUFolderqtqNt.}q(Unew_okq(U k}q(U#Products.PythonScripts.PythonScriptqU PythonScriptqtq tq QU experimentalq UUidq U exemplemoduleq U__ac_local_roles__q}qU_objectsq(}q(U meta_typeqUScript (Python)qUidqUnew_htmlqu}q(U meta_typeqUScript (Python)qUidqUnew_okqu}q(U meta_typeqUScript (Python)qUidqU config_htmlqu}q (hhhU config_okq!u}q"(U meta_typeq#UScript (Python)q$Uidq%U view_htmlq&utU certifdevq'Unonq(U config_okq)(U k~q*(hU PythonScriptq+tq,tq-QU view_htmlq.(U kq/(hU PythonScriptq0tq1tq2QUversionq3U0.1q4Unoteq5JU _propertiesq6(}q7(Uidq8Utitleq9Umodeq:UwUtypeq;UstringqU experimentalq?Utypeq@UstringqAu}qB(UidqCUnoteqDUtypeqEUintqFu}qG(hCUversionqHhEUstringqIu}qJ(hCUdevqKhEhIu}qL(hCU certifdevqMhEhIu}qN(hCU certifwebqOhEhIu}qP(hCU moderateurqQhEhIu}qR(UidqSU descriptionqTUtypeqUUlinesqVutUdevqWU5%qXU certifwebqYUnonqZU moderateurq[Uaucunq\Utitleq]Uexemple de moduleq^U descriptionq_]q`UaUnew_htmlqa(U kqb(hU PythonScriptqctqdtqeQU config_htmlqf(U kqg(hU PythonScriptqhtqitqjQu. i((U OFS.FolderqUFolderqtqNt.}q(U experimentalqUU__ac_local_roles__q}qU_objectsq(}q (U meta_typeq UScript (Python)q Uidq Unew_htmlq u}q(U meta_typeqUScript (Python)qUidqUnew_okqu}q(U meta_typeqUScript (Python)qUidqU config_htmlqu}q(hhhU config_okqu}q(U meta_typeqUScript (Python)qUidqU view_htmlqu}q(U meta_typeq UScript (Python)q!Uidq"Uproposerq#u}q$(U meta_typeq%UScript (Python)q&Uidq'Uproposer_article_okq(u}q)(U meta_typeq*UScript (Python)q+Uidq,Umerciq-u}q.(h*h+h,Uview_standby_contentq/utU _propertiesq0(}q1(Uidq2Utitleq3Umodeq4UwUtypeq5Ustringq6u}q7(Uidq8U experimentalq9Utypeq:Ustringq;u}q<(Uidq=Unoteq>Utypeq?Uintq@u}qA(h=UversionqBh?UstringqCu}qD(h=UdevqEh?hCu}qF(h=U certifdevqGh?hCu}qH(h=U certifwebqIh?hCu}qJ(h=U moderateurqKh?hCu}qL(UidqMU descriptionqNUtypeqOUlinesqPutU view_htmlqQ(U kpqR(U#Products.PythonScripts.PythonScriptqSU PythonScriptqTtqUtqVQhBU0.1qWUmerciqX(U kqqY(hSU PythonScriptqZtq[tq\Qh>JhEU5%q]hKUgreg@emencia.comq^Utitleq_UProposer du contenuq`hIUnonqaUidqbUsuggest_contentqch/(U krqd(hSU PythonScriptqetqftqgQUnew_okqh(U ksqi(hSU PythonScriptqjtqktqlQhGUnonqmU config_okqn(U ktqo(hSU PythonScriptqptqqtqrQh#(U kuqs(hSU PythonScriptqttqutqvQh((U kvqw(hSU PythonScriptqxtqytqzQhN]q{UaUnew_htmlq|(U kwq}(hSU PythonScriptq~tqtqQU config_htmlq(U kxq(hSU PythonScriptqtqtqQu. iP((U OFS.FolderqUFolderqtqNt.}q(U experimentalqUU__ac_local_roles__q}qU_objectsq(}q (U meta_typeq UScript (Python)q Uidq Unew_htmlq u}q(U meta_typeqUScript (Python)qUidqUnew_okqu}q(U meta_typeqUScript (Python)qUidqU config_htmlqu}q(hhhU config_okqu}q(U meta_typeqUScript (Python)qUidqU view_htmlqu}q(U meta_typeq UScript (Python)q!Uidq"Uadd_nodeq#u}q$(h h!h"U add_node_okq%u}q&(U meta_typeq'UScript (Python)q(Uidq)U save_nodeq*u}q+(U meta_typeq,UScript (Python)q-Uidq.U node_statusq/u}q0(h,h-h.Udel_nodeq1utU _propertiesq2(}q3(Uidq4Utitleq5Umodeq6UwUtypeq7Ustringq8u}q9(Uidq:U experimentalq;Utypeq(h.Uzone_principaleq?Utypeq@UstringqAu}qB(UidqCUnoteqDUtypeqEUintqFu}qG(hCUversionqHhEUstringqIu}qJ(hCUdevqKhEhIu}qL(hCU certifdevqMhEhIu}qN(hCU certifwebqOhEhIu}qP(hCU moderateurqQhEhIu}qR(UidqSU descriptionqTUtypeqUUlinesqVuth%(U k%qW(U#Products.PythonScripts.PythonScriptqXU PythonScriptqYtqZtq[Qh?U1U view_htmlq\(U k&q](hXU PythonScriptq^tq_tq`QhHU0.1qahDKDh*(U k'qb(hXU PythonScriptqctqdtqeQhKU70%qfhQUgreg@emencia.comqgUnew_htmlqh(U k-qi(hXU PythonScriptqjtqktqlQUtitleqmUProject checkerqnhOUnonqoUidqpUproject_checkerqqUnew_okqr(U k(qs(hXU PythonScriptqttqutqvQhMUnonqwh1(U k+qx(hXU PythonScriptqytqztq{Qh/(U k*q|(hXU PythonScriptq}tq~tqQh#(U k,q(hXU PythonScriptqtqtqQhT]q(UGCe module permet de mettre en place et de suivre l'volution de projetsqUeU config_okq(U k)q(hXU PythonScriptqtqtqQU config_htmlq(U k.q(hXU PythonScriptqtqtqQu. i((U OFS.FolderqUFolderqtqNt.}q(U experimentalqU1U__ac_local_roles__q}qU_objectsq(}q (U meta_typeq UScript (Python)q Uidq Unew_htmlq u}q(U meta_typeqUScript (Python)qUidqUnew_okqu}q(U meta_typeqUScript (Python)qUidqU config_htmlqu}q(hhhU config_okqu}q(U meta_typeqUScript (Python)qUidqU view_htmlqu}q(U meta_typeq UScript (Python)q!Uidq"Uconf_friends_listq#u}q$(U meta_typeq%UScript (Python)q&Uidq'Udel_userq(u}q)(U meta_typeq*UScript (Python)q+Uidq,Uadd_userq-u}q.(U meta_typeq/UFolderq0Uidq1Uimagesq2u}q3(U meta_typeq4UScript (Python)q5Uidq6Usend_PMq7u}q8(h4h5h6U send_PM_okq9u}q:(U meta_typeq;UScript (Python)qu}q?(U meta_typeq@UScript (Python)qAUidqBUview_PMqCu}qD(h@hAhBUeffacerqEu}qF(h@hAhBUmsg_luqGutU _propertiesqH(}qI(UidqJUtitleqKUmodeqLUwUtypeqMUstringqNu}qO(UidqPUskinqQUtypeqRUstringqSu}qT(UidqUU experimentalqVUtypeqWUstringqXu}qY(UidqZUnoteq[Utypeq\Uintq]u}q^(hZUversionq_h\Ustringq`u}qa(hZUdevqbh\h`u}qc(hZU certifdevqdh\h`u}qe(hZU certifwebqfh\h`u}qg(hZU moderateurqhh\h`u}qi(UidqjU descriptionqkUtypeqlUlinesqmutU view_htmlqn(U kqo(U#Products.PythonScripts.PythonScriptqpU PythonScriptqqtqrtqsQh_U0.1qth[KHhbU70%quhQU1h9(U kqv(hpU PythonScriptqwtqxtqyQhhUgreg@emencia.comqzhE(U kq{(hpU PythonScriptq|tq}tq~Qh((U kq(hpU PythonScriptqtqtqQUokq(U kq(hpU PythonScriptqtqtqQhfUnonqUidqU directfriendsqUnew_okq(U kq(hpU PythonScriptqtqtqQUimagesq(U kq(hUFolderqtqtqQhdUnonqU config_okq(U kq(hpU PythonScriptqtqtqQh-(U kq(hpU PythonScriptqtqtqQUsend_PMq(U kq(hpU PythonScriptqtqtqQh#(U kq(hpU PythonScriptqtqtqQU config_htmlq(U kq(hpU PythonScriptqtqtqQhk]q(UCe module permet aux membres connects de pouvoir tre identifier comme "en ligne" par les autres membres. Il est galement possible d'envoyer des messages (du type Post Message) afin de communiquer directement via l'interface du systme.qUUeUtitleqUMessages PersonnelsqUnew_htmlq(U kq(hpU PythonScriptqtqtqQhG(U kq(hpU PythonScriptqtqtqQhC(U kq(hpU PythonScriptqtqtqQu. i((U OFS.FolderqUFolderqtqNt.}q(U experimentalqU1U__ac_local_roles__q}qUview_rtfq(U kq (U#Products.PythonScripts.PythonScriptq U PythonScriptq tq tq QU_objectsq(}q(U meta_typeqUScript (Python)qUidqUnew_htmlqu}q(hhhUnew_okqu}q(hhhU config_htmlqu}q(hhhU config_okqu}q(U meta_typeqUScript (Python)qUidqU view_htmlqu}q(U meta_typeq UScript (Python)q!Uidq"U view_mainq#u}q$(U meta_typeq%UScript (Python)q&Uidq'Uhelpq(u}q)(U meta_typeq*UScript (Python)q+Uidq,hu}q-(h*h+h,U article.rtfq.utU _propertiesq/(}q0(hUtitleq1Umodeq2UwUtypeq3Ustringq4u}q5(hUskinq6h3Ustringq7u}q8(Uidq9Uzone_principaleq:Utypeq;UstringqU experimentalq?Utypeq@UstringqAu}qB(UidqCUnoteqDUtypeqEUintqFu}qG(hCUversionqHhEUstringqIu}qJ(hCUdevqKhEhIu}qL(hCU certifdevqMhEhIu}qN(hCU certifwebqOhEhIu}qP(hCU moderateurqQhEhIu}qR(UidqSU descriptionqTUtypeqUUlinesqVutUzone_principaleqWU1U view_htmlqX(U kqY(h U PythonScriptqZtq[tq\QhHU0.1q]hDKThKU80%q^Uskinq_U1hQUgreg@emencia.comq`UtitleqaUArticle ou newsqbhOUnonqchUarticleqdh.(U kqe(h U PythonScriptqftqgtqhQh(U kqi(h U PythonScriptqjtqktqlQh#(U kqm(h U PythonScriptqntqotqpQhMUnonqqh(U kqr(h U PythonScriptqstqttquQhT]qv(TLe module article permet de publier de petites news ou des articles plus important (en taille). Il est possible de publier un article de grande taille en affichant seulement un texte d'accroche et un lien vers l'article en entier si l'utilisateur est intressqwUUUeh(U kqx(h U PythonScriptqytqztq{Qh(U kq|(h U PythonScriptq}tq~tqQUhelpq(U kq(h U PythonScriptqtqtqQu. i((U OFS.FolderqUFolderqtqNt.}q(UidqUfileqU__ac_local_roles__q}qUnew_okq (U kq (U#Products.PythonScripts.PythonScriptq U PythonScriptq tq tqQU _propertiesq(}q(UidqUtitleqUmodeqUwUtypeqUstringqu}q(hUskinqhUstringqu}q(UidqUzone_principaleqUtypeqUstringqu}q(UidqUnoteq Utypeq!Uintq"u}q#(hUversionq$h!Ustringq%u}q&(hUdevq'h!h%u}q((hU certifdevq)h!h%u}q*(hU certifwebq+h!h%u}q,(hU moderateurq-h!h%u}q.(Uidq/U descriptionq0Utypeq1Ulinesq2utU config_okq3(U kq4(h U PythonScriptq5tq6tq7QUzone_principaleq8U1U view_htmlq9(U kq:(h U PythonScriptq;tqh)Unonq?h KVh'U75%q@U_objectsqA(}qB(U meta_typeqCUScript (Python)qDhUnew_htmlqEu}qF(hChDhh u}qG(hChDhU config_htmlqHu}qI(hChDhh3u}qJ(U meta_typeqKUScript (Python)qLhU view_htmlqMu}qN(U meta_typeqOUScript (Python)qPUidqQUhelpqRuth+UnonqSh-Ugreg@emencia.comqTUskinqUU1UtitleqVUFichier a tlchargerqWh0]qX(UCe module permet (aux personnes autoriss) d'uploader tout types de fichiers qui pourront tre tlcharg par d'autre utilisateurs ou visiteurs.qYUUehE(U kqZ(h U PythonScriptq[tq\tq]QhH(U kq^(h U PythonScriptq_tq`tqaQUhelpqb(U kqc(h U PythonScriptqdtqetqfQu. i((U OFS.FolderqUFolderqtqNt.}q(U experimentalqUUidqUbrowsing_modesqU__ac_local_roles__q}q Unew_okq (U kq (U#Products.PythonScripts.PythonScriptq U PythonScriptq tqtqQU _propertiesq(}q(UidqUtitleqUmodeqUwUtypeqUstringqu}q(UidqU experimentalqUtypeqUstringqu}q(UidqUzone_principaleqUtypeqUstringq u}q!(Uidq"Unoteq#Utypeq$Uintq%u}q&(h"Uversionq'h$Ustringq(u}q)(h"Udevq*h$h(u}q+(h"U certifdevq,h$h(u}q-(h"U certifwebq.h$h(u}q/(h"U moderateurq0h$h(u}q1(Uidq2U descriptionq3Utypeq4Ulinesq5utU config_okq6(U kq7(h U PythonScriptq8tq9tq:QhU1U view_htmlq;(U kq<(h U PythonScriptq=tq>tq?Qh'U0.1q@h,UnonqAh#K>h*U40%qBU_objectsqC(}qD(U meta_typeqEUScript (Python)qFUidqGUnew_htmlqHu}qI(U meta_typeqJUScript (Python)qKUidqLUnew_okqMu}qN(U meta_typeqOUScript (Python)qPUidqQU config_htmlqRu}qS(hOhPhQU config_okqTu}qU(U meta_typeqVUScript (Python)qWUidqXU view_htmlqYuth.UnonqZh0Ugreg@emencia.comq[Utitleq\U Browsing modeq]h3]q^(UOBrowser d'images et de folders. Permet galement d'afficher la vue d'impressionq_UeUnew_htmlq`(U kqa(h U PythonScriptqbtqctqdQU config_htmlqe(U kqf(h U PythonScriptqgtqhtqiQu. i((U OFS.FolderqUFolderqtqNt.}q(U experimentalqUU__ac_local_roles__q}qU_objectsq(}q (U meta_typeq UScript (Python)q Uidq Unew_htmlq u}q(U meta_typeqUScript (Python)qUidqUnew_okqu}q(U meta_typeqUScript (Python)qUidqU config_htmlqu}q(U meta_typeqUScript (Python)qUidqU view_htmlqu}q(U meta_typeqUScript (Python)qUidq U new_structureq!u}q"(hhh Unew_structure_okq#u}q$(hhh Uedit_structureq%u}q&(hhh U config_okq'u}q((hhh Uaddq)u}q*(U meta_typeq+UScript (Python)q,Uidq-Uaddokq.u}q/(U meta_typeq0UScript (Python)q1Uidq2Uvueq3u}q4(h0h1h2Udelokq5utU _propertiesq6(}q7(Uidq8Utitleq9Umodeq:UwUtypeq;UstringqU experimentalq?Utypeq@UstringqAu}qB(UidqCUnoteqDUtypeqEUintqFu}qG(hCUversionqHhEUstringqIu}qJ(hCUdevqKhEhIu}qL(hCU certifdevqMhEhIu}qN(hCU certifwebqOhEhIu}qP(hCU moderateurqQhEhIu}qR(UidqSU descriptionqTUtypeqUUlinesqVu}qW(UidqXUzone_principaleqYUtypeqZUstringq[uth#(U kq\(U#Products.PythonScripts.PythonScriptq]U PythonScriptq^tq_tq`QU view_htmlqa(U kqb(h]U PythonScriptqctqdtqeQUversionqfU0.1qgUaddqh(U kqi(h]U PythonScriptqjtqktqlQUnoteqmKRUdevqnU60%qoU moderateurqpUxavier@emencia.comqqUtitleqrU Catalogueqsh!(U kqt(h]U PythonScriptqutqvtqwQUvueqx(U kqy(h]U PythonScriptqztq{tq|QU certifwebq}Unonq~UidqU catalogueqh.(U kq(h]U PythonScriptqtqtqQUnew_okq(U kq(h]U PythonScriptqtqtqQU certifdevqUnonqU config_okq(U kq(h]U PythonScriptqtqtqQUzone_principaleqU1h%(U kq(h]U PythonScriptqtqtqQU descriptionq]q(U)cration de fiches et de listes de fichesqUUeh5(U kq(h]U PythonScriptqtqtqQUnew_htmlq(U kq(h]U PythonScriptqtqtqQU config_htmlq(U kq(h]U PythonScriptqtqtqQu. i((U OFS.FolderqUFolderqtqNt.}q(U experimentalqUUidqUlienqU__ac_local_roles__q}q Unew_okq (U kq (U#Products.PythonScripts.PythonScriptq U PythonScriptq tqtqQU _propertiesq(}q(UidqUtitleqUmodeqUwUtypeqUstringqu}q(hUskinqhUstringqu}q(UidqUzone_principaleqUtypeqUstringqu}q(Uidq U experimentalq!Utypeq"Ustringq#u}q$(Uidq%Unoteq&Utypeq'Uintq(u}q)(h%Uversionq*h'Ustringq+u}q,(h%Udevq-h'h+u}q.(h%U certifdevq/h'h+u}q0(h%U certifwebq1h'h+u}q2(h%U moderateurq3h'h+u}q4(Uidq5U descriptionq6Utypeq7Ulinesq8utU config_okq9(U kq:(h U PythonScriptq;tqU1U view_htmlq?(U kq@(h U PythonScriptqAtqBtqCQh*U0.1qDh/UnonqEh&KXh-U85%qFU_objectsqG(}qH(U meta_typeqIUScript (Python)qJhUnew_htmlqKu}qL(hIhJhh u}qM(hIhJhU config_htmlqNu}qO(hIhJhh9u}qP(U meta_typeqQUScript (Python)qRhU view_htmlqSuth1UnonqTh3Ugreg@emencia.comqUUskinqVU1UtitleqWULien hypertexteqXh6]qY(UcAjouter un lien et faite une petite description. Vous pouvez choisir d'ouvrir une nouvelle fentre.qZUehK(U kq[(h U PythonScriptq\tq]tq^QhN(U kq_(h U PythonScriptq`tqatqbQu. i((U OFS.FolderqUFolderqtqNt.}q(UidqUimageqU__ac_local_roles__q}qUnew_okq (U kq (U#Products.PythonScripts.PythonScriptq U PythonScriptq tq tqQU _propertiesq(}q(UidqUtitleqUmodeqUwUtypeqUstringqu}q(hUskinqhUstringqu}q(UidqUzone_principaleqUtypeqUstringqu}q(UidqUnoteq Utypeq!Uintq"u}q#(hUversionq$h!Ustringq%u}q&(hUdevq'h!h%u}q((hU certifdevq)h!h%u}q*(hU certifwebq+h!h%u}q,(hU moderateurq-h!h%u}q.(Uidq/U descriptionq0Utypeq1Ulinesq2utU config_okq3(U kq4(h U PythonScriptq5tq6tq7QUzone_principaleq8U1U view_htmlq9(U kq:(h U PythonScriptq;tqh)Unonq?h KZh'U80%q@U_objectsqA(}qB(U meta_typeqCUScript (Python)qDhUnew_htmlqEu}qF(hChDhh u}qG(hChDhU config_htmlqHu}qI(hChDhh3u}qJ(U meta_typeqKUScript (Python)qLhU view_htmlqMu}qN(U meta_typeqOUScript (Python)qPUidqQUhelpqRuth+UnonqSh-Ugreg@emencia.comqTUskinqUU1UtitleqVUImageqWh0]qX(UlLe module d'image vous permet d'uploader une image de votre disque dur sur votre site. Vous pourrez dfinir:qYU- La balise "alt"qZU*- La taille de l'image (attention au poid)q[U- Y ajouter un lienq\UUUehE(U kq](h U PythonScriptq^tq_tq`QhH(U kqa(h U PythonScriptqbtqctqdQUhelpqe(U kqf(h U PythonScriptqgtqhtqiQu. i ((U OFS.FolderqUFolderqtqNt.}q(U experimentalqUUidqUtraitqU__ac_local_roles__q}q Unew_htmlq (U kq (U#Products.PythonScripts.PythonScriptq U PythonScriptq tqtqQUnew_okq(U kq(h U PythonScriptqtqtqQU _propertiesq(}q(UidqUtitleqUmodeqUwUtypeqUstringqu}q(UidqU experimentalqUtypeqUstringq u}q!(Uidq"Uzone_principaleq#Utypeq$Ustringq%u}q&(Uidq'Unoteq(Utypeq)Uintq*u}q+(h'Uversionq,h)Ustringq-u}q.(h'Udevq/h)h-u}q0(h'U certifdevq1h)h-u}q2(h'U certifwebq3h)h-u}q4(h'U moderateurq5h)h-u}q6(h'Uskinq7h)h-u}q8(Uidq9U descriptionq:Utypeq;Ulinesq(h U PythonScriptq?tq@tqAQUzone_principaleqBU1U view_htmlqC(U kqD(h U PythonScriptqEtqFtqGQh,U0.1qHh1UnonqIh(K6h/U90%qJU_objectsqK(}qL(U meta_typeqMUScript (Python)qNUidqOUnew_htmlqPu}qQ(U meta_typeqRUScript (Python)qSUidqTUnew_okqUu}qV(U meta_typeqWUScript (Python)qXUidqYU config_htmlqZu}q[(hWhXhYU config_okq\u}q](U meta_typeq^UScript (Python)q_Uidq`U view_htmlqauth5Umat@emencia.comqbh7U1UtitleqcUtraitqdh:]qe(UInsrez un trait pour souligner ou diffrencier des lments d'une page. Vous pouvez choisir la taille, la couleur et le positionnement du traitqfUeh3UnonqgU config_htmlqh(U kqi(h U PythonScriptqjtqktqlQu. i((U OFS.FolderqUFolderqtqNt.}q(U experimentalqUUidqUmapqU__ac_local_roles__q}q Unew_okq (U kq (U#Products.PythonScripts.PythonScriptq U PythonScriptq tqtqQU _propertiesq(}q(UidqUtitleqUmodeqUwUtypeqUstringqu}q(UidqU experimentalqUtypeqUstringqu}q(UidqUnoteqUtypeqUintq u}q!(hUversionq"hUstringq#u}q$(hUdevq%hh#u}q&(hU certifdevq'hh#u}q((hU certifwebq)hh#u}q*(hU moderateurq+hh#u}q,(hUzone_principaleq-hh#u}q.(Uidq/U descriptionq0Utypeq1Ulinesq2utU config_okq3(U kq4(h U PythonScriptq5tq6tq7Qh-U1U view_htmlq8(U kq9(h U PythonScriptq:tq;tqhKtq?QU view_htmlq@(U kqA(h U PythonScriptqBtqCtqDQh,U0.1qEh1UnonqFh(K`h/U90%qGU_objectsqH(}qI(U meta_typeqJUScript (Python)qKhUnew_htmlqLu}qM(hJhKhh u}qN(hJhKhU config_htmlqOu}qP(hJhKhh;u}qQ(U meta_typeqRUScript (Python)qSUidqTU view_htmlqUu}qV(U meta_typeqWUScript (Python)qXUidqYUhelpqZu}q[(U meta_typeq\UFolderq]Uidq^Uimagesq_uth3Unonq`h5Ugreg@emencia.comqahL(U kqb(h U PythonScriptqctqdtqeQUtitleqfUOngletsqgh8]qh(U8Le module d'onglet est un type de navigation automatis.qiUeh#U1hO(U kqj(h U PythonScriptqktqltqmQUhelpqn(U kqo(h U PythonScriptqptqqtqrQu. i((U OFS.FolderqUFolderqtqNt.}q(U experimentalqUUidqUtitreqU__ac_local_roles__q}q Unew_okq (U kq (U#Products.PythonScripts.PythonScriptq U PythonScriptq tqtqQU _propertiesq(}q(UidqUtitleqUmodeqUwUtypeqUstringqu}q(hUskinqhUstringqu}q(UidqUzone_principaleqUtypeqUstringqu}q(Uidq U experimentalq!Utypeq"Ustringq#u}q$(Uidq%Unoteq&Utypeq'Uintq(u}q)(h%Uversionq*h'Ustringq+u}q,(h%Udevq-h'h+u}q.(h%U certifdevq/h'h+u}q0(h%U certifwebq1h'h+u}q2(h%U moderateurq3h'h+u}q4(Uidq5U descriptionq6Utypeq7Ulinesq8utU config_okq9(U kq:(h U PythonScriptq;tqU1U view_htmlq?(U kq@(h U PythonScriptqAtqBtqCQh*U0.1qDh/UnonqEh&K\h-U85%qFU_objectsqG(}qH(U meta_typeqIUScript (Python)qJhUnew_htmlqKu}qL(hIhJhh u}qM(hIhJhU config_htmlqNu}qO(hIhJhh9u}qP(U meta_typeqQUScript (Python)qRhU view_htmlqSuth1UnonqTh3Ugreg@emencia.comqUUskinqVU1UtitleqWUTitreqXh6]qY(ULe module Titre permet de choisir une taille, une police (dans la limite des polices standards sur le web :-) et une couleur pour un texte bref.qZUUehK(U kq[(h U PythonScriptq\tq]tq^QhN(U kq_(h U PythonScriptq`tqatqbQu. i((U OFS.FolderqUFolderqtqNt.}q(U__ac_local_roles__q}qU_objectsq(}q(U meta_typeq UScript (Python)q Uidq Unew_htmlq u}q (h h h Unew_okqu}q(h h h U config_htmlqu}q(h h h U config_okqu}q(U meta_typeqUScript (Python)qUidqUrapidedit_htmlqu}q(hhhU rapidedit_okqu}q(U meta_typeqUScript (Python)qUidqUhelpqu}q(U meta_typeq UScript (Python)q!Uidq"U ttesview_htmlq#u}q$(h h!h"U view_htmlq%utU _propertiesq&(}q'(Uidq(Utitleq)Umodeq*UwUtypeq+Ustringq,u}q-(h(Uskinq.h+Ustringq/u}q0(Uidq1Uzone_principaleq2Utypeq3Ustringq4u}q5(Uidq6Unoteq7Utypeq8Uintq9u}q:(h6Uversionq;h8Ustringqh8hU99%qRUskinqSU1h#(U kqT(hMU PythonScriptqUtqVtqWQhDUgreg@emencia.comqXUtitleqYU Texte ou htmlqZhBUnonq[h Utextq\h(U kq](hMU PythonScriptq^tq_tq`Qh@Unonqah(U kqb(hMU PythonScriptqctqdtqeQh(U kqf(hMU PythonScriptqgtqhtqiQhG]qj(UEditer du texte ou de l'HTML.qkUOption: vous pouvez decider d'activer le rapid edit. Cette option permet la modification rapide de textes sans rentrer dans le back office qlUUeh(U kqm(hMU PythonScriptqntqotqpQh (U kqq(hMU PythonScriptqrtqstqtQh(U kqu(hMU PythonScriptqvtqwtqxQUhelpqy(U kqz(hMU PythonScriptq{tq|tq}Qu. i((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Uidinitq U _getattr_q U_getattrq UbUaUstringq UctqU co_argcountqKubU_paramsqUidinitqUidqU mix_id_zopeqU__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_contextq#Ucontextq$U name_m_selfq%Uscriptq&usbU func_defaultsq'NU_codeq(TcsdZdS(Ncst}d}x[|drN}|djo d}n|djo d}n|djo d}n |d jo  d }n |d jo  d }n |d jo d}n|djo d}n||tdjpP||tdjp:||tdjp$|djp|djp |djo||}nqW|td|}|SdS(Nsissessasscssissossussysdigitss lowercases uppercases.s-s_slower(s _getattr_s_getattrsbsidinitsasstringsc(sidinits _getattr_s_getattrsbsasstringsc((sScript (Python)s mix_id_zopes&       l(s mix_id_zope(s mix_id_zope((sScript (Python)ssq)U_bodyq*Tdb='' for a in idinit: if a in '': a='e' if a in '': a='a' if a in '': a='c' if a in '': a='i' if a in '': a='o' if a in '': a='u' if a in '': a='y' if a in string.digits or a in string.lowercase or a in string.uppercase or a=='.' or a=='-' or a=='_': b=b+a c=string.lower(b) return c q+U Script_magicq,KUwarningsq-)Uerrorsq.)U Python_magicq/U* q0u. i"((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 AccessControlqUgetSecurityManagerqUaUdataqU containerqUurlqUcontextqUracineqUzwookqUzwo_urlqUstringqUdecqUlenqU suite_urlqU suite_url2qUlist_urlqUrepqUobjq UbUconfq!U zwook_infoq"Uskin_idq#Uskinq$Udr_vueq%Udr_adminq&U list_rolesq'Uusernameq(UNoneq)Uzwuserq*Us_list_vq+Us_list_aq,Ulist_vq-Ulist_aq.Udr_editq/Uuserq0Uavatarq1Ustrq2U user_avatarq3Uuserrolestupleq4Udr_confq5tq6U co_argcountq7KubU_paramsq8UUidq9Umem_dataq:U__ac_local_roles__q;}qUOwnerq?asU_dav_writelocksq@(U kqA(U PersistenceqBUPersistentMappingqCtqDtqEQU _bind_namesqF(cShared.DC.Scripts.Bindings NameAssignments qGoqH}qIU_asgnsqJ}qK(Uname_containerqLU containerqMU name_subpathqNUtraverse_subpathqOU name_m_selfqPUscriptqQU name_contextqRUcontextqSusbU func_defaultsqTNU_codeqUTcsdZdS(Nc.7st}t}t}dkl}|}||ddjo dSnh} ||t dd}  |t d}  || d} ||d }|td | |}t|d joU||d }||td |d d }|td |d}n g}|}|}d }x |d r}|d jo d }n|d jo|||djo|| ||ddo!||||ddjo"|||}#|}nB$||||ddjo%|||}&d}nnnnqkW(||d})||d}+||d},||||dddjo-|||d|}n%/d}0|||dd}||2t dddo:3||t dd}4|||d|}n6d }7d }9g}:d} ;t!}"<||d}#=||d}$>|td |#d}%?|td |$d}&@d }Ad }'Bt!}(D|d })Ft*||t dd!d"jo>Gd#|%jo Hd }nId#|&jo Jd }nnL||t dd!}(M||(d$} N| ||||dd%ddj o OdSn||||Q|dd%| dd&o1R|||||dd%| d&}+n Td'}+U|d(|+})V||(d)| },Wx>|,d Wr1}X||j o|Y|d*|nqWZ|||t dd%| }"[xD|%d [r7}\|d+jo!]||jo ^d }nnqW_xD|&d _r7}`|d+jo!a||jo bd }'nnqEWdd }-ed,|jo fd }-nh| || d-<j||| d.<k||| d/<l||| d0<m||| d1<o||d2|| d3<p||d4|| d5<q||d2|| d6<r||d || d7<t|(|| d8<u|"|| d9<v| || d:<w||| d;<x|)|| d<<z||| d=<{||| d><|||| d?<}||| d@<~|'|| dA<|'|| dB<|-|| dC<||||dDdEdF|| dG<||||dDdEdH|| dI<| SdS(JN(sgetSecurityManagerscalledByExecutableisnonsREQUESTsURLsacl_objszwooks absolute_urlssplitis?is/s objectIdss hasPropertys type_zwooksdossierselements zwo_dossierszwo_infosskinsskinssFoldersdefaultshas_keys impose_skinsInconnusgroupes_visiteurssgroupes_editeurss&s/zwo_info/images/avatar/0.gifsAUTHENTICATED_USERsAnonymous Users Anonymouss getUserNamesuserssavatars0.gifs/zwo_info/images/avatar/sgetRolesInContextsappendss config_zwooksurlszwo_urlszwo_objsrep_objsobj_objsgetIdsrep_ids title_or_idsrep_toisobj_idsrep_urlsuser_objs user_zw_objsuser_ids user_roles_idsuser_avatar_urls config_objsskin_idsskin_objsdroit_vue_dossiersdroit_edit_dossiersdroit_admin_dossiersdroit_config_dossiersgenerals general_datasfontszwo_fonts font_sizes zwo_font_size(.s_write_s_writes _getitem_s_getitems _getattr_s_getattrs AccessControlsgetSecurityManagersasdatas containersurlscontextsracineszwookszwo_urlsstringsdecslens suite_urls suite_url2slist_urlsrepsobjsbsconfs zwook_infosskin_idsskinsdr_vuesdr_admins list_rolessusernamesNoneszwuserss_list_vss_list_aslist_vslist_asdr_editsusersavatarsstrs user_avatarsuserrolestuplesdr_conf(.s_write_s_writes _getitem_s_getitems _getattr_s_getattrs AccessControlsgetSecurityManagersasdatas containersurlscontextsracineszwookszwo_urlsstringsdecslens suite_urls suite_url2slist_urlsrepsobjsbsconfs zwook_infosskin_idsskinsdr_vuesdr_admins list_rolessusernamesNoneszwuserss_list_vss_list_aslist_vslist_asdr_editsusersavatarsstrs user_avatarsuserrolestuplesdr_conf((sScript (Python)smem_datas"   $     "" "( !         ( 2(1 $  ..(smem_data(smem_data((sScript (Python)ssqVUerrorsqW)U_bodyqXTv from AccessControl import getSecurityManager a=getSecurityManager() if a.calledByExecutable()<2: return 'non' #constitution de la memoire temporaire. data={} url=container.REQUEST.URL racine=context.acl_obj() zwook=racine.zwook zwo_url=zwook.absolute_url() dec=string.split(url,zwo_url) if len(dec)>1: suite_url=dec[1] suite_url2=string.split(suite_url,'?')[0] list_url=string.split(suite_url2,'/') else: list_url=[] rep=zwook obj=zwook b=0 for a in list_url: if b==0: b=1 elif b==1: if a in rep.objectIds(): if rep[a].hasProperty("type_zwook"): if rep[a].type_zwook=='dossier': rep=rep[a] obj=rep elif rep[a].type_zwook=='element': obj=rep[a] b=2 conf=rep.zwo_dossier zwook_info=zwook.zwo_info skin_id=conf.skin if skin_id in zwook_info.skins.objectIds('Folder'): skin=zwook_info.skins[skin_id] else: skin_id='default' skin=zwook_info.skins['default'] if context.REQUEST.has_key('impose_skin'): skin_id=context.REQUEST.impose_skin skin=zwook_info.skins[skin_id] dr_vue=0 dr_admin=0 list_roles=[] username='Inconnu' zwuser=None s_list_v=conf.groupes_visiteurs s_list_a=conf.groupes_editeurs list_v=string.split(s_list_v,'&') list_a=string.split(s_list_a,'&') dr_vue=0 dr_edit=0 user=None avatar=zwo_url+'/zwo_info/images/avatar/0.gif' if str(context.REQUEST.AUTHENTICATED_USER)=='Anonymous User': if 'Anonymous' in list_v: dr_vue=1 if 'Anonymous' in list_a: dr_admin=1 else: user=context.REQUEST.AUTHENTICATED_USER username=user.getUserName() if not username in zwook.zwo_info.users.objectIds('Folder'): return if zwook.zwo_info.users[username].hasProperty('avatar'): user_avatar=zwook.zwo_info.users[username].avatar else: user_avatar='0.gif' avatar=zwo_url+'/zwo_info/images/avatar/'+user_avatar userrolestuple=user.getRolesInContext(racine) for a in userrolestuple: if not a in list_roles: list_roles.append(a) zwuser=context.zwo_info.users[username] for a in list_v: if a<>'': if a in list_roles: dr_vue=1 for a in list_a: if a<>'': if a in list_roles: dr_edit=1 dr_conf=0 if 'config_zwook' in list_roles: dr_conf=1 data['url']=url data['zwo_url']=zwo_url data['zwo_obj']=zwook data['rep_obj']=rep data['obj_obj']=obj data['rep_id']=rep.getId() data['rep_toi']=rep.title_or_id() data['obj_id']=obj.getId() data['rep_url']=rep.absolute_url() data['user_obj']=user data['user_zw_obj']=zwuser data['user_id']=username data['user_roles_id']=list_roles data['user_avatar_url']=avatar data['config_obj']=conf data['skin_id']=skin_id data['skin_obj']=skin data['droit_vue_dossier']=dr_vue data['droit_edit_dossier']=dr_edit data['droit_admin_dossier']=dr_edit data['droit_config_dossier']=dr_conf data['zwo_font']=zwook_info.general.general_data.font data['zwo_font_size']=zwook_info.general.general_data.font_size return data qYU Script_magicqZKUwarningsq[)U _proxy_rolesq\(UManagerq]tq^U Python_magicq_U* q`u. i ((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_getattrqUcontextqUurlqUrepqUstringqUdecqUlenqUdec2qUcontqUcurl1qUcurlqtqU co_argcountqKubU_paramsqUmem=NoneqUidqU mem_mod_dataq U__ac_local_roles__q!}q"Uxavq#]q$UOwnerq%asU_dav_writelocksq&(U kq'(U Persistenceq(UPersistentMappingq)tq*tq+QU _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:(Ntq;U_codeqsq=U_bodyq>Tif not mem: mem=context.zwo_lib.mem_data() url=mem['url'] rep=mem['rep_obj'] dec=string.split(url,'/zwo_info/skins/') if len(dec)>1 : dec2=string.split(dec[1],'/zwo_bo/skin/') cont=context.zwo_info.skins[dec2[0]] curl1=mem['rep_url']+'/zwo_info/skins/'+dec2[0] curl=curl1+'/zwo_bo/skin/' elif mem.has_key('inskin') and mem['inskin']==1: cont=context.zwo_info.skins[rep.zwo_dossier.skin] curl1=mem['rep_url']+'/zwo_info/skins/'+rep.zwo_dossier.skin curl=curl1+'/zwo_bo/skin/' else: cont=rep curl1=rep.absolute_url() curl=curl1+'/zwo_bo/edit/' mem['parent']=cont mem['parent_url']=curl mem['s_parent_url']=curl1 if not mem.has_key('couleur_text'): mem['couleur_text']='#000000' return mem q?U Script_magicq@KUwarningsqA)UerrorsqB)U Python_magicqCU* qDu. id((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Urepq U_write_q U_writeq U _getitem_q U_getitemqU _getattr_qU_getattrqUdataqUctqUccqUpcqUptqUlUstringqUdUeUjUfUgUhUiUlenqtqU co_argcountqKubU_paramsqUrepqUidqU tab_to_valqU__ac_local_roles__q}qUxavq ]q!UOwnerq"asU_dav_writelocksq#(U lq$(U Persistenceq%UPersistentMappingq&tq'tq(QU _bind_namesq)(cShared.DC.Scripts.Bindings NameAssignments q*oq+}q,U_asgnsq-}q.(Uname_containerq/U containerq0U name_subpathq1Utraverse_subpathq2U name_contextq3Ucontextq4U name_m_selfq5Uscriptq6usbU func_defaultsq7NU_codeq8TcsdZdS(NcsWt}t}t}h}h}h} h} h} ||ddo x||dd r}  |t d| d} ||ddjo |t d||dd} g}x||dro}g}|t d|d }x)|dr}||d |qW||d |qW|||||d sq9U_bodyq:Tdata={} ct={} cc={} pc={} pt={} if rep.hasProperty('tableaux'): for l in rep.tableaux: d=string.split(l,':') if d[0]=='CT': e=string.split(d[2],'/') j=[] for f in e: g=[] h=string.split(f,'-') for i in h: g.append(i) j.append(g) ct[d[1]]=j if d[0]=='CC': e=string.split(d[2],'/') f=[] for g in e: f.append(g) cc[d[1]]=f if d[0]=='PT': e=string.split(d[2],'/') f={} for g in e: h=string.split(g,'=') if len(h)>1: f[h[0]]=h[1] else: f[h[0]]='' pt[d[1]]=f if d[0]=='PC': e=string.split(d[2],'/') f={} for g in e: h=string.split(g,'=') if len(h)>1: f[h[0]]=h[1] else: f[h[0]]='' pc[d[1]]=f data['ct']=ct data['cc']=cc data['pc']=pc data['pt']=pt return data q;U Script_magicq)U Python_magicq?U* q@u. iB((U PersistenceqUPersistentMappingqtqNt.}qU _containerq}qs. iB((U PersistenceqUPersistentMappingqtqNt.}qU _containerq}qs. iB((U PersistenceqUPersistentMappingqtqNt.}qU _containerq}qs. iB((U PersistenceqUPersistentMappingqtqNt.}qU _containerq}qs. iB((U PersistenceqUPersistentMappingqtqNt.}qU _containerq}qs. iB((U PersistenceqUPersistentMappingqtqNt.}qU _containerq}qs. iB((U PersistenceqUPersistentMappingqtqNt.}qU _containerq}qs. iB((U PersistenceqUPersistentMappingqtqNt.}qU _containerq}qs. i~((U OFS.ImageqUImageqtqNt.}q(UsizeqL32237L UdataqT}GIF89a&  = j5fjiF_^6grBn::jj~?"F&M4:8d5*V*2wzy5FNJ+YVV .Jr>S.\Nj"J&RvV^Z.^vvj9>;Vz~2BVZYnŠz=B?>>Rprvu44V*&2./a *b^b_ "*BBAFDJNL2bꢦ""Zwnrqn7*2."&"6E\\PP  RVT.f2&&*R"Fr9ffbfdFJN~~fBJF2fb2&Kۮ&"jnkBR:Nv:v&.-**&*. F#*9"C!Vrnn.2/NRQJe~.=FFn&6z~|bb'PΘ.62&0 %Z~FJF\/z=#HP("*&JVFR*.+""6J֦ Vwb>FBZzz..:jZ^\rr" JJ263!Created with The GIMP,&4 *\ȰÇ Edŋ3jȱǏ CIɓ(S\ɲ˗0C&(6͛8sɳOJѣH*]ʴa&ԪXj5k׭^jej؎9]˶۷pʝ+> s _J LÈ+>zIL˘3k̹ϠC{VfqiFB'ڸo;wݾƷk XμУKNسk"b rLۣwO?~g/(h ޝ ] `k[,'#pa ~(b$hb(b,b0(c,g4w-(y!QBm:D&s)AF!Q@Edbx`Q$qG_z F *WiK$|~@vyÁ@?.*#)Iq4[XG "H hاS?Nhp᪙\("9r%p%^OqI1&eFQ4W O)˜᎖ajѥ31Цm5)-S?i I @@ D4C*EGzD)]& "04Ųwa%!I;,<fO<D 2@f䳅;3׬\,T:0 #5ѕRf(B@Pj4?MEnh=bE4Z6ȷ*cг[Ki Ṭ(5s蛫k+x~9q(=XD阈l:̗&A: d2[A"wP *0Ln!wүq=%AF.ֈ=w;x ;`<.GGbi D̐}0pRi ؇"@h9P; 3?`O wi8a[#|.Ŷ(tD^;w#SG9oM ZFα* 2BDL EJ;ach;H ,Haã5UBza$ =boHg|XpAcT;4D{LٔNPR9TYXPVGbѕ^ ! P{.ْYg@ npr9tYvy i ?; ^f`% 9Yiؠ 1 J9Yy9J0i$` 9Yyٛ'YƩFr ʹٜyؙC910Yy虞깞ٞ-yٟ:Zz ڠ:Zzڡ ":$Z&z(*,ڢ.02:4Z6z8:<ڣ>@B:DZFzHJLڤNPR:TZVzX*@\ڥ^`b:dZfzh^ZYʢk L r:tZvzxz|ڧ~hѦn ڨZzک` k0  X0 -U Wq V!S `PP P*L |gn 3_ Հ|p |  H0 DQ)z 0p gmj=-0 0%p Kʰ)igP  Z j'q q P)X@`!f0 (k&`Vkp!8+` p(pQ2 Ȑf`ߠ & )e`nA f%`P :0 0npPغfPNkP{g 1Q%*$n`D0 E@;)0p `-  ef0=0@@ X@AkMk(0p;o1 ;0f!C0 +^*S0knP0 k Ze ԋ@ ` ۹+ L1 J1ʰa,,*2D` +P+0R U1D % tݩ;= 6;+; <G{_?l1IJL@cКP SвnD f2@ (KPPYB 0 -p H@ÝzL Quw ; @  nPW|%pu; %ð)0%@å{Ì+ml QkTܡ"1 p <; JPak) D`J@ ill ? ]HLPiP _ _0"]$m)M(*1!0Me\ @5B]F}6< mPO SMQ}RZU]}]]a`Mf_gV}a NKmPp#z=xy~ׂ|]؁ ؂ z}׊׍]؃؄-ٓه]ٖm 9s]P,p0,= Mڥm7ګڢ}=ڱ=ۨګڨ۳Pڴ}۽mڧ۾}ڻmܪۤm= ם= }ۺݩڻ ܺ-ݿmM ޿ޱ]ޭ=m-m]^mÝ7 ҝn>M2.]5Nޱ ">- nGH^PNOn}En9@ޠBnލ4YnM1~39~6>7^G> >Z׬=UN.~X7` ZׅN[n+Vo.0.m< ~阎 >US>[N镾ٱNwN)^i>NZ>N;~:ꬾ^͞䁮1 T.V>  QD~*N.-pپ LcPnM.Q~<@ ? S 5M^~JK8>i % 4QP"$~ -n1^}9oY›e#_D-Gސ a l~o}O_?}& = ;Ao;L.A` 1P+m s3_NM~`=aCgWsp  5 얏/\`:{upg# 9 M n<8ˠB 6T`DZ$Alf<~RH%MDRJ-]SL5m )dN;u\TgE/2Ex0%ыT:tV Xb 6دex%S8ݾW\uޅy`OϝŔ4Pւ~&#u` ~S$x=9F9ESY,j 3³Ys?.ڐ;E\r͝+W@j]ՉXs9uU#rB`$u2c<:,'V$ b`LDa\O0˜T⬰28#z.C 7CC&/(bVp`! #a(1 H a#*d"MZq"0[ @`dbJdxQŖ .Bຓ7"r8C;3O=k98Eߺ;djz`ArɡHX`A G9x'(adra0H>a`RdraHV`cȱ /„%k¥=eYgh_Θ#]v ClXp,5b $ \QSq0la  cHX"J` [XicQ0BQνQ-섃MZG&dXyGIJ48(DHOvB '@ AN+҂^FXhŘOhÉ i[ڜ%Fbdy'h%a,6RdNeLi9@畗Jqm[yYDD = `O$ֈl$@F 0¸Za/Dx5zMj~;x_.nbI Y8)eQX\\ !xny$3 aMzb0fy '@6A֓i8ch,|${ cm}"^h p`r !<oY"%F\فľQ s+ P5Q_JFl,#s#[CH GdBJ]x ,=dE.vы_c8F2ьg<0!ex,k$ 4P[S(fˈ hBЄ Т<Y\6 1 NTgY,k`XZ](ڊűLq[Gtҗf09LbӘDf2Ih9&0 Q hI-! @O, ׋B ',Cc `E0'(@ N(6*% eF0@ɠd\#͢Bb|"S66Eޥ%3evԣiH;Z &'A h`E`,Qt:5k AB,0+x WD"+T` 2aS  9h#RKrc Ujk\:Wծwk^W$)[/e JSoT xKPqJa+1jEբL6^$L2- mnqV%$Q&. (2JR:($8vPӹ@6i2[ D%g=ÀkzPDkY!DKנbK3o~_Wxg1\ָr4,S01E$ @ah¦xH+i[twݢb<(?-} =\ nH&px(ʀ"܅pͩmw Zn ;U`F7i Yǵҙ@g|sS܀NM^!f4~fHpä,8qr&3aK"U|1c&* |9C zԬ BZ^X +漭&_0!ZMP RXЄ x< @㠉ؼ3 o)؁ Zh 0Kg [>h37SڶК6ckn@HtU huPUxd"MRuB#B1[>{7 , %(BnEp.7B,Y(/XȠ"34Y,xP\[ uh@UPAPvQ'h_UH[YЄ[0ԐEq#h &[HD9XO@H ȺޙF9p pдl,fF$ C=g\?TĈS5;I|-1.P1xUU(%DAȩ @)[dXlu8v' ńV[(|AnXu3hDI@38 >3Ay`5(7=.1{w$x۫%3sG1=ïx~XHxB x_XH|U).'lLAȅd.qZj<àH/Pb31lB e!(sS,Bd/R[ETDU-c!G_`̼/<I)9'KQAXvP ,_Xu`RE0'`dQXd# M!H:@8M+ "G8pʛJ3uω|۽ B|2/H$|1,}uH" x"5R"yxQPHR1@PQHIlc7hl( (30J$ʒ29h&;,*8P9M5=u5ZI̥@M -Ku1ZP#P 8#eB!&)nPU1 _H[X͌4S_]f諅nPgذ;A$A{3{ly,㤯\uZy*Q0TH9Mؿ~ЄH'' 9H AH&eWluԄw'++C V3>(X;h2NHɻJkJChPo" Vײ̸RG6Cs=3vK?>0z@/>zCGH=Y#@U["5EUIm^Eï#D];9D\[+f@>Ԁ_Y5ؓEH)hV`&`)_&`Ff``vv  `$r]#s-YY/Ux\S0A1]kr0p2PYP:e`/ReNNPU&JneWeR2baU8EC6XXJ nb_ ݠ>C-#?핿UAW0f7Rhx$]4=e&,8\j<\|XM"(=FNy!ZF?Nag;/(3b o %XM($x~eD}&vfӎb>ށ^#oS#%IPY" P"Ƶj6AM=̼/KZa0Mk_eF&07HbVԜى|eӾ=J553x!XJ3(b@lG^jlfm] $?I~1_SV("Ѐ쓐X8NȓG$Fn>nF^Vn.nv>V&NuN "h5XhXF_rEߒ ~MVpbRd_58Znp_|(7b8_qWqLJ?qOqq_qqqo'!W!oNPD# epl0W t`p, @t6.p|`)1OG󕀰E^B5gP< s!0S^ڃ3h/@+?F߁g{`FoNkKGoJt> 'u=Fw`zMuNXX' OA`XDbu\_s7`_7bb/U_aA?g!0 Tg7" eʜye „ 2\xDC"RLK {PM#Ȑ"GB ɔ*Wle5:i&B;.2^Kx98 τ܈,򛣔:6IjZ(rꕫL_&]sfȆ ТfLL RrWl0ⰈeP`ЈDFw024 u&)3\I8>z;ѵ2G<3" -BEW;dIAkf^ɛ-TU-_V3TL_I;|[pipQ |xCD h+DP 0I')$I `BB,LW"w7)D@1ea vb(Dh@b`7!GAr]zyvE!YD8_U;}q㗘 K9cHQ{U#K B#p3R*iflfNF5AWDf|EnD 7(JG5)f8‡ )p+%2k-Ԧfq&@1095;:3h 1zP9L!-YaF-2JBn *mk)nuˊtB6F1K85Nbrj&W3TC0*"S cF4IvX^ehF0yMQ4L`B Ϙ1N4F=-Q79E(,‘Ւ7"tku"/aNlm@%(ӂ΃xv I ȯ$(C)Q<%*S2$d (YD& -yI0 |%0)a<&2{u`-gih!7/&8)Ν2WDC1:Qhβ@,X@A Uq'@*Ё=(BYdtja NG/<F,(HC*ґ&=)JSҕth貈GdrCf4Å n ԡF=*Rԥ2N-,X\` nMUE*X*ֱf=+ZӪֵ~nvҳԽ@mX_E0@]EPc6BU``쵲O[JZp +hC˖Z1"!Q"x(Z!M"xB` W7pT4PI}.[j٦~UX'<)|W$rx|U`/pA#.| Bed Dž- 'uxh$Xu8~3V΢ɽ/C,DרH0 xc`C !H 5P{K\검">2HZ @;fqq@@Z[\`AjY#`9ܷ&nL0A4HbA#̐; 1й0^lo4d45H-B < 0: 1 $C~yP֯L<5-a>6e3^X,,i`Pz\ W7++a^)87ӭu~7-yӻހ[5 n Wy@ wx.S+k_8Q ~P&S򕳼.9c.Ӽ6_ FJjs1N:ԣ.u?WVlnHn7P .V_e8\cv)[-jacr{>=|;w=q?|-d1ŽG$hEl s=DǶбMw~pUbyI&hZhno{ٹwbd'1X:whO:+1Am$J:oCAXie{ەc1ro21yc؀l!FP0S5<Ր4C ( $> =,`,M#)HI9pBmxA16d70˸ A 7<#` 6XD-O(A-p6K#)p=)  #$5A11 16A(@npC"]!mABG”AuC;B.́*x(Y? |B?@(a:8E0cp(|B)0L/$B'$Br45h.,2)$=kJ&´AC(BJ 0H=(PALkG9TdP0!Ӡ`3H8.IB/B Ȃ  yk6@D lBǤ@ @A(0,(1 1l A"!&A-h,!l@.sH. Ct1ev[_7W1†;xUni ApA3,8>604rL6Eiqwq y-AM,s/,?tB3A/(ánA5l@'B ?,BM#64LA6m9i܇f.õ{7#xj2mp~zC؁ DL?1|#|7C"J1ಓD\B 7Klk+ADC_`9BL<4xߛcaGpڜ <-B.]xy6W0öMȺzL9Cp|#SW7k 받#R)iM(C9HaW(ȟ[^C`^52kB.-(Wh@U'<$H($\WB_ܞ]Mx7A"=>>~('?>B(z]3z-B?l},|C;DB {@ԀY{$k×j""+?+#O?#Ht<w?o#s?o<3??@ LA&TaC! Y1fԸq ox`,A(0" ^+Ojx4^[b c떠v `]94qTGGQWfպu+_dUgѦ5Nl[oƕ;w.2$ ջ*E<cՀ$(HYbx`  u!ײHnDb)hwpkׇ_ Ttqnd_߿!6C]+uǑ'WyAzӭgwކvݱ>>;s; x{'x0H؅ iYb@OԹ  rQ)bŗ0rQ Z$ /ͶkFI4DCTl1ES|QE-`E]$Fk^\% 8l#LR%l'A+Lr541BHLa)kDvEO>1")#1"~sBŜMŒG!H)4I-TJ1T,߼!SH`MT$ h@bU05_ Y-"c9LVe7؋cZdd̑oe+> +6 vmYtý9M3 s0I$1I1yIpÌ/ X7^1>J7Te]eyaU>yz(f /@[C״Hsm> !N3)^OV6Ft TހB:1L[ ϐDŽZ0 (6 !y:^)wr˭.w+!'0-u/-g!YsWv Qx:ڇԒ/N(B8#5*p d|+3kP 8*\# FE 8?4^"t?nr) !zD (^(%1IҁcH|nB]eʝ̈́g9]x_C(d @ Ӏ"ߐ ڻF3,DbE0V mj_=Ő@G䡹&x:fA`P |* 06L~bQW`7;2!ьgoW` _9ǂ Sఫ^)RmE[ T&N#HaLAX-,AU6!KFٔ @ x8 hA M(#k(Ӽ4R40f0eA׸=Lus!id|4X򪺼l,H ҉p"dt{wΓZ=EW{rE?% = A2CѪ!-0B-LF ` Q|)L7j*/% P`BAEAQHnVELѵ5ӘMOčm+wj>AH{d+] zb-kukh6 oa2[Z!`C*xlGb tϭrU m5Eio aB,q!gf!ʂ5@QKhs9[!DA;'\zZ _p [-6 5". \2 / 0a [ĮqtC@RZ`H5_ֈ"ȰNr>ҕ謿f?SsW"}eb/-Кs~F氙\Y}1A CG4a۽2tZ0tݖT5sJ lրD$L.ޭz| cC mh]ߺn{pGرA6<5Zb,r Q Xi!!Āb .B (p\/FЎ"x|͇EQV@{Q C h2  y!2@G2` !԰P1/pP  ,KjfBnAU F Fa r!;Bq!8O 5呶qNj0b0LJ" A)$ aa(`,੖a'i (%@RRR&% e i" !`}ȼ.NP2 *@ h`n !A  *>A*>f1g *MeHf pcm񕒒:^'GA Rz(25asD N2 xӌPT,+dA O #R.R.XD0QaA:7"'Vtr2 ~ >) ܀axG}G4HtHb$t ø0lAh@,,qb0F@@ >A o/[aJ@ ғ0 3=g1 , lfZ# ar>)A#B$+bA $ Sa:`|ʆB |욚/OB* '9 eFA>0$`jK+@!s V* ,kď6|: ߥ?#t0"-SB5`ѦVaLv*``DCG$RzfW!a+ҡ8 B+I1.$ ba  ЋÇ fRt[x-Sb 'J#UBb6B :YdX]Ϸ\R ]D&l"\1X!2VS aR'DSaw5XY/0*YNM"`zĭ }oA X!&7@mYNMƅ7B16txp(8A}uIǤ2`_hgsqKF#_Z9fez! LA "Ap ` X@ Ζ5":вբ""p8 t"2񸘗s`2zB1s+!Ҵە QFI;2A AX 0C<@T l!r-NhH%nخ?s?xLtSYt+3='ҷA00D @&;0A+>  FR^ l 1Fa˒Y?Zg`" K72O[abxæSit &U7D)rZ&9l eO}`[Z'h3'}@X#k@ߥDʑl `!"(݄DjVΩ ' ,f9ՓbBi0MaCwx2a#.7  ! RA<$a)`n`<VA(Ct T3Fw,!t $FM3X?Z5TZ@le!ޣ ?|߼>lAN(cjw(4J>E@:R=!"؟O-:qyқfn}w"`1&9,OtR|}ލ$h0 :lXpĉ+V;z2ȑ$K8%ti1"–/d5 A.Zs +%1JhtE_4=cG>JMrۏ9´QcWֲ(#s8O/w; ZhC|nlC& m;U>zҋ!Ԫw=XP{V# {qZ0 no(t@qOu.{ A%jQ"Ư 7ut' r0ˆAu0 KFKY0Ѐ\ oBr|ajx=rpHϬAnr` -)*DrX&P  ,9 ю'`Gny1dD+z P@H7ь~hKSzӗ!KOӘ.5OTKԟ]Mdv=``|A - [`N>evt ЈxDxvq$A[d5A-1 I1﹭%9?r} Wp&*P/Н˰EZx. %pp10E f0T ~ @r/B@;Pqѓm; c㕃w>`\f \.f N>F' G#] n2k^и`߰M;{X xMk Xvk l0Z?Xt} =`ǀQQ Hp PP \ <PQe nz-0 g#<ߕ  `:2_  HgSnɔlfPanNf@8Qw o0fd%A& {bn)yUD+3fHE$a(%TSa3X:Eԥ+! 0K\93}S2ZB :!ie)ft3D ^gL4A 10IXKL>}Q2af LiQg)蔔s24@LCNy_&\aĉ/fX/ {TYcYS 9 Sk „% _`WƔM^]xKF_I%H]DwA2sASiDLc &&KaP?/St'')&i@ +땺pC;C7$B?Y&q0ďFsqG{i$` EF́pfqI0I(rJ*Rb~*FesL2e43SNFNO@(24PDUTE)"`RJ+RL3tSN;SPCEK5T)M0QcuVZku'QuW^A$()CCD U0XYhvZjZl˯Wp׿AJ"{5 Xp]Fw^z^|w_~7 Cx` kF2)'ڝY#b3xc9ָc?cC.y#VyeWA,xfk !l(xb%6:裋FziNiv:jn:h:Y`f׀dy0~k>mv[neYfRoS_I(ٜVjgqrɥrk;L%|[Wٮ{u[]8oځsם5)f 3Sr'W哗s':ݫf:cawha_vc7_ d}C$(J@ gg~oEz^ x yn6Օo|`)>IeB`=" 8C6 ` YBbh>xC"()`s^k$xae`rD( /e0Bph.\aŪpk3xF4%xF2J C3bh#*q@ܗF@r7&Esu[!HHq{lHLFE`*'hw$e(A=`&]yF4 ȣ]@ `@.x)0آ(l Bx QH|0XLF' jJtq7J!c,E b O|bxr9d3bXPCbY\@b08` Za0Fn9|BZc*ʠ.+}b!^gf! \@E2[a4Dea*PMTX nO `E?ʂ0E,ޢxBGS7)@ b6"C23Ji|mzZ X6,xp'{Ě bxbRC>r9!9*p Z@bh,aYc@@ZX k0B搌HXpVw]0` ǹs(.` UhE B akA 1Є d`}OP%<+gPM3#j n@#s,(1@V[cH#:xx )+267ڝvgP!/^}#I&d|뫔#*{W+HL;JJ>q](w§>gA٫t/3Wvc{ͯ#ίd;O}?D/4Jk>ˣ6k).@=ӣ?rR? A 5-2@ <3 <[A ;>=;U2= @I<y "sԘ@K%˓DB-l :;<"?#"B6D 쿱A< BdkC?,b#/;˻3CY?Ŀ%ת&d@ B=BBI9b(DDCd!tD1BRK˻M~U+ c~AЄ+X3vC0xZ qTdQEt$SUD>óxx}ch[l690H0`1aH'V`O驀)iB"HD[<<P684-Ax6Pu+FxPP)[XuD(S}+A:h+0em,Jd P`O0Yu0.+hcd d[  >HDQM`~6MeYH\F[P8726sO2Qx(Pd @#\ps [8qkcZ@gH=`HP9d&x]zxͺ0 FՁʼ,xhUЩ0(S ԄP/#L-cM\p.PlM|sd [5~4c0OdOPhlι0XLHu7۪a,HXةfa#[ 4Q&c h&@- [4Џ dJA[P[hKcVp~`8H!N:PU0dae@QȲGĚ 2rQ`c#.*P&mCἚdh㼂OIV{/O"x-x[xdMu3a+GGU!=B#_\-=uߛ_ImX&FB+@ /؝^;++lvE ޒaA^a fX?(l^aEʮfGU=޶Vi^c]%>ؓ`bI^ݻζ/.]u'ާމ6M _.Ýc ]>(L F^0L_7cG_Cּ^w?`YM7bb~dLd%LdaF6Fe]I/_8^YԌ^^z&bkzkZfe>dNfc&fi.fhiFhj4e~hffkh'Hgu^gvngw~gxgygzg{ucs΋;qU__ac_local_roles__q}q Umatq ]q UOwnerq asU__name__q U navfinale.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqM&UheightqMu. iT((U OFS.ImageqUImageqtqNt.}q(UsizeqL6258L UdataqTrJFIFHHCreated with The GIMPC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222,"D !1AQa"2RTUqs345S#bB$r1Q!1A"RBa3CSq ?p<2u7ƒHM+Lwb2hN>;äumk\f.y⦧y⍥{M\T:ecES!4a,)$w[ƗPfIpw:;FMtG3Lֆ;ϑWRpܹSIt tmŎ܋ZYV:ki%7Gxc Ilwi9kg8 NG=]Ior6tzOi0`RS gwoJZEMh5&.2UI%eX"2X!h6/$j|s᱖2 Wena4Tm\Lݤ7Rm"e|-bw#|3Ԝ'#ឮ7ME#ឮ79 u'j g8 NG=]Ior!r>N{WRpܦ F 8]$&5& wt6X\|U48MEKT(-f!1)-`q"\7,mp"P#\/F⫹l9*P- 'n6i!lsFv146yN{A WRpܜz5B|3Ԝ'#ឮ7MD u'L 71eb SKAEHȅ50Hc)$#m*õLxGOo`rߑU]5\~O3_PDhqkL3{[<iOPӖ>bjd5Ng8ڊ Rڂ 4`o+gNV]ƋR؎>cIVF#s1ZjLCZOet[YKL#. wa 4\ 1?{o\bM7C{XHl.A$vb'F+慵R*/kS^čn+csdaC %-8'U9#;[8DZPN`* >i,ZHqur?l 斺JDsGRwޱxwgw㳣cRG-=$8MܺRVFk*`-֐ ,mˬA_TreIuW_o~hV/K_YPuk${Zl:r;VoGtB kH) #j_y~}h~486N~#ϯѽ`u=mM%5SK曃/kn M DmyrfN]ˎw9H"e϶}S@u"{?g_x&mm#dx,fKONMԾ;)891Cv:lkF> E$+\29>qb!`{ |erMaɓےbǰ[R1V 3Fa#س˸>g* } dz B(Dtocvé}hNU9[Zi ִcGJc#퍬dq."X>i;_=j@^,^o9F'[c)*#H6'ZLh{W:-SxlTAgM$I6Kf*W@YbxWŇwX sv+BtPz{{Ȩ-UDbYN^ ;ZQpog:,BtzHnMRQ4o+ux9.+Dm/p$ 5"1B)_;cX4Z9tE4n`iCauH tSV*לZ2:v[s~VZW]?M)Dp[+Mt>;Z[Hݒ`icv kXd2"+2CvL8Pgʙ.MAVL` SQaUknMW(̛y.*K)%_~a4ikVZE5rS5.:ͽ\ǯ_\O%Awa?ގ y.vIƇG6Q!W;_.ͫ!9l*OGE}/!}#lavt:TCG^{Z{eV~::.+ã-i`3tmt#G㌐,\g}{r4W1Z%ڙ f6#֧}+^1 kݽ kݽۛL**#yp {l %v 9Ź|AT.~_O)Mj\l~G|C][9TopXwق _JnL}X+j;Zu)Yw&|4iiXVM@ckCx7(aXc Tn9 uv¿ZBK̒ %4L&tA{aI==7?5}1,~UUT!pk!VThk 0Gmao?4 C$ΐu/.~jb1̟*Ӕ|{VSg+nV1:({Ln 81CsUZwk8MwY8u${Y}yZGPJƽY 9an7jװvG"sz@gLk_7&2JIGȵwk8ܓ`?m<''QB-}Av-l?~Ն sCl^ܬ-opQpFkCm-:ο_ӛ;t1Q 0ɳˠtf4KmL ot ;Sr[N+?{8U;#عKISWPfa2ߖ2H1cJg%wbW㿕inH77ckEj8uchs/>:H٠ظֹ`QgֳՎN%m-oobW߈>EٮS!Ԋgc"-" .K1Z:olx>ӉLnnu߮NCY1vxDhc%mJ4Zkam7m4f&6{,,>w`eV;|%IgwF?|k!Û-^ooY#S~"ޏ%FEgѪJ" """ """ (HQ/N GeaH,""" """ S~G)*5O""" """ """ Mz?TF(_S!G;(7ŕ#ز5O?Gr57+=RTjoV{""" """ ""_}OwTt${Vb" """ ""?GrT?J" """ """ ""߈5IQYGj =>Rz}ӿ{|YXo=(![?a<;^(ob۴x8U|<ڮgUrt]֛JG~V<svmW3ͪ9:wMo?Jm+}9U_;p6np;suҷ㟥6*gUrs jN9i[qқJG~W3ͪ99ۆy\'Nix8Mo?Jnp<ڮ}zV<sujib@ [}jnp<ڮ}z ͦ8|qGO[32+q\-.!֚+h {kf;\ڸoo%m؈p?qU__ac_local_roles__q}q Umatq ]q UOwnerq asU__name__q Uplaceobjets.gifqU content_typeqU image/jpegqUtitleqUU preconditionqUUwidthqM,UheightqKu. i((U OFS.ImageqUImageqtqNt.}q(UsizeqMUdataqTJFIFHHCreated with The GIMPC    $.' ",#(7),01444'9=82<.342C  2!!2222222222222222222222222222222222222222222222222222"+Us461a!- Q!3A145RSar ?IHTfRZN^$xET UQ>GOh|KeDR*Y%^rќDƂ4׷x$x$}jǚx$BP9IƖtDUbEb{gç%uԜZrcap+~3?5-wª[*'u-K֗w@q?ƏzK9q>>2Vfrr22 znn..&&&*f~FFv^^&&jjjv2j~...Vwff F^NjvxNNb6Jvv _>>RRjjjBBBj&Kbjnnn~n:PfrBB222".Zfj&6:l~**Nl lJJJZz"6F.>ZZZ⪪zzz2EBV^bv|bbb&2B[i>R^Jf"""Rn:::*9v~rrrRRRr&^v***J\vvv ""FVZNNN&jZZEm{6J p^zt6N& :FN]^^bbBfr^ltVVV~~"2666*Z~Rt~~~FFF"VjnRrJJ~fff"b*>Fb".B>V&6!Created with The GIMP,%f H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJի'!ʵׯ`ÊKٳhӪ]˶-&Xy!pC˷߿ LÈ+^0|͝L9&FYٷϠCMӨS^ͺםyQl%ʸs4C^ Nȓ+_μУK;6/O\ͽFxpJMӫowJ὾Fyο( tչW/J"} 6HP4PބVh7ށA  A7(8F46"7?jjꩣ):: <%Kbj뭸&iw'w*M1*&{f +LQkfk뮜%L+K &H%ю+JBmRTn궖(c”N7 oH1jϡ$l2$pAI΀<.QK: DM"Y²89|mt `St2GL$k-k ()F)"B޿L.W L5k"Pq\5VhZG$":As[4Iqܕy z|)d߆;:%fz#kb\[p&Ա 6l1G$D<>"Y:0hDRg`:!6(B .9JƈX0~N4AN" 6D6Xs4mzS),c0!am=0s8Y,!x?UE/&H2Ft =Դzh5Pb 7J6CGEAQi DpCCE GQۨPl:!j[Vծy&c .,%}( r9i+t"P"aB?8SD޶@~C<)>! nLrù$IBv^$T:ddD\U:OShg>O~`(tmLsZgv׻ظAm{~#C3<=C-F(RL"JRNlyK烦,7P@P(ǘ) Q8㩈Eq Q8F6aK~#I+VՕ8!Oh]gh* b>te,]4=1Q}XՒG!Rt>cΌcy@@-@Z:5pp@po:H&;sXu88{6|uxg.mZ(>p+hEW)?$z 52 >h8:yud㈪rMHPoʈpԦviI#| m7Đ>c*rĘ{DH!(1.`8CM굲R.Z ]\I[86Kxŋ`LȲtqpxG"QAΜcLG:QQdE"@H%Tp"QET,Oh%D*&(W5g㶡N{ӂ i ~ 3mO|$Ba("Pa1\^4B7ANt\~ZIaOXZ*SeшֺrL`1~\Bh6*/ΆAԐ\$aBgdcxO/>:#& cQn) pe`Aq[\) 8yKA jC.u} 9dP8{ : :EUB pP8zsB p۶-f7&w6\/x GJҦu x[>ht&M _J {P2:㩊 lV.wěNo<Z|؋{||HHu}0WBKJd X P ؅#z-X*('ih uh9/x| 88yU'1*v҆V πAh 0b}$x~ׅyY Xn0 -qh ְa cIad-35قW;=9,ǁ h@ (.Y[J)u_F!Ce PY`yTzHw wgؕ- 0 ` w}w !I]ap 6yw<)H9P06Ͱy{`2% PC{9)Xfhx_P9 չ:{V @ Qop ڠ ʠ@ـ z "Z&z($  epoE4}Z2`qFB:DZFzPKNPJ*O*M:ISYz]A Q HZfzDZʤYjUjax Q8 :Zzڨ0 )q5pک:Z 0 `ZzZEqZ /0:z~€ ʭZP *UEZz*/* j  PH*`&0p+0j`/F`:P jlP !(Z 5H>P $KЩ lPL۴`Z F`j`ZPM Tz1[#Щ$=| 5DP0 50`.@&]P U; P'+:l  `l`{ڷ;A0劰I0=KҠP"E;c;TBP:[.l z` .P v ';e *P60! Z D0:K{)qPP X ^P&~0IHP_[ p%<([!P p˳R; xkH`,o{`BE`] ؛- {*&_\ @j׻@6<ňl]!I\; 6 E`I= (0#Tб*]`ɕlD00P QŚZ؀P\+= {D; F`HpK;L{+6p ZP~pžK( , 6:HFpb͜jBƬ"PܩMl31̥*&䜯0ϧڹެ|:`:@||"P 7U0 l8MܩCܩ!{0ѯ;ќZ>} ћZyl pp-[+`&t4Sͩ/}1{Zlr- h=VkP1[G.ЩҐ`KUWͩY~0o+H`X"p ۱ @} ~*ܠ ݝ*ͽԍ}ܨ`־=޼>MJzmi=뭫mSLwJ}#(."0Mp2К>};g8=k|@Sx x,.02>4^6~8. ⵻@ z2F^ @ pR>o 㰘 >:^9A hRq ?ޒi>@ t@ Rx20S~> An2 e^9a @ΣopnN E ~:Ap|괞ap<@^N H: ^ 0A@_>fEp9At^a0 nNSڎ>N 0AzM~2Q w0JI _QO.A4c?ޚ _p 8).1n2 `9dC^3J^P c .2NZ^t`J cN%Cζ~_<0r y_v*y2)wE'l_ pJON sKގ0'cJ~a$N__p N:Q>e' SBO QD-^ĘQF=~H%MDRJ-]SL5I(@=PEETR*cUTU^ŚUV]~VXIQ;=ST\uޭ%R~xX`… FXbƍ?{#0۶ZцWhҥMӍ -][lڵmƝ[n޽}vk `uev(}]t jdݽ^yiB)|w\PNC`0@M8 #x> ')XAǼ6C?쮼 ҒWd/0Fgk @wG3Ʉ)hD2I%G#d@2J)OD3P =\K/ɐ]G3D3M@L9!1yJ=!#PCESQG4P!nv94SM+f<5TQRDJ'B6eUꞱbQ"V[d3H,._\6ўQE6JfyUXie*+ʼ5[m-EwݮRp:\sAʧxU]wGe6PY7ߊR[nVoiE_n_ 7'PE-0U,]gFYTaTG>`g6Z`#ۺfπoR^yE8e]x>zwBětCqLdguf[X~gՑui'O[0Fgx`znepMm]m*fFKڹDp3 p.$Jp9}J8ǟ5{gy{Ycv\Xts|W %~W=yy}dD-L^M{@`ɣ[KE eJ5IXSG衎eP (luXkĀ:%P@tP73Ec 1(b % .06HAhJ61bhE85NMPy!Ê2>ƅ0#PG7Q}X?0lLp(ax %3!5bG - Ї0}0C<_IcCuc 0`PBn& b&`E S؄ר͉xdu cx0$:Q8nl8c813 "kH^b RQ"\CkMq h1!pXAVk4Ytß<|Lc?B S`L*ieQ4$ Lån ?Lma@Ϙִ }&LD;[7 Asx: 1"܂"1п\"X(Q 91!ٍL؆ sfYJ:9lGn[J8C mmp&1;uP׬mm ($a ~b>fl Ps;G0kmEp t;P*G*bR1/|9qAkAl>B cRs<7d ( BrL;a 8>66.cs:p9 lvU\psbh< 41ٵl8'hÍ!HG! q$B;l)F XG QnDPD(lf JGDžOQ6[-u sy:'}:A7  *!l-q'3dnyG?B!4 1܋NxUJ^h508hC?..`X2mpFpc`bAP=,]ٱ!!T|KpPCh>d >mV|sdhIP&4g蕩Ҫ$ ElmP:FOs%6nyk ALME7YC u}]: 1typц`ʵ#ܸ:!So>qAu C 䁏e⫼Hvboyg*^`l} xVJhEze آsacp0&Elu^rNbZ?|Tm3JWӕg[4?DsI(BZlgd5{O|~H7)NC%Ue_^NC|_}+^{V@(9H<;ɾ6;˳˻+A,? 92%@@Si鳿$rS+9?  ̈ C>l]@Sl ?!!,0e+[AA|@$AdA=" #D@$%l C)>C <@f?A>> CH?|9t?4\?kcmCC:S?LE?$t6Bl3>@iCkDgYNE{2DBZF.+9)VE+;DGk078Gi*Q ^` X>ŘGB{ \>}A~<@1kB8++^BetBW?=I/Fz !IP9^PMMR~<^X(un# QЄ65@u~hM(ۂwX,Q`M(<1^u'L0`y8~8<.Np tPzN!c8-Pܴ;1C$ɯAD | 8JZ60Sxm>^Є$Ș@lɔl1}Hn膄Ӈ:0IH-8If}0f-0m yhOtu؂ ؇mXS)7҇PE؇ 5z؜tpȿ@IHĄ 8o`!P f 1ƠH^ҍd/ KPRq#(1|JM0#9E<7/UnIw0!uLHЙ8:mt@tP~8 l %`mhqP#ą!w4\PDH(%E\^bx5EXs8}A("=JN mNC uzHVc@zJ ;r8Eyl- X|Ç qPK2~(; jh,Ef\$$c}}K&}`>-@QҢ\];xF[II 3wptm'+-O_K'dH 5MؚTGu6+inHD؇‡huŒy|MzL'K%MYXE6JDP'qZ1UDN,UC\]5T!${;6`|hO9E7u136` g0Sr%P R3\~]^y+}-PH̆}PqmH$@@[ ؽXPhspe(tݎs`.5zPA-= n8AxCZ%@ubHE\-nx ۶:}}ʩ%Fl>^^04zڂ5b5#MoHϿlYy5^(7!TPl ~; 0>p|.wӫxI\݆]Ll J*omKVIdFvaR(Rb[,io7z^z#+p=J8g5P󵭓suw6z=1` *b~Ht mE%:X^x$F5\(JP\t@s#Y.E.fh}HUeGI\MdJN URIe_v4&h^. T|hڇA0bc (bghD`\ @_[PzN5AЇl3!q xh fz!>e8T䭼ud^Hj}E?Z^PI iugE5xMyPQX/i&P~p!M> 6^0 ^~XN +~Hh~D.1bX@8XI%`l~X:0\bQ06k&0m>X@gU[BMIDY@[@ $FD4ȅ HxAh}\֍en[رܐE,ã HoS>(ކe>ND$d8AbY Jp6w,VJ,Jl|Eon܈ \(^@o]MA'DEa;AG[% q^`yI`ParqİpDJp>j>g€ā5xv!oAfrp*7fO_=o7OBWő 2wrA ;@X/Wop~sd>,DIk3Os`tBktaArQG$OgCGQ9lquZ@_ft rbg/psSgTw@n`AI~X{0w0pj;BΓ>?/@ v],vwGĐpVgoȐmxmw}_ Xsoxbtv8O6l#H!-L${*Wl7'O`&N t&РB-j(ҤJ2m&}Ju*֪X]UkWWZjWhϢ%ٰ`JWxu wnߵa-l*,Di1xM&72̚7s3ТGLj0{ZYزgӮm6ܺJ)ԧ8c)+ʗ3o9toQIM:;Ǔ/ofc}*'ӯo>ݦJ~x Bw; 2!,(x!jSwa>@%~)" 6CdH|-#=.7Ar>*$MnFC3Q6M`X FJNj%]TAavq&y&m/q6_)ؙyYA>y(~JA%vH;Zz) Ґ)/ 1 t*J53p:,vPDFlJ%jс--ЀP@ӊ;.oV bRp6rڻ!Hm-MB +̡;'\4/.|1 Jy/X1%hCd+La21@> ɼ3ё1p˒ }4I+4M;4Ms3ՉXAj5(-pa=6e}6i}URJEQ_}7yvo}{ >8e7^8}x_!X 9T + B bہ :D-,TӃKi|P U@.9搆MZ1 Kyyس aؤ0DԐD-qd`B v:E뎗iy61P!M6HV$Tc}`?&Z$P! <@olF؊p` sإq؃*(=Am^E @U ǹIy`>i#l8!d8|C!t>0g[P 6G"eL q9IÏ Hb;c3# @ @a 8%*q4L A ZElV $Lwe&pX%/e2ɀ,8 A@t@Dd&0P `0lA.V3ZLCdL?16Ѕ 0`i 5(0tSL;Op6`H& <|) &x6ahuH0{D dH`EAP`\b^E'h!#a `}%gd]لCEι~iتXPa`E悹`'lAVQ /ܭkK.`F_vհb `,TaZ1,@ .Z ota bQDxjod`|tdC5 .YKw3jK,D@ GHM"u+6liEl[sUػ=ԀyKC00$]ZES̜B[@C6 xl~7Ta P7 @؊`*n-sylV2k..f>ڸ/ͥ3 *Ԣv3<.~2^!uy-CBE;u}3INPhCsq4!QfDEK쑉`խfc Yֲ5o\׾vCf)@xbeobd~6!@8#H4 hP BV()c) sCNh5 EW\߄@X kТ Z'"^xbqq8gxu9掂4w ~H_ a39E$0{ ]k:֓ l!'Hd1N$w d7;ic f=D:AѬ}4m\{JO4v/y'0^L )Cc"P S ѳ^1hVXWĮ=/?>{$75Ru RX7s>/??ӯĘƺ.'TDe~{al  &. 6> FN n/\h(YC. ]!- / Ơ ֠   /` -TRAE3-vCPt Vn!v~!> ` yL\;v|QPBA!!  B#TPX8tM8@DŽ ;a~"((bz "*K)\N;eR1$B /"0#.Z` ⹄2@0-:.) )^#6f6z)Z! AFS?X 1 #<ƣ %J@'Hp0B@jFA;"=HHڣRB"m$gl"8!B2$M֤MvC7%$!@fB~=R.%S IbRn:KH^%fLfM~%X%I>TRVʆ4 eY6%\ƥ\S!B/*eh""H"C' ?h>H2bs>L {^(G:x&*A ԁ3$ &/tC 'ԃp7.$/?p>$Fegn:(X#77hJ`–b7`(/p; cx?bb[_&( 0/ :$ jX¬C/%h ( 9`>(B'l*(j,ì ڪA %A (B!»J (>0%$j?" "&1C ԃ" $gƩN) >E Zf*?H."(): :>l"l,;0)=8C6>.8 7)B$3D6(/C 3l(,-1,>CL9)">:Ш`/Cd\-/h1HB?hlA< lC<A6B= A 3,3Ȃ njWBS䦨n;?ԁ1?*/.%h6ȃrȃ&C:C=RB?@( .h983?(A((B:\>B;C= <B/ͪX/>tC/h9<̃G3(8:`ÞAo/<;&h8(</A:xCp7> kC(j ,2_i v18.83$7(.n%%xd o%p $8`>B% LR"lC=hrjŒ`)Öv:>+(<$B!%8=0`6`8-GcB?dl99&b @B p&8 3hB Ԁn63.(PB"p" _bjZB:! _i ȃ,0C0Co,nȺ"x.],l(~u r6EaL>ֵ,C I˂3,v*g!%xCu]*-:x1`6]BkB@CIB8)֠5'6&V7q*v,T`(0 q ўb"hBB2!hEsA:pCC H3C%%N1)+/,)+;=(dt›oj>DZ h/iKvrX @"=v![l'L2/CWy:gzfEsK.iB蠢928h$?(?(%C$Ȁ8A.Ӭ:?n9$("),@C b"pS8``(B:8"S'lC@Nv zQqcŢ,J8%<;="?%6 ‡rC({(ă"\B:I,A(d?<2u BӃ ": 3lB?#l=_y!9oA/݇:Jo9w`C)T})s~O$C/`30 ז@f˺B&:EvZ(C{Z&hA=tB ` h=<:'wC=8!`cBQw$hʩ(00AP_('AԃA}=,X=@&&۲:8n!QۢAT'I0dI^'ODY1Q<)=7qԹgO?:hQG&UigVdʄ9eԖUW|irjLf˨cǒےֵb˚-Zo^]eWa粜o ikqcǏ!G IčF-6;0L.0HM8J?E D IDo9ƒF O<%jR8O@QMUU,s0,U,3|A T /N$6DCI$ngֱAAC[R37uR:L\S%R{ ݸH̐71]Wv5C664` |98_j1ь5wGn^\utsZRK5㟁~7صd@2S(K6CuT bsϘ#1+c9/̑6rr[M=[pY.VnQߥMZܦg$xA3VTvuaeL:^~,>G9{lt\ٗ[ǬGF43\ ;ҽ -P㹜O?}К?Bb#^|u_1LT a6{ޒYHƃG1`FBz3Ois٦vcd5 =IzB%2hX%Ian`NT0-LtW[_nsz>`k?E%a,aۚۤ,^;ijť)Xl7yL (x2THi|B>:ҭNc7oF`FE H<]N^[⨷y'90 .w`0Sa5nA_-v:jiu Ծb(U?ceQqJiP!7Bq8"&YLbY, E Ge϶ &ȁӴ IhQ\X'Ry$,?j?ʨ=1ڿ3Hp#Ge't΂՞ǨS“M)- TR2=AҪa])'A*HY>S\]] H(`e5+3Ίmuf-+Z ul=kZz׵uo+_5zl^KU`ZX tdQHl^ T-hGZҎ6u-iMZӞ-mkZ-n[=n*m[minpo+[n7w^;qU__ac_local_roles__q}q Umatq ]q UOwnerq asU__name__q U Dnewhtml.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqM%UheightqMfu. ii((U OFS.ImageqUImageqtqNt.}q(UsizeqL26795L UdataqThJFIFHHCreated with The GIMPC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222}&"R!1AQTU"2aq6Rrt#34BSs$5bCDc%7EdA R1Q!ASTq345ar"2BDbC#$ ?݋cv $*Ajⵟe_p'ŪѸ q#vCj*7Dx@Ѿ|nԹpyF;]o7j{Ν+^4o;p|ۇ.nn3^OܶCucLūFr^4o;p|ۇ.muXu]&j Ͼ? h>vIF\~87mQuX)6Q;p'F^ԚmVGMu١ѹI\ݺ7hﯚԆ a\dGW6Dr {%ǕFit+]Ï;q,E`WG ԝ@8,5D4מhi6{EjޮtÏap7 uIJ-apkraqV+6>5Ml;֝ù.kYv&948bgBw[uKoZ绥sV(H93;s]zӺw?7s2fX#DwfwNa|޵|3]"L>#DwfwNa|޵|3]>vrv]ܻew[uKoZ֞nx?]ihw.}ù.il;ֵt?<3]霝hw.]ù.il;ֵt?<3]霝hw.]ù.il;ֵt?<3]霝hw.]y.j-085+si"V]!ETf\FlյkMV(x:KdrMӣ1P"&&6\ 9N(rbp""}iğe_p'ŪOgZ:Ю m*PҦ=čI^[+KWZ)4Ȣ|Jq|nؽdÍ,g7L191CbSv׼67 q<;TQ5vA iU\eE +xvlԋW:ڍ>' |) XT5ir.cn * q J.GƎ=D핖[~-Xl&!YMTj!?/-q/lEs" ѥ?E/9]գJ~_r-_RmBNՔw6SRǻ}g),6oV?/shy>Jǥ8<7OMVxy+dȬ4k)t;}P&Q(0kl ͐Ik]B{siK%h y2\?+h%{SFj̆V=fKZۛ[+b,<ʟt:R%qo){C̩C;CCU"Q ͡T'shy>u*J!򗹴<ʟt:<ʟt:R%ˋyKeOIeOoRDqo){CC;C̩CU"Q ͡Tԝ͡TԪ(\[^*}N:}UHC.-/shy>u'shy>u*J!򗹴<ʟt:<ʟt:R%ˋyKgOIeOJeżm2m2TD2R6SRw6RDqo){C̩MN:}UHC.-/shy>u'shy>u*J!򗹴<ʟt:<ʟt:R%ˋyKgOIeOJeżm2m2TD2R6R{'R#E& BYu.hvu~h!^0O?HUv#7")+""e_pϱ'ūf-gW/Ijָ44U4 Mv/yF[(j]kdc%529S2xJJun%rȭG(pupl〿KZ\Y:[56_m2IK\qR [)^59mϛ.)q"ڈkKơ1^0;,KHԲ4J&$h8fBKXklYmaYkCYMZ֧[*Gp^1lEI+FĿwV)/!27}J>_Dak++Xc05$z k?^SELyll6 [L9B%Xnu\ qVG*FT vt)91ťpFoVfhpU$sNJig^3Q2( YĒ"x .=Ӥ񙤾M*kUjG1oqAAMA$.W0ArCچ& [/# /{1yŊQL:*^׻U{B`6JPIT0he 1퇶-YѫX022to s*as\PCgzXMAq@ m ń虧HblƆ8\\#5WSOS+\_5rd| f1IE3I s&8 4滂v1 6QU5mihL# 6Aql`l4K%#Llf]̀r( CjR ߁)d("52UB!:h:HzQPYQ#w.2'$KQL!}M@89l@]/@ȍqpT!(egZ=ǍZ'u]@j 3v_ɲD)aiv | Gm*i+"7/-p%vl>G6QE7-GbRbdD"{I(F׿Wz)HkF6n@^Eu1dFDf:/7bM|L51kJ.=\"k=xl֢4^5f>'5444W1nKPCR %htKf-PuŬvg8**MTbM`KLH{] fF0laÒq*AjCQۇVė 9mgyiuK[`FY͋=X3#IҀLj>9ssŅכjVOOx"v=͵}jGbP* [ɰ6fG5<-ƺͽ7<\\H jYP\&ոۚ/U[@h`t9Mr$$H6Vr6g/"1:3#ug7\\ f=nߦԍK +_PFg2 ÃMm>n ٞ~L#M0! .m-:%jYdIi8L\mldTi.NyCv#\5[l/*-L,:#ǵY_XL{#Ljg! $Ap?kh7:B@xv8 HT#YڂҬ*gM! Q)eYx"jj .a@^*jZ* @JHs<+Ҷ0Ru5 }dQ;[ :Ѷֹ1%ppU1l>v`6^1ZHp6=~*":ͳgY*gkڤnRmː>8j^|is.<06 .~#%J>+%k}+& -0V`)-mf-m9sKo*->KۥfgvBT'h*t;ϛaD@Zϲ8gؓճN$QiL\~_ќX& ^q,R<;%tj\tE%σ* îӬ2; sUt`q;;*m_)#fK9*'SF5нIF*AJQUYmiE{8)nշ<ۨ<]omo2X-釅(qk,} m7j}Q, ..~-\̆B5Ǝ;2i$-`I cY1 #"ţz[Ʌ&t؈6"< DDL,)T-W" """ """ """ """ """ ""}i>ğe_p'ŪOgZ:ԐC869NVUj䂓P]ĦTmrt 5l׽L,B۪iMb0 ,HY^fO7͊*ҧB?:LlDtD@•L,"a/d .Jɛ ,`=Jdy㡑tnq"-YfD ~,Ӭh«C~'-MB$~бZ0h?.It?;~.UIi60 S$0 ߞ~'/i <8I g>KQ˿=GR1ON[)K[u)LtQ))Z0 ߞ;n'-ʣI $KBw `˿=GUw1ON_)KS2{BҊaOhL.~]:Rw1O\4t=3@9w[)I?rҊIQ0I ˿=GU1ON[)K#2{BwQ')0 ߞ;n'-gJ)LСM7dF]uo/EbԹMONd 2g `˿=GS1ON[)K7l{B4KzBgmFsQ]hLSR~d(ˤ01оv0 ߞ~'/ʎzvLXR"x3@w._)It?rC Dܖ^GJ) >0 ߞ{n'-MҊrp2{B/ s#@w~[)It?rzv eSǤqKn[F\uO/EbԹk{BvnOhL.~]:Rw1O\4У5=d0 ߞ0)arBX]r%s+2]Wga䛓OgdF1*PԽnYrHĢ\lP" -gW/Ijً_JkdtngWX{Лu.hQ:.9W!!Kuuxz{b%Ĝ63Pouon|>ˆi&pwڼ?=lF7z6܎%4W4AF2Mw:&57mn#ѵ &a1\ud`efA5GV|#V [agc-A( G`J{U9ûZJ^/A]L k-bƙ qe&ҕ)Ô\ :lDn""gfya{ DlP*`;\ɤJMoг.lƿigZ䮃8cF JʪٗT0KxgC5Mu(.vX)[$`;5]=4lfL_26(!8eUрr DW3Үf9ų8;]ĤҸ56BHs^oS١(mk*('R R]Be-(Q%A 'ઽb|{k!c۟?(1A׸* F.Tkm۠#!K]DgI'WWh\{Y ͊L/Lڦm RAA$c^֝ ͶRE5UNlBx"ZY jx)MJk@)/d#IE.W*fL-*I2A%u{&`gvLh-9>3ޞt2∋lD@X?x=-\Tr4 |8u;_G!*jJLRjlU3x΍eh,0Cﺯ"u1z&ۏ<~Is_Ԭ;h=֥9p0L,ob^E6USE &d$m .C .>31q:L^UQKE[{b8UZ;.5f "ʅ3lZ#fkD@•L,"a@\ .lƉ,]'ga{67qUJ= -/`{lm\Ӛ4[Ǜ-gZy7(ISX= Tu+r[?FBCHjJ؅%00tTrVJjs45!?UZ' Yu% k¡ -EH#4GFHN l7<[ծj*%dqắ֙ ^u!e=9 S?D 5 h h,,Cckl۱{D_Rԟyw0XcR}a+"f@""gfya{ DlP*`~s>=v5]1ga{>+j԰s Sz=[<'|vE{)q 66Q-3!lFfu6WХ6$. % 8( > ۉ.D2 R0zz ) b N_xT:\Ir^MwriuZKIu&j3P5K\mT.55ەePU2MCTE0vGڭ"SñMHQBzq~ !k6))i*"f lT֨Xr}JW *l<0RL'kzRq< {^FkKomʳ"/@v_G.F'ehtSj|iUu}̃daNe1Ui cU Ь4bqgM>-TgP+4s Z=Q .ᬿi)S2MqA_G_G^3pn8ׅ3%fW"9Vu wF66$s48=ڌe=?na059q,3^AhUdtFAVE[Hf@%,c^faR`F &7PI.RZ cױ);<+0ݣFNwh-9>3ޞt2∋lD@Xh,x0N֖jHYbMޙ#"/jf)јOzNMOֳZ7ۏ` !97C<CrnZ30nۏ` !97C<CrnZ30nۏ` !97C<CrnZ30nۏZ{{N9-^8[3uDV$9&E27nDR`S3 U3+1 C6OWA`_1ՈLmڲAV:2i*^-&WhϥXX|r#MHhހ3 bI5g>rcGQ6p jDBY1{J+sXC.}ؘeC\9 brI$|!NQ41ɩ&":)qڬ,yv_O]DKN{3دAVKtHH2 5tdHabMjA>-1=䕶x* Bx^ӑ1fc*-[eÉ|Q`vbPZNI)kmY4|׋E:4 |o7׿z1-Frq $bd`Ե2<4XÂZM3ޞt2∋lD@V_ɣ?5qV_ɣ?4d=J"*I""" ""gfya{ DlP*`~⹇H[]S]=ga{>+~kSz=RSbebU1TSG<.di`&UdAc3aT}$iyd-2@?5gH64ؒQv$B3f-[?]aѩ\/hUqGGBhz' #/mf"jkd5#ĩE6<0xGFܵ{V٫*c4.!vze(q@m]zTSRSKUSP`=&ưlL_,H׸3-IE{6d(1an!La89H7Ev 94EH+y?+(tz1j:?ikS9sĭϡs~bZP&(6c,naÖ`o샍S]$ )!c{4f͏aF OuXyKYI&+I:v%\I$ JC%d|Zyn)mdR&y/*9)$Keob'YUL4GPȩ"`y.$7 ǝd}Hth)hsxn8kN<*wfiE)'XSU06-'i/N׫-.{ak*Aiqkv Jw*o{jJ|*aڈdvsǞvyhvOA3dpZ^빯}$FċꓑWGd `Rp$rpNMGtJ#N$7{V 9FKi’)$[r7KWCWx3S!YsGALmY#( ќa*s ݺ4zk^\mx""" ݋4zg*݋4zg指DEI!D@DDD@•L,"a@\ г-Q`T+HT ga{>+8L U8c͚/Bݔ~nhVP)"@6˄a&5+(喖Nuq u*76=4QGTlֵmËR%dmI]A4%&;2Ykcqo-Q(Ѻm"fYq{}%#Sp`}ƬNe^G+s,EĆ ^sۛ*=:RI:Vym{}-!@b++kmI#/ZbulQ tn$dk2PɏvQH9e%u6vH>N8M_'y*vN[)B.\Zދz Y|Mog|/l=fxo%O $u [^ɨݨZFaJZ^F]ŵ:dY ;-eu5 `ՍŖ7c|㴳 Jb;w8$o HǃfbfCCvհ!C l-wӵ#`[Xps,r2amMgG$qYx/i=JeU[uSZ2To+ƸzH jADOl* b9p^jZF%ŔTbe偭'&q{۔nq[4@G)Yd))PPNİ qm KN*p)^?L(dZcYK[2JI+@7eh.]4ӝY㝗PGG!s:΍u$D[G""bMޙbMޙ!*QRHDDD@DD3 KK5v&ĂdZHD(-xo/M2%K>GlW}ıdRI+)]c{gyʙd oϭ{ɚ2Yb7FF~(lqK$[%l*3nȤ1! 7 f8լU?(KZI5c*Ztv-ORJ!U8Ñ|G zD%OA%$C{p&'Xֳb ^J*0m7 csόr!I {] @>) 6j=j \=jM"Jfdy#xYFe4tBLb9u_R pŦyT2SYC$ڭh*!4lafqqFM*|<{2b"uvr Oj *M .`fZKS_Rډc,6 ; a5T IΖ> Qұko|*Zl֓ V(f % }-tqzBc f)ԚB|rox.ph(aYPx};-n:sC҈c45x+QB j%lL.rl.^3ؽfb͈Z6Ǩǻ/ c_?/QDǾ@5eKeU`G`qPcQE ,nt1!S*eI.p=!ek"n ڠe}Z plNN`縸fG+Ǎ}P@m0$ ɹR㑪}>jp5/ 1lZ[ h.omn't~{]oOwYzrDEyЈ" +v/韚v/韚2¥$D@DDD@S3 U3(c Niڙ rc&4Z2X0evw?RUcğb!.koRאMG0Z2iTt'}B^lt1;@HZ4UmLexFb؋)jjt^w.2NQ,ZxemN\%m+aXtSxKH-L4J;2ވNP31IUWFԘ%0b1x̓ۗ(+fB9--׻#*Kpx9QJBlXblZ4H<8Eh,CCp$ :ۗҭWt~por?rhqMtLsxH(DvB-i^ɥQ h&~.iOA׶+P$ŬGYb'-yAuP6H;nV0 g8 bFשoM_~N! 9fc&=P*Sp x*QQQ%}EPH?i.P -"gbM#Ќwspj@+ f`?xoīF&S 4Վs$ .-XZ7J'F4-=Y$owJbU^S4C6%HgfC*8u_W;^.yvOeR2Ll'CXphr8~n2wtJ@]e yAjrh 1SC~Z?Q4i9kGZ#,+R`ݪ\-UK0{/^CĎ!Mq}ꜱ㺐s||ESdcOV=>U5TSE+%I:+ouIUSc";h*1@8:9:W@n ?Tִlc [S"&Cvm eT]a\P87fx?i =)t.q!y ?ܼ_!:ASR("]b-qkT."\m vIl'SD#UTpY[ÎFTDpA-'HpzάG$Qֱ̭_.H\8baؕ;E,'62R& &0W5AR$qǒNjv%+A;?VTW젟(l*GIO+so"noU \e*R8$v43Ugt?wkٺ;"4ܥch;Ah74-v;EELn20l *S\ME{BZg}RǸkm$Qt hoauWr, x+T`."-UK0{/]KOW>2nA[<@S}6SMGGCw2 2}j<"HPt ܑ{D5Bfb%Upc֚؄}U:R*){xp#^,Ω?Ssmet8MHNœF(IL!xr 3!3ONf gob6f H>pq4(8< A靬K#0Ǽ:Ao2mM-Ђu-Ṕ(m3~ ߽oZT/dˈ %mycz%@K?^Ydj-Bv܀GF@(KTJyrM`gQ&ĂrRxaB;_ڀDZ۷}kݣo6P|J h.|]OwYqDEyЈ" +v/韚v/韚2¥$D@DDD@S3 U3JS{_johJd$[ҡw'" X#J?ӝb}^ S!CO*bHsP.: ,)u(،P#QP@vIB2~\yr '}*HIqP.r|$xPMOkk)K )$Xz)"Fʀq_ULZ7%ASorT3$Zs|ޕ+r(,3ր3>-W 6H$~E?: rzP\f;|A>ݞ#a~EmTrbt&5NR;}PPh.f%lL`GG!hIўu$D[g""bMޙbMޙ!*QRHDDD@DD3!fDDD@DDD@DDD@DDD@DDD@DD[&L[&Lѐ($""" ""XRv7  1DZ v@S me2t>#oʞ#oʶ7ψ5G$`HXikjܝb'.k}w֪D1 hurfJ7'*M6MM-UK%|pya6-p_qW6rI]lk+K֜j?#Kҟ~%룜D& rӺz7ndpa`n`Ϗe#oRiz)ӕRIl|Fƺ]k KO KV&n9ψKsR>v|R>vu&bflt>#oʞ#oʙ65\T]*xT]*f&nψKsR>v|R>v|k>#c].υH%H%ԙ65\T]*xT]Ik>#c].υH%H%bflt>#oʞ#oʙ65\T]*xT]*f&nψKsR>vu'H%bflt>#oʞ#oʙ65\T]IR>v|k>#c].υH%H%bflt>#oRxT]*f&nψKsR>v|R>v|k>#c].υH%H%ԙ65\T]*xT]*f&nψz= wC]kmWE[M:3npADDm\EH*I&mW$@[~A | WXd| NߣPoZ"d| NߣPoZ"d| NߣPoZ"d| NߣPoZ"d| NߣPoZ"d| NߣPoZ"d| X NE#vcO Y@bLdp8w5|}NѫD[cru<wk>hYetE"Xr& O#Fϻ)5|}]aȖ=S~ѫv_5vWDXr%"ipb9ߴjWgݕaȚc5<wk>hYetE"Xr& O#Fϻ)5|}]aȖ=S~ѫv_5vWDXr%"ipb9ߴjWgݕaȚc5<wk>hYetE"Xr& O#Fϻ)5|}]aȖ=S~ѫv_5vWDXr%"ipb9ߴjWgݕaȚc5<wk>hYetE"Xr& O#Fϻ)5|}]aȖ=S~ѫv_5vWDXr%"ipb9ߴjWgݕaȚc5<wk>hYetE"Xr& O#Fϻ)5|}]aȖ=S~ѫv_5vWDXr%"ipb9ߴjWgݕaȚc5<wk>hYetE"Xr& O#2F9ד' (jSlJ7qDXD@qU__ac_local_roles__q}q Umatq ]q UOwnerq asU__name__q U capture.jpgqU content_typeqU image/jpegqUtitleqUU preconditionqUUwidthqM&UheightqM}u. ipm((U OFS.ImageqUImageqtqNt.}q(UsizeqL28554L UdataqToGIF89a2!,2     #) # + / 3;>!&!,(.$3*5*:2;? ###,,,333<<<.@1D5I;D8N;R?XC!J%O(S)[-^/_0d2k5o8s9y<CNEPB[HTMYQ^FaIeLjUbPoXf[jSrWxZ|`ocsk| @CCCKKKSSS[[[cccjjjsss|||]`dnjnrvzp}ux| B"E$H$J&M(O(P(Q+U,X-Y.]0_0`0a2e $$++44;;BBJJRR\\bbjjss{{ H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`fp'c3IL{mBSպmKT[φ˷߿<;4qC3TkpXQ+T 2NB,5VSCǙJ;䂘%!崧'cKĦ]׶L'Mc;A6( pd<)ŏK<3EX*zOyy Q . }kڱջǍXǺ㇇?~Ի|hF| 6F(Vhfv ($h(,0(4h8<@@ơIA&E֠PF)%9Xf\@Mp &dihlYfD"tix|矀*sB%`?* A!@(AP$IQIJ^@A.) FpJp b`&̐)aI)@j20d~TMEE&T@.+o&鈝 &V,N Ci(QPe*ن44üZcDBilHBn? tLPHPG+tLȄB I`b `"76Zi p$fq0Cd9DDH (ǿWI@##̉Bĉo Hو碇Nih&Y/0]oȠу"ፎ )@ ȗ %8!wxؗ%BdCɌ eHyQRaRЧ8ow0v0vTK0| %EIXd )2DI h U(!LR2U&;(l @t`hФHMTȴ{)EC`9HBx(%)YHrN tpNE4)E*(xs/Ǽ$u nC@ 13OưS14 51(aL*)q\;Z8@ Lu0z)m:>)IE)'.@jxBJ׺&R`Ii&)'bS)mB*c.(5Hc('7I̬]7Y54,zmhGKB(jۅκl^IKrJmL{ZHv](aKR_ m\%qCmpk&`ָͮ6}.tZꚗLծz׻]|KoMܫ/L#DN;m0'LarJ{GGLeWbBq0J[L۸Px}cB•e$$LH1O6s ^BFl`Y$:#~#.E{L>dt#0?Ab%I詏* Qg6ZOTi Ϡ~ aEZ.Ci99@.'J#ml:VɨKg9O(vHPHaFu$@b4wJ]يA*wzmI[K2l vM v6;x[Oac;"_'և[gP5%Zgs5kB[t7 'CPv2ɋDF4 \K]ED E2] ~+s5<?(fY$֐fDs9!a>@6ۗpPoo u]9o$9 Rwd!ջy"pAu湗x|D,wp/ӺO'=>lGA# `H tH]L߼O'Z$P+#$4 eD(&012t^ wb`;?`gj9Hd, M+T$TNAҏI"f*2%dp2c*2j()3(4c+KE"!"P5L4]8>LA4aBIRLRC"P4cԵ{EI'%`qt#'fxfG'%Ugk\(;Exn )p ))w%eqpMTnRJ`$X2JB-TD1200-+&M,@ IEPn0S$r.p-ep,LOX$"1ނ8LV\K@< @":Ll:3լʌ L,D L @81EGAWO&yP$I`&8pfY$Иc&S$a@t~me5m0;9ss]K?pȉ$RrrȾ㠵FCl@UŒQjԜ+,8UV`&P$&0Bt&|+fR )]})pЏAUIvl%# [h^jmS9?!]tMY%Y'a)gm'WPRvyFPG|ך\C*$+BMm&&Yi"6Bjbdb Ip QoJ%wrwj܆D8< ObIHy%̾@>l-.E7M NY@&&Nn8.d)xi9%< .QȵEb@@̝E2SP׍C~-b AM.sU&'g2Ehb0j8~&:jEvx*هL.7eH]JZM䟝P^ׂ:{Vp 崞kg뷮>>(CA{th'oW$8jhw$ivPFE'kjx{T[j'wWƎע#fE0vrG80U0D z mហE}0ufiV}&/8|8tq0zJwdv+ (ơUh `W0\Pn? O'U4/uF`Ud{wE`m~N0jY)?+H]nw.c?Eeo^iqlDrnONzn5=E2ydvjqV$peWGwzCv?C?iiXE.//o'w.'m2bYsHhERɹO5/w{?hgӃ/4'&mKsů| QoES//"EbuB?nw-u śW^}X`… FXbƍ?Yd9=VƜYfΝ=v{hҥMFhխ][vkֳmƝ[y\p޾G\ƙ?]tΩ_Ǟ]u۽~vw͟Gaݿ||ǟ_? @$p@ D@dpAA #pB +B 3,1DG$DOD1EWdE_$q>/o1=-Ϩ0 ո!<_%J+S*F*'Hb@Kd3a I &FZ&SL2Q&$j? ?1|F "M*.P`=Sł+փUӆh䠎`W TBEHXϢY/Y dֳcVxa D\.`D5$ Yh] m`D788 `:C|6ԕ wClCԀX^h1ʘaI{Al!RD% @8ZhyjK|9BC*4АM A k IșA:zhY>@ʇ+0 `( J">GzhhVHᎂzve rh:* a a(oWuoM D%+`@@!G`_5*0 AgaE2`Ȁ{/!G?>F͠6J(b!G4zġg葌faШ;p"^ O#a$ r\pԟ\jڮ`@t4\$0BJAء (Yİ28"$ 1\ZȐĴ/CPQ@CFא$Jd 遵a4DYj`j@2ьgDQȍocӌwcD-p<9HBrHFL 9IJV,M"IN񑐔$|#(,ʡ4}CrŔ?@ &8)Dd]FD! hP"3xlDbH:yOR=[1bx y3eDeBLԹaꇷ4H `-fhW_'BIWHz@:)˃}ic .?f$ƉH `2Ay*:h1w+9/O DH(IRJD` L2CLב iMH `"BT WérdR*XRjY=Auaښժ*bMY !j}Lj`[052ebXgl^a9 ]lf5 Ʀm`+kYдEmjUZֵֶmle;[ mn#Tַnp;\׸Enr\6׹υnt;]V׺nv]v׻ox;^׼Eozջ^׽o|;_׾o~_׿p<`Fp`7p%Ą7~|3_͇|Gӷ~OG"`Gտ~G?b7;83zd"Njb$8Ȳ?*?Sd@?,1Z8Q hd::1T  h2ء A8vH7 B%88ppCp!1\Kh5dC6|,B)s ̂&'l  )*1> >gCDDdEC@ )$q)H $TB 3YE2 _E.)&.EX&@÷Y!BdH6pd7CqvJ .Q!-#Q(\y.J(%eR y46SFE!LPXIH#N#ol?MY@;?TeQ= $N-6FzS 5\@TDΝ|?*MK*U[#/Cu^U@r`U Pm\5V4UH-U_uqDt"O 0X*(p b-2=wmdeU}{M?`U/`,0`GN:x+ly⛅E`WpWxXjV|מִxR@WOXX VѸ،aB(MlЁ<@?=8Z@!0Ѐ!؃Z 8ZE? СJ*XHk`ӈ0xbٺ"}%ph hmx 5\̭E]nH:  -/1޹ӟ P?=hJU?チmMe՛U؄h2t|t-[GH(GТQ J؉*HJ0NB8$‡&q2J$1hDȲ]FJ-@BT` a^;IGm]+;j*@׆Ȁˆ)PՂ`p(LfA!B1R6Po!'F/`GS5Lm^IhMUOaQ[C=~' DKDJ{d8Ȇa*.޹K VDAFJh P?!hDp<``=?YZn[#hVE$%M6@8G&PtfȚ@m^@^@= ^ q~?tVg!egw"H[Dۆ(QdQe f.#eq 8D-L p,~nU{؏=fh5i؏vV}+F>N毕f^uii iciU^L _iIVuꬎ4jq4[fj>Jj 뱶j^Uf/n6|kVjC?~/5ZmX}]͕\u\m&mFVvmіmEAז&npfFnSFvnӃ&nѳno6o1C2?bo[=oِ'אivpRpVl pJp GhpGM ' H **Ph*8ӂ"]y@ |@Gg08 j u Ϙ8J"qG/uxGWoݛHhr "p܈@%@?ba_q2 3 H?((؀p% E/\݈;PPsHg=!#JJ-u-"X'uVo"s *uIGu-k0tPA߈( !VY/ag,bԂ0?U@̚i7j Hre)6x_ Wyt}bgGF+v x׆>UWx`ru^'\A C(%0E?]OoAmE Cn<hwy`]Eb:K)ygůO񷏠gyh _j_ji'|{ow|pgGb|2D|ʇſ{O||jO Hx*!,'v{.e\4}@g") Gn_@[ ~.X~٢hH0\Q0ч_`?%%__N'h940tDψgtSAwuTv E*h`;0 $#8zB@7r1""G,i$ʔ*Wl%̘2gҬi&Μ:wsda % }ivRYiт f5!VG&Etခ]HBA}]X`؅/.l0ĊK.ҏ?$ iCGy۵n\ P֠hT/DQ1nw7‡c !0G-_H6:n PwL$jأBA&n>z>iE v$`!D95DGU`H`Q7"%x"GxX`YE FEMT9e")*$M:IHETx {DeGTaFT=yh!HS!B 1de;)%r<' :(OQIF) b榨Z)Q(]ZiH(:꓆vz**p*Jz+鬽+8ժ+{l_,6;,J;-:{-ق -z-j;.-骻n.)7/{/// ~8=K8̐K>9[~9k9 9衋>:饛o.Ξ>;I;kp1<<+<;>WB߳@.+{APJcV`ye< .?d!!„O$ '$^H 2!PJPf*rP'[B=CR`N!H#$!d1wC`yDTP<Q[Ȑ-J `0#@5() d" c·) cJ i %MZ҇D#%)cX UaB&. YC)%iDz?|: # c]c3.J|>|<8y61gPp2g0 `2! eVڀ5P3$R|>胂LX|z*@u@ b#$WqA&BZ lE A@T|Q0 ,ĂOT04a!PB̡ _$A bzY"${!%A%]&eWvc %%5e\ye``.&aF iT7*&c^@dv&P&Y&f8pg& &搦if|m"knNjަo2hp'qq'r&r.'s6s>'tFtN'uVu^'vfvn'wvw~'xx'yy'zz'{{'|Ƨ|'}֧}'~~''((&.(6>(FN(V^(fn(v~(((((ƨ(֨(樎(())&.)6>)FN)V^)fn)v~)))))Ʃ)֩)橞))**&.*6>*FN*V^*fn*v~***B&d'H«jB&Hj&K())*Ij&hBJ&j&f)l­ڼ*'D~BįD'BIdH(bkx«kJB'|+LꫦJ+w,H'ت&xB))j+)|BHhl&'JŠDnlHƊ,I>,I,,2,2~lHLlf'\Hr,2xl>,ΖM),HXk&+IkJ8vr-2hmϾ.ԪD&-ԊFْHhm&حHܚ~nڊDɶ- +FmwzؾjZ.n㮭 nBn.2Hn~ؒnz(LIīr'Bfmn:-ff>)jKdo:K8Ʈn&o^oofg..**nZ.o2o>oX~-Jpp^gvҢ)+k'x''- SI陼pIp&0ꆯ0 0 V/J0rn⮲oJO0v:-/Kxj햄^BqH8q&1JqK`qnoFp/Ip/?I0ЎD o0!w01nojkKLoKt.:+I8qIBD&.떯°n&%n *q;222((#I4*'oqخ:331bk3rI4,D43 pJ0BKj'22ς*'l(Tl'sb,-/)L&-I B3Hs0Js3J3:4HH4II4JJ4KK4LǴL4M״M4NN4OO4PP5QQ5R'R/5S7S?5T;M5UNToof gUwW5X]VEq%`%5[[5\\5]ϵ]5\D^5__6``6aa'6b5mnTD@_E]  h&h6ii6jj6lf4S~9TXy߀jppkool0)6q\fҥd̊GZ7x7xq l AmӈtO!_i&#Dw7wj7pH^q_yK5< T\@AuTXT X7T73 ~ign-%+#{XǁlpnI;wP݃|!e%$-L*Pn mBA]$yB>~$})0DSi3zA2jۗ!AT;}V3OٷCw #T$%~~ u7|s' =OؐOW6@`A&TaC !)b BPcEQP|DpA0Gƍ9~$hH(02țq":hQG&UiӦDTV+T*E6W)"* E ԌJZ8l5Wa ꊰ|J8UEwKQN!8([41??,[EO#=sꡮCumNHG#0QpBϡA:(Z)ω*i8d Zgtå얆AgGrҁkD*6PCO("(#!hhHȎ@%!k2tA q@R:+ʀC \DR1P|Z210`# +R4ʊ\H낊pX 711p dH+B17H@ȁb(Dp")h"p`<)ڳO`NϐG,TSd0RRբT 0ق".9D;6;=$..vpń= (.HZ& !Ha!/*hr䏙60cZvߍ@.̐ mWND(jŨh`1*2"3* T˅ p <#c7㐣 x 1&( zʍ"` džhSjP:BVOUSK.n.I DCDlVm \(~o3"_ P`@jP"ӑ5A= tC!*.V4yE1ѨܓÄ%[DQRrFaS]ԥ5LS:@+O}:ћH25QGӡ.20qiv՝U*="]RV# TњS^UAHp>̕vH f( x@!!\"xuw[XeU!WAڵtM%kE̚VՒtlUPR!ErP@qa3 ޶74qhU6WN(TW]6ԵMD|_$&8!#PD;AQ)JDK]5?TUk[OR .(Hs$P Ua\m] ^TDu+]2RaHP"3i|x%sib"/y*^q[S">h09X6YR8l!3Y2Hv3?f9gNQBqo: Tbm >Xiheaf7?.;,e g Ej, Ru " .7Lq}8ϙ XW,TWJ@$0<(C\YώZ\4CEm@ܽBq!! @h/6[%XnZcb&&5 i` *bҐ2@ @ ]YE|8 WLBDTk@BA@eg#s^Vϻ 4n B2Rɬaٻ @i]Y'XX E(ĝemB;EՑpBXPEf'ar*!e9 {:@ )!!?~xpf }+뭡> ER?xp =N0u^*f Φw90c)N|éRػj0` n9E& DW1#' Ys"fH~ 0߶o6NȠ"D*b/ ..*0*lj O*܀. oQ(*j9-`M@zϠEm*g ˊ`m~Wj)H@,jB*`&,"<*e"S 7)#Gvn9E nFPW$ 9Xm耋#p!J 0(Bb0E M/0*@- znE I3) #m9,A\(")B'z "H S ٌ *VBJV,2*;&b@kNJ뤅U/;H͜p{  @ZM r  pb&b/ 5pv6Nk)-`6EJ6!A iomXm%cr&Ynn/!#R ( X"j`,JDfP )ƒ6#R2ɴ Pr-'D߈L+Ǣbb0R 2 Q*\"f 6(ư2,r-% Ř#3B3!73G#s4U1,2'352O .s55h1IS4R-U37C)6}Ds61mSPS73X\7s*3:S8 7:-g92;"81k:8<-;3*3<8S=7-=S.>Q>糤> Ը3!9e?o<t@?[3A-4*AG@4TBϓBA/53TCC@E}K=K4AOE9AUT@]4Gs@cT?FQCo But2Et;{GFtH]4Il=~It,TJAJ;ͲTKNHtmL[TLJMNM״4LJ;NIFHTBᴹOCSP:0`R)R @.4uS9S=SAuSRITMTQ5UUuUYUWQa5VeuViVmVq5WuuWyW}W5XuXXX5YuYYY5ZuZZZ5[t[[u5\ɵ\չ5]u]f\]u[5^^u^5_Xu__y_v` VV`6ai`av6a%vb0b)b1N3vc9>-cA6dKcEdM6N6eUvPWe]2_6feHvfmfcguvgfygVyvhy|hg6iei6jjv6j6jjkikŶhnlvhlvmٶmm6nvnnӵ'2ovooo7pwp p p(m\?Puqqr)r%^)r9w7sus;wtsAW^tUwp0tUtW7vt][aWvqjco7w}"hwwwx_Tx1xwy[yUyxy7uQi "" @ApJ 7(`NUJ `r+J NǷ\#zzH"r#R@ %h8,$n %?: ow{+bNGi `؆)CzD"6!s*…?JB:VXj@s(" !("HX m΀׉U%ʎra#RpS-! ǂ̎!x @@ʚ؏gUz`Bi[s]:8;9Œ“iy*9#AՔÅ!"QHNٸxyυ#"`GU&|(1!49,' qyx؉`"ø+A8ǒR8 "Zu (bB.z՜7&#!8T ~(Bz+GﵠQ]b+b#8>j*"lZ~դ& :+ x#,mY>%c " GBҹ"Y!ycBIBE:[\!s>Z9b,*x!!3o­;{!;C-">!$f-*$l,}]Xa!xl" 7B":);"ZW!RL|9f`TS]tZ9n_h8:bB " <&\v% `NJBoHboKœ2o='Wģw[ƅ5ors\Ǚ{|u[ȇtC<ɝ|u-wɣk~8oy[!#V90s9]# "NE xI3};!;"`S:sh  KM3h᫟ >nϟw3?4~"7ߑ'"+>NkTs 6:E>? 0垧+?!?=>%ZYǎsZ &)BmY"@ <0aVAĉ#MAi"4FHFt2ʊ| 3̙4kڼ3Ν<{ 4СD=4ҥ0\ 5jɂ YUjO$hkTf< Ճ %<(ȫ!P,yn(7pʖL >8Ō;~ 9ST F57yְRj,p er),pݼ{ dBZ!Q"1$zE$HЈr` `P$tD Q8dn gE)!$\f]x#}hT^fB ]}@  tT@4j\9#A%ѥ5BPj%gފ+twU*կ.)UkDg!,J#=Ί^^mJm~ nFm枋ӊn-Kor ov p_opcXpOLq>qq toLr&/q*' s>r6:324 tsFkJ/"G? 5I3MuՄuZ߻^]bm`6df wNMwvߍwzw~ xNxx/x3ON9WykxzpNzsxzꪯ~謿{..{N>yO|}o|ʷ?uOO}W}_}}?gϾ/GX/,`Ph*&\3Jp?i /? bp ?>p! O=pS! _<p! o;p!H:D}X$.!Jl(R"h,Z0qd,ψ4qll("}8HTaƢΨH A5# qnAz04'DqP @^a \+H&" h[1QmLnT2sn&"/g 7oOA@"H w֦ ;%Dd0Riq!^]cbp]5[f\P ^0HZ#[6IB<,& |ܓbWH8,NFMc $h ckNo a˞ǜkA` MLӼp , p3 >L% p5t f]2I40& @I46a2Xp`&ůwRukyYpik @kx=:vτV./̆ b"?nϘp0 Ŏ †a C 2a^ )Apy.`M8ܜg Tn+ݬ,JX]=Ieհ`,a)5&7H X6fM Xb 2dv&9@AP< `%W@Hp0*&^[?˥q..8ip:xՏ{skJDpa}D{s$l}j2`4XX@Lg~ jl`xx1'W~HLfgf-I0UW&PUy\"^AzP P pp>X=XA b5 ggȄ3~Prt5q L}2I0}u^0cw}$~fVWL%&h98;u( X!aQp(ʥ[tWg"?zO G/T6{biU-NL'g%(Ŵ1 ֨I`06L%' p8=&lhLl}}8fE&`P-NIP)?]B~%?%Ga:(2y6-WAHoBpJ0^-Ln6L&tT)YL>0i=$uRe{:l@ID)L'iȔ48ؕA [0x8gf3$@*΂hc 'rxbtٜP;-0d%7 ьg> `Iha@:ٝn{b dNGJnPV!Vq.IYi8c6?p"#j%A\,F#qh0sTwF TQ)Q iYov̙19ggPxLbP5+0sud۴I=6P2S2O*$&$1oAR`@[rq(u*\Yg}`%@%5‘\$M*:IOMwɄ|O9xU)$ [0xU@)=x {Z(}~'a!+Qzwa}0 @gW %ך(PHqXh'XxLl0iŠ޺&i,/ooŕ%,,Ah+Ё,GA>+@ OQ2fJKg%V? +j/"[9*˲5$2Ka0ኳ6 W;KET:4K{pC[O{Q(+C:J˴W!N [OR+@T:Vc{ȵgO^H:b;W[BhKФoqk9uڱz+nMw>y;5[2+)k7dX,q+(D;!1hA0ڄh!4g0Lk k0m0{1/!Uv\?.`UUQՅ(g|ĄQ I+i4p|蚮ً>aJkM!5pGHd^Ąh{LFLf`ꈟk|>3T)UbT0%/%@i?v``*0vZR?0A@ ôx}Z.^PxǑ7qM,`pWfTbL)fdəDkWL,$L(|q W.l>fo Z=9` A 0e -+bp%Q/#<@͓pWUϒ* 0HgV|ͬ&&W0GeZͪI猃V0,=[ZI*lb%L0׉F\Ldp4`LfPJPV-ܹ!Qȏӏ`%zQDcaL1R%$iA( pck'S]3ZLj!!`=&cOIݮjp ] t6"י;Vh l׫{D*t(cb``E'lc0J0 |<>,?r>pcqvTa`%K[ߌp=9m Ses @]A^RזAӍۼmx*z+*p`$#tHkm=L,]IӁk@bA őTЬ(uvpA\)15'V"4 >\jr%1{Zx{VG\#l .#6{-GkR4(x$K|}Vs%@@YdL<~HFd?0/I(_0#!)& `mqq Pe^Pʕ^kAwy+]pqJNqx& ?PHo>qʠB [%7N v)0SEjI")r DĔW?E^jM.bAMҟs&]n5l)=?E9qc%M-`0BΨ0PDDrDi0Xf^U "/+FT0L#nR{ Am2466CA=FH@ ;F/,SOU$E[\Q^$`O;]f?Oh#jD%pMr>uw>B~/IYtoUh4?VLN%ϻ߻kO0 `+л/Oo׏ٯ/Oo/Oo$XA .dC%NXE5nG!E$YI)UdK1eΤYM9uOA%ZQI.eSQNZUYnWaŎ%[Yiծe[qΥ[]y_&\aĉ/fcȑ%O\e̙5ogСE&]iԩUfkرeϦ]mܹuo'^qɕ/gsѥO^uٵowŏ'_yկg{ϧ_}p@ 4@TpAtA#pB +B 3pC;CCqDK4DSTqE[tEcqFkFsqG{G rH"4H$TrI&tI(rJ*J,rK.K0sL24L4TsM6tM8sN:NO@tPB 5PDUtQFuQH#tRJ+RL3tSN;SPCuTRK5THTSUuUV[uUXcuVZkV\suW^{W`vXb5XdUvYfuYhvZjZlv[n֯! STARDIV 5.0 On;qU__ac_local_roles__q}q Umatq ]q UOwnerq asU__name__q Udescription.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqMUheightqM2u. i;((U OFS.ImageqUImageqtqNt.}q(UsizeqL15012L UdataqT:GIF89a      #)# , / 3:>!.%3(7*;? ###,,,444;;;.@2E4I8N=T?XC!K%O(S)[-^/_0b1k5o8t:{= ~?C]FaIeMkPoSsWxY| @CCCMMMUUU]]]dddkkksss{{{]`djnqux|!B"E$H$I&M(O(P(R*V,X,Y.\0_0`0a2e ""..44;;CCKKSS^^ddkkss{{!, H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+_μУKNسkνOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0ؓ4h8Z$ǧq)BsQ *i MŚB[+J;ڪʬiwriR[.Ao+[}k1*ݢK- Q:G>+Y)yAlWGF+FĕzǬ[c//Beo, A}Awi=4A& Q, QͥAwB>;fk6pڅrj'+XjlqM"Po ^5eۃ ۫go+9B~fk-5X@8۪xlOK|@xc+3:Zwxʸªoz\ od?+rC3ߡsc}GgC6vt:ǡ?k9};L f ܛ_H0mwi26 `3`F7> , ^B=N.vƻwYCb@S[`GzN7ԕ% R> W߄)+HC=<\C>V+_N4a7&#t!0?Ց-m>T BN9/ZV(@l"lT}I@{H\JBІ:D'JъZͨF7юz HGJҒ(MJWҖ0LgJӚ8ͩNwӞ@ PJԢHMRԦ:#:TJU'XͪVT"uƫ +kz i(*G?kp@' !ik~@X bz² <@drFC49HoyA*KvDhx1 &iҀ @r ag0Yb6n7Z9*d;I[v!jp& x u( $ B "׻@s܄@kq_R{M^4Z%[JL4mgY+aWlarF/tS}ͤo \kwŐA:`[^laM'F,ָvG0A6ܸlXG bV S> |s=ف6z-e R5ʧ9OAhܜL^7q򝣻Z83ZKe<:&tt4~ɮMg;v}N^"!u;c rUR'ԏަ!\?@_@`[# _xG]l2m!F4!=rw2m!yGsg*Np{O8.6'N[ϸ7{ 8(OWKZwgN8Ϲw@Їsm җ;Pљ[XϺփ>|W}`>ӇF1'v}>hOzN+ѻO>/ÿ'񌏼x@~|+ߞk9Л_OOŧ^=o,}k/>y>O>݉,ʏڙoNϾթ/ Qӹ"UOݜ#YjB@x@MϠF40xm`~͇P}{7"w|7p{4hw(G$cG#5H8$Xhw42,Hobaaq'HsLv$p#2W#Ips#i wp#hnp#'a}2t Ё s549BL#GPsmx# `29l@sm8Bbz/f38w4@#KЇ% 9yxfq@#a؅UpgpEk(#q_Yngq(@s4RMqBXc}[2h5V(3wU؅7H#"vmX#؇Y}H#e`m`xd&`b|؈'6؇X44`pkXs(w|I ȅ6PDyX&xvjy(+w`Iqنrn(1mpD7G#8X}b#!Yǁcڭa%<k^[g6A9"bWzojd╯rAi Fa | (!b&3k^m+;";^ , ,۲f1mr"]&VmA|5kdmHF V6R{MKja[f\;^[CKg\#ƴ׵(` zbmt@kym+(]9u)K^fa@fnʷ}KwN&vW+FڸUkV4 mbKA_%bz8{X{+Q[x hcvu껴|6_93iSF ;|{4⦴[4x'#KbJKgcVʫ\˿뿲F2 [ Dj̈KgA1* d7kzN)E[Ò۾rD'j @\$qX6,AJ{!b`eGK\@|o D S Pf{6U=l!X4! H!'c5x#QkIAklƆB#v ]4#ɹ!bP#xi<]##Сƞ \ʀ˹ɋlb˪Ajˉ̋Dra̭c%āx͋#͹qAc#ͺ* |aΐl L$τIeϬ{ϓϒ!6ϻAߌ mЭ nЕЈЪGњaс҂ії!!mҔ#' $<)Llӊқc:}<-A]CM>'EK $aMGmSM>OoP[ ]QaW=͋cMgk.I]oj{guMwL|{Nqm_}zլ;E٢MکIڬڰ۲=۴]۶}۸)bżۮ}پAܷmpaک OŭO۪M-Oڎn6 ۽٭ܝ]- =ݨԽm>^~^}}N| >^ ^ˊ4kqEat Vq5R(*nო&B`}!^YV^f"~Ozk4B>D>ˁkKQ㡵a\:>i 4+jDP[^"uV5f{c4iX* @^.}%W`熴7d7K5R^i 4Ƶiu[Ev&NcYNiT`b'nW*dcQLa^L3c]^p]^B0^8l#@k[#酵;hF7>kAYα^@#}Mݿ5 ."hV^#Z m}p o sF^5»eԫF%pYF7d],nN#8i0Oeӫ7Z#=`ߴ ݡ 6ޛny.`# ݐn#Z>4RXFnHkhHL_;Kb'$wh7&'}6;b[=\8p+oO_OI vnVfa?&_u=` U/ M 7n|y^150odO4>_5(?~sٍ[h{`_.m?kNY"} lO<(@B} (?= ^~LaFЈp$FCzQC#Iq"˛9ya' v "CQG%Д( -G55kMO;H$ڢ ]T\u[7Mg $C q116r |=dJ^(x?r `Ytнy]g+vV8 !ND/ @t6ZvxGB|FG5Wnkɇ)b"E%RYy92Շ  HFic5j .6~DN8rJ.- "Bz- $HpԱ8r; '$H#)\=.rI#x0"'[R 2 R".a)@: M)N#Ͱr><2? ? d9@~m.}$_@6n 8A0nDA@8B†m`e*/\ (B04 aC68 taȾzԁb8E*VъWbE.v'b8F1:~dDcոF6`tchE3qwcFяqc8HBҏp4d"H- md$%9IJVҒd&5INvғe(AiD( \*UJV򔯄e,[9KWҖe.ayK^җ$%#QӘDf2b; B49MjVӚf6Mnvs7ӜDg:չNvӝg<9OzӞJoӟh@O 'S\W{DlagD%:QVԢ'A OvԣF&I5RlH7QsbA7iNuSt"PA:~.eIDZadL%&O:UVF=O~ _&VeiTVխX+lf MD 9.pB47Ѕܵ ;8Ƃuq V*lV]6}khE;ڞOŦv.HA Zb[O`A&4[\ˆմE"kD3Uj%mvub6X]&t(ZD3  `)̕B4e `V6B1B]8!, MZ6.gi`LPf!\p_y^zد0 X`ؿ،pY/#7K`ت16] ,:W#V *NJ~N/&+o?î<8W+@kv/*+PZ_,gs7k.D  (;@B"| S/1(&.. +H%)H)T TzhB;,86(.4<IJ3"S· &m(RujQ*:+z-%S{#g0 1ͮ1"85M(*(nr˦ 4զ5eз2(ITL+P-\̫TKLPT<# Tm+L&TTnbF671L7ڬ:B}c@URjA$'x-&aEN\ ZCɔ1 |4Hȼ1%d@b@:42i AݰU'j3XuTD+[M؝" >e16˺AZ8㯄lE$$3s@Y\eXJH2ˍ۬W\9Ȥ'L&]]$ZbnJ\5ɄѠ&+pNغ'+@Ȃ((hzTb&9^tRuH$ ٙKVyMk,VT3J]]Q]`pS]<;l 0'4V(`ua1*ڻ͏K\=[~&a]l%2=)a#:KEa"Hb0jkVƤ5`#6K]%FX4c a3 N}b9:(c2U`?&-=nTAd--dC2;nJV3dVd6edK.)LMNd=]lW"eIFTaSmZ 3dDXZ)e|ee3`Udafvz,&-XDnnNL^kGKF+XDv~U&qr6Cgi>jQzgf|e}6Q~g9eQYeqVa茶nn怐^hX%ʝFIοii&j)8fNZ首 ꪶD꬞ꮞ#&6FVfv뷆f楖뺶F؞k>.l3öVlƎټl,}dƶ쭞̾R}ϮfmtgFm"vPv\hզm9&>m}ކ9 p>j0>vn=j!^b.!v?kKBw2At_tFpsti0?t@qCt&RgmtWO8t@`]Ysk8PuoaT0P`ffiHtvl?Tj_sqW*!pG7wsu'yג Or`rHDwN%XS+xbꇇ2twAIy@7Z?pI(v~gwojrnxNqgjH1x"ok7_G's7cX X_s_vg: Yumezh1@{W w9"OU؈?ѫ'Ǟ{y"UtDZi|PyP{i8}|1poYz'ёv=Q0nn_1QH x̆{6nVR}P $h(ҤJ2m)ԨRR ` >%ʵ*تK^=ڀ@ $psmV0D`X+]e (۸ |KS7ላ6hТG.mʂ1#Oz&8n|#^}Ck{#UZ0q:/n유a/o|izoKyۏm~I)w]b}s%u>x0vuFUH{zyua_THraqD5[K&_1'Wمq)xԄ_As AA\]r]8PC~UZye] |D?az#_hBQ@!v b> q9lcljGf*Zz(BJ)ӘiVF4c}Qi٩ݞv?6hw9xzi!n\4!]b*nx5iH#a07P9INY1M;ݜv1bO[1WkEՙT$e/ iںh(C=wb}7RW)x5 n=88VK[~ 9{9衋>:饛~:_ԕ+:>;.#?9y; O7{+<͟n<#Alq=k={=?>>=oA???>/V < 2| #( : s C(T]S zIm(! c(Ѓ' s:f5!(PF BN|x).8r!-PT%rf<5ΊX"(G.v\)9A91*ч~<$"IHA2><,)IJpdkIFJr $&CB <%*JQd*cIUW$eKIҖ|`aα<Ieјifљ%ImњĦ۴qЛߴIr("(R (dGP @эrC} wB4 l 5S6 f*S4Շ(1JTQ>MTAB` ecjW7@ @:ې䀉lAaXZ3ǵ6BnO`=X%Shŀ$M y*P @j,[(@#:!Ue)J#n"ׅm'P^1B$E&@kh ِ\SЧpC@ U*;oݢ7k8kb}zѾmJ7/\_a iv_Vv$@j@ m0J~ J/*1$0.J v0w_޾|^p[]ɡk  !{ PLs-D*⋵A?]ZP""5*b '4ALA$&\2R coWaU?)Z!ZcdWu c#9n͗iBE*W+v"ZauZbߞY;UH)5.A=ID^͗!A`@RD}<&Hbbu[A>!9sy_-B.dAh@?f; a&16%=-VdrT=BbURXJNe4U`Ub&TeV^_UadaaadRAA&5&UVfkT_amxM[af N&3&AB})@z&VnX&2 UeU2ڵǼqgAPtҡhR&!\'AJ2܈-x\Xeo#E{2PdgU}ygXAt*(g]~B(06уZhYgz[rH^hxh݉hؐцhhhҨ`荺_꨹h`i]i"i1:*ޒJihьb)薖Qz)QiZޏiY^ߕi駽)⑖)iΝ⩛V **.*>*FN*V^*M@;qU__ac_local_roles__q}q Umatq ]q UOwnerq asU__name__q U dnav1.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqMUheightqMu. i ((U OFS.ImageqUImageqtqNt.}q(UsizeqL43818L UdataqT*JFIFHHCreated with The GIMPC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222&"_  !1A"QUa2Wqu#67TVt58BRSs$3br%4Cv&Fc8!1QARa2Sq"#B3Cb ?h^.YmVN pֱsI=E)c4Ӳg1$sUf)j)zk2߉iD縣{@XG?n##'GOR\SDf"s\9dc#ʕpf%Etyê[ֹ~8@Q]nUu4ѵ#Em=!yZܞ<%Z\H74p)frf<|kޮ7[hpqݐO nKj:J7N sc;^rAsPZ(+5N_+v:#*F([u!#Xi_g\ơ?P?Sq!״r%h8)t6:3ڸ;dO cU3W1uWjvc~"xg85znGLu쑲Bcp<3ljn6zz5;1ޖr8TNVj&J7TѻmwܺWKp/<᰽V VkZ,[ܪ5Lǟ98gܜ֗F)]D$k*:Ȝ01]^}?-|sEA։ iY{qUUUͧ5mqR{N2 N>`uK6b*D>_Kj Jko5,D`~wRn|v&lfqqEt?I?OK%=,VY$H<qߘB˝=&"&joD\XL82ѓ+; ө-VSMxwS=;K09(PC]C ?W0hp9^iI|l@ўTߝS\fb93?SDAދw\f~W]e],3[HYQ姽ԹiSxdoGEfw9?:D';6?ԻruM/e6()R!H[Ș0Ob6x`"61kI$0 <)W2ԧRW{0 DL3&a  @ĢmvyjI7*ehsKO"0T ZJPTVIY90Dz.WDbB\4de h#?8_L4 ^\![02F=Ec{&іn=}S; x9qĜvΜCk:ζO<)tMzbw13- F7?ּJ{M|QTWCs[h*'&u#ike@YY 4]f"6SȢiM=.OR(c ,zڻԔTuv觉^tMz']N8<~5DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDDA3$s=i#‡V\','{x m{7m6Bd8RW9푀ZFx-fio]o]uEjum@>F>0ϋk=i v<^daoۀ-W髜J],/L15NJN ;^u-]ne; ) /Zvp@Z)hfU -|,oV^`d݌gs4{難t}AD8'0$|KUUѦe4QV6;S n/qpn-ێx⃼q@z]mʺUZmq9!>*N~Vl#Hca .TךyR7$49qB%kE4YV5IN ^4gCV.SZӓp xpsh>Jr묩(]nWqOOG.woĕiF}sTSEsi[+wA9 n[5JݬWKuK=5[*)iH-s\nu5r)eO3e,3a~wy[7[^j55ƚMnV2Xs=Zojuy)䬾۪==L}VH8 [Zx_ڪ&mފRLݎs" ,99ϣ9.&ڨ-Uj':]ja\2pp9nmZkফ*R q99i|)_pSYjn:hҹHey(vS7QSJ:_jnu[L%\ ๣iA5;oUv KOSA|_5[-7H-T˝XJF7xmQx.Mtu {%Uh抙=kqDZV PW2Q$RP86/5%uQ겪juƕ|A;8sKI95 d5wjuM=TZZIIT#H_#$>L5CumtкZgvq h8('oښ+-M-TU7 Ps Z|\@hIQǤ kd_4Muc3g;WƠ[uKrrPSZ @X*ju MY#X#~Ӓp=9榭 mU֚Ul70c;KI#Q/  gmJYzԴǃ @!n-]VTZtP&n3m"68c88 ۢ6Au%;Mcvv722WCG d23 s&[Àtٽ Z,AqfJ|R; [hj:k ;)*#M XCr0Y(;k-+ݎ o*vT148+yBh:vQUb)cw6M""" """ T/ypmמ0u5VKo%IAߜta ϔ.䈈CC4}0O3YjK$o6;|JX4 #04=q$$ m; m^]Aޛ$٦VꞳ[v1ȑFkzW-?X&m8p-W1gt? z+=t? z+=~ThL]ʺ#vT'{cޡY{cޡYcm PY$vݸscXYp;ovy WC m{~/V{jn>7H+xgsw78O*DzX#ǀZȂit}r4ު6?a->B6GGTiϦk5 [4I̬ MK Yi lZniwVN(`LAfce˪{F>TSzgSzgGKmmI[+c|l 8pVq  m; m]v=eAvAS;i펍v*]oGQ@%{ O_u뺭xڮ'NJg1oPӽ1oPI8MLx.ܥѴ9Z@i%<08ڮ'0 m; m~PO,,HZyq#T%HO*Mm-CFہ> j|pHnG-p_g=8z?J۩tmK9"`88ۅU.+Y\$mT\Ii;$mI> M\|oe8/6Oz?B[m~ F]&1>9 {&9-q0~5ǩ4Q6ޭrWQ^3Lo1J)z$eC3 <H_XnP+Z䝭sH CZ-c.tukvR6WuU9ˏ\{]ĵ179{лHo_mUZV%Cot;f{1\@iZPcii[9ŠFJ%{DЀ#nCqx'yG߿ڿM^ PRGܵ Unq GZ!uՑˍޟr_k-T 1u}fv-U=a;=ѐ&|oTw4dyLmOTEISitM%Ka\ם^xgȨ5^__rx"5vgޚrugޞrWKD@DDD@E+_&3Q.KȈ(nX:Z1.s@4 zoˇ5?wԮ-[gO镻y혹9m*t1Nrˇ5?wԝ~S'}K y˺GW ~|ߐ;pNjD~<6 NO w O'{.Rym@:5~= 0FBLyD*w)kg{ㆥ0g!BݲQS`K\ݟCٍn(ޮ#8ʼ sj#9nCgq΁73fѸgVtHc|e$s=$Nc{ ˌY6#8[s4Â˭cdIA21;Gеe1S3ʶpMV\#8qz*%)idkAh'01Wj.YQ]d) q2I^X8EEz^C[.M"CFN; []EqFlAŎIs`pbgO>Zw992 6} kl.qc$7r) S42'8xJךxCAt.O9)dUXxEp 1ohf1uwUCW߇0N.Zd`q?B]lsUnpOSOa?N8O]tdlcCwG\@#зdK[C!O{=rKN8pVWlESARfAӌ/Һ®Z}[Q Jbhnp1+[vfgj SM1W/AA-4u4mkˡ 2GBME$YixiӕX ut'ZGjK4[ 7^OSĀDg)M[j(Nl{KVS/oүEM-n3i[Qƃ,e÷)tӖ;֪oh^፲[H-Ͻ$qVg,JwG A#{JT۫I3EPIo1kt_QI}v%g"RͨxOhU""&*s}}O+W=}O+z/h{K\2 oB4 $N-PѓPl""" """ """ """ """ """ """ """ 5oџI+ySoPCA'pLߦA ?k7ӻk7H"4h4h3~?;3~?io\ď'޲^;G<4q.kAvy} id$aʈ cVǶfy/vD燣t2',vZsci8iuRL7wAhp 2o}Ճ/my/m&Υ:LU ݧon6~|z;Ky*ikd"΂zV_[`?՗Ƕ6nOJ6gUIp]#)l1޳?'g/mۭbnk\?qZOGbOG|R_[T+xwwrqV^]? -gyz6৚f햬J1=8uqէ5hk-Ȥhk]!,JnK<yNĻKxkJy9t6wq<G].u7 2n 0KK:8Ze%@{⩋KOD2<Ljh]k6qwj,ڪ^k-mLQMP]}O+W=}O+nD@DDDA#>2p3+};|{$s q }ThȤ镼[gRt@DDD@DDDAsd2LXegigj/WKw}mU66E#d(-p$9pmTw $r ڃV250GH?՗ L5pyp$u/|c%k]$2@Y9fX;r8x;k79akGGLJǒѠBU]hȜ֝Ŭ goިnH' y1MGWnvﰜY5C=x礶L$db:L=޳8<?jQ+$95r1fH j& $(1:KT_8 !돊8y|M %;kk%>﷼7zaZڊ]I,0gnJFZڹj$vCX,1k5EgT:Iw7ĩ-r͵ҵv X.:nC%e[d%o"?*1VZݻMVA\u]MmSKQ%Ι8*s eKi)okGυ8r W}~N[ʆqwߓ?VAzk_UAzk_@DDD@DDtgyi (==|j-wIҥ5DQ7?J Ⱦc>7<ӐW" """ """ """ """ """ """ """ 5oџI+yT:hȤ镼w]չLm]}:nA9?\e\9?\d닞iҖj3"9Hɾ0 wHKdk 's<3q\eg;F_E-8Կw՚b"8~w75TtyOfE,7޾m#GhV^ՂW1+ GyG8r"њg5qr3طL;mM9b9nj8#%aQrUݟo/Żg95DutwE3# HYW>DDD@DDD@DU6ZƔt#gHd.h-U}:r TN^a~{jEPwӧ/0ؿ=Nt-U}:r TN^a~{jEPwӧ/0ؿ=Nt-U}:r TN^a~{jEPwӧ/0ؿ=Q:]z"62xē`HOaAzI9rĽ* [gRtU3)?eo """ """ """ """ """ """ (m]}:nS*W}~N[r}}O+W=}O+q#5`:JxXI`%9|Rp {uQnsQ(娶sip@+dˑq9 wަ_j5R^*F;Fv1..v8k[ ֩M3<;$+SG)(de͵` ԃG>`vNfc==>fDFgM$[ꦬIlmd%#s$coVB[m– <KX/],U~)htùC=h: w;9A ]4-ޔ/&L#?l<1ТP^q[=|#N 69:oYv,ȫٵ%޻GRnPT*l@ӱ.ƣl_6u-G?fJ=n2dZ-IӇV[Mi]ui$k8o1Ǐޜ-pm+kćv)AabRح5}M4s9 U?M"Ե~Q1B@DDDAPj?"VuoџI+yCj︻rPڻ.uG܃3MkrֹXʹ3MkrֹXj6[;CQ]Z'ޝТ)t h9ߢPۣQ0  a>e 5c5Bs74?C$Εoq.f 8" F7[4n^i[Ȃl4i3u50 nFG3ǰIϗ޺wYaqc`12WfXN9ݟWB]~Nj[r0|=F\y;Va?n,os˰e xjd,O$nkQcUڊwMpS'47G2YK)5uUۨczM)@}'*UnzJx=>2AH=+G"=Tb0&9 qGwܕ ]R0Z rPTƶKAlѴ95hkp<\446H:*$vc;I?P ۍ,U5Vù'-nvH+DN^-uEpl l38O7[nl4̏v؉ђxgREia2@Hrc>3}R緉R>jqJbqA*Hiiٲ#lq$kF GؿԭEU_{#l_Adڿr(!mKWE-D@DD3)?eo*V26Q) 'T~9>>ֿ'k>ֿ'khí*iSS,1lacAH}dl,|/XCd2>kk% XxghLi(:eސ:zy$ H"mx k)tPUE1m8f@>QQFu5uf<7Qgˍes憲Guѷ99}C9_0u;xHceH3PZ${Xˍ;ŻZWhiMTL} u5=@- Ӎt w4\Orm]-{S 7h%Vg* tǏ1Ç +hˤI ;VTeQû=t|k\A GA5?vQ#z Dйo d-J^O_,JJ::Z끈uxlҵ =zu^-M(- WE-jȢb?տ;F~D[Tַ!t}MeD4мYI8+ݖe^ &'--g轤elo K~2z/i=io[?E aB{ߌ^OvZ[{H&P촷-עݖe^ &'--g轤elo K~2z/i=io[?E aB{ߌ^OvZ[{H&P촷-עݖe^ &'--g轤elo K~2z/i=io[?E aB{ߌ^OvZ[{H&P촷-עݖe^ (m]}:n_>촷-עFպj}!zCiY('kq1w/Ͻ5Zc*Ͻ5Zc """ ""5k[ɠ|Ay#q8h$i!{$ihփyTҭP@>IJ }WA}Z GؿԂɵ~Q1BZ܊/#[h9O50T-4 1sJ{jD\Oy74A^x̏ɽ{jD\Oy74A^x̏ɽ{jD\Oy74A^x̏ɽ{jD\Oy74A^x̏ɽ{jD\Oy74A^x̏ɽ{jD\Oy74A^x̏ɽ{jD\Oy74Ad۴ ]Sc'''$DD@DDDA1-pZj79G`z$/ǜ1wrTҭP@>IJ }/oU4 L:8:gχjUw?0}h,tUǺ Ou]'|C3ւE\{;>Uw?0}h,tUǺ Ou]'|C3ւE\{;>ڧRqu:ja D<//+QUd[Y6܊/#[kRE m2A#sHBZ##xR?V$_$q{pynA"#v܌QWA}Z GؿԂɵ~Q1BZ܊/#[h1\),($QTf- SH?V$[]۪/zKl0-ۉo̻t6sgeDU/`I) v7c҃WiWEUh}D5JC%sLm9|_Mj M9xw!.n`Hs{8WmEmV飒uti;DA۱\h4uT'BX2&I3Za$ˇb*m]4{kjɩ%k"s#.$q`## *SB%Mі>YKѐ~^D7-Q~(M Mƒ*j&'27YznAЦ7+۵Y_F%ZxoH$,ەfF=Ig{yay9 pR۩U\#a5L9] ݷgr D@U_?j*bR &E mjZr(!m""" """ """ """ """ """ """ """ """ """ U?sR6gZv˩I# =^ќo&pUt $DDD@DDD@DDD@U}T҂U֨wz5y\|:ͪ.5k<bBb;}5S4qlNA# 2Fp9/~~Q1m%/% GֵuMJ#2 $x(!)uϤ2IC[jZˀ!sÙ85j%U-ME1%Q t%A 85򕐲.h#kXL8Ӈ bCS> ]S,M6m(4/=!:]5uE$ 9+gsd@8\NQtI\[si#?JI*{eluMۉCx kq\gO[3dAeڿr(!mKWE-D@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DD2HȣtpkZ2IXql2 /j54^d-]d{k pA(mRVVLؠe?q>&b#2EYAJj!y԰$6?sDX~=k?wѳ55Smf} `ׯ:Kp睭-f{s \lj,j-j(ߵ9mQWMdӱu{-CeǓyEV5<[Xh4~T׹>62N9 Mc7ͺҾ&̐9(DڪG\5%-^+qֈ'u7M!ncˏ҂E[kOݦTL4=pGo?/]Zb6"Mi $q8(&k7SBwo]/uwFݣo[gA4mv.-<#.y8YRWH [+{kڽ-E5?.޻]$EDtev8p$YWˣc8d徂n4)/u (1ͤfhOV[S"ƼT&T'mpU{黮 KJ53hz wz)'m=lK×*vź&>ckQ:}Ezt;&֗ZC3"8ǽʁz@o$Z^]G岽yOx`4|ZFi- iqtwH<9?7.%O/}dfWjZtR#.q<|YvEE Jv 68X>)+uTҭX=:H:N-w+ijX< 9q޾?4?N=Y q޾?4?N=Y q޾?4?N=Y q޾?4?N=Y q޾?4?N=Y Ud[z\`ӞeBV~:l"G iq9tD@DDD@DDDAmQ[EASN׽ᛋg$'Q6Y$"GcN &Z(#e8l)|vь`85;(-2x6wڰ$qʒD:VYISK=tUFA<ZxD,P?OOSV#|RL %儒OnT ZzWQSWnlTp\Altb!iz؃DnvxmoT =hu_m%=COC#vj\nCUqM hNyЃmm'M:vQS,&a6m''!| \jځOj1[)2z2 -PvX/NnZzw5;Ï&'3pִ:WI>]e1WS䴸pcܐq88.Or:&VnNs9]Cii)ic8 aִzZٽUy NEs湯hsH-<< ֯mc(e?mt-1wJB[>j헩<#1ϗ[6b_)Wțs򬨩N)xkc82>W^6WTihr{V{6XJ}a;dz0~ЫU80;:o/zI/x|$~un;ޙ,D|JXngZ4V--(1KF@~u"ǵB44GOjki"I d=_C6\q}+DU˦ըFNE:?W*ڶSP;H$v,܊*̸Uy~\YY)4?䏶@ c*<Mu?Wei8lZ"2RLߵJRdy=mچݪd|A lkx]A9T]ih<MhS111iؚ󏿂ܚϪ5 *vт-sF?n-I,'jDUG\ώʨ|*O<E짅]gh s{ :j]iEE#暩dI#;{;yo b%32I{389ds<RxU֞xO {*gh1O0Η?_oW^u?TeZ_ok5w6 01 a1ذT):Oo;-5sެW*MqlZ# M8 xÊYE<'XၰJ @s E><,Vä.M3*8qWZy/eo0v>c4֭M:!mKN"kd.,gnӚ) ) i))jOdxU/Hd%폅<>=3/*zHה{:`x% TGjsszt& $ca~׃ .i'b%Җ[wY*Igm[:kn9wHSOGzXr˺7I~sE3t>=/hFx?ÓֳǴ%GzXrx?Óx9wHSOGzXrwZt4_<}awHSNYng#=O9<}ak<{M_~;'#=O9;giK/ўt>;'u7ISWTV:Z:dTDZco| FT>] Gu}[J@. rGzXrx?Ösvs®*R_GK<%aMRci @g,98_b]23?2|}awHSQ\ob0/6AeZl-h?l/{ž&t[h:HIzUwHSOGzXrv=]JwK%q4Nck9V Eڇ1{Nq h$qw4\rGzXrx?Òl\"o(u=e5K,k$/ qK~WkwHS\AԱP-}G"{b`'$5 kVfjyC[fh<*"-H^'C4QQJ 9th """ """ """ """ """ """ """ """ :3ojzL[څo ""(ȣl֞ 7$qˇhX?a?'#ӿh&C1?2?m;?a?'#ӿh&C1?2?m;?a?'#ӿh&C1?2?m;?a?'#ӿh&C1?2?m;?a?'#ӿh&C1?2?m;?a?'#ӿh&C݇H+2?~^d}!.P\(^gAE47#*>rV[.@p A+o0AI+Pcpqޓ>Vv[8+dV eƪW=|,)k=ƶY5DluD5R#x[o"@hi)̃osx_O i[$T#9 s2{ (9 U_=5ӌ`,4ʈO|4t8!瑌8sԺ]'&9#8lHducꋌ-f18䃗^+.5{Kx~e,5:H-h n H*>h{{A;cv229|@y@؃6JY758+'>lq!i#O}(=EO})JQyJ-݌KvNO2c75-9PdEmvOi䄐 8v,1C3#7\ _Bv{yJdv5]ȃ>AO}(=UC_v#|T] }t 9m<d֢^6&[5C^0Hhmp=8`#AϕݨVz3oj_PKuUKZb|DJ ~])sMl<7.hab}E<حa48$/ڏ+W$PihKS 68c.}9+-7vOUOpS&q+>W;Фj?_Mڏ+W$PG{1=0:Y\ܘÀq? ;4CI'wj?_Mڏ+W$PCbF ƈ3k`Ç c8gTԾi"}TDw Awj?_Mڏ+W$PhMkd-j:\ᖖ%s=+,;ijvk[ pkvJI=ݨ~OeEΆQPvz%o˱FM?}t̎y#˦#<85 5)Q%j$nZI'Jk%G$wsLn_ 0y)A`O^儱@\ ǺG4N8vvpRVIG{(5n2vDY!18Bre?MA L{_$09=!u02O3!fCrbݨ~Oe\zz) F#@ ௺m?v+Y!d!dR;VIG{(#{ ]wFA|v^c%sؾa w\, g <Ʒj?_Mڏ+W$PG2tl-Z.H$HѸ 2;Oj?tWQOX2ņwvA"?)ڏ+W$SvJI=V{A-Ek1{M\d~r d.yck#NbD(\v4ӎy_F>n̼>|K0=ky"{jQ’uJH8 kGW~x8. A:F[ɕlkޝU?CVv[ʡϕݨV䄈G0 sm=|Lc8С4;ڦh[XҦЉ*2,]U^sF#c58xsS(*Y#^tr|QD:57x֬:xo|3g r x@nD|WSeLǸ;Fֆ8k]M &kK 册Ael<A01=ߪi$#Zӗc6F7d9q0h]-;I[~\E8kibe6ͬv:[$4s[5wgp]J(ߓyÝ1yLJ`-s\VIp9pYGP!^Z꜐^\Kw%"k)ߖ*a(L&QZ}k%EҦ/M4]hWHdnxoi(:1M\_\DW c -X(KcIc {r.s񒹺Y/{e%!:t6#q(MU9VTN{4l@ҏOVV红S@ {qPZMFPgeCak[ǗC?Pmp>:#VBᗖ<0K8]%Q{s 4pxgNe{"75lgø0ÙU"VzH&EIpmߒA4v8"!K4PܚZ:f^ϵuocRco> j;MPOp|h8GNa5#os&KK<]: 掎t=A1?޳퍅pkGOb ]=A"8dD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDCw&|B.o0썄~r@U_Cw&|Briֽ4會KU=aҮkWDѷv;#vʊXҒ(m;N9Y Ζ'>-{Z}.qvOx߀r2vX.R5-pOhV8Ƿ9 DD@DDD@DDD@DDD@DDD@UC_v#|UC_v#|-㝧n3Tnʪ0yѵ3W* [=n?V} HɵgHr7A.D@DDWFuM5P6B s=h.Wij cg9܏ #=Iv-^=bjaTwtLk~uC#㑎Xݵa>Bg5a x!p_gMQTf9?:uS^\&:S9TAV C 8X`)(l/8 z^yd#ɠz[Y-NME2CMY{c}# r眎rm-EUsN]Mvbg GKw;+ zJ;7v982z7j8El''sz])MSY]<}+S}Jb7fD5{Ak|\<³}X'Ի_s1=R?=X'Ի_s1=R?=X'Ի_s1=R?=X'Ի_s1=R?=X'Ի_s1=R?=Xe" FuO[VR |h/7TܟZx^n>e" FuO[VR |h/7TܟZx^n>e" FuO[VR |h/7TܟZx^n>e" FuO[VR |h/7TܟZx^n>e" FuO[VR |h/7TܟZx^n>e" FuO[VR |h/7TܟZx^n>e" FuO[VR |h/7TܟZthzl.G<?JQ@jM=kRUSMن hYk̆f34Ws\1dFn8`*OI p0x'ޢL9h^ܢ&G5lC(\d-]Z"u\̵jTsy ௝hԽ ʭۛ=Sr@ogwȨS9~+Z@lsϾeI55 ޲Xd@g?Gh,5T匿G+F <k/V?_kSVEh%􂷕ot[NO9[ɭx>SG, -YҮÀA 76 pP"4KŒ6#cNgNy~oF1[USv޸cȂE!A!zOѿdJUJ}>.w"V*Sޫ*zL=[_8\Jakm9S:06_xy3.V=eEt_] ?[-!-奍$тgcK=M[8$A8_{L7 ϴնi;Qmޝ A<^VlV>ǟ+~-D@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDDA$7I#$:z*īv>EkCG!a" """ "" 3ΩkuFII˝<3|M ?}k 7/Lw(k- '[:axl" :SosYAҟO˝ȕMCtWUmt㯘<9drP[g}]mOuQsk\iNI#vxuȃҕk-OPS#;\^@wLiIXi*墆O3j x-#2sv+AAmeIS[+L:5kNMA+2ƼL {H@99bY4MFݝO;ki!:&8tUzVYip:ZVT]gfa-fF'ÎEآH%uu:!fwtvx{6pvxmO+%٩/װp k>#Tcܕi?Voy|'؂DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDX+[+l9K|\;1!{H$qiuU~Q=#x;\#0NZ]G\U#%+Z9nkFFxk_5;},ttҾfW ˉvF8"gRwNvj6i#h^N,~.eSp[gC_+C\OiZHhYinL4U旲#֌ynf2{L v;ёAcvmR<^*bmE-S $FsǨovzmeކӱ,N>7ewv<vV2 $x;$ KBG۫ӸܥgicGFsA殷SSblu=d%=p#9BU2Z4 奥f4%$rGMI_Stj%SG<`݂0vy*Wn_V.w"V.'[-Kfڋ$QFY$Q5H<>%x1>T zAOiǤEPx1>~1 }AǤ zAOh-U~1ڴ,tUvukjW9}Tcܕi?Voy|'؂DDD@DDԶ1MEi#eDp>W=y4eQ=,JzjGL ){ZS/\@9A9i:~rmV9̆X94g]:TjjvRI$;KC#'|ԗz:V]Է KkVP`'Ï Qp}S;ios)6cMn-#spk+R==EZALfG 1kNZ3[NuP>S \I'I$ArYYu$Ӷ9ik];-nH#Q+um]jE 4T|=ۉ un[)jgsf}|؁=pjO-wQ\nw h0;9FsZ1GS*jfk:@Z\i&|Qv%i#KmƚmQϦ`|ns @#U%-EWIjܪߧ `sv-I;-k%m>۴ԓW_]Y[Zepakv Ip EUuaVtt֚!M\7{V <@ d;صQ{])jd:0Vr͠`y ֛.r^&\*.kNqmwB絅}{ZVƇ=G7]u=C.E5LI^ i`Uë׫ꊵ6[s.kFӍq]:jw-EڷV v*wzzFU /b*榦3@d84挂8-gݴֳZU7j;S>)chvZZFF҃XYUO-LOi0ۑٜURWjI4MSGUʺdlȥp&FOG01,Yfʩ%+O yTvQqY u:mGl]0.[uɚZ+I,aFI#-\^|QO7.w"V:SosYTcܕi?Voy|'؂DDD@DDyzM4Fm`3s\aK"э3Ֆ$kn<\8v+ Eږ1$֨n<|3O##Aب*樷ܨ zw=qnNC;"kWT-®YTA$h h@I}JuH3IHXDFFN5ѢfD[4%q>Q<3\_''=V:;|:Ʋl<gcZ@y<'o0CHhZ[4^)ZF9-&G EIpFcJFAA{u5m\\*"27x` JCY-#faٸgѼlULz͏87xk>W] l;YD̸u Cesϱi\-UE-MmH.͖JҽCĀ`f<\pAaVFz5sC.w"VeƚKMT12gi(wS-5LԴrVEmD.-tpZ3 UƲ:Kϼ7Im(*dyD]1pqpngm-YVi!i%FA"0 J?y`\ʺ6TӖNVucfi|uai猞H-EP}?rW[J򴟫b }B2=dk֎K'$XtHe[֖4a;lKcfcG )S~m8ׇ,ۦSXow'/c&ͥ26=qs| Z檂[o[C8h~H9×.O.[NeX۞IA $B6Svvv܏Obѵf\:a;ϱr#]wذtK_E=Ns9ݸ0FC3R5V1xVc%.D%kdq{NG.kip R 3 rn 䍤š#=664e2۩g3åC%9_J4WpڪEQ;b~;-#<>t&'4HsĀU[e\gLkN}c5?z;ž=XoQQOMh4Ks+a'pqo|fY͙¢WE#@d-pk3qw?zzwӄuc[QldF&߬}SUzIQ{1\*uːT Cՙ_a.s{|]ϧң||K&H4 ooŇoo? {}Q# yL@Hnj%@%٥)P!o--N=1/1/;NTF\潚D]ehc|/-xvG"8c^wحNLNH:ȜzzPj'Cmsj-2$/qvg$ 7

m cF{N,lI-Gy}>ǟ+~U%zZOձ?s8X7A)'Ay'[Js'ܼɱsGK-9=+4Z^yyTF>b܊MY]nfeIKm\kcsrZޭ1<8[fl29A$>.u1iZRX%?1V8abJ}= D̑g# }+jhe|hȞu %'qǚ}7X]F*(ĒKOFO:8m-[Mhg2Bnakq3}(xb#$LGjU\Ol79ܹ{Yiz!0Sw92v*lގk5^aPhAw.Dee\Roݬ g$P}!lQS=Kch/ &mN7xƊHr[+[AsZ+uCUR^חN ccKxq_NuF9\t 8nM9}I$vEQf-ȴ\ǟ+~CdſYx #~-D@DDDA" """ * Gn3xUM.ܯS]m cZp1`,o'ŭ?% ഏpiKJV{a -zG!., H"~ /*禬y=g#晩uϧ1c1 %K++ -!c^ua8zTGp ;t?XMY9?LV9]F DmG^"8ҊfoD|a69;e^Ⱥ{ p_UzKsi86kAF#;ssl\\OT$dpԶ=mϮc3aާ4?IUN5rTTY+˞ɒOi8XÛbb1~G⸮jɬFAP14Pyxj+YhL>bݪcDVd""" "" d)FBMޚeJK\Q>*N\ddpAv}#2?pp6I$R0oslc/|^\?u:{\;)orZwaxG/ڧ{{m\Q}iRMIGc畭 'Nswg-)i5$\!yak([n2ޒ=yɃ.Y^cK̓|GY&apu°ci88Gg>D>k*\C#CXӂGs?@Q5"ݍ' hZ+ZYid|saˉ+hj*j# NX1ՇsEE4٢#k*5ӎ3ɧhl/ډ=B\;s{:1]빌㵉FΌKW*+E5K4` ];W n {m =$ pSKWprsBW)E<͝]w4ꯞD\x" miN31ڷ{#0zp·C~*q0{6A޸zm<o" . cڝV """ ""z >VwyT=s+;[芻N+NfYLxd#ϣ9A]SgVWkOg/౽Å!o۩$SFcxi }WuwyIc ȁ ɣVE6p7X=X-8p&r#p9 IZOM+>or,L7ۅMި;4~u#X-fxpGjGzWM9=0e,vH{0d}~Օ$ #8猞yq]ŋG4ͶE-++cB8sq*mpJQ9[!th1>.< $d8vwUw#ٿn<\‚6.ƶh:sǁs6=+*STfؔj(ڽ%W*{hX$??XQtucd}t#KG]% Lz*ho&F]WiŪxoټW~HkXQQ@wI)2YRȀ^zT5_M_ا WS}*D WS})UAUx`7bAPx`7b5_M_ث}T5_M_ا WS}*D WS})UAUx`7bAPx`7b5_M_ث}T5_M_ا WS}*D WS})UAUx`7bAPx`7b5_M_ث}T5_M_ا WS}*D WS}+cm֊PU]mUVV ScFOp3Z耈GOWs%|T`?o<KR/ KM˩h'qU__ac_local_roles__q}q Umatq ]q UOwnerq asU__name__q Uschemaconf.jpgqU content_typeqU image/jpegqUtitleqUU preconditionqUUwidthqM&UheightqMu. i0((U OFS.ImageqUImageqtqNt.}q(UsizeqL12255L UdataqT/JFIFHHCreated with The GIMPC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222#"P !1U"AQ2RTae#3BVbq$6Eru5St/!QR1SAa#C ?]szc ~I$2>鿹^'Mz?a[b;T,u.t3!Q r<c'TO&bc7={鿹^+GO F\4d{s޽wN뽎~$A7={鿹^/BD_uU6h =lD+i(IxSDZ~pBN\6'b6U9y|'/5>3AmqyM>LGKA!@t]sZ8WWL7SĀN8c85qq i'8<PyMz?a:o{׮9 l+U⊦y3ɜcs 9>۵6k(_CVdmv󽉅n54r dOvw*7={鿹^/BEDW?f~Cw1:rٟ?[Lͳ߷(]M8kd왓9iNxXOyN[3Ӗ1b˿n^{79lnS/.ڍ_n$cFnqc)a<ۗӫ58<J&wrٲƗ]C eӖ1bx{,hmU0SU|/k<F41 9@lv3 Qinb8tD윴gf~Cw1:rٟ?]Te19}k{r]TS^6u5T4?K."FHפ>RE7*e٤8k!8`K%q DcsL51(4v:$ݷśƗ7$$IdOhGݿō Ru{$q\MtQVCO$A̚py<8B^av햊6Z xf~Cw1sbז،s9zb?zt?!LfvvS#ZڟsU]*&Z˱}纞GDq\=mm$4LWMAn10(cH$kέ~f~Cw1:rٟ?H,='A/7QM|twk"5wkd=-g+c9*5<ܽHN9{[%26tɾ-GyӼƬ3+- c\KNᅣUau1ayN[3 )7D ް1fHikֲP4]"8MYDnV䦚bFiddp|s R;uJY8jrxn >W+oS4y>xʞM*c,/ N8[!;^8%lps)d{d8qPuG;ְ홅2M-9Y"8j.zhl520x h$.kuҞRӊ#!GX!$Qr>]!9 v 1k#x|s+ZdnM g$q#G0PmEwqS\m׶rh_+$|@ac@;̃:?޴N:?޴A" "" wUVOE5]UMD].. !<6\iYA<H({G Tk9 Q"*E<1 cl"`l_;Gf QAX*)#f %#I̮肩ii*m[2ӘDlhƝ#`.{9,ws-<5q9$Zq.Vw>Nxa2vPjgcPdEUX@SF9k <\r^~Ird\򵺵6SpfGFI<*Om;lX}̝=CF٧h{dݣ>q#C>t\Z6=Nxa2vPiܪBDjglӗ2 dte㜀֌ElUlurQ:}[,D`@h;g3w>Nxa2vPG]DS ;u+w#q0|O{|c[Cw Y OQ+a]Q$`igZǴ0rZV}ƖJ*htZX3l_bj2Ƿr2t/q+u -K_Q#Dz 3Ƹyd)=Ŗ *z&Byds&hksIc9- Ow>N&lS*NV]itIlx@Į-wD=GN*&e%U MS4rUݺ(pto HNAR~;lX}̝gzd*-+pz ,x.-'9Ӓ H9* m[IuG}%GA'S;lX}̝gzd젊;#xˀ<+&TvnAXIUMI2.{X pTc@ dV>C$qx<9AwZ*`8' (]hW6Dkn8!9pqd)Gg5LHډ7!>HGlܖmmzZ]yΣH);}GlQq2:*(&>Zd]:7H$.׊[Ŧh'=$Q6 OZvH4p X>VbaTZ+=Ӿ;tfhKY .|/q%yb iGUVq89Wu1aًMjkwGGLƈjb7L!G+rKD[a6hes-8NI]8wZEx񆶲]2ddT`?h@) SJ~"{P+ZA рxU552T;#q?a Kv|]sPc|o0,8wbbC7|oAmHQS ;Ee3j3^4gK\q2ôS[6E |9$JƵ-8py;y/M1p_M,yLs4zJͣʺ{u1P %y|'rH4Vhvy͆O5F=v#P~0p5q5 J|9\\ MYOO.j~#n5; C'T6-&߭uþ.  2x? ;[dnzd]F[;ii&CaRZ9wb텿BH֛əss0Z8$g2篿QG2HᑥљelM.5;(%Eߨ[42jV4ώgDqǎ\/Tj;cZT] n#c<σA&Lqo_tlz57Q=|ӬAq[NaIL``{|4`y#g1ӊh(+P@#-㈤ëPZ<IպY&F4ǘğ~Q4#$hs{,'pHZ͕ݴ4Vn9#njm6yh\KWf\gGfV 5C|"|;j 絑[njeƛS@k[<9OXA=qSsQ̖"b1A<AϤcluMZ/I:6R Rs?A.Y 7V%ڮzjMm>M ot<πxtE$QS iy"&sOc-5;qQчFiĠH6@Zec%MVZ&Y^QmM-BS|NAn2$'#?֛wzBSS)HȂN EP~7Υ6~,atԳif9YJ# Hdg8[0WER@I5i?>PEI.иZ S0 yrGT|C]i {i:kXʡr7 teƜӖy9?ֹ6NG=wq AkH{uO4ᓍ$8q\cm(vІᝳ5;^^|g2pJ k7ϫcQB$}CnsLj”ؼ)rF8Mk<&1#t<ǚDme}Mz$j$r~ɱ ZD Hd`8#*؈)Ի,ѾσhbxƞsǸ@o ku䶘=/zӈc.' yrQ%o]j6XI9ys?U][xtן.ah?jm]idt(ba4J>ugo2-_\[W񬾹PyNUb}J@FI7N15F jJj[hd5 hJdt8x7kt;j5* ͆tUXiltC[SNH0qùI3@;!5%s53PT9FI9ydji#-[W񬾹SY}r:+%k6ja4Fb>b6i5oe6I+&ej7- x9k9Wwk/T-_\(t.nTe;=;ʧ;0<I#xkc+(Cж r6nk2 ڿeʝ\nj[M-Dkn08CWάmmh-TV2}-caXIs$j0PL"" """ """ """ """ """ """ """ """ """ """ """ """ """ """ qU__ac_local_roles__q}q Umatq ]q UOwnerq asU__name__q Uformnobjets.gifqU content_typeqU image/jpegqUtitleqUU preconditionqUUwidthqM#UheightqKu. iR((U OFS.ImageqUImageqtqNt.}q(UsizeqL20900L UdataqTQGIF89a (()RZ^z9 (13>`<-*Y`@z-!\M IJKY)؇tjWllnj09?D}Q妝ň 6hM,xˢ 8jzMUFUstu024𲲲 =?^"߸ wL=m*)H@H'inLulw{V6W:bGPAMF&dOumܚ عܭw^}~cdeUVW[+ylǞϰA=5QƒxgD(bREײBxw nB:=9Rٽ++©}L5c `^c4.cb $!$ѷyz{ke;+H+'Dn689l_N*@@Bqb@Vo]-./OPQwwlfFFGI|–87w.J}6/ i@BHk!%^<~ȸײo@R"nHJ8c_W־ꞞRJϥtO?egV»\\]vLRO( H!Created with The GIMP,HΐvpUÇ#JHŋ3jȱc!ꬫУɓ(S\ɲ@,鲦͛8srϟ@ ]C*]ʔ"LOJJÞZ@&L 굡حQҪM{S+DVQ= @o=g0amƴ`Úԛ^nur;igg͗*ղ`&-#>zt̯׮}}MH%8`ꁮcxl5w=r1_+ 7o?Em9'b'ӫ_~ h{ C!¾y7`w`Pd4@ #&(C $hhC]B8h@'xc<@ژ8d%&AcTVi*0DSI8bIb?Ni#'xF_O8'i@J` 4%=,/%J0W?VD?\6iZ~)N \r+u(~7yYh&} y7Lx&J-xJ?pi b:.O8ʝ(ّFuQֲhYLs*!䍈ԼT>w1DnxU(Q^ct1@Mi̮ Tֱ0?5(xqea kSX(ôe\w ,Oen`ve-KA@L.QRdDYĮQ 2[eSe ?Zӈ%VH@7 Ͻ[:Ӂ#;lpvb+EYqԓ2=0K b@ZWb>+Ƈ=왠>v&(,<,E= F⏧}J'6&~u 'qVK"sB LFQX[`"a|#C– @b dH=O 0a?^.Q >$8EWFqC2@eX#AH/ ʨ[S$N,DpTF7-Bb`\(;0 B΂ 7<h DdJ>$1T׶v w^L hX,l8]lP2D\" T@A 7"x"w@V|a:1,XHDP$NJʠ^xe¦1p`{GF@b 2E m D`G3~ 1dxG>0pE^obp5,! <JB,PQ04s6m4#RuR]+\#=UGwDu `hI(\r@TbD RA!?CjD ;ՠDHj P1hB.RV hj+摋%@nYA?1HRHoAlR#p> w?Y. -m&Ģ s`* ?4p`6(1l# (!QB uxJGW`0 "hA[hKD EA>`,S*!uC l* V1+H1Ti`jPv W;c2 -d!Ur.Q*X 0$i+6b ] {"%(!0!r vA X:E]PrUt$5m(V. Y/As X|G 6fd&Q\0 Pam,AHhe 7* ҂[9)`]T [5c`(a8V@bS j"7mi[0[jj`Ya2n^7#9bV ^B%pMC W r|GH;RK(XvEp@(],GXPBP Th^M@8!X%Шf&tF~8F?o [aFBDPGt@nCGkY@<3es Ă:ʰ~/@<`lt ; 3 Q?`C:wWV*2w&-Nc?P? p.A#MX ЄH rb+ba822 0A,:@*ai" T~76` OA,"14 n4 "$~FBQ;Q6: : s)2/"" "!9#c2y(Y&Q8R;)1R? X!p8*s,aQ`q.]<2tces>i1S6C,Y}-S*~Fh}ѐ?g-73K83y0!Nj6R93gp' w2Lst#I1B䈍4jqO0 c8gp`60 0PC o7 G ` *V)b9CٔcyCY<3O WDIpCxДMyeId C[i *g TiMm)Oy@a9g 9iMlٙq٘I@pI@9$ypP P PP IșfМi `$ ٜ_0yɹ9ŹPP 9왟I隥IiҙJ`y % %Ȑ%P0ǀ 00&z"p Ǡ\ %8: h@jj?? @$?PPQJ% ! $#b.  7zc0>js j#{ |zv8Z:% d* HZ+Zh'کIj_ @ z ILʪ%h HeڡGڡک>꣬ ڪPȰ Z`zz?zt%\z:Zʤa ॱjʮO*  Z0ꭕZ#ڮ;[˰z]h0  ʰG ;۫89z:ZـH \ |  :%@z*:S Qj0@{ J[** \ ";R'ˡ HP@E+4R _  ^`۶]ZL˨u,7;:;JE P I \ *Tʯp\C RۡjʧKʮP*лk,Z`;j#`˷Ż00˹иS \  0p+.J%*~*ڭ,FJ k,PuPJ@;ͺ 0@S Jk`z /\6z~P k @ + 6P<èPI wKĶ e 2k|iK:-XpÒ 멦[>bk1 04@f k۶0kkf@B` 4 .P, Ʒ`܀ Pнf0I pǻ` |P,D;) PJPIܬQll! ۢ@z`% @н`:ܮ'`н, P0,) $``~)` İ  0$kp ̐P 0 4P @@@l 랷@ / 0Wښ ` $@jj ƀ !ЯhPҽ`˃ |ƅ ,0 PMѪ Ҩ"W0x  ,P0 z Iˀ̓0 ~P R V , _ B;N|ʓ@ ~0 İ 0P z0`x P "|ܓ R̴B 0 0 Ŵ@*@3  !l0 A z P  !,ںJm%@Ͷt_Pf@ Vp !) p0ݠ !pĀRp 0A!m`JM -N 0 $@ 2 {N B°|Ip С@V@ ( °@_ , ŀ 00@H𿃀 V0"0$ 0  "zѬmڨڰ0 G` d 2P`{νl.~0 @  _ܓz# (; P I@M ,Pp WP~ .k$$΋ 0B@@̊` @`Ā `$ 8| @(PE |^@@؄֚ᄎ(?䯺k @Y `>! @5 A %p~ |惐9` n j{( oMp@ \pۂ4@꧀@ A `ܠCP  @W$ @J;; f\4:°UH$G AGV"J#F4=H%I,QƔGt)RL$5Ʈ]_(RLذCzvjNJĤ"PtFBb(ۢ7I(͇hrHk8s\mƒBѢZ?Y&=EzlC6G]AatY }%hD]@b\'Uz :ژ$)~ B?H fHl٠ta $vagax8Ʈgxr {g xa8HG]H9Fb+ nJUҙ yqPz#t&1[)$&>"RMaAC\II d!!B8'bz'>[A/z{z٠^H(flAbX؅|EbI rݠא%A*D*؅|B٥A^ *(&yɇhzA#x68VA$ nq\bx*vᦘ 0z$$1la h0|!;CK=|J] .D%ZlxT]6EJ0 30%]3 { ҭ ewgl+BXB@s6ĉ ޅ^ޥ^XM{alpɾ 5$⹏'Df5Cd&wdb}N1Iz5#Jc h7ݴ?i 'K I鳐 tx084I)l0 $]F qc0lOxkh$n4N{F\n`A>zq .HA.;чz7mX搋>q$C!"kXE7J*AY hCYCu,b 0P$\)\"̰4DeTEh贒HB${س-9Zep'0EyH$t~00pp@H4dLQeT04{e|/T|H64$ \q6,yB+63Tr \FchmOC%/F$7S\L2kg&dBIz)4 ;O@ivfR.Cնvnr:c3URm/i`<#M3RI)o?}hR̘PhށfJ5"T cRGRCؔ})?w nȘjl]u)KYֳ&­ok\**\m1׸vk]XaKV1+d**lc#+Yrֳ4B;Zі5mjSKҮֵkeV lgض}hs[ĭC\6unt\&7 n\N7.u].zKꞷny\}ӻ_귿o| __F]Cp% ?! s89a Sx?KX!c &ka'q}hBЅFhF3яt%=iJWҗt5iNwӟpGxp߷ x ]W׎}wRyC \E @ӮDq_hюX 8F%,(@7 Ny%[6zނ)d`E&Ad(\o?8  o z0@-@ ?8-p @dTe@% + ;wltt>,ЃIN08@dvn|\&,`|b/QJ6'PχGNr &F@)7jps@j+::0[5 8؄SM=ۛKP92zx\; TAt{@8؇ )0%03O һShc;P˜-lAƃSCC,$>7 Tкw%}px:h`NpHl9\H8LhS|?Ǔ-B+Rȋ>@@$>#ؾ!3ě4):2 (8Ls|˹3+:9JP,NuMm9o5?u0A,RQTC9-$4|۲Y}[Q0 BBs+Ua<.P0hxѱU5i20 Vj8keMwhv8Ls}EW+At?`z:jBoGeWR}~shK7!N(-#x{z 68qw8jKZ3]!_}Xُ֫Ae@M`@p8@20QpLtM^BMRC=pC L?|K8$dK/sEG䪇m!lhÅ:0ڭb<Ut 'GN8ɡ{Z2N-!pQ[tU:Vm`0wxVH7 FYvBܻlG t\:< % veBhpPf.]SN.ۄN0oPww0Ì sG9phP.`dq9Pu(l,]W:@+4xJ%he~m>41r<6 f nGaox(Xƌp}8F;gj0 e3P0 MhjP.FK\՜lkGoM ./!Խ.jnIux'PYPXp`\lY@Ml V`psP @'pH'h20 N0'Enlǖk/{QL.Abf: u]@CYCU*Rc\ͯ@,(5p..CW܍BWhvP\w[ζ;p-mA`[M` /oP| WEv,d~Jܧ#q5t(2uFC< (O~vǮfh+ќ[7hZ ǘS˂|rTNd*UG6`Q$+T$UM0$fmd}%s#/=2U.;O=BE.M,,gK:mgI7"}t){ԡWVXlV1Daor\uMu6,Tv|]u:5MS3LUr}(qý\U1\?%*+uqu.-B6nsSe[R+1Q{}܇']4"v||/[V|)BQxp@VzMTS]__5V2S7 ]%QjWRu7Ә4Q0s*lX.ӛy}U2ЃZnzM&c0o{sXQ#<]2.9"vjP@jYpVx,ʀ5N8DQ(yDz3 z|jLí_Y p0!u1V^Z.t:0zOFXN躄EX4qk jP{^Zշ8/zG7 c UpT`\z@h: P T C !"dxq!:0QGŒy`eN`FuTK=2m)ԨR2=T}7eoNodpKbEi׳1t}=zԳ`_=Y)W ܀nVVuFթ%w:Jܹ"R)@'Dqrjn2 hN-kߐƵ1NMڷs>4{( @p޸K.fVKG0񆡲:C&4]V(@=CD'J*@ @p.GQIf3Ne'ė(t2%V==xQpK S'(Ol 'Q>g:)E-R3p'taf ]'o[6(KsNF?-07n(RХP[ n>3pCZ@P/F zCd\r5|ޅ r Qj׳;@=щ2r (nXO `@+8\.mO8= XA` Ymo"&)CD+|.q(!)Fv 0`'`nЊPcn0@c 1OErM D+~"o :O9dژf3L` 6C'3ohjQb|P6X o5_?~9\kCg0Sz.-LQF'K{xJ t1༨AsDa -Ϝt#fGss4;.ISO}$$N ՝賑S?sR pujR괭C~~qvB]áW CȴvRPDЕ BuFg%΁ UOHL8jS+ԲVCLbcꉰ8236EfBk&^ h@vK]rL:9W }v;^d7էMT^j=lt(0 ;]#Ay2+ Sx(?D(0! (2iT0#UpS4IRv~1݊`T+c1GDa਀;Ysc%u1 , ) (0+Qږf>3jIcN pb!GyZ.F3-$ ?x4JQ `L S8p (8p,nTp@~5rwvm"l b2X- 1gu9Ύu݂^. d@:|+CM"| N9.>ݰ/+MDaBS+7\4lF&Frw3´vPtyh_ R~f*(0AѺQ y[@@80 VQ5/bQ< [ $ehEAUS.2V"ϧ!#JC</XN0vofA*cxH;?쌊 x a޽;Pul@(,`#:ai=dl1b^ ~29H!|3>:HuomP!~~zxdp"( y䇿eG\`&( &AS~q @1>2BD!A)tyچYy4<01ZMX?P qXq ~T 0ɠԅuS_M- FPa?$7\B1n!7((B*™tp!2DWv ĵ Ȃ(C8N'B]B8 KR|FDݗX}H="!z : F"TxXBxd#:@@'(d@0`bĥ(,pcP88ˆQDK+J :YlᢘQVHEMS#,TS2$0t,dBc` p(O>U%KjxSD" 8"H6TyXP8 'jt8BK@t;ȂmguNJK" iaVq"auU+TNEeXC;W' C0A0CdSK[A*(NxldP|$iI*Lh+:Cd=eaB pĂ9@H&W8xC0;A=)9QP,I(jMF̀h \N=7 aƢ}(ktB=7ABvK.dD8q PaN :B8'@JA=̂;@=НK@0PK4 , ,L*0҉'A,$ăएCpԃB&:dAK2A ԄzG;Ȍ ԃC0C0>i' aPPLL9HLˑ(CBllEʢ@֨e;0x E+q)w,Kt9Ճ>t^5|#E | z8](UZ:Q p¡@;4^ᒉH]H!t70 l{ E+,@,jT{LZ %Cot(AM=N\tCʂ,4ΥD;HAT7i; A\,2h\:+sG*e'B%rjr X5\h#(lBQOS[N7 u&$(,jԀeJ*8m+,OL(:•B:tF@T=0DYpCL <B0^0,@T,:x6@=5%\C;•H/O*iRȐG[>ǒ.G8CTӀ@*+&* @z i,FыH|LMdL,p}GQd[(pBc.j@~T:9 p 8< Vn" Dbx&CLGNy#WanD8-7|i+djy-?N'd Ej; : zpBL&s!PH .!쪎:h%aFG(&LpWuSfS`UO+5eHݞre=$TP!UIE:^-FQpU&$S1]&{-_ӡ F1,blA#SVld屛HTF@Pl"[MF e- dYG 0=nZV*/!(pl\@4dz8ݪjRS䅮Qɱ=0!G&VDN`F90MC.䞀Fz%#Sa]hG Oo#Gs(':e"{A'W>(M % CCWM'=XZK5 bsÈ\7Y%_L]au8U8l¥:pQJfuDr"vT &8πt GQEPnBX"O΀i .xQ+Oa(z|Ho-AdaZAp .<G epEjBcUt7ÜN{C'$jilE~P,'A*LgȬCɒR;4#CC@yԁ|'PCm KtO\=@[ @g9ޮ¨J1D@uۇ&j#'QoT8;,R,6Aj_x8M 5\ &,@KOD*@*CȐ^kFAμԆ@ 5xAՃS&d@8|%C'PʪldH<*F|LHӔlĂ'+ՓUKddN^/@DNPy F,`A1fԸcG?*lWzaRj&-0dSTpN,QE\ȞQ ҂Mȝ*D j}XСE_s^Ԫk ƕ;?8$\0 t4)gP!Gݢ םn#(?RW}ɺ, f&C(iAsvښ(J0Ÿ9**D(8†>l8hi1>I| y8 _Q%pDo* e0&`#5V(DzмLèM"Sz'9 4C-67ZΞ輍GQb,I %)K駌F ,b**A'49R(W@i1ժJO :2-Ti$bPڔHG*B3PxFy$CyI e4˳bWtzhdH^ f'ghg݌-4`@X \4aN:e/NzpzhmPPU­ڋZc:x[(w!g$(bfZq @>6UVJaRZ Nm(qm`@yUWo Ra%j(Ps85Ǣ!:~}S`\ % vXP(fȥ }u05(̠,UaYb+#ӭBؚE*l"C b*o %E, *B]~$4q98`,vGQH8:"C8@wPJsd07"8z #H  Б C}4 A +pQv `8`)H:2}̠OQ؇f8*sqHO@8s"jC87waR#&E*0U.a6u.p"mEsX6ސ/˪ E=P ,d*%+D'fԑ0!JDT! H;~zc@|56O0HݯfQ@pDm)xG J+ e\HA |pR6ӦD1C0.x4N@J+e3B ;B"?x!Z.Z#Xa0((l-\$'F ^@(sB;`5Y@!"Hhe@ N#+_=.a7lCVz<0 %Q>j&O cJ;p oT>]_LA8!9ohLK}B Rtóv[` W!E-gx}2S%p$PX+0PX4F@@a:Hb#5pjXflN r2x ~ , # 0Bjcmc=c m z7 ʀ5!8](F {?$4u'gP `q{ D ɘ(KHM*bVb`үM"f,n f'h)؄-\UE `4G',n6"e'wgO&!J26`$ .\#3F$Gj!M#L#pSb*@mEm{(C4#`VP^6 NZHzkv(] -((AڪEyb,#&G~<@$ aD0DCZ Eu`B N"F'NNPn$r|+bApA_3FP*+paҦ< l@:`E( ȂIq>zuJaLh>%hǰq# !p1ő6Q0bQ64Cl1A'v D."'Z#76ar")'.F G(#'r~̆ 0#P|"p(rGa% g$CVdeNO8f0[2:bN-HPzVYlClcd'_Wz64 %+&Rz@ң 2l ޠp>1Ё"f`T+cW @z$vN!n@bRa Z!S0z.%!**4eLRq/:a*L@2w**-"F nR,ʆ6-b&n`ҁ+~@=( @݌j*Pnv"Ӿ#*B SMv`*}:(8) v+-bfbo>~%!K'@S*1)(Abp`$#|:  4^* *b@``((B۪֡4|)B(@ėp*|ܪ @z(zi2`) 8$ \jT~ 6LSNLGD4"L@*L:F0} B:aifh "$g xbnުȪfRHNCVGM3"UDR"@ AЫbhP]F$Ff>.m!LP@@C,p`a. @u( MH Ԋ\fJ ?m 59TG-jMHv2O @! L(ʠ o!%| 8_і"JG *\O=Nf@kJvS ljc 8`^ Rm(3ʠV 8aցn` 0gF=kV`bU[uXO*g!2oC.3bZP# l2ns'FG+7rc4A~$wsՃx'q97tm#+RtM7>134Tm++RP666*<<<ֵkhjO{Q~(Tp+*&' caFDy[Z㟮$F_֖v('*zgfNiz&"ƝJJJCNNVVVC ?@%BZjkӴcxF@">ɲԸd@޻baӅ,& H*\ȰÇ#JH2fcǏ CIɓ(S\d 50arlI͛8sɳO5֚ѣH*]T˘j6JիX Q֯`$&J%'IJ بǑq14R"K1@L6`E"1s1mr;L>tpq9ȰEt$eh@ HJF؈5yA{F?0IFPX`E fptB w΃f[^fTa;AQaCEzp': 5n6C1P% ekD ) y Esuic,1"Xϐ'3 XB{91^uFs!z C@a іf*<8W bƉP 4Xx˓7-8PC 5S’v{ pPnBXpXKр-d B7-L@tD@b :44t]a1POP2>ׂӡX@>Nbl A'uNI]TJM{Q$ : C9a*e)^wFa< Bȣ\n̾ k3fs\B0&2; /25*`!w% 0tgs &=QgHp5T@MjDmzCT=a͌f BGw02gtt*#pBX ?K.g^0?QX]vwJsVHq&wct0x>CBpG!iJ38>^@MӃ{=Èx8p|l 1~hKsUQbubA K}$.KpЖ0RyX뒄A;$KZ>߲i4tof̝dl@B8DXFxHJL؄NPR81P;! jЃ)j6@qAlx;p`:Qe kN ` *! ІNpP0 P :Q >v8 0 u8 +B X;@Y }P`hЌ- T ؈޴P > ; ! _;Ћ @q 8Nh]8vv( B ;PX vp (_/ 1 yX u`w5ȍH B (B`B > B` Z9xe` B@9;w j`Y) 0ψY>  B gimi   ` glL;H ! ] oB`0 mBv()s ` i|闺P@-` L P 010 ` `  h _  A ߉YGjŹCpi) X -  ^  کQ u0Iꙇ0 9 i` } 8BϨsJyZ Z`(Ѓ hPE;J=J8o8 PP - ` [V B r p fڗAo m*0ev Рتe`& Q Zbo E'1a> mZ;а كg*iLPʐԊ? =w    4{v8 Lpʬ3 ;xY9Z˩K>X   a: `ڥ; D &6a 0lQ Np:n {:` q=+°NڵK \Ҹ @e Z0 PY ^0 P90 䨲,[_ Ѓ@!ӫ {k2ٹa>@N +HIx u P hgѠ0 \ By_ Kˊ z8p ` 1 "̿ު^ģ}+C^@ ) ^ jyJi@P y  +\ 0 Z  _ >qpj 1a@ B Lpm,::򳃉v ,02=4]6}8-p< 9H. AzHJLNPR=TԞD=?^`b=d]f}hj] "]Փ!k]v}xzDJ)bA]؄ l؊،؎ْؐ=ٔMX ק_p~ho-ڊYϩ]/mתt(]}7ڼ=ڣ}<7Dw}=-MMܺ,ͨ<8!] ި-!? L]Ҍgީ 봋+P > n> _` %^#~8V m°BB^F^Ѓ`D.IU}U^DHNam` u`9h GGnG>t>uN[>Ma1 :0 pϵ0 #?-Ő~v@@~< &9Ș-骾׃E}p{U` K>fo?X ! Kλ1Dp>Dam뻎}NKyfy y rj jpu&>?4pOa<3M Ll  T kqq@q`PQ|-^ѐh~,a @Cg t 8_u _M  hc bl P m`V!`>0 0a@ T g c?Ƒ7u> ίŌ 0 Hp _Q`]0_]?t U @  p@?s. m WM @ UU |W`p r@P T @ T@Xq_}W}ȿ Àpѿp n@ :  >QĈ,ZDQF=~RH%MFa+:TUR & +T"j%ߨI=cH0ZTAuj69된ZG -$Y,tH器)Fu>jp =Zٮ\ᬻ.Dd5YhҥMFztzeի,*EGiJ[f[t d[Hw/{v)իU|&N-FR]z֮/ ;`"*ىY+R j5B0C 7C9R Vd]f *euلZ0![e {Rpюu¨SC Zg8iR.Q/F.av+cG&Ca$ -{{`o>|䇏|sgx׾wmRu?%96 , "$x \@>,`3R`3hARD /(P"fCu- P<%F dX(2w "\@x *Q "MXJP1|a !CЎw#GFЅ$T'b!  C7p\d`(q' C=-vA;  @W84_"m]O$" 8pZ(Lf6SC@_ @.h6( H7O087@#$6Ho8` A2 1P:) ldH 1% 7O0MRh26 A΄iLe!`J@#ToLSh1#Ȃ}A#f4G>ppp#S6L)Sp,rذ:@ mb9>я 샡Qm,s}Ȣ1lGF6&,"MX׾H΃ ')00Tb ' <JJN'І=c 7MG'َ Hhz;bX|E(@7dq ]XO29<p&`<1$@9|Io`5ǐd!Є1SM8Y9sdN'*XAoN@#V' I_NSmEObMaـX¯v$g:~aDxcPI]*fK:Nf~0Kqib1وKws_"krqU(1>;ǜvNFw5-z %/U]yYvgG j3V& iaDN*4$[<e~/*'~Q!|x4`Q0 -_[ݴwu?O%Lg[P?^K SÇZ z^/ho=U7W] <g{쓿}1 O>_~C?u寺9/? [5S@;,?뿂p@t ?@KOA҈yØ>$ hXAdAA #\=#A \%dB% D)DB&B,\C#2h>5$5Dc3/=96\,=? @CA$C>DD;@,FtGl= A;DDt(KQ[DO4ED01>R0>URd[゠Ӈ,L< eeyqeVm,؄i9ݑF])-fTd!PQ6e؀q]dGM@c~UIHUUAPQHm 09)uSU]l RnVVTs^@ Ng}Hm,fateX Rݬ0hEx:RZtЅwacaH}FcY@ZtfA^0vNp(gFNY܌I dd;(TdiϢh/@.謅f>E) deJpLZ݄FpP{9^TԇUٕe]MVqpkJV!q @)}Pp-[ eaMdnLl hG5޽ M؁Vgh E-! h~wΎE0Z:݁fVP5ۋJTJMmn,Avxҥ֥N ҶG؀a/u,mԛ4 qlVhp=Me^vXXϭ'f6Xܭ V p]؀[Pi\':\ Zƕ]Ov(RFe]l hԐh: o4Hp>H7ZLk/(QŴ݁Z؁\a(`뭃L4p0dNmG XvHU rhm^wPkb(k ˱NhIV4P'-Gpt\ pRv؁/Rp^m܀:ʈJX8JvfphPr}` =dIu^j.:Y@[8(|L]0 v0mQĔ;mZ( t/H ͩpu8MaimLhr I-tugVhh`4a-( NIxn3`xx3 n`]wkpS7fYlCpބM?7MVX\pJI{P(BPtH5 Y5 8@pxx؏}@xs-BQm;\આmg7dxFthG5Zj<ԷhFZr/WlYE؁#PA`׏}؏xgkAGPpj4l0TYZ0$5E"t@G"2Da ?"5kA#32aVPu\p#:w'Pt(ҤJȔIQ!REZ qXxa,Wמ-ܸrҭk.^qD4ʎGԱEHFt0,AV !D/.,2fvhQӪ߆!N l5 Nٰ+bɢ>8"O n9dNd˜)BYRON>:!nXBDm?!P5m֦:5YgVũeAj!zؓ^eI-0HhD"#-q|!TvQBЕ߇scs-&[UjH(mbAMH%aYPNYjMrYj%?U'|! aDDHBu9sB1yL0aې@?G 'XQV(XጠZzs!8"xP5D0EM4uԢ$beVG%(,O@@0"-J\Q+<J;O_Qg2B #K̠5/l Y 8vdO1XwBh褀{&,<ᘑO0[|1k1{|ĚJw=|1Ú&u0 S ۳i>x@N %T2@u\pXt\5]{5aJֺD!$1ME(5Ɛ.u,87X;x TfhK+\Šb5؝{9CSqF @hčM %R-K̼:ѰS}Ev9 /8)x J7 TD<>髿> Qmf3B ,1Ď̚;]bP,}.k ^wqOB X \/{zE r1$| " N^3DpkNH8ÐM|A2h4ChxL˒&QcMiB9Li,!ly¹'+e6ŤXqD=-؄AM@R 2ʼn|,Q8a1 :85P܈ Qxɍzaz"4lDO|P&X,P a, }qc&ϘFj)ZCrxl\%B `)hC!v'# < plk:X@̼/V #Z l Ѩ@ъV,P.#V[ ]xD^Vp.4L謴K-tY@U΂dɢ `0x^ڰPX/:P]8U(S~ KW+hCQ I\.&f9V_)Z CC|/LЀVh@?a/dBvC&>/P:1-QO+Sil8-'iEg .BbTtR u$FU?ZM؁حPC&l#ihN6o]|a܎063 µxGϿ`ht8A[ZHf?'mYh2~32upv! X1ڠwGCF A%P_r<OI;&SWjŚ3ՎP  X(YFmt xd# 6@? 4;"\ ,!P8%HH-[m@Ȅd0?;CAܹo}C"8@&,B4; Luދ[$W]Q 9D <05L. H@ [:9T80H$FT:xA!á /nD $@xAk&0AMH@ 0 `:(!DMn@}W&8/lA1d8h#p!  8#cB@0 Q&0`֥x*lL# <82`.E&<;U >:`FD([a30F β5:Cm%Tց;³%;d&D`b$lN\۴Nl;لyD~d e,tˈFehDPG$GdhGva6jDl/LB* "@.( ,;0D|,(H: ?: $O$ :́CyA I ,%8FpGrR]C@h@C EOGE{`P*I$t0kNt&A&pfsو(@$d{VzD&xy((H,(89D:0;bUO%(8":t&F4&:|  @4 R %a"@A+pA>xڋ؞iِc(&R(H]@BR%|A;TB ^"s:E8;D8X.xF [xA8B"\!/b`~h+':|v|OF @0 hO@BMHhsX՟ 8aOX%8x\bUX2DՄ0(4/4(I(%:0d%xA䒍B1,m@4mD}F}HdTjEΪOǜBbf!m)Px"CdZBDF DMMXVeQOENGRx}GMqHb@@$5:0"i@%ŲtS1DAVdlSXu%DPdUfPDkHfeDG(]RYDNǺİXB!슁&TBE4'RnxA-\DLQ1&9P+@Ae]KpJq,^t)ldCFqQVG"ɖHti憤b ;:~M$[!쬴jL"dC}B(emaEnFA4l!@WfXnq1#Nd% h^8(|%Q,!Qu}&C>&,.8&0 /,ob@M#L5L>#CҎpU h+bM.R@"b[ƋBȂ([A4x_&x8 @b g$Ģ! B+;c+lh '::Bv O_Rn.LkEѴCM&Xp>8*ܭC-،:8B4l^%}:T@A4#c1H08@yF~ωPwQtN:DM1PB0(%(XBH 80,X@.0K 8ߴB[o?DC"e4=BA ,`nj|O_#y_ ¤:Hy:@Y홄*Cq&@./8N8o CT3Co:Ԍ#=N . k$r,rLPXBKgL]r}MBC&Ԃ?1A5"!DP00#FW&duBQd0LRQ7VK4ѻIs X78\˵8?Q9[ bN Pԙ1,K\{,FcAFhUWcOvFf| QGfL [kH%3MMD T$k6)'abǯhg]3Q^W',#wqahnTiil& Nh#$^Զ0wsSoo^11B =$AeDg+PZ#tw;svtڹLj)(flB9YB#/ʙKd#,uA-CA*;?lq:A1؁b-X"l?(#,:.? H'Ū:\4l]U@,D)䤨f {^@4DO-"XG A&̱oe/,ة8z&s-;| ñ \.,¯O{H@&TNg7s'^v@8`A&TaC!F8!jA^m5dx Q b- nBPP_1tH Ŝlja%CaQTt%T41L# RSUgbxR']MjɢbPeЪZ-B-5O!h!L; C񫮘:^ۡFq:NSC\Lk-hmh :p-`6tQSǑ'W9re3NB^Q 7%;{):J☠kwu=FP%!6y@(j"pp!Bb6&d ZĂY,`1E ,Mf; ! gё;ܤE71FlGQDx܀II{h8KP̄Z(L3LS5# Gp:"qD H #=! t": H I@@b39`,*q@C O8ЁpVla tp_!QgId1\$H`-6ZjVj.,Z [ S1CXMsmw!vPƧDE; E(jI:' j&L A4:tWK$xB`u*N6*V6f~ٸD*cCI"',ٯ a(ΎB`vqE rt ȋ4E } 7UhH5T 8_q~[m!YZPW.\hxD'wZp Q*P6ѥ.anϻ#aX ^:сb@YnNq!/^5L|Ƕi꨾|fGF1wtt6TGGg jo۾ S?n5qIh))P; y#H1ޡ Kd|A%k {Xꤎ Pm3E:@Ugjȱ"b) `%*M\J(,rAZBƷbN+Qȅ )P?**! t!\ي8\ȃ-o*8,ЁGщts&/8c ]I')>">̂kMIZg'^_I$I; !C Ov 6j% =Ira)":Y#Ǐ$#'FR ;,(a]-`J(Q}e\ZHWfSB(gF$,ਅ$G%d^!:hCbD6HlK,`̪"J5ݩM! R`:B5ipZhIFN%r!,: ( oXmB|dAmB؀>6g("Be&Aֱ u c$KR(&(_.&j:Ѕh0pBDӒ] p. betuFa:jĈy-^]3@eReHl%Y/45aD-aubhx!;Hj( DClqw׉{G, 0CJ n&T"ؓPV|aċ/`F)p8U{_/+VTXvv+ر\q/8T>(P.ԱL8AH8Z ŵug_VRYX+O,Z nAoZ!V-;$mZ=?8S md鷵x•/,_!!Llk[ )Y"]Na]81W:,,X,P p(bt&J$!T`MLҳ]YTuh3<Ia߷;4; 7mrW^,l~{$ƷMro"Cjo .Nb҅oA |}2 ?š Oշ}o_1i^b_ =KG滻_o~jooO]FPm5PMo2FA)90oEYKQ=]p/Oci0%hvtKi-ƌp N0 g Q  -lxta & V"Z@Ab  I؄ Z 'A *  APh 0eVnL%|5BJb ā36AΦJb3ApD0 ޡ |``|B$ F7"A( @ @`}f"9dMNְ f`Bvg?*A|yAFaFlA?Fq.q&|+ft  !7QqȱA!:,`29#;R2 TRHA@:k&$jqdr!Nje46'q#,)@cajR}_`E_& ' kҦ,?-nv@v*Gb-D@ZAzD2hG|%, 05~s6kB `AbZ |`ġ6' @$@ I8J'66Sf< ѳ=h<G==3?(#N6??W.1@O@"2(ΰ9Z;  B=A b""\ 4!_@-D!(AL&E]lOOP0$l&$R `@ 6zJ.<*v1AԁQZ`^tZa^NG $tG_De42^b! ƃ|26 6`-}@,aCpHc@$)7@!" ga`dAbq55rMGA@4g2A c6 F:@ Fazj-`^4 @A7`h.VF!Vjjn #C i&F!l4t_YEBBZBF*uaU \_g%]{J@O!ŁA @SMe 5%VhRE ,USk8VڂggJI4Ft*% VUVcVAA^ Bj@!l2H"} A5 q'zUSfo A ADUMٶtT a4@u5@ZG bW ڀLCh:- Q2R āD  a?:%y"  @Gt0Te{w ೉| 쳑w}|(}~7>{~v}7W~~ tx~ xH!XhpbIo ٷt+p"R .-sx=106A /"~ ҄aٗ3YM^b9O<8) >ضޱӀ#R!aqt 9E} t!uAZ9ApV!,[zR zg #Z9j-p'xᤩˊ!vhyyY ;% vYrk,AC a @oBXvzDz ~rݴp`%PZ⤙@NC ^Z:z;OZ Y,2aI%seVz AfJs$B 2"!3+Ar+>| Ҡ$@ nGQo@}t(вnvqMo(,";$!%2'Z2rn8A"\"B "/|Pb'#qgvè&^!!* . 1<ïẈ7?\ a,"с{^B_\yjcPN[A$!w@0϶ǕMBR `R sUZ@c0 |ɼ<|˜ỤCrſ2$~e !gA[aC2q3<Q]`lA=*n "B| d{'v`|,gQty 8 nvfXA}ԡE]K f}~B Bm8C <#|!׻ "A+=E̜A g'>㣜^R@TH"x ,,F[C ( 6 $f $%b= f)!~ C=/~K=.!!F5-A #,@7_1۷];XIg_ۿ_ l`k_gAW?Y!Pn`? J>=@ anP ?@0/? @0Mj9|1ĉ+Z1ƍ;z2ȑ$K<2ʕ]{/L "DȊp;¥`4ҥL:} 5ԩ|F͙h`3+V7iڵlۺ} 7tBª+W]&0s, zHŌ;~ Y5)?2V7 wKY:լ[_tR+vM[x07$& v<̙"V @Zg,,䰄Jۧ?>ʼn꣫D3Ž]RNvf0^䗂cUEX21 ]Rӡ!Dux_b%T >X~_MFl*LcSa߁G\B@X@02> ;iI]b%Ts\[ʭZCKnk*#Il(BQnnkn3HRJ!x6 1 N N)2XT0o &2˄s$ ի!LH ߇#9(^X` 9"+m`8@1]1x&'R,鬳׉}<'юXL3:j (E-5T{g "x@vJ:1B.: c-:99S,C-H#k")\K^-2lԯ$l@@@O&{J8L@l_+JGD :#(囈&uί-0;R'BA(gD}hAI>A}&6JD @`# fD=\  Qb30"]&g;Ѕr-CEphCӁ`Q.Q(_Rhd!DĈ ]`,ҷD0s0F᭍[_E M 5x"$դz: hcBGqG kd $.|I/@ZXa`EX9@TD   n 9v9P CԨ'v$ &X&E T\M i(-9A2ez <Jy*1 deErXB ^EC<\!])Px䡌yC$IQQ.cfDhTԔO" u"gA]BOQ9: X<*Rza **hBf^J`}uX- @D!tE-?!a P7!,5-p $Bc*r3Ev]I xb i^d#֑+DV+-HFEBPI;Z=ya\{[;HyBش0 z~'b- & Ӂ=j[W:b@V0а cUP6FV=;uEX֖b/lww{ Oׁ[Z_:x(-c/ ЈЅ8!B)>q|u7)X | CGhU:萇z3P8 ֵJQyu)R]p-F`XnA{9{C2P KAcD};T 7Cw;hXw薂2}QȂqÀ`mx%X#c((qC AjȆCA)kXJ @}m|l؆Chhk;` T0 dt~oi臓hS! j]W muGR*HH(h8@¨ɨ`0ȍ(؋XFXPXȏ ɏpMP  ُ) ΀{Z*e< 0/ @5=9Y7 8012I19Q=` >9;1=@CBI<93] 4 0?Oup=pZ0q! j%Y y )Xyٙ陠9paْ PIIi9) @ZPk Z"ɜmiIi)Yҹ靔)ɘiٝPٛ)Yɘ9-`mͩR9)Yԙ ɐְO9)O湙2ٝ-:)k@(>E9ʡꙞڡzY +P` 9٢-)6)X79- uG}uc KڝXʡ0RYQ  I+i` p-ސ09r'pj䙔' ސ 0 ɟvJxJB:iJZ9zTWڤ:| &*0K9@ 0?RY UySp̠:@ :=p0Ui2i5i'~ jc:ڡZzKz ʬ ۙ* `+8   '0'ppc @G* @ ' Gp򉮔0S 0 ɀc?zU+Z[ӹ)0)9 p9p Eےcp @ M ?{@ S@ D{ذ p @Tk (9 ˨YjʵKۨ`+@Y aGp`c9pc@ G 8K  ؀ S @ כ$ p SK*Hڬ]eKV*j:9ɐЙ 0 t[K ǫ9 , Gз$ذ' N 0G0P᫏`c˾-\P:3L5l7˫ ˓p+3;*쮇; @BJ; ЮM0Ĕ 9S`aloXy9ǥy)fڸɐ  LK 9ɐ ɉ<ʟPʈЗp¦٫|YȫǼs,ȹƌǺLRn@'pIy}=9qX~-xM Vׇ]׏׹؃8䳂+@ٓa؈ ڮ2MڥmڂJ50rڃ֡ ۫8!6n}X^c۹nMcۓSy~mۦ#v]"]#ڜ4xZru ݴUXcs=JXM;M NMm >  .cVW"1α!H+3*aAД%~ND 79;=?A p1!#.2U'-P *SNUnW~ `n)j`L>atkmjq.sNunov0䨡d~uNd:,ӭNn4~ r"SH!c"dC~ta"b}}&" t 7D+@<: Ő4CP jJa&^ v D!# vj@n9J>  `z|( uA e&0/u ;CuR jP<̃Nnƺ 鼠k>`ѰjP +N ;^  I(oPI vu`i>  :5u sjvPv  #I^ N`NNP u ;0PPP -33  ;  Š \'S&ֽ {ZPq$u @jPV ЮuP  ?R GNתLv*A^iڐE5nG-@Z$UdK1eΤYM9utrY-BhE؀ӤD"uJԣGu+RNZYiծeVfO!0.mTQtB02JߠUE(hu.ۘ"uD e̙5oϋnaY@EkyGfiQY_?1kر'^qp墵]P ZuٵoJ}(ԝ"_կgOsճ6NdhFQK"Ī=P#pA="GD%i`tلG(=x #NЅ>Q Pa'l@&ѱ q@- GZ jxс<Pda!//jaMT! b,F1 6N}|ujh@!b@2Uւ偄8R#G ^l@x2Jԁ|.uPG+pljJp8ZER!u\nX:2̗cX.vPVcPQ:d4`EpȄ.2:DuǁZQ (d#;qVMD4tLd)Dhaݢʍ|a:VDv`jt,Bk1YuTDɄ1LlBhe-Vk@-GJdB@@& LU7Ѫ]CDZIx)AV,bSGCi0 >W4'eoZ*Mp;ZQZC(A`):8aR),`Rf: (/Z! ܱ!pG78l r_P2 PI/(F%z՞ mgAPhTPp)V mE1i'btju=h;P{+،lt8ų%(RNRr.9 (LH2bΕ0lmథ WƳϪF!MKtD1T[9ѷ܀+ 0nSgaW:Y/{H3+ Peq!] ?OK6V/7NeCYCR4@$TXӂV@Pb0,+#vLE2e#1B>x6 ûzy!:M~F$IiS]f5 jͻ (z}5њu{^#Fg,&‰]]n^fOkc=/ɍd.ڶd˒qs$$qϝ^5y,nzfXzֻ[]cص{W; U;^xu{I_ ^'| ox5lw~=|xG;-=k!&1y^|!vzY@2Eoz؇~Azs~=w_^*KЕK'8G}hq._FPE2o| \'GG}w_o"DCW_c?a ވ>#?ȿ! ?t:\ t ?Y @̉ 4@L T @@AA= \A@+<t$* >$Tx+B4A( !9@pS>Cհ\ ))Yq5`ム Cj6ah FX p6>l'ax!M`  *\C0xC(\C<0غN2@ ŭ(E9!:RJdɈ85 ]6-`/̾"طa7`4` Ԙ]7ØƍDLXE!hqE!Fj( ]ĄQغ\B>HF[3ƌ{l>t2,}hFd/3 sE5(BƓHb rFـ/h+L98\ }/0)a Fé up`D@ R4F`RM6:< RGG ʠ$7܁ ] ŽѬJ4 p*II}`K2 Kv85HZpE詨чc.Jp$]09%1A*UbW: PZ@Ť1ݔӁ%EH"2nPv!? &, Wy ,+XVtqD0D3F-I%ԌO-PS?vSKN%V-.`fD%UqQ +g\y%"1mC:Z"2ڨ*lt*Ph$""#A1X_A%Ë0,cء>dAB]Q\%k#80D+f[f"7T!Ͳ Nۮ[/uJh*`I#ZK1 > <#/ , #w,ͶI8NrnF5`+Hka;ܳ۬+B]"K34c-|ڲQ'; LW*O8 y2Ne 8!s]w㝷{-NA'/!Cb'~flKPZ!k'6RzST#+G:+۴7S:4:I45T|C|3o LEFev`Ztǻ?NB!P"fQY HDb 'Q8$RwPKDÞdαnQEը!P ΡvX*;ڜz&H ( hED}Q{Էtj *v9LjC Z(e+R YuCQeS D]^hF1RX6)o{7.qk"7]n1FLGg},ІB\4XD1Ѿyk"b|Za];t9ܶfzg塙7Ӳg4! W/Fa c80;8"1KV2N1 !@wibv& 8awBI+F#=t%d+2H :uc' BD P^0?25?)[@ a@w +LvZAmhA4\/Q1 ʿt1_x%OoI&FQ"j@[Ы$b!:tMDKC3Lu/|hmho*;ED -_ЋR孄:X880&2l% %2l8hޭD:8YTZ%uB :օGwJ`*a Z4GD"(B\a-$B1x(:)*%(8Cx;-][@M|Z):(0AC-a"*4ʅh@@V+C\4!;ԘJdY(H ;hAm/h; 4-0#sl茢wD&C!MM b1jcYEImϠ NrDZYnc>>>2bԄc-=E6BC9"j!EF!Yx FK$K@?QdIc{=J3BB> 8;jISJdO2$LLP.N~OeR."PP*S*QrRBeU.SSZV*TZUreXVL/(,YF}ޤ(@84:N쀅-Ba.0ՄVaΛWJ\;dVmB!:a@[&DDݥ}X|Aء;c}$b¦J9;Z^NXB!T>HLJmJ%eaflR')̓2ŵ&ƩzCCK%q0:H(@H&NtV}l,0] p [4{(VeG92$k(|Ae%(٥%ЭZH=_Nr.H>m.BlB+;gB+4PsEF=ׄ~p&ĩ-i#Db4Ze-J@6?wnʧ?(b|l)FsBJXIB$hUtiKOZIlk85$,tV :΍",J$H(C-}45Z4MBRC$EL_!1>rCډkOD"$QP\ThKEs[Kβ?.85/S>D:hՂ!J:x@:h@\888ɵCj{ī:Bny-1 ;޵y~Ez.J\i "W N^<!jDk>!:@}%‘C3x ;$f襜Jzqm^ȴ@UOuh%6?ÞH0$Á)X6Qƥf*C3p9`Ծ8㥁()w Sʣ:B\4Y5m+(yR3FCt^3Xדq^|@QhNL\$ZEYAmD&C%@#Q`7sɇ:Ame8:|(x;@>،z6԰+g$hd2Jl|8xlmIxLgA͐âpx^  6%4&Ã(E)["@]Zm^g+u1t[ǻ#@")gP$KOr-0p4xhԐB^@ |?}|$ԓ.t\ibkN"70w?[. -v 5C$|.5HB!$Xµ%:X=̶'cRJ4ØĴׂa6c,KB:H;V";$R̭$3;p=:B;דj%d^GkX0f0cɽsK@):X~#!8:0C X7>Dƒel@1l[vyD*$?DBv,̇6c;u- nb;]5d.:-np(Q3IΑ4b`N;y(8^CyziRK6uzCptS&9CrRE-G[ uж=+@D;&җ]A^B7JE}-(a2E 3hIHеzݬhfPv %R4” %M`t FgtP\k:L2A)>t!51AI}UO]KκҴH;nٷw~|9HEٴ?kIڤƱjiC6ii#BBYk>t`*D MyimfhBېTEъT"%D+$ /KgUFer6"( ¨cAjP@ H_t " qCGgj/f0 3^T~9;AUfYzG6BIS")T”<)G"4) BY'K Y VOzVJ%YQ^R b!5/QbdHRERZ j,ҩӢNZVZіDLiTᴢ:uTC*j=Ur03WzJi\V&j[Zyh^ȸs}`?yꕰU*.aX^k0Y~ke7ӞUjYZ׾li[Վl0;(p[\Ur\W&eIZE=v]FW-0{(]Uz^|[fB* /#L& o|6.x^W~ AU"W \.ul@Q a/X:"@mڇ)?b5`U_8p4|v0bv@fpp2Ũ.e`֠46;q#|d.ד:!?h$hAOxY!\eQr(3d.IzVըfNfjXcm=Y T͠>%:9iDB$Q6"eЌ,tՁlsFnwսl h>ecf?M~#{$ͪXCBd_>>9q{\>~n ,\i`n/ PHR½q%Љo X`(F^xiNϽp&\Q k KuJ^viWv=xebyo7P /&A }@eNxъ%–P/A=q FBnDXO*HpuS6]׿ݓ!{M@,b4h&㧌:8(D!]+om10o`ˢІJ bl`_~ pMcVKZل$砆MB!/bZ~`)j! lm>+/3P7;3BjB% `B,aT7 o oc>B$@K)"EpM l\B8H  H,!9n$6!o-B/ IdZ( b A<Y#tI 2jEP4 ڠlo"2ӂKu.=6@$\f $ gF&Y,@ܥtEw`jXH$<1']K*,-@Ѣm,`,a^!鞃%m 9(0F,,Aۀ+ҡ?.O HamM͡23(=p|xXe@p 8 jN>dR+1i *!'mm r-poMɟ"/mЋ1r RA2)Y(_KAPw תNpmMQ$R|(rb,!^X  'b&hKj蜪RMr&Rzr|Q2 -3-5s81( ȄmA'3F,g71## 83=s8;3.@c'[a(Y=v"*tXr/f 6 F^A83^J' "TGpK:[ aJq6167G  =As=T8=M'~πh?K%jxC ;  <t=E3Bߓ9{F+q77t0JزD ;/@m*#!VXidU6FDUVmb4R}v ,83a bBVگ `!iME\C2h-f-|ujfq6c(.AW[^l׏Hq2dndք&37GKoG21,Q683' *gV^5N ld%77-'nK'HA77(z6Ms'\jB aSVos! b` ds1t,ŪosaRNApQP` wRTW_vnl@AaX Ls2!z, (J"d9(dyA ! ߤāZ@q+7nA6|V-w<@ JeB <!jsF.a N7@a@h `L* db@&" |/I#Z@6X G$-؄m @5@t! vr2!x!L! *ЀfaРbd|+2:o@]5=_!A52vI9_sa_ġFtA,j yA!͊ь6BVV"kAx!![6ANYA xg2!^ bD ^ b`zu \@ da |j9)&H&p5.-koVIatSt!H/  ҡ6 ?x|@|D e7* |9ΦuFG@F%,ehE aaāV8$X$  H bp<`HTL\ Q`!Qѳ=NtR`ڼ:#! x {E6LF[ wM!gVGT<  H5upAv Y| Itڀ<21L/` 0` bLH\ `f` e,AlY4ۓEٷxav7`Kdaa. uAavxx1'1B" t[ O,a@#FE !` LAb;b_`t@YE{ F , bbN׋Ykκ}!!|74@$AF!Cw\vpFa RtitHTitagTCG A= ([ Z!A=A1>``AT ::,@% *a Yvlb7cUcX  Z!gZAԁș@ tAT $ D+PilF35N4ZSm!Kw#avXzyFġ%ϣ!aw-p`9'' S{` `Jn%(,jK`52A}C^.Y`M?QX g2dq BhA ,p:t!Blh &j1TYhpl11H.1*IF8c EERРiãH*]4JիXB+T\- D- ^ڶo߶ 7Y˷߿$ř1m`! )c h>L$a]LaSc.YARA&r%O Y4v`J=\pDxd-؂S$ܫnٺ /)2oξ#%LsSH߯_őO0`qCOEGtPL4-,wGؠ,~"4*i!HAn"),&'aE(~ 8-  %0PB Xɂ.dtf&=dN*6aҝ =rk5&bI^ v\ނ4 4)@:#ffiS|   &сm>h$N@%F3wd_&!z2#V HQi)r&e8"tM4Ԉ_"뙱aqo*nR$R{6S / idH,u0"jlprSM>|<',tRkBH$;c(-JLuU+3u :lW`@seZEG&Y߀[eR.Çl~md1@WXRWny^@{b Tt|7稧>UꄿޗUv01 nz&>0Ll m,OL_oR3Q%J 﨣_.O@N;yOaG1hѮ@"$"~BA'Dr L6S O`T(-( 1h +GeBtf Ƞ=OD"3" _! I#tl_HzBXG0|{Dc~q Gh212"NԠ_tQ+;d +2:P@E@ #H*x@]: XyN<@Ї5 W(*#&M䒙a]x{F@B2& !yC(z da$4p]`!~_xDmsX 4#h+8G+ vXӎB+;@/^Gdִ'MFWҊF= 5XUDܕQ9xfLJ>%An_71l/!,OaT^6j7Dw-Ɉ[-ͬ2E#tNڞ=v›##"=eb`2 ٍc0ˇ#Q "A2(@aa9g.'\06˜m vy+DK \݂5!ʍuu<]!Lf#pkڳn>SHR㙎(t_\f!!ːx$A)1(' nU\KF;ڃm[>DDzo~֦sO.g/m3{]ZP L 򕏰;g~|#֗>}lП> <˷[/kg?S&hP `U(X h (8Ȁ Ҁ !( 0".$8؂ x-g>3j`I1S: !;wROWct:1Y^1Q vjh,Q*-QBwEwz{_x2bQ003s`h@DD ҅xb]cȇoK'0 `KQ0 0 A.v*-*Kow/@.`D:∩8[h } $ 0P,HH&'. } @ /@ 3 -H#z8R-}01K*JҍGP t؏r8p.@09h&(*4/0qt`Ќ . @* JpxZl" PEy+pT1. I "/J9B),9g2<~F,bHE)/pQ }sk@@,3dph .yQ@ Q KĐQ0/))a 5l8,8 d  c`E#bpgF 'Q@ dp " ':0&!r};.ȇ"@ o ϰ Q`RK(/I(e17"@o z@)xI& N)FK@ @aD鹗1"9nٹ o xbNIH } @ 10ڃ2XAP *1 4 /@0d@D8z 4 o@p'p1.XueUavk"z11c .hjPAkhB!;A 0I1Y1#QajweBh@jI*/s U-"jd0/e1RkpF3|hڔBE&0j&}l:=6Ū)pJ< Z&:9fүwäiK& J *i ;xӊI,j"J3KY:Y?Ak'[芏DOڳ- ;vP5ص^`b;d[f{h]>kK+ppr;t[v{pnx۷~}BF i ;[{,۹ %җWjT3 zaKB;qU__ac_local_roles__q}q Umatq ]q UOwnerq asU__name__q U schemad1.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqM&UheightqMu. iwm((U OFS.ImageqUImageqtqNt.}q(UsizeqL30350L UdataqTvGIF89a& " 1 "' '''-.0/0/.133,*1-400/8885W9j7)F<&U;=@<'e=ADW I"M$R/(r|%w%u*'EXFuE1VM.of=zfE>GGGLNPMPOMQS\DBPOQQPOWWW\Ug]ackROePw``^gggkmpmqsxjhplutrjzzz:GV-X)d6m6\ApOyRzjzb} ##-)#",-;B;CE:C;NK\iiUidNKYaeYrl%25  "'*8>''449DM9`?T4ON[bdTpmFFKRPNXWGGMRVAXXZbhWhjjpqlxvhhosukvw\Ynrp|XĚqƦ{yy|zʈz|ʻ㬣ªԹȻӾҽNjҙ٢ʹ燅茑䖊蘖穧樶鶫踸œÝëƩźʸҭӺӹѴŹ,& H*\ȰÇ#JHDlbUU͢Ǐ CIɓ(S\ɲeX岦͛8sɳϟ 5ѣH*]ʴiOl8ʊ崪իXjݺ2ԍTKٳ;1z͈۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺOuMve0R]4vgl?u(.; K8}*6yč=4h\>кBDf 4?7@Q,Cރ!FFؗ~8P*NA!PAGЈ, Bq(2OR 5P>]s}Lyw1QifA(OCZ߁KhA*ayPei^sV(/zA>q$C&*Px(.棠BeBnW@W"~*k橁^JФdx6j˘kAkԢa h^>Ֆr(T>yv'mJ.bƜT#'|h(0Ŭ_yXyHX?qbP+\@bPItq0bxA Kw-B"jA[Fm qCMA AV뽴^-8cv wzj˶1+H 1nO/4ݞO噷[3'LS WOM~德z2/RqbL?=,UjZ#mS 2>9 δ 㴿L1G*fA b: wEr=lj6- b h'y6 RCj<[L?GjXu| ]B*A/u Mw #bAHAtqhQs V ~EH~P0| }Ac 6"E.RC8 @C#׼Icю8bmb+w1MIu20q bC1"IM IPL2f:Ќ4IjZ̦6˅d\ L:I%{ȧ= r}$A&ڸF2'oi6H lco*= mTM6PH5^qdT @\=v`, X@,`(E@(NYҦ#Jب@ Ttp7!zլ(*%n ,@NkMԙ#V&JUC@X@5SA¯fr3h-W9Қ?.[9 ٰմ% TrN|T6?Bچ6inn cSG[ ږ D[k*w?ZPxUoCaHq,a: <*S@6v*;~GL(N%ح7n`8αw@1\if8+AN&;hA|'[X2rQ_Fη#Uʜ~44lVsmlIYέsJA4fȤ&YhL#q?jD[$a~tH7v0ǯr dC ZX׽E^le#ʆp@$g{͖r>@'>0p6 07mngGآ9 MCըt"LIZ o> xß='~qOk! GgRni;jB.><5DBA|C6дyg}HWUΙğ =P] }$6rz3U )uΪBf:in߂ڀkYCK~(A4HЍO'"P!4aF#Bw_'Ə lDG*Q `/ ~G!RU|l"l|G0DX~7QPG*+ aX"qC` C }?E"A"@D' @P0wzUuW0@A P% @p"ڷ}f?@? P 0 ~~6G2~p~# `ЁFs9h 0X{qnvqP0w P7 B0{qUL!ce:f@@DPPɀ6~'qEY "@ @ @? {P0~0 PtrXh6PPC D{~% # &{{GK1NSyU?0> @; @qWDfOƘz(| OFހ4WyF#fV 3|iWg_rI]P9W] whu `;i2~;gZ#$CT_ĕ~zur)iuȷ}EtǓWɇi'Jqfiv7fHИIИ9Yyy٘)9ilٚ Y雱ɛ٘ )ǹMМ雵i9}]u \ωωIY)L))iIꉛMٟy͙9)q թ HNOИ^١yYʚ鉢ʛz͉J XroqZuI j@LLMntHZt`p^HGk^oK0dOPLpLzo>J{xښ)[˹  Jkһk9 =kkL |-U 쭐i\J$LJ±0#\((1 ܘ- BLH0;Mwh!qgU=(-Qi]HD&Lt:f0):R<5犌h=Ưf o\ru܊f|bDR],wW.R*>R)9p)|ȗu~yi| ɕ:wɓ9\pʋˠʲ\lhbd˾Le8hs\Fdaf 0 PP.@yGrvB''f'e9 ǼB v!h`| @wm|^ 7o/6pO7ds~S)Ass"A\N0ՠp p b6 ~$P P^#Քg Tq  0p`l6puT6@R(Is ikΈJqg%VV`lw@ppU9 ߠ ߀  x   ]j p6@PƓؠ@ 8`G` /P )p )` p (sՠ P҃nG/pGX4pgW^ uPR^S QpD 5nv`u upΤ ovk@ Wp ~p up hO ސ ^TQnՆ_ȥ 0 L @ pįj;pMOUm0 p[pϙ 0 d }oa‡`$I`_V-Xqljpϔ?i#/a*t>$|w@JbďKJDRJ-RL5UƊ M=}TPE o@ )Խ$ȯGX ~Rņ-RhݾW\u5aKaM/ت,_%;ݤyXdʕ-_vf?:ķ4FR]V[lڵjF qVH.f٥hո[vn[tէGKf7vX5rI'j6%\o^FjSAS^?^{ePo(amvԖIY<VG}ПMv\l&Q|D‡Si!P !X.Qam8釢-%hzmRxafT} 3t`F89%jzxǛy`l8 D!226M$`dȇGAM܀S0K| Ðe|qGwoReI Sh\,j$? -G{tf@,?bQXɈ#8>&vJ _ҾŜM%SP:l+ ьALq6^ m@&BS!?K^0^Nr%:,N לё )JR%RIi$e& B Dȳvx,dH2)"IH4ȉչcg"YQi+ 9|HC4s0ѸUC'MOk0FBL4 lG('H-,ȆPD<94{6T=bR%g% 9X(e?TтЕhʤ'EiJUJTXB09xW9$ad8 i$]iRTtE=*$&)5&tƢejZպV8=F'j1E$I$9ݩ?f%YJsԢTR8ǢЪ.x=.@4x#+r9m]ÏN#)KRšq9Q/-7k 4ס`6Hm|CmqZ ҭ`bɏ .0G >Z\lBP߈EGKږn;؄S(d"  h~#3E ³"v6{X.°`7S%.`m"rz1Fu$U_VI=BUNp" ôK ,QykQJ+lЕPD(hXǑT5rCK!J9;J#pA\CAv%@((~|T1=sJTnFl67OQ-JzM3aDfP-$rP/  d~$tM Gh>zKhr{ fS8I,Jas#(PR Vƭ*Y%]٦': Sv6L(J7+F\z 6!" G(o,6Ĉ7 R P &4qL\S(Py: [b5`6nz=Ϝ5!ԫ ݃ Rr8jA)6NtO_gRM 4P>EMt/}mN&5ĂXRđ`Fc9io{˩f:}m \-`z?2p|\K@/]V>gD&ZI"oFr4{A6B `X>6aB˽ʂ>jS;}HWȶv =0+(ч8О~`C#!  2mTCUCJ إ{PP؁)= 0ZZ"j4#ƀ0JɱQA0PRSj㇏ J`̕PّYTBPPP0ZѧmٛdِL,mxz]I@(ֲ ۉۨ%ԸĊJ"tź[U@H=8Ch+RϰCdȿ Ւ]6`{$ƚLڢ; <:"ՊܽLD!Dh`OpUW;4Q՟pđ^' h#r`ЇP*uJSMmQmS(E ff*Z҅{piȭ `ct6>cćy8i4@E1yc1ta(SPX/b ɐ{(o"SuчLFo臜ΚFi kI`\`A oHo{Z1SҲL|و !mRϘM~xl|{Ȝjz=;4={ip5 YqhqmjkD|#ppD@D@ (58n}.čkŴB" Bݢ@! #"#o0nnDvM,iؠ֕x`M;9L`hyD B +@\(Ia^r.I)!poy]ϔo#_0QMpBh=Oc$W^ /*G#*H q/w^hri{Чl,pVi!#WphEhI?{ȆVD ++SAYBmX+rHJW47s`: xNtWS<PuUt+o(%HLt@n$d]3sK5O/$-aTK @ouMr?1H7,1 eZ70co=LĖpu:GkCt$O >M.jϟu=iLoƩs=s/2dwvB'EdYoI@p&I{ ǻuh44Rd>I&|Ьn#fxx { f`$ #8Aijx'|8RPjA0oXK@0I|Ow~h`n!:|Hlhjr  P֐W}@f)t0`3Z|ҳz˭o mrш _P X/ߩZS.:eb-Ї̘2gҬi&Μ1'РB-j(Ҥ2yPOPޔZa)6_I$@[?N| !L~(w!Nvj8*n1SK壘gz[MWC\^d2;h M(AjR n^9{J޼zM_;NﯞvH*d2HTރEx`,"KF堇6u {q"zRDN X8x7'K3TS 3u5>aHݔQVVe{>"+Vz`.'Y&I"sk9o)gdL'}' :(Z(‡'vw(J:)():*Y)jh#*Ǩ:+ꜰں+߯ ;l.*+*f:hP.;-(6,|Flzيt~{.iJ릹麛YD4ͻ+![{[/>9R?/ c,tf i17KC {<2".) p&. 25,t8ۼ3:C3A t4 }tFH4MʴJ;=uP[f5YÉd\ku^C&6eHchvj+6 ;/pSewaR7rc߀[wA,qxZrxˏC(6"҈?l9~z:륂ˮI>;,y{#ŻQ>P:[{{+|M<_M=[}߉= ދ%6xokQn#S,O?,o#8 w6.p<Ҝ,> L88:!Ph P?$\! m$06{Y`L{C~D5ɇzy K-=a^'`b4^8W)u L&4BR L1"*\t'(H H+)| ե#?̈́%t ( ?j{(6?d[¤7GC e)YUjuApA+v+aҏ|87N4HxvZ7XݎGB$\Vt O"iN%GHsu43n遹ֆEX>Ǐ.taB #&RK.7Iy if mdڐL&!$9}#|v1I϶P<|/  \iz. Pmܓ!6@ &QO$X@{mpbI 0!\ȳ)tX`))T& wMgD9LjBU*AQfL9&g>v@DJ>mo pmh䙸G( @|Р)%$(`\ɀ` &nL }@ ^~|Lbqq10I<  LnG$畣 88хr"{L1;lGڀA#GSb9@RQvM/S) 6T5 U+"Q`}G%`:CXNcXM a`  .U b !  ziG!N VECL0 }xGH FbҊ }` M"T " LpD.JI5Hx?1 C@>țP"B BF/~8 MLP:22c3L<=c1;=@x8@#?t<@4*>, @ UC7 $8DCL8 ??8xd)ʣ! >!!%KTCqbŃ4N#C ?B= @c*Ԟd bxC7?`%T„'̄YM|@5[B*C=P3COLeQp LNB=@eY e3!@Y$WKx4hb@"@4<* ! 0e[cLxB3@4D;hB*B*hwHfk@xB+*A<B*X@=m,@?"td'5d{ 32 cFf8'T?7;@=*4yR? A*# 2xD>'#HH; $B*AJ44!L2(A=4?P32/~4@ J (@'zC"H"vC"C C!X:Z<`RMP%??`@7@g!A*(*Yb1nr@48h*!Dg7 XL0C (535*+tCD&x;^d,R**BAxdA!j8(B< 8z'i2Ž iC8*pC+8<i+APT&pdTh׉>;ip+<A34b@e25$h2A*<8&hbLwF@a;|; P4(k"A!(Ô 3BƎ(?$,2ec4\B)t28?{!kB<8'$B:M &C+3ă!BbM*M-,B{1@FK*):~ MZ !)ƒ" FM+Y"$;R0 ¥ܶb1 ;!0T" BcrnYH,< :R7npY"h E0/͂ 0 װ p$@ G , kh4߰ wBς0p$CBp$(1pxp@81C1gq +171 ,P͠!ϱ A1۱{1( q 2!q ,2 r"?rrOr"r%C&2'# 1 )2*r*q))),Ӳ,r+*&Dz+2+21030r022ڐJ(S-O35W5_36g6o37Os3X1w04s-) D4w<3=׳6cT r:='-38){l3ٳB/4Cg Ps,t63?g3ActAA#4@CH3qTDA/r-[t5KDc3LrztŀLO3MXA'#LB-`*{);4;8Sgt8A)gu7N OuO OôYrP5#X#tԀ-)K At._48/89 {Ar1 sxWSdO)$@eS>3ABL<ܵH  L108hA `L<`A48cdGO6H@(rBL<8@,Ӂ CS y+u)$x,$P@A/8D8sXK3$'rBH4B DBhu)?XC);L)n?;$g`$hA(˃7xtZWs0Ov3A A8x# A#w)Oāpv-<d[@Hy49 4/9=[3wwA/u/HD^.4T./0qAH.HA܂tk HB܂o,ґBPx*?5l/;Atxq{ L>釾郾秾;ʢ9~狾}3r ,>~޾?~D)M6/O7G }O~[w4k|oTd+a?*Qg W)\@8`A&TpaXbɊŐbE1fԸcGAH}R'S˘1g|yN9mifϚBJHx:5cX^]kW_U@J;vhǤh}[v} W޺sWZPƖ,5V5lU[xqw=xHĉ6>zu딓s/S<>_]~}ۧ/~y3<فlNSN>E/ 9ðKIJ!;"oLh9@v0Ņ GjNA?!,ȃ!Ŧ D!o"0>ɍso|N99M#SNGoF|b)|3 EloJJGBAhAvOh(F I9QMUU̒CS0$QD2֔ &1@93&%I@ĆIPpɽP*6[Um HlŧVI'W j$mل9 L2NI!0>k|ۅnx\@R|&y|,FcGo2m$ IM&чgCXS瞳o2%|6ID7,goĔjM3BġmD]wȤ@lӹ#[nUC >?C,#-$[ʼnlolӎpnҋp CSf\сs;  oNPT|J m/wfӝ.NZ'-'!a@QT&l1SQUZ ӟ[5p &}<8%kWhF{ˈ߶<\Uwc#cW.$r5,aJ@΋&(}fMs"t>Вo{ÏzK-iIJNvK3j)缨A 5dT'FsV C*ȃ§Xݡ6RT,<[όڴ&(mPW(2AJP hvS K7 ##Ga,ml"(3TqVٝ~H)ڸ<.v$7;hT=?> qC&_2Q6q'4ȇ@A(Q{ГЇ7fDUG͛D,1oCǢQ/) 9aP"J=6jt*XZD3gB.0J#/ b"c>$l8VޕCqu;[&6&ab٪7 xR'>o[vq ZI6+_ I4h)LLc F>^lILbc ~8`&0D&N#q?AKю2f=A 39 Fʎ mGA><Z=0o$^j5XtL"~ |}SM6^@lXO GBsű1UW58#>ID5\lpғ bO$bOR$!BToqor"mZTGT0$ʂ0BJ<:Gq}r)֪BqLp 0^LL 0 O! Lp P  ɰ uoɊԂ/-p B-p=-0-Q-a P0 ۰ Ѱh1&a^a;1A0g9?q+Zkjq^a^4qq+xgqg?12*#&QK*c,lŠm2f1L;bj&_qCQ(/K1,qѺ2Cֱ  2q1crq!!1"mp"c"#r R A8*#H#5b-# %c%g8"c*$(+!*0mN8F&q2nĮpuv˒ =4v1{/u,v[%]br+2#* 21* 0<Zg2!{MŠz0r+Ev6k\/@)IPK?(*"\)A`AR\S߁ h[; )k Vn#ģ@\'E,g$D"J+OER#!a6o6oov!opYF@Ǒ86l/qXE9%6G9k%7~G V3W?`)3ۑttO7kt uvҐus#wG x (yyw`S1\SxDCdNV>^ҥJDE$c Tg7>YzAD5!šzG;: į{s&O;Je{$͹ }$Z+ ~~!*|&kv G;üGrЏ2ʁ*U3ÂP; JL}0-'D  @NyCš"+nGAKT E3+F,%܋0vKA`]$ZOFDMͽƉ{ux&"/gpDKPF&&A%Rx@ APbLc&Y[O\Ĥ!^l?;%& E!e; 1lrX^5%!26,)Rh@aMx.(k[|7#;p&ELl-V.@ܒER@n@j~D['BҾa9d>EXTF&r#0AAP`n/v;CU!J!0eT=jk2BA!+ c6,-ba OJ۴'nd&tl%p:=@ɹAG;F˻nj蹸;zkb%[VbT(V"۾W; [8%ȡ۾{k"q1|&;y[`Si%bjl{b"\Bx! Oa$\KO4U7s%!NuqN%)8|waֻcBMu N!j!a&j@%&daij^j`6|d%=̩bzwe ^WbJ\W;E^Pa@jY2U.`$ .@t`h@<,v}3F8iW5jl `&b&aAD!2Fh2aNfh nz|΃~8 z7ӓ"ú|&ӡNa< !; n&WP@.n`l|%$]؍t'ӡF]YMiy%L&>ȡ y4aP~ހ8|cٵk~ɾ)]`[]{`$\Ca\2׵cNחP@ @@a!2AMzH "%+59uȸ)|M-\3u\=a??t&;=]q\s߾{'b۔S!YSý6?dg0Hu6X2Q/ -b/p/%ҥZ_ȿ)kܽ <0{9|1ĉ+Z";z2ȑ!74I2ʎ(W|%̕2y;/93̚B=J$QL.m 5Өڄ3bV\V5ؗJilӴ^٪}-ܹgʥ+.^z -,b +^ hȔIP7 ~94ZТKü\ٳiAYl|/ټi~-xXA;ɋm~6X՜?N:d1[=Xe}~2󾽫w~vx__,Ǽ `H``ZG6`z1~y`na會aJ ruJVaXc2fXbo@ 5hGnEڈdJT&&|@(9P8#iG. fbRc^M)CJ4|ћy9fvR_ jB t8>#$ߠ@&,@ 5h7B N݃@3 X g"vR>T6ygS?\l hC?5N:76 g{Kn_n (G‡CpD a]Z|X;gbꚋpcR.$l,m5 a9ep1!;ϜbD*lۀYC, 8dɿ6[$?$aS7# y,? %o(j %+V\1Џpyd#|% CCu~I pfB h>8 ܐVp /\uo\I8 I x?ؠұ(@I>NTg-{ 5kIߺH ~HS$)lc_}W4iG`}ChgJ#RP7T̓ra߿<T rAR:Pa+dQ '(|:,GEK _Ƚ4t 2P7^wE? 7DLd_շ&JySa HBA0 \@McC&1(p@N&Ԭg)7`sdC;Y?XNxdXB?GH7IJ9'EKRetIꉃxBC 4"?KVF,x$.O >3&DG,"5 +6gB3yXKR$ ^b X@?QVق> d\ޗA&sZC pZ*E ` Z5Df0< _Y"{Xy{(( NE X4yrBBB(M3:HZB}M1Aj8\TM @AT$AMu#IXuRGXȕ%ckDP }eٓҵ5fEΊ2hO φ&mmCZ6m[ƨn3 \Mmq\7Ms\6}[ݢ@Tصnvk?UNytѻ*|T F]{ 6&S6d鯂V0Z ב…aJ 8Lb)nF+Όo,`0|'{l@rh]f-.jQ%9(}r\5L&!,)`!1$2 eqܜq\gyy&ϖ3bC )VP(t `@bahQ&* bQMCJϠ} m*q+%X7Dԩ~r&8pFHa>/P6L=!XǧIgz,xNݟk;pr bpJ)R@R} (DȀ&yԽkXLA fm77S;">}x3>W$xq5B2э(Ҵ8:.ȇ_StXS8ƹм;\Ѵֹ:G~]zQ)j¦ehLɧE H,"XD4-;eމCN:@{@M5{by7"kA [p3U`FPf~ć4"c^3t#ʪkw }y }YS8 f{zɺ7Cq g<@=нwIjޡ|Q`̈́8mTAj0zn`,X|y X ЀC@v}6c 7 l@JRV'ڷWurR[+E5  /u+`LK8 ?h{eSWRH'+@"u}$fj{ 9ڀ P@5:ڴ4$4p N}` %Bs"%&@ts4 3ԈG񉨤 +"ST3 pO0H;+8Qmuq8KVX`J茕2VƨhIaȍxi6X,sҘc[D(mxe>7mǏTd$X]Ɏhh~$bY]Ie\ő[ %#9[%駒+ɒg( ]-)3Isg0)5;ɓ Z8<BY =Hy)Dig&"N96^D"@)V)@eҌ kOIEK y?2ٔb%{k+~Fd ^vţ0`xq'Vb{bfioX[1Y)Iiy q{hzQ]b}陒əiyٚ雪);1@)9Bikay)Y)Y ٞYlj8y  ɚ@%YW1mpV"Jt+S"&l 6ީ0E?"!8_[#j_nY C@)+9` @@P ;p5O͐mZ2'%6G5;Q3QI8:F pb2fV[!Z=00p9 ^:K#w5`F)ZvhYe0 jX१0880n))r . LIx0 Ͱ~p@/oFH)`.H:EPԓךfx j 5 P -  p טN$ת򠻉PHty I#UkZ! ˗QYIy ,]1P PR¥~cbEEճ)4 yA%rF=ްJ^bb,SJk-x셲z=]lk\V[< Cla? n;zw|q׃04Ϙ<nz&[al;eKgY=ZdKY.pyY;=E[fK ˱)'?أ滀qYH;Ļ{^Aip;f׋L {KUFa;i)ܛG&?1J4M `/4@ ǚP7ɟԉ= Tʚ(P HqrٲkkP qP kƠq@0Z7;%p  ( ) ;ṱ%šxO/rc kx&`Zk7p й]ȰYƹp}YOA&RH<gHs1Kz` phI50ʩ &"z,˼ 0 ,``` 쵑4z6̲*0 /-Щp)P-= P fp; i;+GE"ؚbF٠Fwi:ǡ @);` 4` !H V }]K Ti W2[wyϘD  T W 5 ;Vl 5 kuހ@zO21{# (Pղs ; @  ` p;P3߀mm@\p` M "6 IZ@P @ oB @JׁO;x M(P/ا ) o- 9%RYȚi\` fװ0 pl+]Pq UTpW /pP7 P 5@sEpɖ x ,O 9-* pհ-8C3Ͱjހ uκp ֐ \}6">p +հ p ڀ   ϙ  vۮ p @ : ; {ߐz) p   Vt p 7@@ @ `  @ @ nU -95b̬-OLߋZ<ljw\kۚ[{7a 7Q Z{zb\7 3 19ǷIٿ;-+/o1 ^/+ 0K_ky ?AIUYRb2Y\] /{Â뼔%W{[JQ/ ?1O[.;qOߴ ñOD\!l Jc n\?C1]v7ϯ<bea8{A4V,ۏ%ao'ߺco"گ;$XA"dC %NXE5nG!E>_#UF/BXM9uSKAsц5)eS<%Y{"ԠRZŎ%[){)Sêϟ~e-X֯[3;@ѭk7`UN͂`gJ!.j!T[5^C1׭˓@=ߋL97á\w#*Ci‹O\~%3j.{+xfg@Ǥ}|ᇜ0: GhxcPrAx4.B[tѩxrCſT.5f1<ѧV\9ijtGZ~IE{\YECfJtBMXO9OZX 2RG"! UCTqVuL9IOuS~DO|, ZfB-ifآc@-zs;ٙO*D$DoT8L?q=i%W|cYDɕTKѤ:Ud hpS& ч8 PqP0h@`!RեVJ~c9aG\ю}En*zWͩDs?qbG{ xdYWrS4 G9b ,17, hZȦ$Lcut ш;p->@uUh:dD-Q.-]تQK\@na Ў~Ԃik׌1*kjَaG07cgpgkյueliU:abT!F[SE|EM쬓|þ:[A0 "q1=\~G~߉}l~#֠ >~uV8ng9)lI="r g>]8 \pLb8P({(yXs7ޡ|gH'.pa^x u@ҐV5,ciTh*Ekb^|a ԰a,ʩJq PK. /a O{lL֧"v?q.|A w'T8> VQaWh:7=N=kZ! `;d/ ʯ U_p 5s PqLDC.k?a;A)09dA~sYdp|k) Ƥq~~*#~HzG~KoUm=$A^y,5h?xv9;w|cs]>!.%3(7*;? ###,,,444;;;.@2E4I8N=T?XC!K%O(S)[-^/_0b1k5o8t:{= ~?C]FaIeMkPoSsWxY| @CCCMMMUUU]]]dddkkksss{{{]`djnqux|!B"E$H$I&M(O(P(R*V,X,Y.\0_0`0a2e ""..44;;CCKKSS^^ddkkss{{= H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMiR^ͺװc˞M۸_;̿{Mȓ _|:p޼Gt81HPzzﮇbU/~ yW]A' }E_t)tsD&]AEx C#A 6b*tyT!F aAs'4ъ E$B7N4#A Bv((]= J7%i_)&W+aG^yw U)A:Ι`r2Avdfo2VXʗ6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무BhJ݊k>@j} aB@,A¶> Z 2mBdkCZm&뮪<|Pp=(-d]k.oD劫  .SO Tw ,$gjm,0,4l8<@ s** L7PG-5D'lHO\w_W bQ`lݵݙ!6_Ew; |-p=Zq&=xe@iF-3ZnA) Bll$@0@j@@Bk܆3<hCCFhP@j0qD tN/vsƚӫ;8.ZܳjHt܆ljJ2܋}A-q췲5fӠ^AIr=w CSf`oDXM7 *Dz6!~@5fH! a{(ڠ|Zc`+ OLH .Hv-dͺЌ2ԸF71o+IBEOL<@k~ȫ A#Ǟ`Q{#"ț)q. dA F9d#GIRn푐ƴp 5"JS*SY Q ʬ2L2[X̉qlcAY̦6GT)Jj56NusC YdUTʁplf>)D$$(SܳNa(DЉVE LE3Ur1X0*RZQ9)JҕE.mJKcb6iYrS̴ Pӡg6FIQZ0&K}g)U:XͪVUϐ` XJֲ~ Zֶp\J׺xͫ\z4v~Ik@{@N\},d'ثN\S\0̃HY,@|,O3!@`g Z0 HKUj@,} `l- @a 't`xp݂`A+h\*knhź_lDj1Km}3t52j8Bm0GFi>!3c~?MQ>SQ>-C5notwWua}}o3qSsxhpKV{>@TBA7D wi31 arg|o;1oyIG<ǂo4&0W(з7/0x??xvEqc{8z7p8h9ֈ'iČ @2f(9`3b6 ِ9.G" r )I&IyuUp241:pWy@y)?XFTA8PyTi*SnA|XYBYn^qiaZYHhg"nIA`;tysyaz8yٗuYE9}!Ƀy!V|Y5cėXIISlZvUR_u9GYy1[eA/QZ qrmT9ŹDiZ.26L59RdDJIcD.fX,_☭q^ٜdked4&Id2v,dRd\26AP * .ɉO$kZ~-@z9&,cM`(`Z5L{3;S*3c;쇬>]۷[F;8F՘4k>=Bƚ^7pF2:3k?F:} 4E2tZ @{a~ץks4fջ؛˽KoY㛾Tkvپ[{ۿ<\| <\|yTþ1E‰¦Q1'{0tB"5%#=r'L$YR#}h.u}p}|pڱzLMo$RVrq` 8l 1KlP"!xypqvlTUvLz'$@E-|~$r r y![!L# m(1RܳPͺ S)<\|<ϒ |L7,LNY,q$CaBU$Ш ]66bTebZ l09aOUOq3bʞA#`YG0@0][suE'qͼ4}PR=T]V}q,H\d}a}d?c"81ln-W)r87p@;;tuMM4B`k0#~qŚ2c0T>jUEg#{ UgEl`-͌7 \T`]|H2*B׆|٨3@JP(C=a1shBP ݥznrP+1xُ3c2E^}DhDܰFZm*d ,]t3>(.7KM(_Vv@R?A^+0E<~>sB%yVn'\dD cUJ]ib^NWWj)B AOGz[-Ѣ.K3reke@OgV`]VWau[hND.hVVZ aV@[a Zc-7vdaa*/a %a>-~d%8AH7To}V_V,`d ddUVr j%ha^`bfO~~awP/OO$U梤 &7,v֣u9M,R?ݛBDk$OKJLt.zm^6d] Pl__6Ez 0/ mܲVj 0j V†G`hէr.^5&#!@@=DPB >QD-^ 6=~RH%MDRJ-]S̗3 .=} *=ZPMLTU^fNj4@Xc@Ї@]:$\uśW^}X`… Fxpo3܉F)=JuE&Tj^Eg V9:lT?ƭS޽}NЬ]$6m?]tխ_G8Ǒk*xiv{ %>~zŞ_~K;D0A3,0B j@p@%#K;"P`4bcXCE$.Hx3E-$r?0#,3 .B5ӺBb*Z ))@* PJ 8}BN28ʴ\d8jJ}lc(RO55UaS7@B#:5jCRSEU_UK=G%Z҄2]M 8酱j˟ZXON" @,RȀ0\"6Q]6` )?d3)u/$C^xa;r7dGf~Sb $A P4R 6(Tvi@ wZAA V)R' 'IY3:d݆~ݿ~|oz;πD _7@6Ё$8A VЂ`5AvЃ! 8BЄ'Da UB̂-a e0eІ7qCY'aH!DRCDbSXC%6щs8E1WĢ E.v+Vb8#ь^ոFoa8G:2guģG>iwc QGAҐ8q!H .ґHFG*$p@!L'ɏ$,)UiH " P Iry-uh<t"2wJe.<O B-i $ fp#<\ xjڦ3@FX1POrL@S!C>kYηDHJԈ(D"uꆡi|> RT75'I1 bE!NEiC]iOSpD:ШD.18)6̓!BCezS i=zѩVUʹ+z $EmZRB$aփdZ=M"J dg[YU*]OOQx>E|,w*vֳmhE;Zz0fVֵ[ je\wmn{ ku;\jEn{׹q;.a(H yҦ+Uj@  <HP_Ы^{:':4@anޯ <Ԉ.! @Gl 0(J +1fa԰_ Ԩt<6ug(@6'5 Ҁ V B)|_,'3r0 + 0fiy1bsgf?%m>Bя>[G=җ)i6ӟ9=j(bW1):ê:]/s! oq5#噁֤U_.sbfk'&oh/n]5\mZv*cNs%iR[;z@*1Fvl њLWya 7K<5|y"?ʐ0p/Lj= j(|1LiS+gqWIx CCsFY?׭y>tGoЉOǟҙ>Wzuw_{>vgG{վvo{>ww{w|?xG|x7|%?yW|5yw}E?zҗG}Uzַ}e?{}u{~?|GK|7ɇ(}{k❿}P?#/&~C@<rP~8PD Q׃H?:@?=Pt@vz<<0 Ŀ 8@H?;h<ȃۃAA(4B AAB†0Ȃ/A5T? D L@B7 3<B6?@ Dl?…=BB0dC|)ĒA%dD‡; B/t#P:"TcD#? ?)Z?FB8Y샄hM|F[ L7#CFcL-kttm'L,<"D% $I1ke\e f,f[lg{g֛gnngy>g$hNHի篜N]$5ʂ^r>f\=.N=VA6Ficڔfi :_v N脚&jfhs#h ," aFMl`V傠ivi耢&N FV밆htڍ.j aOpFc]iNNhFV>rC_ B!%>lO( % %bHFH!XN+pὶj@PO hhPO!'POj҆&mB %l.j"iCIiiIX  Do._iƮi?n~nMH` HLM!mo /FMpF]tYbMKo7Tq%퇨j,r"ά&j{"aNrkNN&OiC0 (lnK lo~-pipF1w&$~lR";FA_(MqtBtJ) `8)%q$%G&or5nuhNrpNƄB^sN"3i)6ip57l"e+ qzqN\o%s'qpX"Nw+6!m8'>* `$7x%nMWj)hcݨFl^OUЀ6߁W4&@@xCvhG0n6tfry$+'_/?8w wd=5m7;y&~&w{zNz^z1i~r (c"ǻogw|F|*jɧ!VI|gڛ'jWgw؇ٗڧ۷HfGie ؍GPwX9HKµ Q䯝OKwr hYt7 *iwNQ앇&n%SJxx")18#5"9y̧bptƏ_FL t$M:<#x JDP#]*xax$omL̐KCL7VE^"gDDXmS))~Dn{:hhVcE_Z A `$TuAVAPpR,t Vj٪A, VFB zY{#{*GhH@ \!A٩ d1i1ս^j;YLP&dk}|kDpYP -DNXA'J0JxM;4QK=5U[4NgR 1 qWkHĴ| 5 aid%,@GTf \6#نޜ'։ee i!UЗHVc`]Yң1t BݤlYmxĒDŽL"pR8C"<9~KOcƴ}w( *F$B!m*8ĭM&o7<* YWKv()lDqBP@> Q/K|IReL$ aJ ( D .~'<@xBA" (d"Y\ ,"W`KpA x uȔ@r4$61JW "V.OtEɃ%dY$L\@CA U!$YAM`Pa]:Ɯ͉ϒd5$A`` pN2?ۼ(YB.-D)*StYv;(Ն23:WРGɩXQ*N“Kjδb% խj5\%WJuL 3T*\uճҵ'r*Xֽqkj8xmTJ[ `#ؓ a/XrA,h5$˒)L %uv -lDYҶh,MFݾ/p[wo{k%,`s 6ֵnp@ ^.]@Ћ^ﲷx;8  `@!fomq/|Y~0b' S03 c0C,<S.n_^,c4q'(1E\ /)N~,2yVVe=]2e0#*34gn389o3):<w38@:.4ôD3n44HSZƫ4Lsї4 P:.uUWˬ._- zis O̸5EX`x>v[m62g3;Ծv80jL< vmMOZ܀umĄIi #䵼?z2t^J|Kb4'o8\}{&6yqa^.9,Ӽ699|Imm+{fp&>NHGNTnF' BG:NIon 4y8j Uw~˴]Lkm'>vA/M!1&8@?w]IY!פvm<&{L`/=ѷQ?f89wz 4I}a/d7}op{Fڕo;;i|k~ zN,$it^|d_~y)D_N l,yy鄶 !de`Nl$u˹UПFqN'^ND  ]G^`F%!N$ai ҠLyEa蟗UMdOMLܟĉ ~aM"B!R` D>".PaH $D%r!$ྐྵah^U"ҡ"-Py-Қ-bU.1#2&2. cc,14N#5V563&4* }7#88#99#::#;;#<Σ<#=ޣ=.f#m͖de1?? * B.>$l%BN`Cj+@R$GE^$A!UGd }$HVZ.B9KJd$HKI6LΤH"NN4䓴@ ,%S6e L@0OXFeJD|E>Nx3O@oZ5!DIcJt؄4<O4Q743uM4#3jFMP5N'ARӄLtW2?UGtIVQ33Tu^uWiW5^`Z5Vh'3FNt5>P^uXW^+́RaRGQ5e7G_;fudoDkQabCbjZ-33A9ch_4L`DHKvn#pn{il_{uR7wMvM4E6Nv95`3Eg6FI;qu_H wxW5ygkw?fAB;wqwivNHwM6ae7v)Ü>緀g6Otn3s}{B@uhOm3G'w0vwNCcK3~!L}6Rwp\8#w33ANh8Spu_8h{|wv_﵎ONmC#|lcC7xc4v3[M`59>MH4fxUеY wxZ{3K/jBx929xCF}9x,*z+z-:횺ٵLz:Hz9;úѺC꺝:{6 z.2SM';$6;WF;_;go;w;;;;;ǻ;׻;绾;;<<'/<7?j>3y9!O![G' LpNH]{Q"Qq}|L~`z^S<DL ?1>NڞV{N ~9#7 >#3@ '&TРFP@ā).X@; HxQ%*%3%L7qԙSN?:hQG&UiS4k2xK /q>dWgfycH;L Rζ6>6\wջo_y{:H搁^Cr ֓V(9PdƔMVKκ( m-TFukׯa)|vx{c>zG-@q$8w~^y:bis4xѧWiyC>0!MtI'H?zFY7ӝݝbdF$n^xw눗 XbN|5%(ѯɏY|QpP$،}+/$ѓ雝'!Տ"];gq/&AzK&|$򓿓d:I?}Q7}}7_~){CD.~GO~O"C0L 0%p)- P('0oQ.0EpI%0B&P%:O/a0 P,jPq0_c9pp q\O!&l. y$>n;(z 0 =Ű ?" c  p: iP11f1!1L)^5f1;q'1o IE U9!a_qFmG1;yqw#sqF1j/¦mq qa11[Q&- } W$r2!"!%"׊"1"q#=F42$QC!IRA$1%U.%$a%gR$G&9%qR6dr'i'W(&C^(#r)zr5z2*9q2&*KI+o)ur,mRMd-1+ݒ52.+)%..//9//* s0E/VR1M0!,%'r2 (721%2*/319S4%g1C4U'Ss5]5Z5e3,g6m6q37us7y7}738s88393I393:;k:/6Q;+:3я;Qs>>>=>?>S@4? t@S1-]`\-CTUӕAp /*VC"lۊ"W".FG#"u4BNL6a9RU>!AY$U>#Q)t $e+5B!0!$de#Z5L;:5!`(4f'i$!0!iu\n8Vb KM85$bkuU1V~$UkAbm `L8`T%l6Av1V,cPFcc =Cvd/S>a%B"i) "tq[?w q9$i_W$bW]UdIth vIVbW"kI"uIoCw"WޞpycJI{7$xn%vVxiUVAj3(p%tt b"4jwBnB#;a&reW>*Tr=We#ttw ,e,v!c7~5j367&W]t LHOї4$&6/7Kox1{CnM9o5o$4c%nmZcWB?6;e%A |"t/s0X>]~+f8 dǸHvLomg. #b BY^,vB $Cx%3DGMb+o BnW#UYG. -U>5BW>$<XBa 6Cwؗ9B89!g;8B"ق5v{uz# O0B}]*]p4K9"*!Yl5"4V"yw"^L`14Y,?5V,䰝9c32;a+~Wvdu)<)0!J€)Y>3Bc*tMBs}9/S<֙FU"QˣÄ3HM!̅-404 gB+6NZ#%UNU¢S6VXp%gf8"dsVzc۬E9Ȁ;ήe;6B9[>æ#t85FŨZeLtpՉ/S XBYgzB j b/8v[h%!ue:!m7{QЄAù%%C󺊛-Tb,1{C;]1/ װ}UI aYz 8'է Q]4  AGEUэѿI[]v0>"[-5|I\E9\<!;YaӕĞy Խёp 0 0"i)]_Ad'v4TB1P}ؙEa1} m]m١}q}6kع@| R`Z` < `\ Z` `@'`& 7`[Z w` >ڡ}ڟM.j]ѻ}/}b| *TRϹ@_>  < @ =ϝ@"@ @ ϡ@Lʻ>e)>-^gB/)MXBHѝГ^!L vM@`=%< @~ϝ`d Y@, ٧}.HB=?; ^~S `|!_'1><0?j֟Ϲ `@dg_ ^?Ϳ^ z~ɿֻ6vp <0… :|Qax1ƍ;z豢.$K<ȕ@P$ 'HVZp)9adI.."P&dP)Z5kʝAz kEcCv 멬Yhۺ}Qd6ڽ7޽| Dp 57;~ 9d\pG94m :լ[~pYҴ [iݼ{k\;Fqgs$~xr›4 ;zA5GF<$l{>p NHa w_#P\sa 0Àb%haAc2\6ވmWa"AmD$ @:PCn@"$NBiE$xiSVye<9z w i #Cl\@4`%1&PT@^*A6A -裑NZk&bigU( bgikR}%:kDmJA8W& dEȆ|~衷tb j6o5d (K6h9h*qi A@,$3yBZ+;$ @%@&l@ $Q10LE ;QpAQ ;S $S'`(LMXiW]V |/ܶQE -x&AVǠ$SH$ P!IPWm;9Qp= @] IRC$ OTrD 6AR f@  J3" DtR/asE#I`Ǵ#.0=:ƃ&yE.i& LBm "(|p&hg&`F ! wX`` Qh|P#Xr.eؒX DHG!p Y`񴡤'M)b ( h\)Fo ntx%%JMjU*a?d,U єD&:d%kYͪՍLH^&QgTf*r}Uռ.}j[ 9k]w,P)ky YLl`/YفXegcȊv~ͬiO;%mB;ˉmYcuֵUle ;c(<K!9`^`pJ'}o\0Ts[6mp3̠}K שDPВ"Jp_BpKfj7Cܵn2W0:Ck-J;aLSO%CfWrA-bU`U'UiU W+IvaY6g.@[I: PyZ1VHl8-nRrs֐c˖o$tSKX] ED +M~ u$ArJ*pCڶ!@*'0։e8lF0 ? 491 L R@'Rt ``=$I.$AY5xfBE\f֌!**R`A^:l64}:v-eKfܚFIGHavPƅS]&=.۸$]d SB[s<Sd`@+q kTтO.ہ:Br`Jfv1+GI_v|EȞk/%+?zDG/l'cP+S Q8['ʅ<%*M)Q<}ݴg4~Q݁|_{黢^C}gF`Wg]-!`Sg/{7ZG܏_$'T @;35bC/-}{UUbD"s1` G>}SD>A}6b}(G@#{ 8VGrbEs(,oj!؂9Xt^18h/:h)ƃ?rB8VG()+WƄ}UOhbQ8eYIX!O>]ZN(FfHh 熒qgsXhGw8!3tOЇEQvh9xb%W@=%ZЉ6Xe^h,HKxsVPrWPI$ыȊ劰hWu w38ȌQ%.W(ȖJ爎騎G.=hJw娏)i 9 ݷ)Iɑ !)#I%i')+ɒ-/IYx3I5i97;ɓ=DA9)E9KdIyMiHQ YD)ULdYYQT])?[ai2)e94Fdildb m ȔqYhIw8s>i{ 硗ɓJ\IިZ,)ǖ9ii陉ٙYIx9Yp 9iVɛ4雿閬)F9|YٕٜI/yٛөݹ i剞ɩia ِIi^9) j ɠ)Z:iy![Jyz)z#ʢʘD/ښ.*ǎ5 4ri;J4T~WDC=@?s&jj?MږzPoIa _1N Wa;pL:gٗkjC@,@<@tzVdѡnzmNAjYS^JI = B`8B _^+ʩjp*zJ:oB|ڨ/ZJqB})Jjj] A@fwj犮zwŧ[zoz{YNJc|ЫY +[*?"Z>Gz,+êW:>J V*8KZ2K<+8=A`A;f[*&[*g)2r M$`J*N;4rֵkQۊvˣ1m[{iGd{!4|BVEs YF ˫q3h Wkq[˴;Ṡ˻?@qj k{q+C*<{ <{[EڳaI] ZZ(˺+& XK>A> @g+); ۹AEC ۿK*ű,llzU ʱ-'X;!|L\ɑX[̧?|۲x˦Ij!lř*t?ܻqaջGf ;0wYQWgDx *2fm,k,8ʙ9V ʐ U :×:k,;{I|Cl˵ :WƩ|l!q˞|1֪2g~YF|K*gs? ؊ { @L2=˟-Ґnϼ c+?<4Kw+<Q<{vš~ɡ엊h,z *m}\K һlp[]20+y{[I˿>>ɘI{:}2 J}KM؉JCK\լ:4l#^-!B엀ݸM|wixBDCBϞHwǛPo!꺪p|4C}]̝A?ڸf1U*nGVmJYU!;j-)L . .p^Ϩ#N%^vn&-ⓨ65n7n13^}?A.CNEnGIKM#:~{QQh(R^!^WGZNa~%gY.chk.yjN%z.y},k7苾dnu>ZN QNW^^ kne^m~:r8W鰎>.ஞN~N^ǎ^˞n.6n>agC$*K~a:X"Ck87o!.1:z41/ %I b.Qݘ !g /LR12G8{R8zBFe/S'$k"$nPE :^D/qI{'.?l3OD7/DpAF"^$`oboZ/eomKN/RVt&cj)[D!zG)rz~nP>5bubgVm~o@G|׾놿/;ek"+~fnM:ђa?&/U?$s?r%wYo1Ʉ2?u?EvE 2hu0#"oeGsu"pcPkfX>'7/gz 3ڴqSMdذI"THE$lP@mxrI)Udʎ=ͤYM9uOA%ZQI.e)O-Z%  GfMB 4)&GBi6D anpݼ12!aV/f`O%O\e̙5o\4j^ǡ]Mʑ vHTs 04tuL`7m7h[&hѥuٵo}ӣZ|B]ۈDv DŽo5侷ߣ~֒K3x+"<TsA#pB uopC;lË8C"D@ E [tѤ+qFkƝ.|qG{G G"4H$H tI(ti$J,QJ.KrL243-TsM6d03sN:JMUtQFPH#TDRL|tRN;083uTRSTS-R[uUNUuVZdV\su&YkW'ouXb3XdE4bu%TvZjYl-jkw#\tO \vەtw]w뵷;x[zw`e``}58a#,چ+Fa38G-Z7y?n?fblK#:CMʙ!5 z{$8還B)!}1䑣d!J(!1fx.pH:O(.,0 %H: fp۹=r@Dp *~# ix.Zj!:c2.ȍhbCX7\Z 8TZw [vg۠Y 䍬++uycCx̸\`itt 9Z\9f ,ґ,iؕ"y Ḭ$dE"J6=hsUѧ M b!ui D,Pdcا85$hJo†0|4 /ŀ `H^@=\H%m!zkih` S 4:[<@Є\N!c $RvHE`K37`Ax# A=mG?eTQ%jHjZA |E(aC=tgJra/7 y@yg@<t+ldeE Ylc\pzs|,` ScA  fF@Ύ#E!c d 6;,)d Vykd in!'5 ډ!:0!8+ "Ypr2EF:%y@:M<{Ɉes$ԚRL*ǓgUd)ׄS[Zl&ZhlEd5Z@jJ29)DعVr!FX1K@~:S&nU̙TZaͻ ,(n\lk3j@@@ 8p_aSIM$X]ËOӫgq 2@ 1@A  ]N{ ~tp8 `p\p$8akP0!2(-a"Ȇ*28b1b@" ȇT|* @*jXl%+ei{"ATvRhc`yB͡1% cIqa֘آ$NxA!+&*8gb8*N"%h{ p&cd@"/ Y.ik |jpxJkYfT2 ):„&l,%|:+::rkɁ`e)B_h IbPuF JS֖k&#>iaMK% 61f39!r'd 򇡪̯ʒֹbZA5 T5Zߘ* lgZpP8mNr{!, ᔘ^8l(&%&GF8qpo]0~fzG0Z-K!>M񇷓}{!Qp(] )NKvټjF܁%x#ǯ/o !;qU__ac_local_roles__q}q Ugregq ]q UOwnerq asU__name__q U skins.gifqU content_typeqU image/gifqUtitleqhU preconditionqUUwidthqKxUheightqKHu. i((U OFS.ImageqUImageqtqNt.}q(UsizeqL1574L UdataqT&GIF89axHOOOLLL/// YYY???222ooofff,,,&&&)))((( RRRppp zzzrrr[[[===555___UUU999!!!%%%;;;,xH@pH,Ȥrl:ШtJZجvzxL.9bn6L︾) 9y{N< ) D&&*B <u9h-uu &.9~ k & eǏ  d&%l")c&$HY~'@=\r1qQkQ1cN77zycbCP(FȠrU&e<+/=\J1˒b'3>@G"Z$1nZ18j᳞-1ipުʦ"{c2(bm4aۘe/i\l& Y ct;=Z>c*>Kвa B-k tp%/ lc[q1>Z( x z>@>+ybAvcH|zFek|=J4ЕFCH:4V0i ѐ+\Nz4>>OOOrrr???LLLCCC,,,YYYUUU999nnn/// )))+++555,xH@pH,Ȥrl:ШtJZجvzx z=$ p!ͮDB`4tvX #V Q MI Dx.B / !"Ǿoqp#ҥ& &ڬŸ4蠟%i*G?<((a 8T1⚉*Z$1ƍb:~ F$?jDN@,ěf0jwS 7ođ3S֮̀e+ f@2JիXjFTp@*pXa ")X6IٱnKDEܵKP - PflI9€! ()@B. ȎpH Νq7Eްd-8 e+["ٮ.ۊ\j28ʾpk6pْ {r- V g~gBUbzd܅p }ȹa aPlwjGUvd X3[-rUrBBW+V%'֚ b:y*i~_]`F ` cIHgflYcy%$s|5c՛vҖRY5XpG u{n' zy=Z U t5[MWq5u }h ƀnt~+1  ,j"El!)a[ak\6 qBbff$s75:^߾\djS&X7th W+0`<ۖةvnebM."y؀mG\ƥ~g As:De*vqg',!߮. u Y<\ڍGQXG(\i?ؼ΍k"ds#frmxoL4520zF(Wp:UIM pKX\sjgsStZd "?ܳjÆس[ӂVք_{A/F>fQB!(acW/;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q U membres.gifqU content_typeqU image/gifqUtitleqhU preconditionqUUwidthqKxUheightqKHu. i((U OFS.ImageqUImageqtqNt.}q(UsizeqL1823L UdataqTJFIFGGCreated with The GIMPC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222H?"8 !A1Qa"2q#B$3Rbr+1A!a2Qqё ?׊PJJ@H$jڕ6-,S .߰cğrQeM3l-c|J'򕵼u?*op CR:;iY4#Fq@f_97d E4_O]3-ڌTid=~gѐvR㚏-SZEI ܜaT {wQ*n(X‹}Fz$ciwı%\94fˋ=ytdfOZx֓d  MDx6*Vf:Ja:zN{-kK BTB;)M()[-\9Sa* HRH :1UR:rW!t-HCӛCꐕsUv&(Ne!倶{y>]5ȷtM[XQCsOYvf:<@:jտBl{ЪNK`]xn5 இ\O-F4p',F7ILtŢ+RJ)դ\+o[@ O@"9Vxy*y[n ie|qֶV;[Ŭo[l{Sh Ԍ"CgcJcPbs.\R<W{::QbS 7?tu| +;R;0N\M<`qߎ x%D)]4;S&I+ҲY%0Tr{*NJutkG5XpJm<$ $gnvpN9ՋHneűvU:_RZyCO/Q̀w1%klH^lZ]q@vG@#ۙ^2ƌ>V*QϥTQyGOgbI4!4\mM+jV@M`ޑ}ͥEmURPV$Nv`]QQEQ? {PFT:~ʒ8!ޒzJް"c$&l5Fv%%9$I94QQEqU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q U modules.jpgqU content_typeqU image/jpegqUtitleqUU preconditionqUUwidthqK?UheightqKHu. i((U OFS.ImageqUImageqtqNt.}q(UsizeqL1276L UdataqTGIF89axH___̿LLLYYYrrr &&&222fff???UUU999㪪!Created with The GIMP,xH dihlp,tmx|pH,qrl:qZNxp@$ΈaY |ʭM({  oqrZt J { J _StmapT] w|zob zE]oVo Cn^xn~_wFJk_ ^kDK k ƍw?K_k_dр5< 7/ 80Ȓl [VUܑ " "A@T#(E߿IN \3 Ρ p֚k&.dL g->a)%S/j(zy'[ b R+*pfaR*O, }kV0?$ؓfjl1u1ry˘Ekc Xv(#c9Nt)uLƹ'`H#V*%9P{~aW/";qU__ac_local_roles__q}q Ugregq ]q UOwnerq asU__name__q U infos.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKxUheightqKHu. iL((U OFS.ImageqUImageqtqNt.}q(UsizeqL112L UdataqUpGIF89aOOO!,5XZ0D*B%^W=(Y1zz1ҰU+Wbhrz ;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Ur_rond_edit.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. i((U OFS.ImageqUImageqtqNt.}q(UsizeqL256L UdataqTGIF89a23!,2X0I8ͻ !F $`p@) FTxD2f̦SRTJ]%*+b|5n,z5bY$yZtR~^Dr赘۔L0;qU__ac_local_roles__q}q Ufredq ]q UOwnerq asU__name__q Ur_rond_zwook.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. i|((U OFS.ImageqUFileqtqNt.}q(UsizeqL577L UdataqTAGIF89a2!,2ڋ޼H扦ʶ @״6>[WD YZTH7[H׀R+ _ԏY^ =Ύ>E=s|'*QTFl' :8 k,*"h/b{1̸b4(R I;)~3r_._i͠BQO $tA:k:'§\~z&ئ_|X L)c$ە5 cdԮWyk)lo=b،$ƚ¼WK-WrZ2oLtR+eK%ݰ5zum/ ;iȉgPo˃M/I{:5]k l .qc?`H`` .`>D;qU_dav_writelocksq(U lq (U Persistenceq UPersistentMappingq tq tq QU_EtagSupport__etagqU ts56397224.06qU__name__qUzwook_module.gifqUtitleqUU content_typeqU image/gifqU preconditionqUU__ac_local_roles__q}qUxavq]qUOwnerqasu. i4((U OFS.ImageqUImageqtqNt.}q(UsizeqL85L UdataqUUGIF89a!,&wkR- ](>InNڭwBdS;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Urond_coche_elem.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. iY((U OFS.ImageqUImageqtqNt.}q(UsizeqL111L UdataqUoGIF89aSp!,4X*CI]KpA(nZ.j4~(Q7ʼn$;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Urond_skin_detruit_soustab.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. i+((U OFS.ImageqUImageqtqNt.}q(UsizeqL67L UdataqUCGIF89a!,L3JOu@ؑyR;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Ucarre_skin_ajout_colonne.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. i6((U OFS.ImageqUImageqtqNt.}q(UsizeqL86L UdataqUVGIF89a!,'wk :JXutdI&BViNWv;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Urond_modif_li_co.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. jQ((U OFS.ImageqUImageqtqNt.}q(UsizeqL256L UdataqTGIF89a23!,2X0I8ͻ !F $`p@) FTxD2f̦SRTJ]%*+b|5n,z5bY$yZtR~^DrInNڭwBdS;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Ur_rond_coche.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. j 6((U OFS.ImageqUImageqtqNt.}q(UsizeqL85L UdataqUUGIF89a!,&wk{Ty(Nea^J9&TQ;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Urond_deplace_elem.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. j@+((U OFS.ImageqUImageqtqNt.}q(UsizeqL79L UdataqUOGIF89a!, wk,3݅^Xļ S;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Ur_rond_ferme.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. jK((U OFS.ImageqUImageqtqNt.}q(UsizeqL104L UdataqUhGIF89a3?!,-HJоɧvub3r S$;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Urond_renommer_skin.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. j0((U OFS.ImageqUImageqtqNt.}q(UsizeqL81L UdataqUQGIF89a!,"wkQ8o}%~xJ9UV#CF;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Ur_rond_duplique.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. j((U OFS.ImageqUImageqtqNt.}q(UsizeqL215L UdataqUGIF89a2!,2H0I8ͻ Fb A@ ޱ9ȮQYbؘ?ș|]U$n߯k QT=+vz>Ux1G^V. ryPE{'!}QvHfj(BAE8-a*,O  ;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Uf_cercle_arbo.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqK2u. jN((U OFS.ImageqUImageqtqNt.}q(UsizeqL115L UdataqUsGIF89aPl!,8X"Iޛ = D#d 4laAu/*AJ$;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Urond_refer.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. jy((U OFS.ImageqUFileqtqNt.}q(UsizeqL577L UdataqTAGIF89a2!,2ڋ޼H扦ʶ @״6>[WD YZTH7[H׀R+ _ԏY^ =Ύ>E=s|'*QTFl' :8 k,*"h/b{1̸b4(R I;)~3r_._i͠BQO $tA:k:'§\~z&ئ_|X L)c$ە5 cdԮWyk)lo=b،$ƚ¼WK-WrZ2oLtR+eK%ݰ5zum/ ;iȉgPo˃M/I{:5]k l .qc?`H`` .`>D;qU_dav_writelocksq(U lq (U Persistenceq UPersistentMappingq tq tq QU_EtagSupport__etagqU ts56397224.1qU__name__qUzwook_skin.gifqUtitleqUU content_typeqU image/gifqU preconditionqUU__ac_local_roles__q}qUxavq]qUOwnerqasu. jPW((U OFS.ImageqUImageqtqNt.}q(UsizeqL111L UdataqUoGIF89aSp!,4X*CI]KpAȀ =ֲ"4Z>^JQTRɉ'Q$;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Urond_skin_annule_fusion.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. j((U OFS.ImageqUImageqtqNt.}q(UsizeqL231L UdataqUGIF89a23fff!,2X0I8ͻ F煮#že {0`ȤF˨hD) ꉒجxc2yZr5{|oaaT(}IMGGB$gX}5nyq_iR ¯ ;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Ur_cercle_skin.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqK2u. j9((U OFS.ImageqUImageqtqNt.}q(UsizeqL86L UdataqUVGIF89a!,'wk,*vIy݆Ӫ],.T԰L0;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Ur_rond_decoche_case.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. j/((U OFS.ImageqUImageqtqNt.}q(UsizeqL85L UdataqUUGIF89a̙!,&wkq:6hX pe)O#2m;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Urond_ouvre.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. j2((U OFS.ImageqUImageqtqNt.}q(UsizeqL83L UdataqUSGIF89a!,$wk, g#nٙ %U,L0;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Urond_coche_case.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. jO((U OFS.ImageqUImageqtqNt.}q(UsizeqL112L UdataqUpGIF89aOۿ!,5XZ0D*B%^W=(Y1zz1ҰU+Wbhrz ;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Urond_edit_elem.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. jW((U OFS.ImageqUImageqtqNt.}q(UsizeqL125L UdataqU}GIF89a{ʕ4Lp!,BX*D`EAAŀvt2%<4munaĐ×#O}&$mT9H#$;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q U rond_skin.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. jV((U OFS.ImageqUImageqtqNt.}q(UsizeqKyUdataqUyGIF89aPsj3!,>XJA3!\)o*`9 %m4P1:M3)lI;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Urond_edit_groupe.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. j{((U OFS.ImageqUFileqtqNt.}q(UsizeqL577L UdataqTAGIF89a2!,2ڋ޼H扦ʶ @״6>[WD YZTH7[H׀R+ _ԏY^ =Ύ>E=s|'*QTFl' :8 k,*"h/b{1̸b4(R I;)~3r_._i͠BQO $tA:k:'§\~z&ئ_|X L)c$ە5 cdԮWyk)lo=b،$ƚ¼WK-WrZ2oLtR+eK%ݰ5zum/ ;iȉgPo˃M/I{:5]k l .qc?`H`` .`>D;qU_dav_writelocksq(U lq (U Persistenceq UPersistentMappingq tq tq QU_EtagSupport__etagqU ts56397223.96qU__name__qUzwook_admin.gifqUtitleqUU content_typeqU image/gifqU preconditionqUU__ac_local_roles__q}qUxavq]qUOwnerqasu. j#((U OFS.ImageqUImageqtqNt.}q(UsizeqL64L UdataqU@GIF89a!, Dpjy;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Ucarre_detruit_ligne.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. j M((U OFS.ImageqUImageqtqNt.}q(UsizeqKvUdataqUvGIF89a꼼!,;H 0>L*NdK0`B=f,2L "T=H']sBM;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Ur_rond_bug.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. j!S((U OFS.ImageqUImageqtqNt.}q(UsizeqL114L UdataqUrGIF89afff!,7H2>"ٞjH1(^xn!^ .TNG<OI;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Ur_rond_zone_edit.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. j"0((U OFS.ImageqUImageqtqNt.}q(UsizeqL82L UdataqURGIF89a?!,#wkޝ#A)xTj12d;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Urond_list_elem.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. j#8((U OFS.ImageqUImageqtqNt.}q(UsizeqL84L UdataqUTGIF89a!,%wk,*KM`e:g ?4)SG;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Ur_rond_annule_fusion.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. j$=((U OFS.ImageqUImageqtqNt.}q(UsizeqL89L UdataqUYGIF89a!,*wkoB)HxY'e'MP>1(;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Ur_rond_ajout_soustab.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. j%9((U OFS.ImageqUImageqtqNt.}q(UsizeqL83L UdataqUSGIF89a!,$wkoB)H݇rYq$OL0;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Ur_rond_detruit_soustab.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. j&O((U OFS.ImageqUImageqtqNt.}q(UsizeqL112L UdataqUpGIF89a^!,5X:dٞ%jX1(^xn&3TN~GCba$!;΂=D<)-sm羕j^*(62D]5%÷Sӎ-7SAXvBO!=@+"_fu0Mü#eMKDchɦ3.ٜbqIf~I o9Zh4y:v2">2%NDľ|KϿ }]uS+qՕ-kQRQ$׼RU@yu˧]*O%?LZBj!Eb8.F].~$z[QzqK' d1:q$b^Q=Pb.nbeߎPmM|0RPd7\'k*/TC +ADM%Rt4u.LS3pBmO1Tܶ2R!Ԉ; :e*22񮩾2J$4=ozklo  #hN2F#Sc$>j2M**]:tn-Hpr3_Z:yS"[=" ͑qlȵH,*4q5: dj)Z),%#[:[zufZJҢvmxs[7e:X }NaRS C <$ܑpn kE`s;l*avZ9f<Wi#v 3>;dsՎěq`Hq/v7'?O8=+CH'9 r#8{ٱ驾Dz⸝2R$|3 -b_q9žTK8{V{_AM)ɧpw&A}v[ 6e;b IK~vn+0FXe &-.bVL}ۮ5"6V^w;08Ǻ|H57ꋫSS*u:ߴLT*>%h hJM{ev! 6$3/ .4WœL4T|BO@}_eM=~lu8_LaNu_ukaר[-eB2 uN]BJ SOQb*3gBrBbRM }v8ҷ)Yۄ'pIO$g (} 0`у MMދzA#v. 0i<1P j5%AºU[qW[UlT\z a Tlj0G.,ɋT*aJ*TJ]ϣPk`r@e6{[Ui{2SRiX` դ%jAQR[[iu*UN|uzR׸HUaT%jЩJƅOҸmbmH;R%W9HȯįeB` [X(*ߦ=%«]d|AD oH}VݻBZ֒S$@琀~@>޲T%+mrNR}XN>:Fk3{?sSM-Հ7蟂<狕0VyKN9\dVs xGQYNi69) vO'5:BRfŦ@unE "jy)SIdl~IAcet?/% +K\;}zJT!DxE݇Akn7.nÈ/rHpG߆m(%I +v؜29q Zi)km2|Nkws}l{UlRJ;tBQ" z[dE>DC$v衱+ WL"X`/C7cpGm ;:ʚ%YA'?t(?'_XiV@BhWb5'-[\S[rOy7S;2<مuM*$3`އXٴaۥpD93l"!lRϞUژ4|`6p>bp2I?HfZ>H q$+JWFp\FpO'k_s %ڝCP(H&&2#euųA-Qldu{ hjGLѵ<PLrWYS&S_/vK?~.lGN9RD @;+ )*P? Ev'8G-NڵS.{^UJ5f4:'Ї{c}]6tx:d2`TD&3.!5hZ Br+JJ' Ϥ3UpFeD>{"[YJ,7z}FL=$TRyJv5>8@; !oBKqK'W5?FTSꆈp.psY4yLԑ1PMIGh}'/eޘ=GP'^q~ 3]h{'(c) UMwzW'_#LKg.wKQ+b%us_PAqTnҗB+Z=F5:WIv;OKK#Vږ^r 2C/9BI֤ m ;p`Wa,x.dB36^铗M&UNqMxR+ ,x\Z6 A$"zD0r돋9qͰ@ 7V#\.%2[m$NT: qAE 6A%$]{렵{"jlJP]5m^Vq8iꤵި"SLuhY1z:{,!70zq 4RARmsӆ!!Roh`bFּ|6#q@dddƵymV‘)[O8G#dO\ x/7VН78JRڀNS`ΤQD+VVѰOak>QˮM H#J>ug[o+JHk#-KmIJBvJФA7Zٵ.ڛ+U B> )L.MvzoolKCakp]Jup6̑Fa 4HIG$virpO|c[s V$%M7rڞJtSuxڿ󫕕8<0/ruo i!Rb'BRNS\u.ʔҜeI[hQ) 2\ ФQAv;e‚EH%%IJ)I,8V+7>8 #6# qaafG#;^6|QI2BT ~vQK=S067Mo33d$py[u IJݐ"֍Nb Ri5wLŭqIzkhpRVS(wz͑RInҪMoɆĶˋtPv#HR&<%AOCpO"B\RJ s\ϔL5d.6r 'Qp>=ma}fLr wkO,sאRN NI'xGhfP1RJA 1Y`q}2%-!`$6~h놌/#rF,)ᦶ|5ޣ\7<;ܞ;oL#m)N=ܲP,p@V3 9-8GRdU(߰UO(YVHaC(M`vK݈?=6^q f/ykliC&%_2 *GJ**!,Ei u_']~_69W*/8Qnb! >k!GhTaR@l]#C{S8GZwz#2ڼ7՜{}ҦӵBTV%8Z@Rp #y;PY |ԭ ARr @>_UqJOy7qַ'LQ Ð7a9m[^ޘKtIXVǿkhW/ ]-0zpy$k9ٵ`RT0JIOl=Tۣ()Cpgh Ou?vcx@/]q|[WA*lH9J*lX(\TRI'8qܚ- Ek_/=E"+alrUaQIii'7uXۯ\!G# -cҾ:V֋gx,񹿞{8|a*-QLG:ʓϦHgl+Z\Q1Z>bgRC߹L4ccϲ_i+_ϓ4ֶ;6F%&&W*u%p"ȶH6$0˴Twd95o8ӌ0Fl-rZCWb==ɗ52ݢ 43ZmȐvBd?-jhTՙC@ %Yt:xwzcS_]AL]@:-?B >e!Z5:ch}t Fɴ`-ŗUQ !RHAB6i%GrDdږYnAT\R҇H"8zyC̓ JQHMλ/<&%->Nw?F_L7ͺB.yڷ-^,yl%99;bˈQ>xӂN,Y+'KaiRRBXt$ԉCHXO#2mnM}_<8$-!Rt:G{0/RdJۄԕq񥽓HuB?u+*؂RBSwrqܙ+W&eRA'e( I*UJ06Sc 0 Ssoņ䕷 dcoFu>ּ ܥ)ŒН#g8 Kk2e NTTҔ7nHڕwdF=̖‚$̯uǢyK{#qRK -}E K$,yŭN'eB7hr[cdoߢ*ݻ甲$?Q8srU}YtG)<)AI@<'=K<8RagnOϩVԤ0l[?uuݨJjǩ=blCs8e ,G<|_=d|siGf(R%@Ja=¸p2S `mi߭?F%>Zn}oeRC~חu~"-j)h}H~~;s?<XYE,~J1T꣑CHf|TI vzD=p*v)PZfn>~1_+Y_)&ڏ BծŹtqs9~[Yv|rYC{3G?s̮k#tmG' 4$s^ߞk M)R/T,%K|ӄ[!<<½؎4g##98;,)ow3XjJar:'(!nXGv.ոRZVа%8={nWΗeKF)#v3*%T)7kko۔C6[J n } 'i'Wuؓ>Ζ)-/'kz1n(=+)la!I8V-D(-ڒSrT ;s=s2ǔr&f%n%7)n/k1P* )B'eX^8ZT3eQSymok wmARN n񃌜y)㺆׶Ph)K;@ `kPVumseun+PФ)9r^> 6?ڪxo8-S7NJNjV J$Ca mݪB;RIJBH0G|Giglw`%}KF*jƟ~_]QQJ @',>uzuĒ8qR!0&,oI4X _ߵ ׼ҕ F8Wcm& l0 X d{PJ5%T ,=pR*H#n6oa0to&Ћ7V/?9uH),do< ؐN>c9tҗV@.>Qţ*gF[fT )JF]/n 8ת|'*.O<˨[Ԗ|xǶ~˥doY D]9А\$Bh7EcE@J_8p2X* l}G:/ƵiUu_&lz`qκZc=ёOujJ]QW1z5v]8D+ʆiiz孼,4 ʧ{ 2)"8tRoԎ.͡^BuPuPn6R-$hP)RIHB* $˔fXa!Sm8TRPq_B F: ּZO&>b3^u) ǏORmBi)\i+ʽz YuZoRpDoG\iê=XS#HNO$0jG1{ i9ir)@juGA5?HJҕ ]pr47yNO [) aFCjٻv; @݂=gj-<e%$8I 9qsW `.kI iHPRB lO_L@0H Q*kTu'ˮb[/B~zb[J@v7NdKO) %Y VK_YKH!I"LMG`U—%@H}X܋7n#$3)"X}#)ԗ zN is`[ġ6Gs_tKљ\ 6SaQ:CC)fkTYQO Ālڟw J\uim&<_Vڐv8nHR;a\ 89Mۖsj t=翷:'%MkfR-8'ݻyO,{gV||<¨d-vܔP8Q($cj h<܎G۾3 P%s[~ 4JXv-5GMPϮδsD?>UT$ڮ4na.u$k-o3M:huWt; %ILU-(3U3MR]3cvزSQt2(qBPJRAF(RFr唒Ѯ~]8\@e\X\3eH]c/QcwYHF2Z #>~RS7CM5 PЛyn)E jǗ7RwR7Ap qa[{T FIVG'?Kz/- ٬V|ϖ3:V: (z-k:JJTжCoxkF]m_嚤%\#yƳS Vb?<'R}`TzގbmUS8ECC'z.8T "bS 2c5qKQ0x;L3Wr+Dlr̎2Y*1' RR] 7ku'K~MN[ R6Oh~M[>Et/c$$e 9ޕ3rQiIl[K~dI$~'Jq*)xh""YڕHuI߂>-ՠ{qgN2ҕ8 i 6[&8)˸#:-¾ӺТ.-|9 ;=͟nel20I0xryK;R\Y.wu}N+uW:Iia+ 5 r9ĕ:·STJ*HmI1$ \6hkr@C<4#<obۀ9n8ǰ^\S`y {K>:x1!e a )ikl|ԫb-@dm6']:3B\U"t7}!}1tQnwN;'$$V{:mJ SChA%\Ĝ{=|*!rakgM_iFV ,®)Ҳia+ԮXL @@55Mxxy< 3p19LtnW D5u+LUGM C"!hALcgmB- T V8Px/C 5;cu?n;ֹnK[ ]m4xluRQquPÑ-,)nKmĆR E( }oZT m¨[w-56GNi͉]Ϊƭ7\RʭEūTI&Ĺ&`f16T!6Ӝ 7J6w1l{>2֢l \l%~D$*Cג0aӾ]2v$/Ke bkcˆq2K#en%⛬^ ]z=^i`i5 1m5ZDrT:ʭI#IȔdUe%s*i,L2`v0` qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q U mapcolor.jpgqU content_typeqU image/jpegqUtitleqUU preconditionqUUwidthqKUheightqKu. j+;((U OFS.ImageqUImageqtqNt.}q(UsizeqL86L UdataqUVGIF89a!,'wk :JXutdI&BViNWv;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Urond_skin_modif_li_co.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. j,B((U OFS.ImageqUImageqtqNt.}q(UsizeqKbUdataqUbGIF89a3ͺSvp!,'X"I]KJ^h:lfJ)vOM ;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Urond_detruit_groupe.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. j.K((U OFS.ImageqUImageqtqNt.}q(UsizeqKjUdataqUjGIF89a3Svp!,/X:bI]K@ öp8kEHt 81=";qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Urond_duplique_groupe.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. j/+((U OFS.ImageqUImageqtqNt.}q(UsizeqL67L UdataqUCGIF89a!,L3JOu@ؑyR;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Ucarre_edit_ajout_colonne.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. j0P((U OFS.ImageqUImageqtqNt.}q(UsizeqL117L UdataqUuGIF89afܖ!,:X*AIC8B-@<)N?4fˮ.V+Y Mm& DH;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Urond_droit.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. j1:((U OFS.ImageqUImageqtqNt.}q(UsizeqL89L UdataqUYGIF89a!,*wkRm]qeQω[~x$u2n(;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Urond_decoche_elem.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. j2H((U OFS.ImageqUImageqtqNt.}q(UsizeqL108L UdataqUlGIF89a///!,1XZо -1B#':7ju;=J $;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Ur_rond_help.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. j3E((U OFS.ImageqUImageqtqNt.}q(UsizeqL97L UdataqUaGIF89afff!,&H2>"ٞjḨU`H*Ux1G^V. ryPE{'!}QvHfj(BAE8-a*,O  ;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Ur_cercle_arbo.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqK2u. j5D((U OFS.ImageqUImageqtqNt.}q(UsizeqL98L UdataqUbGIF89a̺Sp!,'X*AI]K^h:lfJ)vOM ;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Urond_detruire_skin.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. j6((U OFS.ImageqUImageqtqNt.}q(UsizeqL210L UdataqUGIF89a2fff!,2X0I8ͻM F煮#že9C{0`ȤF˨hD ) ꉒجxc2yZr5{|oaaT(}IMGGB$g}5nWyq_iR  ;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Uf_cercle_edit.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqK2u. j7,((U OFS.ImageqUImageqtqNt.}q(UsizeqL74L UdataqUJGIF89a!,wkq:dVe̙֠0;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Urond_detruire_elem.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. j8)((U OFS.ImageqUImageqtqNt.}q(UsizeqL79L UdataqUOGIF89a!, wk,3݅^Xļ S;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Urond_ferme.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. j9V((U OFS.ImageqUImageqtqNt.}q(UsizeqL111L UdataqUoGIF89aSp!,4X*CI]KpAȀHB:WI[ɛ_^ QTj$;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Urond_skin_decoche_case.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. j:K((U OFS.ImageqUImageqtqNt.}q(UsizeqL104L UdataqUhGIF89a3?!,-HJоɧvub3r S$;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Urond_renommer_elem.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. j;((U OFS.ImageqUImageqtqNt.}q(UsizeqL231L UdataqUGIF89a2fff3!,2X0I8ͻM F煮#žeID{0`ȤF˨hD) ꉒجxc2yZr5{|oaaT(}IMGGB$gX}5nyq_iR ¯ ;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Ucercle_skin.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqK2u. j<'((U OFS.ImageqUImageqtqNt.}q(UsizeqL68L UdataqUDGIF89a!,DM`-z5Fe ;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Ur_carre_ajout_ligne.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. j=3((U OFS.ImageqUImageqtqNt.}q(UsizeqL85L UdataqUUGIF89a!,&wk{Ty(Nea^J9&TQ;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Ur_rond_deplace.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. j>0((U OFS.ImageqUImageqtqNt.}q(UsizeqL83L UdataqUSGIF89a!,$wk1U}5Nh*!ںӘLE;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Ur_rond_fusion.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. j?H((U OFS.ImageqUImageqtqNt.}q(UsizeqL104L UdataqUhGIF89a!,-HJоɧvub3r S$;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Ur_rond_renommer.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. jN((U OFS.ImageqUImageqtqNt.}q(UsizeqL109L UdataqUmGIF89aSp!,2X*CI]KpA(#Œ[|[%U4GGQ 'Gd;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Urond_skin_fusion.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. jAE((U OFS.ImageqUImageqtqNt.}q(UsizeqKhUdataqUhGIF89a3Ϳ^~?f!,-X*CٞjXmnOFK)Z:іtdqL;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Urond_plus_groupe.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. jB((U OFS.ImageqUImageqtqNt.}q(UsizeqL527L UdataqTGIF89a23̙fffffffff3f3ff33f333333!,2$dihlp,tmcAz9`$F0xzH=. qTh <G̼ϯ ~ٺEG>  : (kր%[ >b@>  X ժ:el(6.D %C8vق&6sުllpӣ@LJ =Jb ө:WX!nEaLW(Ň*w5eZB˷ X „ @Xq ƌ Y_ʕ'cl͝G|\";qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Ucercle_zope.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqK2u. jC*((U OFS.ImageqUImageqtqNt.}q(UsizeqL68L UdataqUDGIF89a!,DM`-z5Fe ;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Ucarre_skin_ajout_ligne.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. jD)((U OFS.ImageqUImageqtqNt.}q(UsizeqL74L UdataqUJGIF89a!,wkq:dVe̙֠0;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Ur_rond_detruire.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. jEN((U OFS.ImageqUImageqtqNt.}q(UsizeqL106L UdataqUjGIF89aSp!,/X*CI]K@ öp8kEHt 81=";qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Urond_dupliquer_skin.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. jN((U OFS.ImageqUImageqtqNt.}q(UsizeqL231L UdataqUGIF89a23fff!,2X0I8ͻ F煮#že {0`ȤF˨hD) ꉒجxc2yZr5{|oaaT(}IMGGB$gX}5nyq_iR ¯ ;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Ucercle_edit.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqK2u. jG((U OFS.ImageqUImageqtqNt.}q(UsizeqL210L UdataqUGIF89a2fff!,2X0I8ͻM F煮#že9C{0`ȤF˨hD ) ꉒجxc2yZr5{|oaaT(}IMGGB$g}5nWyq_iR  ;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Uf_cercle_skin.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqK2u. jH;((U OFS.ImageqUImageqtqNt.}q(UsizeqL84L UdataqUTGIF89a!,%wk,*KM`e:g ?4)SG;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Urond_edit_annule_fusion.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. jI((U OFS.ImageqUImageqtqNt.}q(UsizeqL231L UdataqUGIF89a23fff!,2X0I8ͻ F煮#že {0`ȤF˨hD) ꉒجxc2yZr5{|oaaT(}IMGGB$gX}5nyq_iR ¯ ;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Ur_cercle_edit.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqK2u. jJ((U OFS.ImageqUImageqtqNt.}q(UsizeqL236L UdataqUGIF89a23!,2X0I8ͻ !F@@Kޱ9ȮQYbؘ?ș|]U,n߯k QT=+vz>Ux1G^V. ryPE{'!}QvHfj(BAE8-a*,O  ;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Ucercle_arbo.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqK2u. jKF((U OFS.ImageqUImageqtqNt.}q(UsizeqL108L UdataqUlGIF89a::!,1XZо -1B#':7ju;=J $;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q U rond_help.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. jL!((U OFS.ImageqUImageqtqNt.}q(UsizeqL65L UdataqUAGIF89a!,wkq:d޼{i8NL0;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Urond_select_elem.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. jMz((U OFS.ImageqUFileqtqNt.}q(UsizeqL577L UdataqTAGIF89a2!,2ڋ޼H扦ʶ @״6>[WD YZTH7[H׀R+ _ԏY^ =Ύ>E=s|'*QTFl' :8 k,*"h/b{1̸b4(R I;)~3r_._i͠BQO $tA:k:'§\~z&ئ_|X L)c$ە5 cdԮWyk)lo=b،$ƚ¼WK-WrZ2oLtR+eK%ݰ5zum/ ;iȉgPo˃M/I{:5]k l .qc?`H`` .`>D;qU_dav_writelocksq(U lq (U Persistenceq UPersistentMappingq tq tq QU_EtagSupport__etagqU ts56397224.06qU__name__qUzwook_edit.gifqUtitleqUU content_typeqU image/gifqU preconditionqUU__ac_local_roles__q}qUxavq]qUOwnerqasu. j*((U OFS.ImageqUImageqtqNt.}q(UsizeqL80L UdataqUPGIF89a!,!wkхxM >赘۔L0;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Urond_zwook.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. jS((U OFS.ImageqUImageqtqNt.}q(UsizeqL110L UdataqUnGIF89aSp!,3X*CI]KpAȀ"jj؎Vn&omE{IЈ#2I;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Urond_skin_coche_case.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. jO(((U OFS.ImageqUImageqtqNt.}q(UsizeqL67L UdataqUCGIF89a!,L3JOu@ؑyR;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Ur_carre_ajout_colonne.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. jR((U OFS.ImageqUImageqtqNt.}q(UsizeqL117L UdataqUuGIF89alllPPP!,:XJ@-@<)N?4fˮ.V+Y Mm& DH;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Ur_rond_droit.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. j@((U OFS.ImageqUImageqtqNt.}q(UsizeqKbUdataqUbGIF89a̙ݺ!,'X"I]KJ^h:lfJ)vOM ;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Urond_detruit_user.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. jR((U OFS.ImageqUImageqtqNt.}q(UsizeqL497L UdataqTGIF89a2̙fffffffff3f3ff33f333333!,2`$dihlp,tm#ޣBZL01 `Ӯ`8hH,mx LvwxjDQ~:ZwOrF9: uw g<|AQZw`@ \ >:^=[ : vrxZ` FcLҳ շ=JLr Td˴Ѕi |.(T, 9*0b RLj@nӱlBxǀ!"eτ](nxhDϦ{,zs(?2K(ɐH:D1+ů)ưr`Xa?r܆߿ LÈS;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Uf_cercle_zope.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqK2u. iZ((U OFS.ImageqUImageqtqNt.}q(UsizeqL121L UdataqUyGIF89aPܙj!,>X 3 I!\AC)o*`9 %m4P1:M3)lI;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Urond_editer_skin.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. jT%((U OFS.ImageqUImageqtqNt.}q(UsizeqL64L UdataqU@GIF89a!, Dp6{m] 2(=;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Ucarre_detruit_colonne.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. jU((U OFS.ImageqUImageqtqNt.}q(UsizeqL527L UdataqTGIF89a23̙fffffffff3f3ff33f333333!,2$dihlp,tmcAz9`$F0xzH=. qTh <G̼ϯ ~ٺEG>  : (kր%[ >b@>  X ժ:el(6.D %C8vق&6sުllpӣ@LJ =Jb ө:WX!nEaLW(Ň*w5eZB˷ X „ @Xq ƌ Y_ʕ'cl͝G|\";qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Ur_cercle_zope.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqK2u. jV((U OFS.ImageqUImageqtqNt.}q(UsizeqL65L UdataqUAGIF89a!,wkq:d޼{i8NL0;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Ur_rond_annule.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. jWS((U OFS.ImageqUImageqtqNt.}q(UsizeqKxUdataqUxGIF89a̙ݺ!,=X " 9` 2I Phߣ/Ʃ|$ǽ܋mPF"Ls<;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Urond_edit_user.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. jXJ((U OFS.ImageqUImageqtqNt.}q(UsizeqL107L UdataqUkGIF89aLp!,0X*CIޛ m͸=A0ny%;͖TotE;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Urond_plus_skin.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. jYL((U OFS.ImageqUImageqtqNt.}q(UsizeqL107L UdataqUkGIF89aRp!,0X:"I R50)w#vvN3 ͭPT'%I;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Urond_detruit_col.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. jZz((U OFS.ImageqUFileqtqNt.}q(UsizeqL577L UdataqTAGIF89a2!,2ڋ޼H扦ʶ @״6>[WD YZTH7[H׀R+ _ԏY^ =Ύ>E=s|'*QTFl' :8 k,*"h/b{1̸b4(R I;)~3r_._i͠BQO $tA:k:'§\~z&ئ_|X L)c$ە5 cdԮWyk)lo=b،$ƚ¼WK-WrZ2oLtR+eK%ݰ5zum/ ;iȉgPo˃M/I{:5]k l .qc?`H`` .`>D;qU_dav_writelocksq(U lq (U Persistenceq UPersistentMappingq tq tq QU_EtagSupport__etagqU ts56397224.01qU__name__qUzwook_arbo.gifqUtitleqUU content_typeqU image/gifqU preconditionqUU__ac_local_roles__q}qUxavq]qUOwnerqasu. j[Y((U OFS.ImageqUImageqtqNt.}q(UsizeqL125L UdataqU}GIF89a{{{LLL!,BX3E]BŀvE t2<4muna×# O}&$mT9H#$;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Ur_rond_skin.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. j\<((U OFS.ImageqUImageqtqNt.}q(UsizeqL83L UdataqUSGIF89a!,$wkoB)H݇rYq$OL0;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Urond_edit_detruit_soustab.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. j]P((U OFS.ImageqUImageqtqNt.}q(UsizeqL115L UdataqUsGIF89alllPPP!,8XJޛ%= D#d 4laDu/*AJ$;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Ur_rond_refer.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. j^1((U OFS.ImageqUImageqtqNt.}q(UsizeqL85L UdataqUUGIF89a???!,&wkq:6hX pe)O#2m;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Ur_rond_ouvre.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. j_@((U OFS.ImageqUImageqtqNt.}q(UsizeqL89L UdataqUYGIF89a!,*wkoB)HxY'e'MP>1(;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Urond_edit_ajout_soustab.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. j`8((U OFS.ImageqUImageqtqNt.}q(UsizeqL86L UdataqUVGIF89a!,'wk :JXutdI&BViNWv;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Ur_rond_modif_li_co.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. jF-((U OFS.ImageqUImageqtqNt.}q(UsizeqL82L UdataqURGIF89a???!,#wkޝ#A)xTj12d;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Ur_rond_plus.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. jbC((U OFS.ImageqUImageqtqNt.}q(UsizeqKhUdataqUhGIF89a̙߿ز!,-X:bٞjXmnOFK)Z:іtdqL;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Urond_plus_user.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. jc4((U OFS.ImageqUImageqtqNt.}q(UsizeqL83L UdataqUSGIF89a!,$wk, g#nٙ %U,L0;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Ur_rond_coche_case.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. jd7((U OFS.ImageqUImageqtqNt.}q(UsizeqL86L UdataqUVGIF89a!,'wk,*vIy݆Ӫ],.T԰L0;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Urond_decoche_case.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. je((U OFS.ImageqUImageqtqNt.}q(UsizeqKUdataqUGIF89a:p|!Created with The GIMP! ,HIZ8k(&|(%&/ |vFK.6husӬ"9kF(SSL["^/a.%yTQqcKeyGwAPyZP;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Uinsert_colonne.gifqU content_typeqU image/gifqUtitleqhU preconditionqUUwidthqKUheightqKu. jgd((U OFS.ImageqUImageqtqNt.}q(UsizeqKUdataqUGIF89a@@@!Created with The GIMP! ,;H@k ai5hSY:; R@[ُ֊Ym Q'*;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q U duplique.gifqU content_typeqU image/gifqUtitleqhU preconditionqUUwidthqKUheightqKu. j#((U OFS.ImageqUImageqtqNt.}q(UsizeqL1347L UdataqTCGIF89a$𽽽fffEEE@@@^^^!!!888xxx|||FFF"""(((\\\vvveee111***DDD===}}}iiiJJJnnnHHH)))000PPPaaappp'''cccIIIjjj]]]LLL+++oooȂΞ&&&ZZZttt///kkkNNN>>>666~~~WWW XXXQQQzzz```<<<222BBB###:::ggg444333---;;;$$$dddwww???555777uuuYYYsss! ,$H" `0pA "jȠ"H@a .`@ :t"Ft Q"D&NHb.d|#2Z̠QgB7PC= 8B"EpqI%Kv@1BB*2XipKZlᢰ/! E#cȔ1S ”IP5lڸ%8g>2NQ0s'cB(! 4b@ tRJ$0P)(B < "lB@* *+ܪl;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Ugroupes_ico.gifqU content_typeqU image/gifqUtitleqhU preconditionqUUwidthqK$UheightqKu. jig((U OFS.FolderqUFolderqtqNt.}q(UidqU edit_del_movqU__ac_local_roles__q}qUxavq ]q UOwnerq asU_objectsq (}q (U meta_typeqUImageqhUdel.gifqu}q(hhhUedit.gifqu}q(hhhUmove.gifqutUedit.gifq(U lq(U OFS.ImageqUImageqtqtqQUmove.gifq(U lq(hUImageqtqtqQUtitleq UUdel.gifq!(U l q"(hUImageq#tq$tq%Qu. jj((U OFS.ImageqUImageqtqNt.}q(UsizeqMUdataqTGIF89a&߲٧ٲҦҙљѥqd}Ɍ~pqäV}I~c?@A9%):!ǀ!DR!bFYqc:G@ IB- pHI%IX$ҐBH9X $Y#6,4RۘDA&,9y$ F!M 1qBђ(1h BF Qf90\XJz:%Y. Zɳw%4XI4PH_*GD,AY!',]MSe0:"aa nPwE:r ҄RTp@#1 t`ObR(M_\Tjc˞b`@=}`BC<`' h~@,X;궵A`' _8. A dra@pAxqXpr'@y&'r   aC  P@@ə`Ab!:Bh\PAo0pKu𗁇CXqd#Xÿ Eb,X3`cRw)ЦTJU&q n:s:/"fRrid#;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Udel.gifqU content_typeqU image/gifqUtitleqhU preconditionqUUwidthqKUheightqKu. js((U OFS.FolderqUFolderqtqNt.}q(U catalogue.gifq(U l q(U OFS.ImageqUImageqtq tq QUp_catalogue.gifq (U l q (hUImageq tqtqQU__ac_local_roles__q}qUxavq]qUOwnerqasUp_locatebar.gifq(U lq(hUImageqtqtqQUtext.gifq(U lq(hUImageqtqtqQUproject_checker.gifq(U lq (hUImageq!tq"tq#QU flash.gifq$(U lq%(hUImageq&tq'tq(QUdouble_saut_ligne.gifq)(U lq*(hUImageq+tq,tq-QUp_navigation.gifq.(U lq/(hUImageq0tq1tq2QUp_calendrier.gifq3(U lq4(hUImageq5tq6tq7QUfolder_bar.gifq8(U lq9(hUImageq:tq;tq(hUImageq?tq@tqAQU trait.gifqB(U lqC(hUImageqDtqEtqFQU modules.gifqG(U lqH(hUImageqItqJtqKQUsuggest_content.gifqL(U lqM(hUImageqNtqOtqPQU article.gifqQ(U lqR(hUImageqStqTtqUQU p_file.gifqV(U lqW(hUImageqXtqYtqZQU p_image.gifq[(U l8q\(hUImageq]tq^tq_QUp_forums_last_messages.gifq`(U lqa(hUImageqbtqctqdQU groupe.gifqe(U l'qf(hUImageqgtqhtqiQU p_map.gifqj(U lJqk(hUImageqltqmtqnQU p_forum.gifqo(U l qp(hUImageqqtqrtqsQUmembers_list.gifqt(U l!qu(hUImageqvtqwtqxQU inconnu.gifqy(U lDqz(hUImageq{tq|tq}QUdirectfriends.gifq~(U l"q(hUImageqtqtqQU locatebar.gifq(U l#q(hUImageqtqtqQUp_browsing_modes.gifq(U l;q(hUImageqtqtqQUforums_last_messages.gifq(U l>q(hUImageqtqtqQU p_trait.gifq(U lFq(hUImageqtqtqQUp_plan_de_sous_dossier.gifq(U l$q(hUImageqtqtqQU image.gifq(U l&q(hUImageqtqtqQUp_suggest_content.gifq(U l(q(hUImageqtqtqQUfile.gifq(U l)q(hUImageqtqtqQUp_mesevenements.gifq(U l*q(hUImageqtqtqQUrien.gifq(U l+q(hUImageqtqtqQU_objectsq(}q(U meta_typeqUFolderqUidqUoldqu}q(hUImageqhU article.gifqu}q(hhhUfile.gifqu}q(hhhU flash.gifqu}q(hhhU forum.gifqu}q(hhhU image.gifqu}q(hhhUlien.gifqu}q(hhhUlogin_manager.gifqu}q(hhhUnavigation.gifqu}q(hhhU p_article.gifqu}q(hhhU p_file.gifqu}q(hhhU p_flash.gifqu}q(hhhU p_forum.gifqu}q(hhhU p_image.gifqu}q(hhhU p_lien.gifqu}q(hhhUp_login_manager.gifqu}q(hhhh.u}q(hhhU p_text.gifqu}q(hhhU p_titre.gifqu}q(hhhUtext.gifqu}q(hhhU titre.gifqu}q(U meta_typeqUImageqUidqU inconnu.gifqu}q(hhhU p_inconnu.gifqu}q(U meta_typeqUImageqUidqUdouble_espace.gifqu}q(hhhh)u}q(hhhU espace.gifqu}q(hhhhu}q(hhhh=u}q(U meta_typeqUImageqUidqUp_browsing_modes.gifqu}q(hhhUp_catalogue.gifqu}q(hhhUp_directfriends.gifqu}q(hhhUp_folder_bar.gifqu}q(hhhUp_forums_last_messages.gifru}r(hhhUp_locatebar.gifru}r(hhhU p_map.gifru}r(hhhUp_members_list.gifru}r(hhhUp_minicalendar.gifru}r (hhhUp_mp3_playlist.gifr u}r (hhhU p_onglets.gifr u}r (hhhUp_project_checker.gifru}r(hhhUp_suggest_content.gifru}r(hhhU p_trait.gifru}r(hhhUbrowsing_modes.gifru}r(hhhU catalogue.gifru}r(hhhh~u}r(hhhh8u}r(hhhhu}r(hhhhu}r(hhhUmap.gifru}r(hhhhtu}r(hhhUminicalendar.gifru}r (hhhUmp3_playlist.gifr!u}r"(hhhU onglets.gifr#u}r$(hhhhu}r%(hhhhLu}r&(hhhU trait.gifr'u}r((hhhUmesevenements.gifr)u}r*(hhhhu}r+(U meta_typer,UImager-Uidr.h3u}r/(j,j-j.hu}r0(j,j-j.Ucalendrier.gifr1u}r2(j,j-j.heu}r3(j,j-j.hGu}r4(j,j-j.Uplan_de_sous_dossier.gifr5utU p_lien.gifr6(U l-r7(hUImager8tr9tr:Qj!(U l/r;(hUImager<tr=tr>QUp_minicalendar.gifr?(U l0r@(hUImagerAtrBtrCQUp_members_list.gifrD(U l1rE(hUImagerFtrGtrHQUoldrI(U lIrJ(hUFolderrKtrLtrMQj(U l2rN(hUImagerOtrPtrQQh(U l3rR(hUImagerStrTtrUQj#(U lrV(hUImagerWtrXtrYQh(U l4rZ(hUImager[tr\tr]QU p_onglets.gifr^(U l5r_(hUImager`tratrbQU p_article.gifrc(U l7rd(hUImageretrftrgQUidrhU logo_elementsriUp_directfriends.gifrj(U l9rk(hUImagerltrmtrnQj(U l:ro(hUImagerptrqtrrQj(U l,rs(hUImagerttrutrvQU p_inconnu.gifrw(U lVZu)om9E\Fm> n[n;=~;lU Xb #<HY#rl!7H\mS\G七#G~xp4c@> (h@ a@U !`cC]CXqd#Xÿ Eb,X3x*evt_xwHx{haM}N~j͵_dBsi{F3dfqՉLkgTtOGxcMdjrbFv:ʇV4lJuPᅰSXmw_L}`r!,08]+{( %=\/8)gP&U?H"F~_07dBI & mN%J~2teI&3}|,/*Ϻ~G/:I&3;k 7Q&& Hp@; 1'-veI)0*Ƙ'h%EĕX!`hpD99xvJ?><ũS )>>֝)))EEElll۔NNNGGG! ,    !"#$!% &'() *+,- ./012345ق 6789:;<=>?@ABCD+C&K@I%LdL֤BO0-)x*ertv_wxݪwww{hHxOcGwlJXᅰj͵_qՁL:kt_TiuMBsd3drdjdb{FgV4S矂Pfpqr!,#%52^0$ + X$%2.c-j% H(GEs95VAJ-V&Q+LE$6xUJ- 7>14/&"ӾEF%TJ-7 >m 9hhт $(wn urK S0Ď:k)rSx @&.hTdnEKS@YSil('b H`ҝz2ٱA}@A\`!jqā6XX"21B Nt  !,TaĈVP"1*!@H3ˆqH@q$oVlA͛6VDD1Ҭa`ăl 4POHE=X@@@HD?`l&D  a(8c`"* %`o@C\ 5h0 x؈ \]؇, +GM}~G1 TA=bb Ef OLwȊ-QV&c$I,9鄏Zآ6& ~d`!w92`YB~ ,9c#TBHcL&Vji";qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Ur_admin_ico.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqK#UheightqK%u. j((U OFS.ImageqUImageqtqNt.}q(UsizeqKUdataqUGIF89a،{xwݙ͞c̝cuWHUGrssߺnjO[IÏ^Ž]t! ,p'~@ H!Bɬ,<#'Oavh8Y>j`:Lఃr8yb2j*Д]2,CN`K92?A0D#%')+-!;qU_dav_writelocksq(U lNq (U Persistenceq UPersistentMappingq tq tq QUwidthqKU__name__qUplus.gifqUtitleqU add_elem.gifqU content_typeqU image/gifqU preconditionqUUheightqKU__ac_local_roles__q}qUxavq]qUOwnerqasu. j((U OFS.ImageqUImageqtqNt.}q(UsizeqMUdataqTGIF89a [[LL ii ""99 33BB ,,++~~ ll kk22ffddeeaa ##!!&&$$>>((!Created with The GIMP,    ˉ׈  !!ϥ"#$%&ְ͔'()%XыY(O'X`bvPʐ`(tQ3J%Q BA0CG;01 ($&!C,5@$g#4  SI\#&> 8A QX4 &*Udre ,Jfs -qnb'rxk ``6I1}Lr23dFϞpM:0R^b;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Uici.gifqU content_typeqU image/gifqUtitleqhU preconditionqUUwidthqK UheightqK u. j((U OFS.ImageqUImageqtqNt.}q(UsizeqMUdataqTGIF89amklj㼻侽'$85̃nltrVS96è-*,)ю<9geۧkiig۩WU㺹+(.+ޭ74ءqoя̂QOA?ٮ;9ǴJGϊΈxvՙ=:׫2/)&¶OL߱a^sqמa_߰/-*'1.ݬfd՚wv\YᶵKH(%52@>Ӕ}|EC㻺IFˁ42ˀ~㼺B@˭FCrq30ܫPMädcKIī0-ӕܪ:81.}lj[XLJ! ,   !"#$%&'()*+,-./0123456789:;<=>?@AB65CD0$ŒPh 4q'PVE! E #VMBB+B ,lI&`j@I`3I˘9ӄIfHf 6X! 8ap' `?;qU__ac_local_roles__q}q Ugregq ]q UOwnerq asU__name__q U stylo.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. j((U OFS.ImageqUImageqtqNt.}q(UsizeqKUdataqUGIF89aПppPP߰Ӑ`` ٠@@̀!,I;/8diHl9'3Xm~W x 0!8esl,$p80toB*T Xq)!mG 0dM Vd@W0 P0!;qU__ac_local_roles__q}q Ugregq ]q UOwnerq asU__name__q U poubelle.gifqU content_typeqU image/gifqUtitleqhU preconditionqUUwidthqKUheightqKu. j((U OFS.ImageqUImageqtqNt.}q(UsizeqMUdataqTGIF89a7K@@@ 000```pppPPP!,7K $diÜl뾥<߸+4@ĠG#Ɛp Z!) pE Zb!P(YB5~ 7 , iNz# Kr\#| $3j&CF#uLy#h4% L1Y% 4,)'x.38+AE@ ?C 90 403.R,ݗ.C'`%`&ط& X#7 0 <\yTp {/3.RVhEk!%e2*O؃.,LX\9HyŎgI 3GQRՎVb &YZݏ~F#ASq ܵ K r.(^}1i C@sgBMӨ0Ϝ$1vЏ PR#@o4<O!Hm=!U(+K" !xN"CAmYe3]#QT|YoDTCcK+# Z7S`@cIXPariH"dt e؞M"",ňu-#75X@sL@pb~ԇ#8CL D `]8!!;qU__ac_local_roles__q}q Uxxq ]q UOwnerq asU__name__q U retour.gifqU content_typeqU image/gifqUtitleqhU preconditionqUUwidthqK7UheightqKKu. j((U OFS.ImageqUImageqtqNt.}q(UsizeqL1328L UdataqT0GIF89a,̈iiiJJJggg'''""" ffflllcccRRRQQQYYYjjj000 ZZZxxxWWWhhh[[[555###EEE&&&Ķeeemmm^^^@@@;;;>>>dddrrr444\\\777***+++(((:::uuu333666999DDD]]]XXXPPPwww FFFaaakkk pppVVVCCCKKK===///}}}---222BBBbbbƽyyyҊ! ,,H ` #J4h &jDA@@ɓ(S`p ,\8sӁ 8tD#<(]ʴӦ$J4`ĉ(Pʵ׮*VD Zp۷pPݻ1@KP-[ΠQÆa7p;o`9tౣ؜HS> d"F9"D#"y:-տrO$QI'ME lٴ w *xJ,YH0p6`E}{/_^ #C@Zr&11jL)Y +\Ș@š 6(iWrD1Gtax")ƅ y{ч&.d H ZrE67!2BtT0!p܀c4_n$"#Cp9'`BaF#64҈#0ZDR%#Vj)H$`¥R*PA*Ub*무J%k@;qU__ac_local_roles__q}q Ugregq ]q UOwnerq asU__name__q U skins_ico.gifqU content_typeqU image/gifqUtitleqhU preconditionqUUwidthqK,UheightqKu. j((U OFS.ImageqUImageqtqNt.}q(UsizeqL1065L UdataqT)GIF89a$𽽽fffEEE@@@^^^!!!888xxx|||FFF"""(((\\\vvveee111***DDD===}}}iiiJJJnnnHHH)))000PPPaaappp'''cccIIIjjj]]]LLL+++oooȂΞ&&&ZZZttt///kkkNNN>>>666~~~WWW XXXQQQzzz```<<<222BBB###:::ggg444333---;;;$$$dddwww???555777uuuYYYsss! ,$H" `0pA "jȠ"H@acD6pЁ LBdK/`ĐG,}03%@;`BRPaYJ+N"1dʘ)8q|e ǃC$0KD@U$w` I;8*SXITj qɍ-'LY3PΙ!o\MХE&wӊ(zRH#J4%N"bP <Ԇ(v RRjuxVbƀ;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q U users_ico.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqK$UheightqKu. jj((U OFS.ImageqUImageqtqNt.}q(UsizeqMUdataqTGIF89a"*،{xwݙ͞c̝cuWHUGrssߺnjO[IVVV@@@ʌˍceFvxS_`CfhHdiÏ^Ž]ty{U ???wyTٗqsvMN6QR9砦uIK4JL4NO7ڗsu &'״㪪UUUrrr999!Created with The GIMP,"*    Ë捷Ⱦ=5תI:(\Ç 2jbDL&AD(= B)Q~UP %LܹRXPoѣGYJ(ј2WXX1Š+cЦT;;ʫZl3yQFxk0+-Q/ ΑܾE%p-p5=g ~;GDCa;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Uarrondi_fin.gifqU content_typeqU image/gifqUtitleqhU preconditionqUUwidthqKUheightqK2u. j((U OFS.ImageqUImageqtqNt.}q(UsizeqKUdataqUGIF89a;;; [[[,,,!Created with The GIMP! ,0 A|E`%"0z㴮0 .GHtʔ&}D^;qU__ac_local_roles__q}q Ugregq ]q UOwnerq asU__name__q U onglet3_o.gifqU content_typeqU image/gifqUtitleqU onglet3_o.gifqU preconditionqUUwidthqKUheightqKu. j}((U OFS.ImageqUImageqtqNt.}q(UsizeqKUdataqUGIF89a 333̙fffff̙3! ,@P0P8g»`_Y `rBj׺@ @0)ň TbH8DHI;ڙZs\2 ;qU__ac_local_roles__q}q Ugregq ]q UOwnerq asU__name__q Uh_d.gifqU content_typeqU image/gifqUtitleqUh_d.gifqU preconditionqUUwidthqKUheightqKu. j((U OFS.ImageqUImageqtqNt.}q(UsizeqKUdataqUGIF89a;;;||| [[[sss,,,죣!Created with The GIMP! ,: @1 ɠ20 N< $ck2VKlTkB߀ ;qU__ac_local_roles__q}q Ugregq ]q UOwnerq asU__name__q U onglet2.gifqU content_typeqU image/gifqUtitleqU onglet2.gifqU preconditionqUUwidthqKUheightqKu. j((U OFS.ImageqUImageqtqNt.}q(UsizeqKUdataqUGIF89an΁JJJ444555!Created with The GIMP! ,n?I8ͻ H$ Dalp,t] 1 pH,C)X=ШtJZجVZ$&;qU__ac_local_roles__q}q Ugregq ]q UOwnerq asU__name__q U onglet1_o.gifqU content_typeqU image/gifqUtitleqU onglet1_o.gifqU preconditionqUUwidthqKnUheightqKu. j((U OFS.ImageqUImageqtqNt.}q(UsizeqKUdataqUGIF89an΁JJJ444888555!Created with The GIMP! ,nDI8ͻ H$ Dalp,t] 1 pH,C)X-tJZجv6#1;qU__ac_local_roles__q}q Ugregq ]q UOwnerq asU__name__q U onglet1.gifqU content_typeqU image/gifqUtitleqhU preconditionqUUwidthqKnUheightqKu. j((U OFS.ImageqUImageqtqNt.}q(UsizeqL1855L UdataqT?GIF89a9䲳B@=:eeGF^a浵;9,*><Ձ-+껻y^]ڕ[]sz@># ​)'EDߣ!㖙vv$"ZXnt740.:8kiڎPP,+fjNMXWतߊDAuutu}}~}eh|TU412/kqNLhiHHbeIH77(&ߟ凕86<9JIv~WXt|us`bY[ٓOONMjohh0- MMJJ 96(' FG 52*('% Ԅ$!":7'&GG85LK+)3063 1.&$inJIHGUV %# ÿFFpw/-⨨~SR PNRRQPRP赴nmLK寯HH縷UU+)+*˹&$WTFF䅒ハzܓDARPlkKJVTB?C@kh鷶zzxw/.POQQXVVWTRHF⥣狛w繸ى][ZYNK\Z壥trrp&'dg݃SS趵܁쾾FDhfވ⨧'(KJ㧦⥤᧦96뽼݆-,؆gkវJJۖֆׂVWfecb䠡s{~YX !,9.վոt:me  "zT) Mޅ s(Ѩ\@BYg0,`%O9Q A1_@:s4ii@Pclc.T ΀_8cS6x55a!Vr5οzt3@ xĈI]˹35qJx/[)," uJ3 I2 Bye`?hX>P@MD-yS\|@!t!zPUH 2U 8pg?7Fĝxy@DRP%$lx"q^&@ UjQg% X1u0q9 ^m< g$3 WW*: ŀ87xi@^G ,VVIih8 ZHO^l U 0m1"?j G&ya#t "4Ƹjl6lP@C%& 3G2T婕k gˇ X ~$ ^T$Ig]?nH~,wl;au˴QGwHB% Ѓ!C6 {C!008C(pV"SÙQ8qoF8QB  2 "xZ@PurCB+|B ](@-;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Ulogo-apercu.gifqU content_typeqU image/gifqUtitleqhU preconditionqUUwidthqK9UheightqKu. j((U OFS.ImageqUImageqtqNt.}q(UsizeqL1236L UdataqTJFIFHHCreated with The GIMPC    $.' ",#(7),01444'9=82<.342C  2!!2222222222222222222222222222222222222222222222222222"7 !1AQ"aq2s$367RTbu ?.786LlFdt yNIzxVG}Ȳ| fdkk;F3-_ 8zIw >}QYM !C CO_ywP/7, SW"獏ܓz+ǯHfyP%5r)w\b!3lP[XZA)IS*sa$$hlGjRpZn5tr1Y+`! jJBTJW#[)JPguuRNvbt3,}%[|IQY+ LDiMn}l$褂H˜ͻ)̦WcR'M.-FE<%MKU)y&ݱanEn~:J~Iwj ?+OH6IRB O{UI6˂$Wᤊ5q.Hj0HLe?Izp2ܬrIc1|'MW4o(%<3Z!=&qIRv9=6<+:b@FR5RHxUR ,f0U#/x:(eJן@#5C٭wBL8Rdo~$i)޺>eRD}uY^/zX;I>4[ A+:@荨6=(9r=xc6x7OJK,:+Z"XG+;c2B v΂G`WlXl% 0Լ T R R X[V,[*Zl6)+Ryd[׺)JP)JPqU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Udroit_admin.jpgqU content_typeqU image/jpegqUtitleqhU preconditionqUUwidthqK2UheightqK2u. j((U OFS.ImageqUImageqtqNt.}q(UsizeqK>UdataqU>GIF89a͊.!, lr;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Upt2.gifqU content_typeqU image/gifqUtitleqhU preconditionqUUwidthqKUheightqKu. jz((U OFS.ImageqUImageqtqNt.}q(UsizeqKUdataqUGIF89a 333̙fffff̙3! ,@MB5%{֠Б煤zqn 15j$s@Jɓ6A#ei ;qU__ac_local_roles__q}q Ugregq ]q UOwnerq asU__name__q Ub_g.gifqU content_typeqU image/gifqUtitleqUb_g.gifqU preconditionqUUwidthqKUheightqKu. j3((U OFS.ImageqUImageqtqNt.}q(UsizeqL1108L UdataqTTJFIFHHCreated with The GIMPC    $.' ",#(7),01444'9=82<.342C  2!!2222222222222222222222222222222222222222222222222222"8 !1"Qa6Aqv#%2Drt ?+ t<:Ptq6?PZ~ˁ38 IgjfC& 0ʄ$ũZ*%G4MnmlQ)<(uJyC:]T[ ޥ`%.}Ljz/yy%=N!M(s\DPi}Id=m~\&l]ܻOB G(•ҊRVI#GCT-)J 8ϳ?Ttq`ASǽ}7$-LBT %k{U\2] ~?S͸[K+BRTAA i@dq ]Aaݴ)̨8H@yFO yGW_|H\EBA ʔa6gS wϗ*Z{fCBD R!ڀH:>*r1*:Y I5TbX24V-PR|sE]ٴ-LH($":W|s0됾kxJC 8Orc^=a%V 'K#W &D昷Zq JVRJR/[&')SX]=dd7yZUFW WIU|}{Gh$+E_W}ǝ!2z|iWtIȦ;!cH՞"+;Q)J)J)J)J)JqU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q U droit_vue.jpgqU content_typeqU image/jpegqUtitleqhU preconditionqUUwidthqK2UheightqK2u. j\((U OFS.ImageqUImageqtqNt.}q(UsizeqMUdataqTGIF89a"*،{xwݙ͞c̝cuWHUGrssߺnjO[IVVV@@@ʌˍceFvxS_`CfhHdiÏ^Ž]ty{U ???wyTٗqsvMN6QR9砦uIK4JL4NO7ڗsu &'״㪪UUUrrr999!Created with The GIMP,"*    Ë捷Ⱦ=5תI:(\Ç 2jbDL&AD(= B)Q~UP %LܹRXPoѣGYJ(ј2WXX1Š+cЦT;;ʫZl3yQFxk0+-Q/ ΑܾERTӭ:ւF"4Yӑ#={D͓q6y.z*꣎(([WfJ$9)YLwWJP'VGh&:a&TFTGx㚆Ϊf$_#t'vȷFV:#rw/xne@%[q+$a{*kzʶҥHup)'EA[.BFTnwxؙQ0tRH>uJ N Jr 7>X8.4+y^BJ c#.8gfЦ[VȲ!A,@Ӻ.U EY!pxǎ(=2X`USG]iOϻ'+[,(q 8dž()nylzNW`ͫ KiB=j۞ۺFچۃ& 3%TڇCp}`&j <k]ۺPV@*R}d}U!׈N)0c-hpdւO8-' [[n9~P^e% ZTvq㩥Za+ZPz@$eD`r@bzHP/2XMZ٭,;1)JAyBJt={򌠧r<3Uw/$WpsrQ1YX= :-@)q(H]>_G.Eoe砪arfm婔+/ Q"^RTX0$=Թ\\Էl 9͢AN) qD$\PGeN=[kR5)t[Vƚ"`x+dpNs<9/c_Ku0Oib;q)yIۼrr:w z@@/$J-)2&NꯥJgtrE>9ˍ%!)P%#~68e( gjj $@9:#-.2oA$GFH={m}?tp(@B.$dѶ_0͖m+BC g ?0>΃lC*g@U%P9i'AC$6eEuGrS!rMmr]h \M%$(+竬Z}~2u^n ##P8t a%I9W(KtvΚB qDrxYXaqSRKj#sO[$+%E-kZU)Gx (( (Ҡzߒ|Tp9''(3X~ŵrL- Q^)\Bhn'9h: $%:uOҫctQA.ѣ۹H͞-|±5PQEqU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Uaffectation.jpgqU content_typeqU image/jpegqUtitleqhU preconditionqUUwidthqKkUheightqKFu. jB((U OFS.ImageqUImageqtqNt.}q(UsizeqL1121L UdataqTaJFIFHHCreated with The GIMPC    $.' ",#(7),01444'9=82<.342C  2!!2222222222222222222222222222222222222222222222222222"6 !A1QVa"#2$Ccqr ?A6Xݽw7:K f7@=CX^I>#pq x%!x1Z @oD8u\TĚ3K̸eiVvCJuUja|vHTMwt ҂ Ӯv)mMirA%qG4o4ZZ\mi Bu x I])<é)[kasa9kx|acz'4f_\!HfF#NXε&%q Z0Jx Uf16.DթhCf~N nq݀}8n^z<6ٛ/Ҝ7flJ >q݀}cK COZOcv N <;<6ٛ/Ҩyȟg o"E2-j3R#,K̖KרE+PP,XCj#$ PsMsm-Pl@'^B nwS:Vq!HZN@"26#e2X*IAd.ϝZ ;~ʹB+YQ5?Z{dSbJO6):.<+A:׬b0}Id H4z ?̴XLˋS_fּN?Xi;>b"h^.ӑuI};+ t_b6FVYI-k:՞'OA3JRJRRmrNPR<˲ԄFF'NMxwRQB@0 @> ڎ.,lkDB ;8ߣ抚ouXV䦦䓙WZ\PP41॥U=:ׁ㢡ەms2/䄑➝ef\^gkޚsz((WX`_,*ZXRSqxsqehVSin檪86鷵IHpw%#sqևeckp泳ljdg̾1.vu^]0.ZY<9ڐHG96㫪ONb`kiJI扗HF`cw'&ߙޒ،KJWUnm&'77^\YYݗڊLJFG'% "*(&$GG30ԃ(&520- +)63+)75 :7+(LK~'&adQRUUSTFF'(&%87"SSqoFF{zVWµ!EFHH䤣▗|{{ei&${뿾?>)'寮KJCA㚜dc\ZtuՁBDCPO+*ii;igA@TS  !, 9.bȗ#@xA e)S;U!0CجirFUPjA>.Z4FFBGTNǕ,}`ٳhӪ={ܠqDࡤ 0m806? I, ZCF @p:&oP)-Сj&g驦ONzU֮_Ò-oT \ %WdaDW8i Uc1I+ .a28D xB)gPEW+} [ ԦUW\%Y%0E-]FC@Ch#@AbvygH#EdU!Mԓ}BfR5Zeo 60QKR[HsP݈PC#& PNc|QDJɠ 4h/O@L'[֕9(RR9]WQn%62& dᵉJ2Y+7'O|5:TYUVH"M"e`aC{mءtm($v IWTE'Iv<"M6ŧŜO5qY'62RiDqZH$BJT $` boU GW ;(C[PpءEa (lH4YLD S{p /ʟp3eתE+Zr31Ƥ4oIKZ3(wB0c {@0?lP \&"T }!_ !`?0$ұް)>E2& ps>=1^oxh) +BM0֕*\Bz# ?: 0C1q rPJ@ (KGp@ߢO7J?Z$@lF-Pg6 0VD(lc8 X@c?~A #dEBC"qw ;Pb|0? "u0& Lq`aّ#4d xcG$C 0)"MBĸ >,r \GiR<s) WA%(zK`HV &.z-?K5Xq5OV6Lf4i !͚zo#YȞ*H@Y-,+ !GPc2P#<8Ѝ<&ICAi?<BG8ܢl: hA^5c7G8u?/ Z`V(# { 0H7ֺ5hP`E mQHg0 <  H[XӜbU3 Ad'ko%xrc* ^t |+ d(A&Pp@%b '0,<@0[B "pwހ HA hR 8!T& CT0ːpwrk10~\" .Zͺ DҀ "Gp.PhkHcWuct+Kue"ZF% Ztbv~cZ0Vm;Yx,l@?$Ь…^ƪ\m HeNKfC(Kc PyώШxxB&Q m@ֵ2~'It6!; "hKkY}Wq ONx‰jnݨOHCt.zؓw` h pC - N߂1 jׅ64~h0Vj[%r` 5i g ކ ]YkDk$n}mDC贪Jv19F{CROlL_O||>+>P#x )pʼi7x:BBԀ V{=[c =vv~GAQHO>5OV8Џ~+JA[>T`= ;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Uajouter-element.gifqU content_typeqU image/gifqUtitleqUU preconditionqUUwidthqKUheightqKu. j((U OFS.ImageqUImageqtqNt.}q(UsizeqKUdataqUGIF89a;;; [[[,,,!Created with The GIMP! ,1 @`|  J ,_"}b id.G3x1;qU__ac_local_roles__q}q Ugregq ]q UOwnerq asU__name__q U onglet2_o.gifqU content_typeqU image/gifqUtitleqU onglet2_o.gifqU preconditionqUUwidthqKUheightqKu. jE((U OFS.ImageqUImageqtqNt.}q(UsizeqKqUdataqUqGIF89a&333!,&Hڋ޼H~ʶ L aL*̦ JTejܮ ;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q U trait1.gifqU content_typeqU image/gifqUtitleqhU preconditionqUUwidthqM&UheightqKu. j((U OFS.ImageqUImageqtqNt.}q(UsizeqKUdataqUGIF89a;;;||| sss[[[,,,!Created with The GIMP! ,: QgǙ"B"0NGR8T2#V&va ;qU__ac_local_roles__q}q Ugregq ]q UOwnerq asU__name__q U onglet3.gifqU content_typeqU image/gifqUtitleqU onglet3.gifqU preconditionqUUwidthqKUheightqKu. j((U OFS.ImageqUImageqtqNt.}q(UsizeqK;Ƈ8~9r_+GX2G4!iSh"n1Le D\'_ 5SV%&~C–\B)IDsJffZ9'~x=g? l5 &\y`qM)x8ghp_|o!1PFC;݇*v:#` ćdM+o$ שIPK kxiaM_K-Ck-y J^G.N.G=L  Ѐh%c,3kN^sD PsivJ69ZՔdꋔBr@Ȼ dD;qU_dav_writelocksq(U lRq (U Persistenceq UPersistentMappingq tq tq QUwidthqKU__name__qUlogo.gifqUtitleqhU content_typeqU image/gifqU preconditionqUUheightqK2U__ac_local_roles__q}qUxavq]qUOwnerqasu. jz((U OFS.ImageqUImageqtqNt.}q(UsizeqKUdataqUGIF89a 333̙fffff̙3! ,@MI, R^Ynd(@`EqRb-1e3Rcu#0t`\* ڱP@;qU__ac_local_roles__q}q Ugregq ]q UOwnerq asU__name__q Ub_d.gifqU content_typeqU image/gifqUtitleqUg_b.gifqU preconditionqUUwidthqKUheightqKu. j((U OFS.ImageqUImageqtqNt.}q(UsizeqK>UdataqU>GIF89a҉--!, lr;qU__ac_local_roles__q}q Uxavq ]q UOwnerq asU__name__q Upt1.gifqU content_typeqU image/gifqUtitleqhU preconditionqUUwidthqKUheightqKu. j((U OFS.ImageqUImageqtqNt.}q(UsizeqL93L UdataqU]GIF89a2! ,2.^SFK/A/_=`))ڮrLnXDN;qU_dav_writelocksq(U lSq (U Persistenceq UPersistentMappingq tq tq QUwidthqKU__name__qUarrondi_menu.gifqUtitleqhU content_typeqU image/gifqU preconditionqUUheightqK2U__ac_local_roles__q}qUxavq]qUOwnerqasu. j{((U OFS.ImageqUImageqtqNt.}q(UsizeqKUdataqUGIF89a 333̙fffff̙3! ,@N0I)!!`( (ZIeqDRr`5)#2ut0t1{$Mݘe,M;qU__ac_local_roles__q}q Ugregq ]q UOwnerq asU__name__q Uh_g.gifqU content_typeqU image/gifqUtitleqUh_g.gifqU preconditionqUUwidthqKUheightqKu. jB((U PersistenceqUPersistentMappingqtqNt.}qU _containerq}qs. j((U OFS.FolderqUFolderqtqNt.}q(UidqU navigationqU__ac_local_roles__q}qUxavq ]q UOwnerq asU_objectsq (}q (U meta_typeqUFolderqhUlignesqu}q(hhhUiconesqutUiconesq(U lUq(hUFolderqtqtqQUlignesq(U lVq(hUFolderqtqtqQUtitleqUu. j?((U OFS.FolderqUFolderqtqNt.}q(U grille.gifq(U lTq(U OFS.ImageqUImageqtq tq QUidq Ufondsq U__ac_local_roles__q }qU_objectsq(}q(U meta_typeqUImageqUidqhutU _propertiesq(}q(UidqUtitleqUmodeqUwUtypeqUstringqu}q(hU type_zwookqhUstringqutU type_zwookqUdossierqUtitleq Uu. j5((U OFS.FolderqUFolderqtqNt.}q(U147.gifq(U lWq(U OFS.ImageqUImageqtq tq QU__ac_local_roles__q }q U153.gifq (U lXq(hUImageqtqtqQU_objectsq(}q(U meta_typeqUImageqUidqU037.gifqu}q(hhhU044.gifqu}q(hhhU045.gifqu}q(hhhU046.gifqu}q(hhhU047.gifqu}q (hhhU048.gifq!u}q"(hhhU049.gifq#u}q$(hhhU052.gifq%u}q&(hhhU099.gifq'u}q((hhhU100.gifq)u}q*(hhhU129.gifq+u}q,(hhhU132.gifq-u}q.(hhhU138.gifq/u}q0(hhhhu}q1(hhhU148.gifq2u}q3(hhhU152.gifq4u}q5(hhhh u}q6(hhhU154.gifq7u}q8(hhhU162.gifq9u}q:(hhhU166.gifq;u}q<(hhhU167.gifq=u}q>(hhhU170.gifq?u}q@(hhhU173.gifqAu}qB(hhhU177.gifqCu}qD(hhhU235.gifqEu}qF(hhhU238.gifqGuth?(U lYqH(hUImageqItqJtqKQh2(U lZqL(hUImageqMtqNtqOQh'(U l\qP(hUImageqQtqRtqSQh)(U lgqT(hUImageqUtqVtqWQhG(U l^qX(hUImageqYtqZtq[Qh!(U l_q\(hUImageq]tq^tq_QhE(U lhq`(hUImageqatqbtqcQh4(U l`qd(hUImageqetqftqgQh(U laqh(hUImageqitqjtqkQUtitleqlUh;(U lbqm(hUImageqntqotqpQh(U liqq(hUImageqrtqstqtQh=(U lcqu(hUImageqvtqwtqxQh#(U ldqy(hUImageqztq{tq|QhUavatarq}h+(U lnq~(hUImageqtqtqQhA(U lfq(hUImageqtqtqQh(U l]q(hUImageqtqtqQh(U leq(hUImageqtqtqQhC(U l[q(hUImageqtqtqQh7(U ljq(hUImageqtqtqQh-(U lkq(hUImageqtqtqQh(U llq(hUImageqtqtqQh%(U lmq(hUImageqtqtqQh/(U loq(hUImageqtqtqQh9(U lpq(hUImageqtqtqQu. j((U OFS.FolderqUFolderqtqNt.}q(UidqU AnonymousqU__ac_local_roles__q}qU _propertiesq (}q (hUtitleq Umodeq UwUtypeq Ustringqu}q(hU type_zwookqh hu}q(hUokqh hutU type_zwookqUgroupqUokqU1UtitleqUAnonymesqu. j((U OFS.FolderqUFolderqtqNt.}q(UidqUManagerqU__ac_local_roles__q}qU _propertiesq (}q (hUtitleq Umodeq UwUtypeq Ustringqu}q(hU type_zwookqh hu}q(hUokqh hutU type_zwookqUgroupqUokqU1UtitleqU Manager Zopequ. j((U OFS.FolderqUFolderqtqNt.}q(UidqU config_zwookqU__ac_local_roles__q}qU _propertiesq (}q (hUtitleq Umodeq UwUtypeq Ustringqu}q(hU type_zwookqh hu}q(hUokqh hutU type_zwookqUgroupqUokqU1UtitleqUAdministrateursqu. j((U OFS.FolderqUFolderqtqNt.}q(UidqU AuthenticatedqU__ac_local_roles__q}qU _propertiesq (}q (hUtitleq Umodeq UwUtypeq Ustringqu}q(hU type_zwookqh hu}q(hUokqh hutU type_zwookqUgroupqUokqU1UtitleqU Authentifisqu. j((UOFS.DTMLDocumentqU DTMLDocumentqtqNt.}q(U underlineqUonqU__ac_local_roles__q}qUgregq ]q UOwnerq asUfontq Uarialq U__name__qU general_dataqU _propertiesq(}q(UidqUtitleqUmodeqUwUtypeqUstringqu}q(hUemailqhUstringqu}q(hUsiteqhUstringqu}q(UidqUhexaqUtypeq Ustringq!u}q"(Uidq#U underlineq$Utypeq%Ustringq&u}q'(Uidq(Ufontq)Utypeq*Ustringq+u}q,(h(U font_sizeq-h*Ustringq.u}q/(Uidq0U type_zwookq1Utypeq2Ustringq3u}q4(h0Usystemq5h2Ustringq6u}q7(Uidq8Ulnk_fontq9Utypeq:Ustringq;u}q<(h8U lnk_font_sizeq=h:Ustringq>utq?Ulnk_fontq@UarialqAU type_zwookqBUsystemqCUemailqDUUrawqEU

This is the Document.

qFUsiteqGU Zwook Information System ManagerqHU_varsqI}qJUhexaqKU#23148EqLUtitleqMUUsystemqNUdataqOU font_sizeqPU-1qQUglobalsqR}qSU lnk_font_sizeqTU-1qUu. j((U OFS.FolderqUFolderqtqNt.}q(UidqUdefaultqU__ac_local_roles__q}qUxavq ]q UOwnerq asU login_managerq (U lqq (hUFolderqtqtqQU_objectsq(}q(U meta_typeqUFolderqhU login_managerqu}q(hhhU menu_nav_1qu}q(U meta_typeqUFolderqUidqUminicalendrierqu}q(U meta_typeqUFolderqUidq U mesevenementsq!u}q"(U meta_typeq#U DTML Documentq$Uidq%U zwooktitreq&u}q'(h#h$h%U versionzwookq(u}q)(U meta_typeq*U DTML Documentq+Uidq,Utexteq-u}q.(h*h+h,U new_texteq/utU _propertiesq0(}q1(hUtitleq2Umodeq3UwUtypeq4Ustringq5u}q6(hU type_zwookq7h4h5u}q8(hUpageq9h4h5u}q:(hUtableauxq;h4Ulinesqh4h5uth7Uskinq?h&(U lrq@(UOFS.DTMLDocumentqAU DTMLDocumentqBtqCtqDQh;]qE(UKCC:C1:login_manager/texte/menu_nav_1/new_texte/minicalendrier/mesevenementsqFU CC:C2:######qGUCC:C8:qHUCC:C3:zwooktitreqIUCT:T1:C3/C1-C2-C8/C5qJUCC:C5:versionzwookqKUzPC:C8:colspan=1/rowspan=1/hauteur=/largeur=10/marge=/cadre=/couleurcadre=/couleurfond=#223388/couleurtexte=/align=/valign=qLU{PC:C2:colspan=1/rowspan=1/hauteur=/largeur=640/marge=/cadre=/couleurcadre=/couleurfond=/couleurtexte=/align=left/valign=topqMUmPT:T1:hauteur=100%/largeur=760/marge=0/cadre=0/couleurcadre=/couleurfond=#F4F6FF/couleurtexte=/align=/valign=qNUPC:C5:colspan=3/rowspan=1/hauteur=20/largeur=/marge=/cadre=/couleurcadre=/couleurfond=#223388/couleurtexte=#FFFFFF/align=center/valign=qOUPC:C1:colspan=1/rowspan=1/hauteur=/largeur=120/marge=/cadre=/couleurcadre=/couleurfond=#223388/couleurtexte=#FFFFFF/align=left/valign=topqPUPC:C3:colspan=3/rowspan=1/hauteur=20/largeur=/marge=/cadre=/couleurcadre=/couleurfond=#223388/couleurtexte=#FFFFFF/align=center/valign=qQeh(U lsqR(hUFolderqStqTtqUQh>U0h9U1align=left/dech=/decv=/couleurpage=#ddddff/image=qVUminicalendrierqW(U luqX(hUFolderqYtqZtq[QU new_texteq\(U lvq](hAU DTMLDocumentq^tq_tq`Qh((U lwqa(hAU DTMLDocumentqbtqctqdQU mesevenementsqe(U ltqf(hUFolderqgtqhtqiQh2UdefaultqjUtexteqk(U lxql(hAU DTMLDocumentqmtqntqoQu. j'((U OFS.FolderqUFolderqtqNt.}q(U_Manage_properties_Permissionq]q(U AnonymousqU AuthenticatedqUManagerq UOwnerq UVIPq Uadminsysq Uclientq U fournisseurqU internauteqU membrepermqU membretempqU partenaireqU prestataireqUprospectqeUidqUtousqU__ac_local_roles__q}qUxavinskyq]qUOwnerqasU_Add_Folders_Permissionq]q(U AnonymousqU AuthenticatedqUManagerq UOwnerq!UVIPq"Uadminsysq#Uclientq$U fournisseurq%U internauteq&U membrepermq'U membretempq(U partenaireq)U prestataireq*Uprospectq+eU_objectsq,)Utitleq-Uu. j((U OFS.FolderqUFolderqtqNt.}q(UidqUadminqU__ac_local_roles__q}qUxavq ]q UOwnerq asU _propertiesq (}q (hUtitleqUmodeqUwUtypeqUstringqu}q(hU type_zwookqhhu}q(hUokqhhu}q(hUemailqhhu}q(hU date_creationqhUdatequ}q(hU IP_creationqhhu}q(hUdf_last_actionqhhu}q(hUmy_friends_listq hUlinesq!u}q"(hU has_new_PMq#hUintq$uthUuserq%hUh ]q&Uah(cDateTime.DateTime DateTime q'Noq(}q)(U_hourq*KU_dq+G@H}n?XlU_fmonq,UJulyq-U_yearq.MU_pmonq/h-Utimeq0G?n?XlU _dayoffsetq1KU_dayq2K U_millisq3L1057701862766L U_adayq4UWedq5U_minuteq6KU_tq7GAυb HU_monthq8KU_pmq9Uamq:U_secondq;G@6tjU_amonqU Wednesdayq?U_pdayq@UWed.qAU_pmhourqBK U_tzqCUGMT+2qDU_nearsecqEG@6ubh#Kh(h'NoqF}qG(h*Kh+G@H}n?R5h,h-h.Mh/h-h0G?n?R5h1Kh2K h3L1057701862765L h4h5h6Kh7GAυah8Kh9h:h;G@6 =phh?h@hAhBK hChDhEG@6ubhU1hUnoqHhUadminqIu. jB((U PersistenceqUPersistentMappingqtqNt.}qU _containerq}qs. jKu((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_getattrqUcontextqUmemqUprqUzwuqUzwuiqUuoqUboxqUrollqUroll2qUroll3qUheadqUspmqUmidqUspeqUfootqUprntqUtitreq Uhtmlq!Uswcq"Uswciq#Uszcoq$U affiche_arboq%Ucfarboq&Urolesq'Ucheckq(U listrepinrepq)UTTq*UTUrepq+tq,U co_argcountq-KubU_paramsq.UUidq/Udroitsq0U__ac_local_roles__q1}q2Uxavq3]q4UOwnerq5asU_dav_writelocksq6(U lyq7(U Persistenceq8UPersistentMappingq9tq:tq;QU _bind_namesq<(cShared.DC.Scripts.Bindings NameAssignments q=oq>}q?U_asgnsq@}qA(Uname_containerqBU containerqCU name_subpathqDUtraverse_subpathqEU name_m_selfqFUscriptqGU name_contextqHUcontextqIusbU func_defaultsqJNU_codeqKT[,csdZdS(Nc##s,t}t}t}||tdd}||tdd}||d} | d} ||d} dg} || d d o || d } n | ||d < d } d }%d}9||tdd||dd\}}}}};|}?d||dd}@|||tdd| |d|}A||}Dd}Fd}H|| dd| d| d}I|d||dd}J|d }K|| d!d"| d#| d$}L|d%||dd}M|d&}O|d'}Q|||tdd| |d||}R||}U||}Yd(ad)jd*ld+}d,}|||tdd-| |d.d/|}||}dg|| d d0o|| d0n||d1d2d3d4g}!||d5}"|!|"d6d}!|||!}|||tdd-| |d7d8|}||}||}|SdS(9Nszwo_libsmem_dataszwo_bos presentationszwo_urls/zwo_images/bo/s user_zw_objss hasPropertys configboxsboxcs d|d}|d|d|d}|d}|d|d|d}|d}|d|d}|d}|djo|d }n|d |d |d }|SdS( Ns
(surlsrettsnomsrolsimg(snomsurlsimgsrolsrett((sScript (Python)sroll s   csd|d}|d|d|d}|d}|d|d|d}|d} |d|d}!|d}"|d|d |d }#|SdS( Ns(sactionsrettsnomsrolsimg(snomsactionsimgsrolsrett((sScript (Python)sroll2s   cs#%&d}'d}(|djo)d|d}*d}n+d|d|d},|d|d |d}-|d |d}.|d|d |d}/|d }0|d|d}1|d }2|d jo3|d}n4|d|d|d}5|SdS(Nss poplink('s');s killlink();s (shlptxtshlptxt2shelpsurlsrettsnomsrolsimg(snomsurlsimgsrolshelpshlptxtshlptxt2srett((sScript (Python)sroll3%s      sautoursarbosGestion des pagessRETOUR PAGESsmenusnavs OPTIONS PAGESssgoskinsskinss rond_skin.gifsr_rond_skin.gifss Configurer les skins.
sgorefersreferssrond_refer.gifsr_rond_refer.gifsis?s7s,ss0is,s s*s
 s s
(s_print_s_printsdfsamaxstabsasbsiscsswcsszcosrangesaasstrscisswciscspnsii(stabs_print_s_printsdfsamaxsasbsiscsswcsszcosrangesaasstrscisswciscspnsii(sswcisszcosswc(sScript (Python)s affiche_arbolsX       3 )  ) 1 ) sM Choisissez la page laquelle vous voulez ajouter un accs spcifique
seditionsinfos INFORMATIONs configarbos user_roles_idc st}||d}||d}|td|d}xB|dr5}|djo|jo dSnnqTWdSdS(Ns zwo_dossiersgroupes_editeursssplits&isi( s _getattr_s_getattrsrscfss_list_asstringslist_asasroles( srs _getattr_s_getattrscfss_list_asstringslist_asasroles(sroles(sScript (Python)schecks c st}t}|||dddo:|||dd}|td|d}n g}g}x||dddr|} || dd o]|| d d jo@| d jo&||d || d nnnqWg} xu|drh} | |joR| | j o=||| d jo|| d | nnnq0Wx>|dr1} | | j o|| d | nqW| SdS(Ns zwo_dossiers hasPropertysordressplits&s objectValuessFolderis type_zwooksdossierisappendsgetId( s _getitem_s_getitems _getattr_s_getattrsrepsordresstringslordreslistrepsrscheckslistpagesi( sreps _getitem_s_getitems _getattr_s_getattrsordresstringslordreslistrepsrscheckslistpagesi(scheck(sScript (Python)s listrepinreps(  '/ "#c!st}t}||d}|djo!|d||d}n||d}d} d} |||dddjo||t dd} d } |||dd } |t d | d }g}x^|d rQ}||| djo/||d||| |dnq W|t d|d}|||dd}|t d |d }g}x^|d rQ}||| djo/||d||| |dnqW|t d|d}d|d} | d|d} nd| d}|d|d||dd}|| }|d}|}t|d joD|djo#||d||d fn|Sndt|d|}|joD|djo#||d||dfn |Sn |djo#| |d||d fn x8|d  r+}|||||d|}qW|SdS(!NsgetIdss*s zwo_dossiers new_droitss1szwo_infosgroupss rowspan="2"sgroupes_visiteursssplits&is objectIdssappends title_or_idsjoins    sgroupes_editeurssV  Visiteurs : ssY  Editeurs : sSs
ss
isclos_s_i(!s _getitem_s_getitems _getattr_s_getattrsrsnschsrssttscontextsrepgrslv1sstringslv2slv3selslvsle1sle2sle3slests listrepinrepslistrepslenscheckstabsisstrsncfscfarbosidrsTT(!stabsrsischs _getitem_s_getitems _getattr_s_getattrsnsrssttscontextsrepgrslv1sstringslv2slv3selslvsle1sle2sle3slests listrepinrepslistrepslenschecksstrsncfscfarbosidrsTT(schecks listrepinrepsTTscfarbo(sScript (Python)sTTsX!  "  0 0)       )szwo_objispagesDROITS DES PAGES(#s_write_s_writes _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwuszwuisuosboxsrollsroll2sroll3sheadsspmsmidsspesfootsprntstitreshtmlsswcsswcisszcos affiche_arboscfarbosrolesschecks listrepinrepsTTsTsrep(#s_write_s_writes _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwuszwuisuosboxsrollsroll2sroll3sheadsspmsmidsspesfootsprntstitreshtmlsswcsswcisszcos affiche_arboscfarbosrolesschecks listrepinrepsTTsTsrep((schecksswcsTTscfarbosroless listrepinrepsswcisszcosScript (Python)sdroitssd0  9 .   $ $  1    9 1  7 1  (sdroits(sdroits((sScript (Python)ssqLU_bodyqMTemem=context.zwo_lib.mem_data() pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] zwui=zwu+'/zwo_images/bo/' uo=mem['user_zw_obj'] box=[''] if uo.hasProperty('configbox'): box=uo.configbox pr['box']=box def roll(nom,url,img,rol): rett='
' return rett def roll2(nom,action,img,rol): rett='' return rett def roll3(nom,url,img,rol,help): hlptxt='' hlptxt2='' if help<>'': hlptxt=' poplink(\''+help+'\');' hlptxt2='killlink();' rett='' return rett # AFFICHAGE DU BANDEAU HAUT (head,spm,mid,spe,foot)=context.zwo_bo.autour(mem,pr,'arbo','Gestion des pages') prnt=head # AFFICHAGE DES CASE DE LA COLONNE (menus) titre='RETOUR PAGES' prnt=prnt+context.zwo_bo.menu(zwu,pr,'nav',titre) prnt=prnt+spm # MENU ACTION PAGES titre ="OPTIONS PAGES" html='' html=html+roll('goskin',"skins",zwui+'rond_skin.gif',zwui+'r_rond_skin.gif') html=html+'' html=html+' Configurer les skins.
' html=html+roll('gorefer',"refers",zwui+'rond_refer.gif',zwui+'r_rond_refer.gif') html=html+'' html=html+' Meta et rfrencement.
' html=html+'
' prnt=prnt+context.zwo_bo.menu(zwu,pr,'nav',titre,html) prnt=prnt+spm prnt=prnt+mid # AFFICHAGE DES ZONES LARGES (editions) def swc(c): c1="#FFFFFF" c2="#cccccc" if c==c1: return c2 else: return c1 def swci(c): c1="#eeeeee" c2="#dddddd" if c==c1: return c2 else: return c1 szco="20" def affiche_arbo(tab): df='' amax=0 for (a,b,i) in tab: if a>amax: amax=a print '' print '' print '' c='' c=swc(c) print '' for aa in range(amax+1): c=swc(c) print '' c=swc(c) c='' c=swc(c) print '' for aa in range(amax+1): c=swc(c) print '' c=swc(c) ci='' for (a,b,i) in tab: ci=swci(ci) c='' c=swc(c) print '' for aa in range(a): c=swc(c) print '' cspn=str(1+amax-a) ii='' c=swc(c) print '' c='' c=swc(c) print '' for aa in range(amax+1): c=swc(c) print '' c=swc(c) print '
 '+df+str(aa)+'
 '+df+' 
 '+df+' '+df+b+ii+'
 '+df+' 
' return printed # EDITION INFORMATION html = """ Choisissez la page laquelle vous voulez ajouter un accs spcifique
""" prnt=prnt+context.zwo_bo.edition(zwu,pr,'info','INFORMATION',html) prnt=prnt+spe cfarbo=[''] if uo.hasProperty('configarbo'): cfarbo=uo.configarbo roles=mem['user_roles_id'] def check(r): cf=r.zwo_dossier s_list_a=cf.groupes_editeurs list_a=string.split(s_list_a,'&') for a in list_a: if a<>'': if a in roles: return 1 return 0 def listrepinrep(rep): if rep.zwo_dossier.hasProperty('ordre'): ordre=rep.zwo_dossier.ordre lordre=string.split(ordre,'&') else: lordre=[] listrep=[] for r in rep.objectValues('Folder'): if r.hasProperty('type_zwook'): if r.type_zwook=="dossier": if check(r)==1: listrep.append(r.getId()) listpage=[] for i in lordre: if i in listrep: if not i in listpage: if check(rep[i])==1: listpage.append(i) for i in listrep: if not i in listpage: listpage.append(i) return listpage def TT(tab,r,i,ch): n=r.getId() if ch<>'': ch=ch+'*'+r.getId() else: ch=r.getId() rs='' tt='' if r.zwo_dossier.new_droits=="1": repgr=context.zwo_info.groups rs=' rowspan="2"' lv1=r.zwo_dossier.groupes_visiteurs lv2=string.split(lv1,'&') lv3=[] for el in lv2: if el in repgr.objectIds(): lv3.append(repgr[el].title_or_id()) lv=string.join(lv3,"   ") le1=r.zwo_dossier.groupes_editeurs le2=string.split(le1,'&') le3=[] for el in le2: if el in repgr.objectIds(): le3.append(repgr[el].title_or_id()) le=string.join(le3,"   ") tt='  Visiteurs : '+lv+'' tt=tt+'  Editeurs : '+le+'' t='' t=t+tt t=t+'
' t=t+''+r.title_or_id()+'
' listrep=listrepinrep(r) if len(listrep)==0: if check(r)==1: tab.append((i,t,0)) return tab ncf='clos_'+str(i)+'_'+n if ncf in cfarbo: if check(r)==1: tab.append((i,t,1)) return tab if check(r)==1: tab.append((i,t,2)) for idr in listrep: tab=TT(tab,r[idr],i+1,ch) return tab T=[] rep=mem['zwo_obj'] T=TT(T,rep,0,'') html=html+affiche_arbo(T) prnt=prnt+context.zwo_bo.edition(zwu,pr,'page','DROITS DES PAGES',html) prnt=prnt+spe prnt=prnt+foot return prnt qNU Script_magicqOKUwarningsqP)UerrorsqQ)U Python_magicqRU* qSu. j((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Uskq U_write_q U_writeq U _getitem_q U_getitemqU _getattr_qU_getattrqUcontextqUmemqUprqUzwuqUuoqUboxqUheadqUspmqUmidqUspeqUfootqUprntqUtitreqUhtmlqUzwoqUstringq Ureplq!Urepq"Ulenq#Uchq$U nonvisibleq%Urepskinsq&U listidskinsq'Ulskq(Ustq)U co_argcountq*KubU_paramsq+Uskq,Uidq-U change_skinq.U__ac_local_roles__q/}q0Uxavq1]q2UOwnerq3asU_dav_writelocksq4(U lzq5(U Persistenceq6UPersistentMappingq7tq8tq9QU _bind_namesq:(cShared.DC.Scripts.Bindings NameAssignments q;oq<}q=U_asgnsq>}q?(Uname_containerq@U containerqAU name_subpathqBUtraverse_subpathqCU name_contextqDUcontextqEU name_m_selfqFUscriptqGusbU func_defaultsqHNU_codeqIT< csdZdS(Nc st}t}t}||tdd}||tdd} ||d} ||d} dg} || dd o || d } n | || d < ||tdd || d d \} }}}}| }d|| dd}|||tdd| | d|}||}||}d} |||tdd| | dd|}!||}%||d}'|td|d}(|})t|djo>*x4||ddd*r}+|||}qWn-d}.|d|d}0|djo1|d }n2g}3||td!d"}4||d#}5g}6xd|d6rW}7||j o@8||||d$d%jo|9|d&|nnqW;xE|d;r8}<|d'|d||||d(d)}q,W>|d*}@|||tdd| | d+d,|}A||}C|d-|}E|SdS(.Nszwo_libsmem_dataszwo_bos presentationszwo_urls user_zw_objss hasPropertys configboxsboxsautoursarbosDeplacement pages sRETOURsmenusnavs - La liste des skin qui apparaissent sur cette page correspond aux skins valids dans l'diteur.
- Slectionnez le skin que vous souhaitez affecter cette page
- Validez en cliquant sur OK
seditionsinfos INFORMATIONszwo_objssplits*iis$
s'szwooksZPas de config de skin pour cette page.
szwo_infosskinss objectIdssoks0sappends*spagesChangement de skins
( s_write_s_writes _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusuosboxsheadsspmsmidsspesfootsprntstitreshtmlszwosstringssksreplsrepslenschs nonvisiblesrepskinss listidskinsslskss( ssks_write_s_writes _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusuosboxsheadsspmsmidsspesfootsprntstitreshtmlszwosstringsreplsrepslenschs nonvisiblesrepskinss listidskinsslskss((sScript (Python)s change_skinsR09 .   1  $   %6 1 (s change_skin(s change_skin((sScript (Python)ssqJU_bodyqKTmem=context.zwo_lib.mem_data() pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] uo=mem['user_zw_obj'] box=[''] if uo.hasProperty('configbox'): box=uo.configbox pr['box']=box # AFFICHAGE DU BANDEAU HAUT (head,spm,mid,spe,foot)=context.zwo_bo.autour(mem,pr,'arbo','Deplacement pages ') prnt=head # AFFICHAGE DES CASE DE LA COLONNE (menus) titre='RETOUR' prnt=prnt+context.zwo_bo.menu(zwu,pr,'nav',titre) prnt=prnt+spm prnt=prnt+mid # AFFICHAGE DES ZONES LARGES (editions) # EDITION INFORMATION html = """ - La liste des skin qui apparaissent sur cette page correspond aux skins valids dans l'diteur.
- Slectionnez le skin que vous souhaitez affecter cette page
- Validez en cliquant sur OK
""" prnt=prnt+context.zwo_bo.edition(zwu,pr,'info','INFORMATION',html) prnt=prnt+spe #tableau page zwo=mem['zwo_obj'] repl=string.split(sk,'*') rep=zwo if len(repl)>1: for ch in repl[1:]: rep=rep[ch] html = '
' html=html+'' if sk<>'zwook': html=html+'Pas de config de skin pour cette page.
' nonvisible=[] repskins=context.zwo_info.skins listidskins=repskins.objectIds() lsk=[] for sk in listidskins: if not sk in nonvisible: if repskins[sk].ok=='0': lsk.append(sk) for s in lsk: html=html+''+repskins[s].title_or_id()+'
' html=html+'' prnt=prnt+context.zwo_bo.edition(zwu,pr,'page','Changement de skin',html) prnt=prnt+spe prnt=prnt+'
'+foot return prnt qLU Script_magicqMKUwarningsqN)UerrorsqO)U Python_magicqPU* qQu. j((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Upgsq U _getitem_q U_getitemq U _getattr_q U_getattrqUcontextqUmemqUprqUzwuqUheadqUspmqUmidqUspeqUfootqU listiconesqUprntqUtitreqUhtmlqUzwoqUstringqUllqUlUsUlchqUrUlenq Uchq!Urangeq"Uitq#U co_argcountq$KubU_paramsq%Upgsq&Uidq'Udetruire_pagesq(U__ac_local_roles__q)}q*Uxavq+]q,UOwnerq-asU_dav_writelocksq.(U l{q/(U Persistenceq0UPersistentMappingq1tq2tq3QU _bind_namesq4(cShared.DC.Scripts.Bindings NameAssignments q5oq6}q7U_asgnsq8}q9(Uname_containerq:U containerq;U name_subpathqUcontextq?U name_m_selfq@UscriptqAusbU func_defaultsqBNU_codeqCTp csdZdS(Ncsut}t}||tdd}||tdd}||d}||tdd||dd\} } } } } ||||td d d d }| } d ||dd} |||tdd||d|} || }|| }d}|d}||d}|td|d}g}x|dr}|td|d}|}t|djo>x4||dddr}|||}qWn||d|qW!xtt|d!r}|"||djoA|||djo+t|td|||ddjo@#|d}$|||||d}%|d}nq9W&|d }(|d!})|d"|d#}*|d$},|||tdd%||d&d'|}-|| }.|| }1|SdS((Nszwo_libsmem_dataszwo_bos presentationszwo_urlsautoursarbosDestruction de pagess zwo_imagessiconess logo_elementss objectIdssRETOUR PAGESsmenusnavs(
s2szwo_objssplits**is*isappendssactions3s
s title_or_ids 
s%s's
seditionspagesDetruire les pages(s _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusheadsspmsmidsspesfoots listiconessprntstitreshtmlszwosstringspgssllslssslchsrslenschsrangesi(spgss _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusheadsspmsmidsspesfoots listiconessprntstitreshtmlszwosstringsllslssslchsrslenschsrangesi((sScript (Python)sdetruire_pagessD*90 .      $$Z "   1  (sdetruire_pages(sdetruire_pages((sScript (Python)ssqDU_bodyqETmem=context.zwo_lib.mem_data() pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] # AFFICHAGE DU BANDEAU HAUT (head,spm,mid,spe,foot)=context.zwo_bo.autour(mem,pr,'arbo','Destruction de pages') listicones=context.zwo_images.icones.logo_elements.objectIds() prnt=head titre='RETOUR PAGES' prnt=prnt+context.zwo_bo.menu(zwu,pr,'nav',titre) prnt=prnt+spm prnt=prnt+mid html='
' html=html+'' zwo=mem['zwo_obj'] ll=string.split(pgs,'**') l=[] for s in ll: lch=string.split(s,'*') r=zwo if len(lch)>1: for ch in lch[1:]: r=r[ch] l.append(r) for i in range(len(ll)): if ll[i]<>'' and ll[i]<>'action' and len(string.split(ll[i],'*')) >1: html=html+'' html=html+'
' html=html+l[i].title_or_id() html=html+' 
' html=html+'' html=html+'' html=html+'
' prnt=prnt+context.zwo_bo.edition(zwu,pr,'page','Detruire les pages',html) prnt=prnt+spe prnt=prnt+foot return prnt qFU Script_magicqGKUwarningsqH)UerrorsqI)U Python_magicqJU* qKu. j((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Uskq Unewskinq U _getitem_q U_getitemq U _getattr_qU_getattrqUcontextqUmemqU containerqUurlqUzwoqUrepqUstringqUreplqUoldskinqUlenqUchqU affecteskinqUrolesqUcheckqUnsqtqU co_argcountq KubU_paramsq!U sk,newskinq"Uidq#Uskinokq$U__ac_local_roles__q%}q&Uxavq']q(UOwnerq)asU_dav_writelocksq*(U l|q+(U Persistenceq,UPersistentMappingq-tq.tq/QU _bind_namesq0(cShared.DC.Scripts.Bindings NameAssignments q1oq2}q3U_asgnsq4}q5(Uname_containerq6U containerq7U name_subpathq8Utraverse_subpathq9U name_contextq:Ucontextq;U name_m_selfqNU_codeq?T csdZdS(Ncst}t}||tdd}||tdd} ||d} | } |t d|d}  | }  d} t| d joY xO|| d dd  r3} ||| d d }|| |} qWnd ||dd}"|| d jo#|djo?$d}||%| d dd|&| |n<(d}||)| d dd|*| |n|||,tdddd-dSdS(Nszwo_libsmem_datasREQUESTsURLszwo_objssplits*siis zwo_dossiersskinc st}|||ddd|x||ddro}||ddo||ddjo:|||dd d jo||nnqCWdS( Ns zwo_dossiersmanage_changePropertiessskins objectValuesis hasPropertys type_zwooksdossiersnew_skins0(s _getattr_s_getattrsrsnskinsreps affecteskin(srsnskins _getattr_s_getattrsreps affecteskin(s affecteskin(sScript (Python)s affecteskins $,"s user_roles_idc st}||d}||d}|td|d}xB|dr5}|djo|jo dSnnqTW dSdS(Ns zwo_dossiersgroupes_editeursssplits&isi( s _getattr_s_getattrsrscfss_list_asstringslist_asasroles( srs _getattr_s_getattrscfss_list_asstringslist_asasroles(sroles(sScript (Python)schecks sNOs0smanage_changePropertiessnew_skins1sRESPONSEsredirects./skins(s _getitem_s_getitems _getattr_s_getattrscontextsmems containersurlszwosrepsstringssksreplsoldskinslenschs affecteskinsrolesschecksnewskinsns(ssksnewskins _getitem_s_getitems _getattr_s_getattrscontextsmems containersurlszwosrepsstringsreplsoldskinslenschs affecteskinsrolesschecksns((sroless affecteskinsScript (Python)sskinoks.*   $ (sskinok(sskinok((sScript (Python)ssq@U_bodyqATmem=context.zwo_lib.mem_data() url=container.REQUEST.URL zwo=mem['zwo_obj'] rep=zwo repl=string.split(sk,'*') rep=zwo oldskin='' if len(repl)>1: for ch in repl[1:]: oldskin=rep.zwo_dossier.skin rep=rep[ch] def affecteskin(r,nskin): r.zwo_dossier.manage_changeProperties(skin=nskin) for rep in r.objectValues(): if rep.hasProperty('type_zwook') and rep.type_zwook=='dossier': if rep.zwo_dossier.new_skin=="0": affecteskin(rep,nskin) roles=mem['user_roles_id'] def check(r): cf=r.zwo_dossier s_list_a=cf.groupes_editeurs list_a=string.split(s_list_a,'&') for a in list_a: if a<>'': if a in roles: return 1 return 0 if check(rep)==1: if newskin=='NO': ns="0" rep.zwo_dossier.manage_changeProperties(new_skin=ns) affecteskin(rep,oldskin) else: ns="1" rep.zwo_dossier.manage_changeProperties(new_skin=ns) affecteskin(rep,newskin) context.REQUEST.RESPONSE.redirect('./skins') return qBU Script_magicqCKUwarningsqD)UerrorsqE)U Python_magicqFU* qGu. jZ((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_getattrqUcontextqUmemqUprqUzwuqUzwuiqUuoqUboxqUrollqUroll2qUroll3qUheadqUspmqUmidqUspeqUfootqUprntqUtitreq Uhtmlq!Uswcq"Uswciq#Uszcoq$U affiche_arboq%Ucfarboq&Urolesq'Ucheckq(U listrepinrepq)UTTq*UTUrepq+tq,U co_argcountq-KubU_paramsq.UUidq/U index_htmlq0U__ac_local_roles__q1}q2Uxavq3]q4UOwnerq5asU_dav_writelocksq6(U l}q7(U Persistenceq8UPersistentMappingq9tq:tq;QU _bind_namesq<(cShared.DC.Scripts.Bindings NameAssignments q=oq>}q?U_asgnsq@}qA(Uname_containerqBU containerqCU name_subpathqDUtraverse_subpathqEU name_m_selfqFUscriptqGU name_contextqHUcontextqIusbU func_defaultsqJNU_codeqKT2csdZdS(Nc##syt}t}t}||tdd}||tdd}||d} | d} ||d} dg} | | d d o || d } n | ||d <d } d }&d}:||tdd||dd\}}}}}<|}Ad}Cd}E|| dd| d| d}F|d||dd}G|d}H|| dd| d| d}I|d ||dd}J|d!}K|| d"d#| d$| d%}L|d&||dd}M|d'}O|d(}Q|||tdd)| |d*||}R||}Vd+}Wd,}X|d-}w|d.}x|d/}y|d0}z|d1| d2}{|d3}||d4}}|d5}~|d6}|d7}|d5}|d8}|d9}||d:d;| d<| d=}|d>||dd?}|d@}||dAdB| dC| dD}|d>||ddE}|dF}||dGdH| dI| dJ}|d>||ddK}|dL}||dMdN| dO| dP}|d>||ddQ}|dR}|d(}|||tdd)| |dS||}||}||}dTdUdVdW}dX}|||tddY| |dZd[|}||}d}dg|| d d\o|| d\n||d]d^d_!d`;g}!<||da}"=|!|"dbd}!?|||!}@|||tddY| |dSdc|}A||}C||}E|SdS(dNszwo_libsmem_dataszwo_bos presentationszwo_urls/zwo_images/bo/s user_zw_objss hasPropertys configboxsboxcsd|d}|d|d|d}|d}|d|d|d}|d}|d|d}|d}|djo|d }n|d |d |d }|SdS( Ns (surlsrettsnomsrolsimg(snomsurlsimgsrolsrett((sScript (Python)srolls   csd|d}|d|d|d}|d}|d|d|d} |d}!|d|d}"|d}#|d|d |d }$|SdS( Ns(sactionsrettsnomsrolsimg(snomsactionsimgsrolsrett((sScript (Python)sroll2s   cs#&'d}(d})|djo*d|d}+d}n,d|d|d}-|d|d |d}.|d |d}/|d|d |d}0|d }1|d|d}2|d }3|d jo4|d}n5|d|d|d}6|SdS(Nss poplink('s');s killlink();s (shlptxtshlptxt2shelpsurlsrettsnomsrolsimg(snomsurlsimgsrolshelpshlptxtshlptxt2srett((sScript (Python)sroll3&s      sautoursarbosGestion des pagess OPTIONS PAGESssgodroitsdroitssrond_droit.gifsr_rond_droit.gifss! Configurer les droits.
sgoskinsskinss rond_skin.gifsr_rond_skin.gifss s=
s0s2s s&s. Inserer une pagessPs_Nom : [ok]sss rollrenommerschecknozero('renommer')srond_renommer_page.gifsr_rond_renommer.gifss Renommer.
s rolldeplaceschecknozero('deplace')srond_deplace_page.gifsr_rond_deplace.gifs@;text-decoration:none" href="javascript:checknozero('deplace')">s Deplacer.
s rolldupliquerschecknozero('dupliquer')srond_duplique_page.gifsr_rond_duplique.gifsB;text-decoration:none" href="javascript:checknozero('dupliquer')">s Dupliquer.
s rolldetruireschecknozero('detruire')srond_detruit_page.gifsr_rond_detruire.gifsA;text-decoration:none" href="javascript:checknozero('detruire')">s Detruire.
spagecs;d}d}||jo |Sn|SdS(Ns#FFFFFFs#cccccc(sc1sc2sc(scsc1sc2((sScript (Python)sswcs    cs;d}d}||jo |Sn|SdS(Ns#eeeeees#dddddd(sc1sc2sc(scsc1sc2((sScript (Python)sswcis    s20c$st}d}d}x9|dr,\}}}||jo |}nq*W|dIJ|dIJ|dIJd}|}|d|dd IJx[t |d drD} |}|d |dd |t | d IJqW|}d}|}|d|dd IJxQt |d dr:} |}|d |dd |dIJqtW|}d}x|dr\}}}|}d}|}|d|dd IJxMt |dr:} |}|d |dd |dIJqAWt d ||}d}|}|d|d|d|||dIJqWd}|}|d|dd IJxQt |d dr:} |}|d |dd |dIJq-W|}|dIJ|SdS(Nsis?s7s,ss0is,s s*s
 s s
(s_print_s_printsdfsamaxstabsasbsiscsswcsszcosrangesaasstrscisswciscspnsii(stabs_print_s_printsdfsamaxsasbsiscsswcsszcosrangesaasstrscisswciscspnsii(sswcisszcosswc(sScript (Python)s affiche_arbosX       3 )  ) 1 ) sK - Crez, dtruisez, dupliquez ou dplacez les pages et les sous pages de votre architecture
- Configurez les droits d'accs selon vos groupes d'utilisateurs ou vos membres
- Affectez le ou les skins aux pages cres
- Pour un site Internet, vous pouvez rfrencer chaque page de votre site indpendamment.
seditionsinfos INFORMATIONs configarbos user_roles_idc st}||d}||d}|td|d}xB|dr5}|djo|jo dSnnqTWdSdS(Ns zwo_dossiersgroupes_editeursssplits&isi( s _getattr_s_getattrsrscfss_list_asstringslist_asasroles( srs _getattr_s_getattrscfss_list_asstringslist_asasroles(sroles(sScript (Python)schecks c st}t}|||dddo:|||dd}|td|d}n  g} g} x||ddd r|} || dd o]|| d d jo@| d jo&||d || d nnnqWg} xu|drh} | |joR| | j o=||| d jo|| d | nnnq0Wx>|dr1} | | j o|| d | nqW| SdS(Ns zwo_dossiers hasPropertysordressplits&s objectValuessFolderis type_zwooksdossierisappendsgetId( s _getitem_s_getitems _getattr_s_getattrsrepsordresstringslordreslistrepsrscheckslistpagesi( sreps _getitem_s_getitems _getattr_s_getattrsordresstringslordreslistrepsrscheckslistpagesi(scheck(sScript (Python)s listrepinreps(  '/ "#cs!t}t}"||d}#|djo!$|d||d}n&||d}(d|d||d} )|} *t | djo>+|o#|,|d|| dfn-|Sn/d t|d |}0|jo>1|o#|2|d|| d fn3|Sn5|o#|6|d|| d fn7x8| d7r+}8|||||d |}qW9|SdS( NsgetIdss*ss title_or_idisappendsclos_s_ii(s _getitem_s_getitems _getattr_s_getattrsrsnschsts listrepinrepslistrepslenscheckstabsisstrsncfscfarbosidrsTT(stabsrsischs _getitem_s_getitems _getattr_s_getattrsnsts listrepinrepslistrepslenschecksstrsncfscfarbosidrsTT(schecks listrepinrepsTTscfarbo(sScript (Python)sTT!s(!!     )szwo_objisGESTION DES PAGES(#s_write_s_writes _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwuszwuisuosboxsrollsroll2sroll3sheadsspmsmidsspesfootsprntstitreshtmlsswcsswcisszcos affiche_arboscfarbosrolesschecks listrepinrepsTTsTsrep(#s_write_s_writes _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwuszwuisuosboxsrollsroll2sroll3sheadsspmsmidsspesfootsprntstitreshtmlsswcsswcisszcos affiche_arboscfarbosrolesschecks listrepinrepsTTsTsrep((schecksswcsTTscfarbosroless listrepinrepsswcisszcosScript (Python)s index_htmls0  9   $ $ $  1               $ $ $ $  1    9 1    1  (s index_html(s index_html((sScript (Python)ssqLUerrorsqM)U_bodyqNTM#mem=context.zwo_lib.mem_data() pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] zwui=zwu+'/zwo_images/bo/' uo=mem['user_zw_obj'] box=[''] if uo.hasProperty('configbox'): box=uo.configbox pr['box']=box def roll(nom,url,img,rol): rett='' return rett def roll2(nom,action,img,rol): rett='' return rett def roll3(nom,url,img,rol,help): hlptxt='' hlptxt2='' if help<>'': hlptxt=' poplink(\''+help+'\');' hlptxt2='killlink();' rett='' return rett # AFFICHAGE DU BANDEAU HAUT (head,spm,mid,spe,foot)=context.zwo_bo.autour(mem,pr,'arbo','Gestion des pages') prnt=head # AFFICHAGE DES CASE DE LA COLONNE (menus) # MENU ACTION PAGES titre ="OPTIONS PAGES" html='' html=html+roll('godroit',"droits",zwui+'rond_droit.gif',zwui+'r_rond_droit.gif') html=html+'' html=html+' Configurer les droits.
' html=html+roll('goskin',"skins",zwui+'rond_skin.gif',zwui+'r_rond_skin.gif') html=html+'' html=html+' Configurer les skins.
' html=html+roll('gorefer',"refers",zwui+'rond_refer.gif',zwui+'r_rond_refer.gif') html=html+'' html=html+' Meta et rfrencement.
' html=html+'
' prnt=prnt+context.zwo_bo.menu(zwu,pr,'nav',titre,html) prnt=prnt+spm # MENU ACTION ELEMENT titre ="ACTION PAGES" html='' html=html+""" """ html=html+'' html=html+'' html=html+'' html=html+'' html=html+'' html=html+'
' html=html+'' html=html+'' html=html+' Inserer une page' html=html+'
' html=html+'Nom : [ok]' html=html+'
' html=html+roll2('rollrenommer',"checknozero(\'renommer\')",zwui+'rond_renommer_page.gif',zwui+'r_rond_renommer.gif') html=html+'' html=html+' Renommer.
' html=html+roll2('rolldeplace',"checknozero(\'deplace\')",zwui+'rond_deplace_page.gif',zwui+'r_rond_deplace.gif') html=html+'' html=html+' Deplacer.
' html=html+roll2('rolldupliquer',"checknozero(\'dupliquer\')",zwui+'rond_duplique_page.gif',zwui+'r_rond_duplique.gif') html=html+'' html=html+' Dupliquer.
' html=html+roll2('rolldetruire',"checknozero(\'detruire\')",zwui+'rond_detruit_page.gif',zwui+'r_rond_detruire.gif') html=html+'' html=html+' Detruire.
' html=html+'
' prnt=prnt+context.zwo_bo.menu(zwu,pr,'page',titre,html) prnt=prnt+spm prnt=prnt+mid # AFFICHAGE DES ZONES LARGES (editions) def swc(c): c1="#FFFFFF" c2="#cccccc" if c==c1: return c2 else: return c1 def swci(c): c1="#eeeeee" c2="#dddddd" if c==c1: return c2 else: return c1 szco="20" def affiche_arbo(tab): df='' amax=0 for (a,b,i) in tab: if a>amax: amax=a print '' print '' print '' c='' c=swc(c) print '' for aa in range(amax+1): c=swc(c) print '' c=swc(c) c='' c=swc(c) print '' for aa in range(amax+1): c=swc(c) print '' c=swc(c) ci='' for (a,b,i) in tab: ci=swci(ci) c='' c=swc(c) print '' for aa in range(a): c=swc(c) print '' cspn=str(1+amax-a) ii='' c=swc(c) print '' c='' c=swc(c) print '' for aa in range(amax+1): c=swc(c) print '' c=swc(c) print '
 '+df+str(aa)+'
 '+df+' 
 '+df+' '+df+b+ii+'
 '+df+' 
' return printed # EDITION INFORMATION html = """ - Crez, dtruisez, dupliquez ou dplacez les pages et les sous pages de votre architecture
- Configurez les droits d'accs selon vos groupes d'utilisateurs ou vos membres
- Affectez le ou les skins aux pages cres
- Pour un site Internet, vous pouvez rfrencer chaque page de votre site indpendamment.
""" prnt=prnt+context.zwo_bo.edition(zwu,pr,'info','INFORMATION',html) prnt=prnt+spe html='' cfarbo=[''] if uo.hasProperty('configarbo'): cfarbo=uo.configarbo roles=mem['user_roles_id'] def check(r): cf=r.zwo_dossier s_list_a=cf.groupes_editeurs list_a=string.split(s_list_a,'&') for a in list_a: if a<>'': if a in roles: return 1 return 0 def listrepinrep(rep): if rep.zwo_dossier.hasProperty('ordre'): ordre=rep.zwo_dossier.ordre lordre=string.split(ordre,'&') else: lordre=[] listrep=[] for r in rep.objectValues('Folder'): if r.hasProperty('type_zwook'): if r.type_zwook=="dossier": if check(r)==1: listrep.append(r.getId()) listpage=[] for i in lordre: if i in listrep: if not i in listpage: if check(rep[i])==1: listpage.append(i) for i in listrep: if not i in listpage: listpage.append(i) return listpage def TT(tab,r,i,ch): n=r.getId() if ch<>'': ch=ch+'*'+r.getId() else: ch=r.getId() t=''+r.title_or_id() listrep=listrepinrep(r) if len(listrep)==0: if check(r): tab.append((i,t,0)) return tab ncf='clos_'+str(i)+'_'+n if ncf in cfarbo: if check(r): tab.append((i,t,1)) return tab if check(r): tab.append((i,t,2)) for idr in listrep: tab=TT(tab,r[idr],i+1,ch) return tab T=[] rep=mem['zwo_obj'] T=TT(T,rep,0,'') html=html+affiche_arbo(T) prnt=prnt+context.zwo_bo.edition(zwu,pr,'page','GESTION DES PAGES',html) prnt=prnt+spe prnt=prnt+foot return prnt qOU Script_magicqPKUwarningsqQ)U _proxy_rolesqR(UManagerqStqTU Python_magicqUU* qVu. jW((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 UcontextqUmemqUprqUzwoqUdicoqUpgokqUkUlUsUstringqUlchqUlenqUrUpUrangeqUiUrolesqUcheckqUeUoldqUnewqUnewidqtqU co_argcountqKubU_paramsqUUidq U dupliquerokq!U__ac_local_roles__q"}q#Uxavq$]q%UOwnerq&asU_dav_writelocksq'(U l~q((U Persistenceq)UPersistentMappingq*tq+tq,QU _bind_namesq-(cShared.DC.Scripts.Bindings NameAssignments q.oq/}q0U_asgnsq1}q2(Uname_containerq3U containerq4U name_subpathq5Utraverse_subpathq6U name_m_selfq7Uscriptq8U name_contextq9Ucontextq:usbU func_defaultsq;NU_codeqsq=U_bodyq>Tmem=context.zwo_lib.mem_data() pr=context.zwo_bo.presentation() zwo=mem['zwo_obj'] dico=context.REQUEST.form pgok=[] for k in dico.keys(): pgok.append(k) l=[] for s in pgok: lch=string.split(s,'*') if len(lch)==1: r='0' l.append(r) else : r=zwo p=zwo for i in range(len(lch)-1): p=r r=p[lch[i+1]] l.append((p,r,s)) roles=mem['user_roles_id'] def check(r): cf=r.zwo_dossier s_list_a=cf.groupes_editeurs list_a=string.split(s_list_a,'&') for a in list_a: if a<>'': if a in roles: return 1 return 0 for e in l: if check(p): (p,r,l)=e old=r.getId() new=dico[l] newid=context.zwo_lib.mix_id_zope(new) p.manage_addFolder('zwo_temp') context.zwo_cpy(p,p['zwo_temp'],old,newid) context.zwo_cpy(p['zwo_temp'],p,newid) p[newid].manage_changeProperties(title=new) p.manage_delObjects(['zwo_temp']) context.REQUEST.RESPONSE.redirect('./') return q?U Script_magicq@KUwarningsqA)UerrorsqB)U Python_magicqCU* qDu. j.((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Urpq Unewdrq U _getitem_q U_getitemq U _getattr_qU_getattrqUcontextqUmemqU containerqUurlqUzwoqUrepqUstringqUreplqUolddrqUlenqUchqUdicoqUlgeqUlgvqUkUiUnewdrsqU affectedroitsqUrolesq Ucheckq!Unsq"tq#U co_argcountq$KubU_paramsq%Urp,newdrq&Uidq'Udroitokq(U__ac_local_roles__q)}q*Uxavq+]q,UOwnerq-asU_dav_writelocksq.(U lq/(U Persistenceq0UPersistentMappingq1tq2tq3QU _bind_namesq4(cShared.DC.Scripts.Bindings NameAssignments q5oq6}q7U_asgnsq8}q9(Uname_containerq:U containerq;U name_subpathqUscriptq?U name_contextq@UcontextqAusbU func_defaultsqBNU_codeqCT csdZdS(Ncst}t}||tdd}||tdd} ||d} | } |t d|d}  ddf} t| d joq xg|| d dd  rK} ||| d d ||| d d f} || |} qWn||tdd}g}g}x||dd rl}||d ddjoG||dd}||j o||d|nnqVWx||dd r}||d ddjo\||dd}||j o/||j o||d|nnnqW"|t d|d|t d|df}%d.||d/d}9|| d jo:|djo?;d}||<| d dd|=| |n<?d}||@| d dd|A| |n|Ctd| |||Etdd d!d"FdSdS(#Nszwo_libsmem_datasREQUESTsURLszwo_objssplits*siis zwo_dossiersgroupes_editeurssgroupes_visiteurssformskeysisedit_sappendisvue_sjoins&c s%t}&|\}}||'|ddd|||(|ddd|)x||dd)ro}|*|ddo||dd jo:+|||dd d jo,||nnqtWdS( Ns zwo_dossiersmanage_changePropertiessgroupes_editeurssgroupes_visiteurss objectValuesis hasPropertys type_zwooksdossiersnew_refs0(s _getattr_s_getattrsdrssesvsrsreps affectedroits(srsdrss _getattr_s_getattrsesvsreps affectedroits(s affectedroits(sScript (Python)s affectedroits%s "$,"s user_roles_idc s/t}0||d}1||d}2|td|d}3xB|d3r5}4|djo5|jo 6dSnnqTW7dSdS(Ns zwo_dossiersgroupes_editeursssplits&isi( s _getattr_s_getattrsrscfss_list_asstringslist_asasroles( srs _getattr_s_getattrscfss_list_asstringslist_asasroles(sroles(sScript (Python)scheck/s sNOs0smanage_changePropertiess new_droitss1szwo_droits_foldersRESPONSEsredirects./droits(s _getitem_s_getitems _getattr_s_getattrscontextsmems containersurlszwosrepsstringsrpsreplsolddrslenschsdicoslgeslgvsksisnewdrss affectedroitssrolesschecksnewdrsns(srpsnewdrs _getitem_s_getitems _getattr_s_getattrscontextsmems containersurlszwosrepsstringsreplsolddrslenschsdicoslgeslgvsksisnewdrss affectedroitssrolesschecksns((sroless affectedroitssScript (Python)sdroitoksL* $3  !!#3  (sdroitok(sdroitok((sScript (Python)ssqDU_bodyqETmem=context.zwo_lib.mem_data() url=container.REQUEST.URL zwo=mem['zwo_obj'] rep=zwo repl=string.split(rp,'*') olddr=('','') if len(repl)>1: for ch in repl[1:]: olddr=(rep.zwo_dossier.groupes_editeurs,rep.zwo_dossier.groupes_visiteurs) rep=rep[ch] dico=context.REQUEST.form lge=[] lgv=[] for k in dico.keys(): if k[0:5]=='edit_': i=k[5:] if not i in lge: lge.append(i) for k in dico.keys(): if k[0:4]=='vue_': i=k[4:] if not i in lge: if not i in lgv: lgv.append(i) newdrs=(string.join(lge,'&'),string.join(lgv,'&')) def affectedroits(r,drs): (e,v)=drs r.zwo_dossier.manage_changeProperties(groupes_editeurs=e) r.zwo_dossier.manage_changeProperties(groupes_visiteurs=v) for rep in r.objectValues(): if rep.hasProperty('type_zwook') and rep.type_zwook=='dossier': if rep.zwo_dossier.new_ref=="0": affectedroits(rep,drs) roles=mem['user_roles_id'] def check(r): cf=r.zwo_dossier s_list_a=cf.groupes_editeurs list_a=string.split(s_list_a,'&') for a in list_a: if a<>'': if a in roles: return 1 return 0 if check(rep)==1: if newdr=='NO': ns="0" rep.zwo_dossier.manage_changeProperties(new_droits=ns) affectedroits(rep,olddr) else: ns="1" rep.zwo_dossier.manage_changeProperties(new_droits=ns) affectedroits(rep,newdrs) context.zwo_droits_folder(rep) context.REQUEST.RESPONSE.redirect('./droits') return qFU Script_magicqGKUwarningsqH)UerrorsqI)U Python_magicqJU* qKu. j@((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Upgsq U _getitem_q U_getitemq U _getattr_q U_getattrqUcontextqUmemqUprqUzwuqUheadqUspmqUmidqUspeqUfootqU listiconesqUprntqUtitreqUhtmlqUzwoqUstringqUllqUlUsUlchqUrUlenq Uchq!Urangeq"Uitq#U co_argcountq$KubU_paramsq%Upgsq&Uidq'Urenommer_pagesq(U__ac_local_roles__q)}q*Uxavq+]q,UOwnerq-asU_dav_writelocksq.(U lq/(U Persistenceq0UPersistentMappingq1tq2tq3QU _bind_namesq4(cShared.DC.Scripts.Bindings NameAssignments q5oq6}q7U_asgnsq8}q9(Uname_containerq:U containerq;U name_subpathqUcontextq?U name_m_selfq@UscriptqAusbU func_defaultsqBNU_codeqCT csdZdS(Ncszt}t}||tdd}||tdd}||d}||tdd||dd\} } } } } ||||td d d d }| } d ||dd} |||tdd||d|} || }|| }d}|d}||d}|td|d}g}x|dr}|td|d}|}t|djo>x4||dddr}|||}qWn| |d|qW"xtt|d"r}|#||djo|||djo$|d}%|||||d}&|d}'|d |||d!||||dd"}(|d#}nq9W)|d$}+|d%},|d&}/|||tdd'||d(d)|}0|| }1|| }3|SdS(*Nszwo_libsmem_dataszwo_bos presentationszwo_urlsautoursarbosRenommage de pagess zwo_imagessiconess logo_elementss objectIdssRETOUR PAGESsmenusnavs(
s2szwo_objssplits**is*isappendssactions3s
s title_or_ids@ ss
s%s
seditionselementsRENOMMER LES ELEMENTS(s _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusheadsspmsmidsspesfoots listiconessprntstitreshtmlszwosstringspgssllslssslchsrslenschsrangesi(spgss _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusheadsspmsmidsspesfoots listiconessprntstitreshtmlszwosstringsllslssslchsrslenschsrangesi((sScript (Python)srenommer_pagessF*90 .      $$, " ;   1  (srenommer_pages(srenommer_pages((sScript (Python)ssqDU_bodyqETmem=context.zwo_lib.mem_data() pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] # AFFICHAGE DU BANDEAU HAUT (head,spm,mid,spe,foot)=context.zwo_bo.autour(mem,pr,'arbo','Renommage de pages') listicones=context.zwo_images.icones.logo_elements.objectIds() prnt=head titre='RETOUR PAGES' prnt=prnt+context.zwo_bo.menu(zwu,pr,'nav',titre) prnt=prnt+spm prnt=prnt+mid html='
' html=html+'' zwo=mem['zwo_obj'] ll=string.split(pgs,'**') l=[] for s in ll: lch=string.split(s,'*') r=zwo if len(lch)>1: for ch in lch[1:]: r=r[ch] l.append(r) for i in range(len(ll)): if ll[i]<>'' and ll[i]<>'action': html=html+'' html=html+'
' html=html+l[i].title_or_id() html=html+' ' html=html+'' html=html+'
' html=html+'' html=html+'
' prnt=prnt+context.zwo_bo.edition(zwu,pr,'element','RENOMMER LES ELEMENTS',html) prnt=prnt+spe prnt=prnt+foot return prnt qFU Script_magicqGKUwarningsqH)UerrorsqI)U Python_magicqJU* qKu. j((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Urpq U_write_q U_writeq U _getitem_q U_getitemqU _getattr_qU_getattrqUcontextqUmemqUprqUzwuqUuoqUboxqUheadqUspmqUmidqUspeqUfootqUprntqUtitreqUhtmlqUzwoqUstringq Ureplq!Urepq"Uoldmetasq#Ulenq$Uchq%Us1q&Us2q'Uexm2q(Uexmq)Uelq*Unlq+Unpq,UlUdecq-Udec2q.Uidrq/UaUbUstrq0tq1U co_argcountq2KubU_paramsq3Urpq4Uidq5U change_refq6U__ac_local_roles__q7}q8Uxavq9]q:UOwnerq;asU_dav_writelocksq<(U lq=(U Persistenceq>UPersistentMappingq?tq@tqAQU _bind_namesqB(cShared.DC.Scripts.Bindings NameAssignments qCoqD}qEU_asgnsqF}qG(Uname_containerqHU containerqIU name_subpathqJUtraverse_subpathqKU name_contextqLUcontextqMU name_m_selfqNUscriptqOusbU func_defaultsqPNU_codeqQTcsdZdS(Nc*$st}t}t}||tdd}||tdd} ||d} ||d} dg} || dd o || d } n | || d < ||tdd || d d \} }}}}| }d|| dd}|||tdd| | d|}||}||}d}|||tdd| | dd|} ||}$||d}&|td|d}'|}(dg})t|djoY*xO||ddd*r3}+|||dd},|||}qWn.d}/|d|d }1d}2d}3|||dd!d"jo 4d#}n 6d#}8|d$jo.9|d%|d&}:|d'|d(}n<|d)}>|}?|||dd!d"jo@|||dd}nBg}Cx=|dCr0} D| djo|E|d*| nqnWFd}!Gd}"Hxa|dHrT}#I|!d}!J|td|#d+}$K|d,}L|d-}M|td||$dd.}%N||%d}&Ox|$dOr} P|"d}"Q|td| d.}%R||%d}'Sd}(Tt|%djoU||%d}(nV|d/|'d0t)|!d1t)|"d1|'d2|(d3}qPWX|d4}qWY|d5}[|||tdd| | d6d7|}\||}^|d8|}`|SdS(9Nszwo_libsmem_dataszwo_bos presentationszwo_urls user_zw_objss hasPropertys configboxsboxsautoursarbosDeplacement pages s RETOURsmenusnavsB - Remplissez les champs
- Validez en cliquant sur OK
seditionsinfos INFORMATIONszwo_objssplits*iis zwo_dossiersmetass#
s'snew_refs1s checkedszwooks,Pas de referencement detaille ici...
s-Referencement detaille ici...

s0sappends!!s3 s_ s=s s
Attribut Valeur
sB 

s+
spages Referencements(*s_write_s_writes _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusuosboxsheadsspmsmidsspesfootsprntstitreshtmlszwosstringsrpsreplsrepsoldmetasslenschss1ss2sexm2sexmselsnlsnpslsdecsdec2sidrsasbsstr(*srps_write_s_writes _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusuosboxsheadsspmsmidsspesfootsprntstitreshtmlszwosstringsreplsrepsoldmetasslenschss1ss2sexm2sexmselsnlsnpslsdecsdec2sidrsasbsstr((sScript (Python)s change_refs09 .   1   $   "    "      $  E 1 (s change_ref(s change_ref((sScript (Python)ssqRU_bodyqST# mem=context.zwo_lib.mem_data() pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] uo=mem['user_zw_obj'] box=[''] if uo.hasProperty('configbox'): box=uo.configbox pr['box']=box # AFFICHAGE DU BANDEAU HAUT (head,spm,mid,spe,foot)=context.zwo_bo.autour(mem,pr,'arbo','Deplacement pages ') prnt=head # AFFICHAGE DES CASE DE LA COLONNE (menus) titre='RETOUR' prnt=prnt+context.zwo_bo.menu(zwu,pr,'nav',titre) prnt=prnt+spm prnt=prnt+mid # AFFICHAGE DES ZONES LARGES (editions) # EDITION INFORMATION html = """ - Remplissez les champs
- Validez en cliquant sur OK
""" prnt=prnt+context.zwo_bo.edition(zwu,pr,'info','INFORMATION',html) prnt=prnt+spe #tableau page zwo=mem['zwo_obj'] repl=string.split(rp,'*') rep=zwo oldmetas=[""] if len(repl)>1: for ch in repl[1:]: oldmetas=rep.zwo_dossier.metas rep=rep[ch] html='
' html=html+'' s1='' s2='' if rep.zwo_dossier.new_ref=='1': s2=' checked' else: s1=' checked' if rp<>'zwook': html=html+'Pas de referencement detaille ici...
' html=html+'Referencement detaille ici...

' else: html=html+'' exm2=oldmetas if rep.zwo_dossier.new_ref=="1": exm2=rep.zwo_dossier.metas exm=[] for el in exm2: if el<>'': exm.append(el) nl=0 np=0 for l in exm: nl=nl+1 dec=string.split(l,'!!') html=html+'\n' html=html+'\n' dec2=string.split(dec[0],'=') idr=dec2[1] for el in dec: np=np+1 dec2=string.split(el,'=') a=dec2[0] b='' if len(dec2)>1: b=dec2[1] html=html+'\n' html=html+'
Attribut Valeur
'+a+' 

\n' html=html+'
' prnt=prnt+context.zwo_bo.edition(zwu,pr,'page','Referencement',html) prnt=prnt+spe prnt=prnt+''+foot return prnt qTU Script_magicqUKUwarningsqV)UerrorsqW)U Python_magicqXU* qYu. j$9((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Upgsq Uicirepq Uicipagq U _getitem_q U_getitemqU _getattr_qU_getattrqUcontextqUmemqUzwoqUstringqUreplqUrepqUlenqUchqUllqUlUlpqUsUlchqUrUpUrolesqUcheckqU listrepinrepqU del_in_ordreqU init_ordreq U add_in_ordreq!Urangeq"Uitq#U co_argcountq$KubU_paramsq%Upgs,icirep,icipagq&Uidq'U deplaceokq(U__ac_local_roles__q)}q*Uxavq+]q,UOwnerq-asU_dav_writelocksq.(U lq/(U Persistenceq0UPersistentMappingq1tq2tq3QU _bind_namesq4(cShared.DC.Scripts.Bindings NameAssignments q5oq6}q7U_asgnsq8}q9(Uname_containerq:U containerq;U name_subpathqUscriptq?U name_contextq@UcontextqAusbU func_defaultsqBNU_codeqCTcsdZdS(Ncst}t}||tdd}||d} |td|d} | t | djo>x4|| dddr} ||qWn |td|d} g} g}x|dr}|td|d}||dd jo| }| }t |djoGx=||dddr!}|}|||}qmWn||d ||d ||d |nqW||d d (dEd}Ud}_d}w|xxtt |dxr}y|||||||djoz|||jo]|{td|||||||||||d|||gn}|||||||~|||||nqXW|||tdddddSdS(Nszwo_libsmem_dataszwo_objssplits*iis**sactionsappendsgetIds user_roles_idc st}||d}||d} |td|d}!xB|d!r5}"|djo#|jo $dSnnqTW%dSdS(Ns zwo_dossiersgroupes_editeursssplits&isi( s _getattr_s_getattrsrscfss_list_asstringslist_asasroles( srs _getattr_s_getattrscfss_list_asstringslist_asasroles(sroles(sScript (Python)schecks c s(t}t}||*|dddo:+|||dd},|td|d}n .g}0g}1x||ddd1r|} |2| dd o]3|| d d jo@4| d jo&|5|d || d nnnqW7g} 9xu|d9rh} :| |joR;| | j o=<||| d jo|=| d | nnnq0W?x>|d?r1} @| | j o|A| d | nqWC| SdS(Ns zwo_dossiers hasPropertysordressplits&s objectValuessFolderis type_zwooksdossierisappendsgetId( s _getitem_s_getitems _getattr_s_getattrsrepsordresstringslordreslistrepsrscheckslistpagesi( sreps _getitem_s_getitems _getattr_s_getattrsordresstringslordreslistrepsrscheckslistpagesi(scheck(sScript (Python)s listrepinrep(s(  '/ "#c sEt}F||ddd o)||G|dddddnH|||dd}I|td|d}Jd}KxU|d KrH} L| |jo2M|djoN|d}nO|| }nqW||P|dd d|dS( Ns zwo_dossiers hasPropertysordresmanage_addPropertyssstringssplits&ismanage_changeProperties( s _getattr_s_getattrsrepsrsordresstringslosnewososold( srsolds _getattr_s_getattrsrepsordresstringslosnewoso(srep(sScript (Python)s del_in_ordreEs )# c sUt}V|||ddd o)||W|dddddnXd}YxG|dYr4}Z|djo[|d}n\||}qpW||]|dd d|dS( Ns zwo_dossiers hasPropertysordresmanage_addPropertyssstringis&smanage_changeProperties(s _getattr_s_getattrsrsnewos listrepinrepsidr(srs _getattr_s_getattrsnewos listrepinrepsidr(s listrepinrep(sScript (Python)s init_ordreUs )# c s_t}`|||ddd o)||a|dddddnb|||dd}c|td|d}dd}ed } fx|d fr} g| |jo}h| |jo;id } j|djok|d}nl||}nm|djon|d}no|| }nqWp| d jo2q|djor|d}ns||}n||t|dd d|dS( Ns zwo_dossiers hasPropertysordresmanage_addPropertyssstringssplits&iismanage_changeProperties( s _getattr_s_getattrsrsordresstringslosnewosplsosoldsplace( srsoldsplaces _getattr_s_getattrsordresstringslosnewosplso((sScript (Python)s add_in_ordre_s* )#   iszwo_cpysmanage_delObjectssREQUESTsRESPONSEsredirects./(s _getitem_s_getitems _getattr_s_getattrscontextsmemszwosstringsicirepsreplsrepslenschspgssllslslpssslchsrspsrolesschecks listrepinreps del_in_ordres init_ordres add_in_ordresrangesisicipag(spgssicirepsicipags _getitem_s_getitems _getattr_s_getattrscontextsmemszwosstringsreplsrepslenschsllslslpssslchsrspsrolesschecks listrepinreps del_in_ordres init_ordres add_in_ordresrangesi((srolesschecksreps listrepinrepsScript (Python)s deplaceoksH* $    $ "   !;1)"-(s deplaceok(s deplaceok((sScript (Python)ssqDU_bodyqET mem=context.zwo_lib.mem_data() zwo=mem['zwo_obj'] repl=string.split(icirep,'*') rep=zwo if len(repl)>1: for ch in repl[1:]: rep=rep[ch] ll=string.split(pgs,'**') l=[] lp=[] for s in ll: lch=string.split(s,'*') if lch[0]<>'action': r=zwo p=zwo if len(lch)>1: for ch in lch[1:]: p=r r=r[ch] l.append(r.getId()) lp.append(p) roles=mem['user_roles_id'] def check(r): cf=r.zwo_dossier s_list_a=cf.groupes_editeurs list_a=string.split(s_list_a,'&') for a in list_a: if a<>'': if a in roles: return 1 return 0 def listrepinrep(rep): if rep.zwo_dossier.hasProperty('ordre'): ordre=rep.zwo_dossier.ordre lordre=string.split(ordre,'&') else: lordre=[] listrep=[] for r in rep.objectValues('Folder'): if r.hasProperty('type_zwook'): if r.type_zwook=="dossier": if check(r)==1: listrep.append(r.getId()) listpage=[] for i in lordre: if i in listrep: if not i in listpage: if check(rep[i])==1: listpage.append(i) for i in listrep: if not i in listpage: listpage.append(i) return listpage def del_in_ordre(r,old): if not rep.zwo_dossier.hasProperty('ordre'): r.zwo_dossier.manage_addProperty('ordre','','string') ordre=r.zwo_dossier.ordre lo=string.split(ordre,'&') newo='' for o in lo: if o<>old: if newo<>'': newo=newo+'&' newo=newo+o r.zwo_dossier.manage_changeProperties(ordre=newo) def init_ordre(r): if not r.zwo_dossier.hasProperty('ordre'): r.zwo_dossier.manage_addProperty('ordre','','string') newo='' for idr in listrepinrep(r): if newo<>'': newo=newo+'&' newo=newo+idr r.zwo_dossier.manage_changeProperties(ordre=newo) def add_in_ordre(r,old,place): if not r.zwo_dossier.hasProperty('ordre'): r.zwo_dossier.manage_addProperty('ordre','','string') ordre=r.zwo_dossier.ordre lo=string.split(ordre,'&') newo='' pl=0 for o in lo: if o<>old: if o==place: pl=1 if newo<>'': newo=newo+'&' newo=newo+old if newo<>'': newo=newo+'&' newo=newo+o if pl==0: if newo<>'': newo=newo+'&' newo=newo+old r.zwo_dossier.manage_changeProperties(ordre=newo) init_ordre(rep) for i in range(len(l)): if check(lp[i][l[i]])+check(rep)==2: if rep<>lp[i]: context.zwo_cpy(lp[i],rep,l[i]) lp[i].manage_delObjects([l[i]]) del_in_ordre(lp[i],l[i]) add_in_ordre(rep,l[i],icipag) context.REQUEST.RESPONSE.redirect('./') return qFU Script_magicqGKUwarningsqH)UerrorsqI)U Python_magicqJU* qKu. j $((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Uactionq U _getattr_q U_getattrq U_print_q U_printqUcontextqUmemqUprqUdicoqUpgokqUkUstringqUpgsqtqU co_argcountqKubU_paramsqUactionqUidqU valid_selqU__ac_local_roles__q}qUxavq]qUOwnerq asU_dav_writelocksq!(U lq"(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_subpathq0U name_contextq1Ucontextq2U name_m_selfq3Uscriptq4usbU func_defaultsq5NU_codeq6T{csdZdS(Nc st}t}||tdd}||tdd}||tdd}g}  x5||dd r} | | d | qW |t d | d } |d jo ||td | IJn|djo ||td| IJn|djo ||td| IJn|djo ||td| IJn|SdS(Nszwo_libsmem_dataszwo_bos presentationsREQUESTsformskeysisappendsjoins**sdeplacesdeplacer_pagessdetruiresdetruire_pagess dupliquersdupliquer_pagessrenommersrenommer_pages( s _getattr_s_getattrs_print_s_printscontextsmemsprsdicospgoksksstringspgssaction( sactions _getattr_s_getattrs_print_s_printscontextsmemsprsdicospgoksksstringspgs((sScript (Python)s valid_sels- $    (s valid_sel(s valid_sel((sScript (Python)ssq7U_bodyq8Tmem=context.zwo_lib.mem_data() pr=context.zwo_bo.presentation() dico=context.REQUEST.form pgok=[] for k in dico.keys(): pgok.append(k) pgs=string.join(pgok, '**') if action=='deplace': print context.deplacer_pages(pgs) if action=='detruire': print context.detruire_pages(pgs) if action=='dupliquer': print context.dupliquer_pages(pgs) if action=='renommer': print context.renommer_pages(pgs) return printed q9U Script_magicq:KUwarningsq;)Uerrorsq<)U Python_magicq=U* q>u. jC((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_getattrqUcontextqUmemqUprqUzwuqUzwuiqUuoqUboxqUrollqUroll2qUroll3qUheadqUspmqUmidqUspeqUfootqUprntqUtitreq Uhtmlq!Uswcq"Uswciq#Uszcoq$U affiche_arboq%Ucfarboq&Urolesq'Ucheckq(U listrepinrepq)UTTq*UTUrepq+tq,U co_argcountq-KubU_paramsq.UUidq/Urefersq0U__ac_local_roles__q1}q2Uxavq3]q4UOwnerq5asU_dav_writelocksq6(U lq7(U Persistenceq8UPersistentMappingq9tq:tq;QU _bind_namesq<(cShared.DC.Scripts.Bindings NameAssignments q=oq>}q?U_asgnsq@}qA(Uname_containerqBU containerqCU name_subpathqDUtraverse_subpathqEU name_contextqFUcontextqGU name_m_selfqHUscriptqIusbU func_defaultsqJNU_codeqKT'csdZdS(Nc##s,t}t}t}||tdd}||tdd}||d} | d} ||d} dg} || d d o || d } n | ||d < d } d }%d}9||tdd||dd\}}}}};|}?d||dd}@|||tdd| |d|}A||}Dd}Fd}H|| dd| d| d}I|d||dd}J|d }K|| d!d"| d#| d$}L|d%||dd}M|d&}O|d'}Q|||tdd| |d||}R||}U||}Yd(ad)jd*ld+}d,}|||tdd-| |d.d/|}||}dg|| d d0o|| d0n||d1d2d3d4g}!||d5}"|!|"d6d}!|||!}|||tdd-| |d7d8|}||}||}|SdS(9Nszwo_libsmem_dataszwo_bos presentationszwo_urls/zwo_images/bo/s user_zw_objss hasPropertys configboxsboxcs d|d}|d|d|d}|d}|d|d|d}|d}|d|d}|d}|djo|d }n|d |d |d }|SdS( Ns (surlsrettsnomsrolsimg(snomsurlsimgsrolsrett((sScript (Python)sroll s   csd|d}|d|d|d}|d}|d|d|d}|d} |d|d}!|d}"|d|d |d }#|SdS( Ns(sactionsrettsnomsrolsimg(snomsactionsimgsrolsrett((sScript (Python)sroll2s   cs#%&d}'d}(|djo)d|d}*d}n+d|d|d},|d|d |d}-|d |d}.|d|d |d}/|d }0|d|d}1|d }2|d jo3|d}n4|d|d|d}5|SdS(Nss poplink('s');s killlink();s (shlptxtshlptxt2shelpsurlsrettsnomsrolsimg(snomsurlsimgsrolshelpshlptxtshlptxt2srett((sScript (Python)sroll3%s      sautoursarbosGestion des pagessRETOUR PAGESsmenusnavs OPTIONS PAGESssgodroitsdroitssrond_droit.gifsr_rond_droit.gifss! Configurer les droits.
sgoskinsskinss rond_skin.gifsr_rond_skin.gifsis?s7s,ss0is,s s*s
 s s
(s_print_s_printsdfsamaxstabsasbsiscsswcsszcosrangesaasstrscisswciscspnsii(stabs_print_s_printsdfsamaxsasbsiscsswcsszcosrangesaasstrscisswciscspnsii(sswcisszcosswc(sScript (Python)s affiche_arbolsX       3 )  ) 1 ) s8 Choisissez la page que vous souhaitez rfrencer
seditionsinfos INFORMATIONs configarbos user_roles_idc st}||d}||d}|td|d}xB|dr5}|djo|jo dSnnqTWdSdS(Ns zwo_dossiersgroupes_editeursssplits&isi( s _getattr_s_getattrsrscfss_list_asstringslist_asasroles( srs _getattr_s_getattrscfss_list_asstringslist_asasroles(sroles(sScript (Python)schecks c st}t}|||dddo:|||dd}|td|d}n g}g}x||dddr|} || dd o]|| d d jo@| d jo&||d || d nnnqWg} xu|drh} | |joR| | j o=||| d jo|| d | nnnq0Wx>|dr1} | | j o|| d | nqW| SdS(Ns zwo_dossiers hasPropertysordressplits&s objectValuessFolderis type_zwooksdossierisappendsgetId( s _getitem_s_getitems _getattr_s_getattrsrepsordresstringslordreslistrepsrscheckslistpagesi( sreps _getitem_s_getitems _getattr_s_getattrsordresstringslordreslistrepsrscheckslistpagesi(scheck(sScript (Python)s listrepinreps(  '/ "#csDt}t}||d}|djo!|d||d}n||d}d} |||dddo|||dddjo d} nd |d ||d d | } |} t | d joD|djo#||d|| d fn|Sndt|d|}|joD|djo#||d|| dfn|Sn|djo#||d|| dfnx8| d r+}|||||d|}qW|SdS(NsgetIdss*s zwo_dossiers hasPropertysnew_refs1s [Referencement detaille]s
s title_or_idsiisappendsclos_s_i(s _getitem_s_getitems _getattr_s_getattrsrsnschsrefactusts listrepinrepslistrepslenscheckstabsisstrsncfscfarbosidrsTT(stabsrsischs _getitem_s_getitems _getattr_s_getattrsnsrefactusts listrepinrepslistrepslenschecksstrsncfscfarbosidrsTT(schecks listrepinrepsTTscfarbo(sScript (Python)sTTs.!; )     )szwo_objispagesREFERENCEMENT DES PAGES(#s_write_s_writes _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwuszwuisuosboxsrollsroll2sroll3sheadsspmsmidsspesfootsprntstitreshtmlsswcsswcisszcos affiche_arboscfarbosrolesschecks listrepinrepsTTsTsrep(#s_write_s_writes _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwuszwuisuosboxsrollsroll2sroll3sheadsspmsmidsspesfootsprntstitreshtmlsswcsswcisszcos affiche_arboscfarbosrolesschecks listrepinrepsTTsTsrep((schecksswcsTTscfarbosroless listrepinrepsswcisszcosScript (Python)sreferssd0  9 .   $ $  1    9 1   1  (srefers(srefers((sScript (Python)ssqLU_bodyqMTmem=context.zwo_lib.mem_data() pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] zwui=zwu+'/zwo_images/bo/' uo=mem['user_zw_obj'] box=[''] if uo.hasProperty('configbox'): box=uo.configbox pr['box']=box def roll(nom,url,img,rol): rett='' return rett def roll2(nom,action,img,rol): rett='' return rett def roll3(nom,url,img,rol,help): hlptxt='' hlptxt2='' if help<>'': hlptxt=' poplink(\''+help+'\');' hlptxt2='killlink();' rett='' return rett # AFFICHAGE DU BANDEAU HAUT (head,spm,mid,spe,foot)=context.zwo_bo.autour(mem,pr,'arbo','Gestion des pages') prnt=head # AFFICHAGE DES CASE DE LA COLONNE (menus) titre='RETOUR PAGES' prnt=prnt+context.zwo_bo.menu(zwu,pr,'nav',titre) prnt=prnt+spm # MENU ACTION PAGES titre ="OPTIONS PAGES" html='' html=html+roll('godroit',"droits",zwui+'rond_droit.gif',zwui+'r_rond_droit.gif') html=html+'' html=html+' Configurer les droits.
' html=html+roll('goskin',"skins",zwui+'rond_skin.gif',zwui+'r_rond_skin.gif') html=html+'' html=html+' Configurer les skins.
' html=html+'
' prnt=prnt+context.zwo_bo.menu(zwu,pr,'nav',titre,html) prnt=prnt+spm prnt=prnt+mid # AFFICHAGE DES ZONES LARGES (editions) def swc(c): c1="#FFFFFF" c2="#cccccc" if c==c1: return c2 else: return c1 def swci(c): c1="#eeeeee" c2="#dddddd" if c==c1: return c2 else: return c1 szco="20" def affiche_arbo(tab): df='' amax=0 for (a,b,i) in tab: if a>amax: amax=a print '' print '' print '' c='' c=swc(c) print '' for aa in range(amax+1): c=swc(c) print '' c=swc(c) c='' c=swc(c) print '' for aa in range(amax+1): c=swc(c) print '' c=swc(c) ci='' for (a,b,i) in tab: ci=swci(ci) c='' c=swc(c) print '' for aa in range(a): c=swc(c) print '' cspn=str(1+amax-a) ii='' c=swc(c) print '' c='' c=swc(c) print '' for aa in range(amax+1): c=swc(c) print '' c=swc(c) print '
 '+df+str(aa)+'
 '+df+' 
 '+df+' '+df+b+ii+'
 '+df+' 
' return printed # EDITION INFORMATION html = """ Choisissez la page que vous souhaitez rfrencer
""" prnt=prnt+context.zwo_bo.edition(zwu,pr,'info','INFORMATION',html) prnt=prnt+spe cfarbo=[''] if uo.hasProperty('configarbo'): cfarbo=uo.configarbo roles=mem['user_roles_id'] def check(r): cf=r.zwo_dossier s_list_a=cf.groupes_editeurs list_a=string.split(s_list_a,'&') for a in list_a: if a<>'': if a in roles: return 1 return 0 def listrepinrep(rep): if rep.zwo_dossier.hasProperty('ordre'): ordre=rep.zwo_dossier.ordre lordre=string.split(ordre,'&') else: lordre=[] listrep=[] for r in rep.objectValues('Folder'): if r.hasProperty('type_zwook'): if r.type_zwook=="dossier": if check(r)==1: listrep.append(r.getId()) listpage=[] for i in lordre: if i in listrep: if not i in listpage: if check(rep[i])==1: listpage.append(i) for i in listrep: if not i in listpage: listpage.append(i) return listpage def TT(tab,r,i,ch): n=r.getId() if ch<>'': ch=ch+'*'+r.getId() else: ch=r.getId() refactu='' if r.zwo_dossier.hasProperty('new_ref') and r.zwo_dossier.new_ref=="1": refactu = ' [Referencement detaille]' t=''+r.title_or_id()+''+refactu listrep=listrepinrep(r) if len(listrep)==0: if check(r)==1: tab.append((i,t,0)) return tab ncf='clos_'+str(i)+'_'+n if ncf in cfarbo: if check(r)==1: tab.append((i,t,1)) return tab if check(r)==1: tab.append((i,t,2)) for idr in listrep: tab=TT(tab,r[idr],i+1,ch) return tab T=[] rep=mem['zwo_obj'] T=TT(T,rep,0,'') html=html+affiche_arbo(T) prnt=prnt+context.zwo_bo.edition(zwu,pr,'page','REFERENCEMENT DES PAGES',html) prnt=prnt+spe prnt=prnt+foot return prnt qNU Script_magicqOKUwarningsqP)UerrorsqQ)U Python_magicqRU* qSu. jt((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (U parentpageq Unompageq U _getitem_q U_getitemq U _getattr_qU_getattrqUcontextqUmemqUrepqUstringqUlppqUlenqUrangeqUiUnomzqUrolesqUcheckqUobjqUobj2qUltqU co_argcountqKubU_paramsqUparentpage,nompageqUidq U insertpageokq!U__ac_local_roles__q"}q#Uxavq$]q%UOwnerq&asU_dav_writelocksq'(U lq((U Persistenceq)UPersistentMappingq*tq+tq,QU _bind_namesq-(cShared.DC.Scripts.Bindings NameAssignments q.oq/}q0U_asgnsq1}q2(Uname_containerq3U containerq4U name_subpathq5Utraverse_subpathq6U name_m_selfq7Uscriptq8U name_contextq9Ucontextq:usbU func_defaultsq;NU_codeqNom dja utilis !!!s user_roles_idc st}||d}||d}|td|d}xB|dr5}|djo|jo dSnnqTWdSdS(Ns zwo_dossiersgroupes_editeursssplits&isi( s _getattr_s_getattrsrscfss_list_asstringslist_asasroles( srs _getattr_s_getattrscfss_list_asstringslist_asasroles(sroles(sScript (Python)schecks snonsmanage_addFoldersmanage_addPropertys type_zwooksdossiersstrings zwo_dossiersinformation du dossierssystemsdatasnew_skins0sskins new_droitssgroupes_visiteurssgroupes_editeurssordressnew_refsmetasslinessappendsdPT:T1:hauteur=/largeur=/marge=/cadre=/couleurcadre=/couleurfond=/couleurtexte=/align=left/valign=topsCT:T1:C1sqPC:C1:couleurcadre=/hauteur=/couleurfond=/valign=/marge=/cadre=/couleurtexte=/largeur=/align=/colspan=1/rowspan=1sCC:C1:stableauxsREQUESTsRESPONSEsredirects./(s _getitem_s_getitems _getattr_s_getattrscontextsmemsrepsstrings parentpageslppslensrangesisnompagesnomzsrolesschecksobjsobj2sl(s parentpagesnompages _getitem_s_getitems _getattr_s_getattrscontextsmemsrepsstringslppslensrangesisnomzsrolesschecksobjsobj2sl((srolessScript (Python)s insertpageoksF*%'!  ...+ "(s insertpageok(s insertpageok((sScript (Python)ssq=U_bodyq>Tmem=context.zwo_lib.mem_data() rep=mem['zwo_obj'] lpp=string.split(parentpage,'*') if len(lpp)>1: for i in range(len(lpp)-1): rep=rep[lpp[i+1]] nomz=context.zwo_lib.mix_id_zope(nompage) if nomz in rep.objectIds(): return 'Nom dja utilis !!!' roles=mem['user_roles_id'] def check(r): cf=r.zwo_dossier s_list_a=cf.groupes_editeurs list_a=string.split(s_list_a,'&') for a in list_a: if a<>'': if a in roles: return 1 return 0 if check(rep)<>1: return 'non' rep.manage_addFolder(nomz,nompage) obj=rep[nomz] obj.manage_addProperty('type_zwook','dossier','string') obj.manage_addFolder('zwo_dossier','information du dossier') obj2=obj['zwo_dossier'] obj2.manage_addProperty('type_zwook','system','string') obj2.manage_addProperty('system','data','string') obj2.manage_addProperty('new_skin','0','string') obj2.manage_addProperty('skin',rep.zwo_dossier.skin,'string') obj2.manage_addProperty('new_droits','0','string') obj2.manage_addProperty('groupes_visiteurs',rep.zwo_dossier.groupes_visiteurs,'string') obj2.manage_addProperty('groupes_editeurs',rep.zwo_dossier.groupes_editeurs,'string') obj2.manage_addProperty('ordre','','string') obj2.manage_addProperty('new_ref','0','string') obj2.manage_addProperty('metas',rep.zwo_dossier.metas,'lines') l=[] l.append('PT:T1:hauteur=/largeur=/marge=/cadre=/couleurcadre=/couleurfond=/couleurtexte=/align=left/valign=top') l.append('CT:T1:C1') l.append('PC:C1:couleurcadre=/hauteur=/couleurfond=/valign=/marge=/cadre=/couleurtexte=/largeur=/align=/colspan=1/rowspan=1') l.append('CC:C1:') obj2.manage_addProperty('tableaux',l,'lines') context.REQUEST.RESPONSE.redirect('./') return q?U Script_magicq@KUwarningsqA)UerrorsqB)U Python_magicqCU* qDu. jP((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Urpq Unewrefq U _getitem_q U_getitemq U _getattr_qU_getattrqUcontextqUmemqU containerqUurlqUzwoqUrepqUstringqUreplqUoldskinqUlenqUchqUoldmetsqUdicoqUmtokqUllqUll2qUkUdecq Uintq!Unewmetsq"UlUl2q#UaUbUsUvUstrq$U affectemetasq%Urolesq&Ucheckq'Unsq(tq)U co_argcountq*KubU_paramsq+U rp,newrefq,Uidq-Urefokq.U__ac_local_roles__q/}q0Uxavq1]q2UOwnerq3asU_dav_writelocksq4(U lq5(U Persistenceq6UPersistentMappingq7tq8tq9QU _bind_namesq:(cShared.DC.Scripts.Bindings NameAssignments q;oq<}q=U_asgnsq>}q?(Uname_containerq@U containerqAU name_subpathqBUtraverse_subpathqCU name_contextqDUcontextqEU name_m_selfqFUscriptqGusbU func_defaultsqHNU_codeqIT csdZdS(Nc%st}t}||tdd}||tdd} ||d} | } |t d|d}  d} t| d joY xO|| d dd  r3} ||| d d } || |} qWn||tdd }g}g}g}xD||dd r+}||d ddjo|t d||ddd}||d||d ||d ||d|||ft||d |j o)||dt||d nt||d |j o)||dt||d nnqAWg}||d||d!x|d !r}"d}#x|d #r}$x|d $ru\}}}}%t||jot||jo:&|djo'|d}n(||d|}nqWqW|)|d|qW+d2||d3d}#=|#| d jo>|djo??d}$||@| d dd|$A| |n<Cd}$||D| d dd|$E| |n|||Gtddd d!HdSdS("Nszwo_libsmem_datasREQUESTsURLszwo_objssplits*siis zwo_dossiersmetassformskeysismeta_s_sappendissorts!!s=c s+t}||,|ddd|-x||dd-ro}|.|ddo||ddjo:/|||dd d jo0||nnqCWdS( Ns zwo_dossiersmanage_changePropertiessmetass objectValuesis hasPropertys type_zwooksdossiersnew_refs0(s _getattr_s_getattrsrsmetssreps affectemetas(srsmetss _getattr_s_getattrsreps affectemetas(s affectemetas(sScript (Python)s affectemetas+s $,"s user_roles_idc s3t}4||d}5||d}6|td|d}7xB|d7r5}8|djo9|jo :dSnnqTW;dSdS(Ns zwo_dossiersgroupes_editeursssplits&isi( s _getattr_s_getattrsrscfss_list_asstringslist_asasroles( srs _getattr_s_getattrscfss_list_asstringslist_asasroles(sroles(sScript (Python)scheck3s sNOs0smanage_changePropertiessnew_refs1sRESPONSEsredirects./refers(%s _getitem_s_getitems _getattr_s_getattrscontextsmems containersurlszwosrepsstringsrpsreplsoldskinslenschsoldmetssdicosmtoksllsll2sksdecsintsnewmetsslsl2sasbsssvsstrs affectemetassrolesschecksnewrefsns(%srpsnewrefs _getitem_s_getitems _getattr_s_getattrscontextsmems containersurlszwosrepsstringsreplsoldskinslenschsoldmetssdicosmtoksllsll2sksdecsintsnewmetsslsl2sasbsssvsstrs affectemetassrolesschecksns((s affectemetassrolessScript (Python)srefoks\*  $   !-C#&#.  !)$ (srefok(srefok((sScript (Python)ssqJU_bodyqKTmem=context.zwo_lib.mem_data() url=container.REQUEST.URL zwo=mem['zwo_obj'] rep=zwo repl=string.split(rp,'*') oldskin='' if len(repl)>1: for ch in repl[1:]: oldmets=rep.zwo_dossier.metas rep=rep[ch] dico=context.REQUEST.form mtok=[] ll=[] ll2=[] for k in dico.keys(): if k[0:5]=='meta_': dec=string.split(k[5:],'_') mtok.append((dec[0],dec[1],dec[2],dico[k])) if not int(dec[0]) in ll: ll.append(int(dec[0])) if not int(dec[1]) in ll2: ll2.append(int(dec[1])) newmets=[] ll.sort() ll2.sort() for l in ll: ch='' for l2 in ll2: for (a,b,s,v) in mtok: if str(l)==a and str(l2)==b: if ch<>'': ch=ch+'!!' ch=ch+s+'='+v newmets.append(ch) def affectemetas(r,mets): r.zwo_dossier.manage_changeProperties(metas=mets) for rep in r.objectValues(): if rep.hasProperty('type_zwook') and rep.type_zwook=='dossier': if rep.zwo_dossier.new_ref=="0": affectemetas(rep,mets) roles=mem['user_roles_id'] def check(r): cf=r.zwo_dossier s_list_a=cf.groupes_editeurs list_a=string.split(s_list_a,'&') for a in list_a: if a<>'': if a in roles: return 1 return 0 if check(rep)==1: if newref=='NO': ns="0" rep.zwo_dossier.manage_changeProperties(new_ref=ns) affectemetas(rep,oldmets) else: ns="1" rep.zwo_dossier.manage_changeProperties(new_ref=ns) affectemetas(rep,newmets) context.REQUEST.RESPONSE.redirect('./refers') return qLU Script_magicqMKUwarningsqN)UerrorsqO)U Python_magicqPU* qQu. j -((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Upgsq U _getitem_q U_getitemq U _getattr_q U_getattrqUcontextqUmemqUzwoqUstringqUllqUlUlpqUrolesqUcheckqUsUlchqUrUpUlenqUchqUrangeqUitqU co_argcountqKubU_paramsqUpgsqUidqU detruireokq U__ac_local_roles__q!}q"Uxavq#]q$UOwnerq%asU_dav_writelocksq&(U lq'(U Persistenceq(UPersistentMappingq)tq*tq+QU _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;TcsdZdS(Ncs:t}t}||tdd}||d}|td|d} g} g}  ||d d} x| dr}|td|d }||dd jo|}|}t|d joGx=||d ddr!}|}|||}qWn|| d ||d || d |nqW xtt| d rf}!| ||| ||| |d jo/||"| |d|| |gnqW|||$tdddd&dSdS(Nszwo_libsmem_dataszwo_objssplits**s user_roles_idc s t} ||d} ||d} |td|d}xB|dr5}|djo|jo dSnnqTWdSdS(Ns zwo_dossiersgroupes_editeursssplits&isi( s _getattr_s_getattrsrscfss_list_asstringslist_asasroles( srs _getattr_s_getattrscfss_list_asstringslist_asasroles(sroles(sScript (Python)scheck s is*sactionisappendsgetIdsmanage_delObjectssREQUESTsRESPONSEsredirects./(s _getitem_s_getitems _getattr_s_getattrscontextsmemszwosstringspgssllslslpsrolesscheckssslchsrspslenschsrangesi(spgss _getitem_s_getitems _getattr_s_getattrscontextsmemszwosstringsllslslpsrolesscheckssslchsrspslenschsrangesi((srolessScript (Python)s detruireoks,*     $ "!76(s detruireok(s detruireok((sScript (Python)ssq'': if a in roles: return 1 return 0 for s in ll: lch=string.split(s,'*') if lch[0]<>'action': r=zwo p=zwo if len(lch)>1: for ch in lch[1:]: p=r r=r[ch] l.append(r.getId()) lp.append(p) for i in range(len(l)): if check(lp[i][l[i]])==1: lp[i].manage_delObjects([l[i]]) context.REQUEST.RESPONSE.redirect('./') return q>U Script_magicq?KUwarningsq@)UerrorsqA)U Python_magicqBU* qCu. jC((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_getattrqUcontextqUmemqUprqUzwuqUzwuiqUuoqUboxqUrollqUroll2qUroll3qUheadqUspmqUmidqUspeqUfootqUprntqUtitreq Uhtmlq!Uswcq"Uswciq#Uszcoq$U affiche_arboq%Ucfarboq&Urolesq'Ucheckq(U listrepinrepq)UTTq*UTUrepq+tq,U co_argcountq-KubU_paramsq.UUidq/Uskinsq0U__ac_local_roles__q1}q2Uxavq3]q4UOwnerq5asU_dav_writelocksq6(U lq7(U Persistenceq8UPersistentMappingq9tq:tq;QU _bind_namesq<(cShared.DC.Scripts.Bindings NameAssignments q=oq>}q?U_asgnsq@}qA(Uname_containerqBU containerqCU name_subpathqDUtraverse_subpathqEU name_contextqFUcontextqGU name_m_selfqHUscriptqIusbU func_defaultsqJNU_codeqKT'csdZdS(Nc##s,t}t}t}||tdd}||tdd}||d} | d} ||d} dg} | | d d o || d } n | ||d <d } d }&d}:||tdd||dd\}}}}}<|}@d||dd}A|||tdd| |d|}B||}Ed}Gd}I|| dd| d| d}J|d||dd}K|d }L|| d!d"| d#| d$}M|d%||dd}N|d&}P|d'}R|||tdd| |d||}S||}V||}Zd(bd)kd*md+}d,}|||tdd-| |d.d/|}||}dg|| d d0o|| d0n||d1d2d3d4g}!||d5}"|!|"d6d}!|||!}|||tdd-| |d7d8|}||}||}|SdS(9Nszwo_libsmem_dataszwo_bos presentationszwo_urls/zwo_images/bo/s user_zw_objss hasPropertys configboxsboxcsd|d}|d|d|d}|d}|d|d|d}|d}|d|d}|d}|djo|d }n|d |d |d }|SdS( Ns (surlsrettsnomsrolsimg(snomsurlsimgsrolsrett((sScript (Python)srolls   csd|d}|d|d|d}|d}|d|d|d} |d}!|d|d}"|d}#|d|d |d }$|SdS( Ns(sactionsrettsnomsrolsimg(snomsactionsimgsrolsrett((sScript (Python)sroll2s   cs#&'d}(d})|djo*d|d}+d}n,d|d|d}-|d|d |d}.|d |d}/|d|d |d}0|d }1|d|d}2|d }3|d jo4|d}n5|d|d|d}6|SdS(Nss poplink('s');s killlink();s (shlptxtshlptxt2shelpsurlsrettsnomsrolsimg(snomsurlsimgsrolshelpshlptxtshlptxt2srett((sScript (Python)sroll3&s      sautoursarbosGestion des pagessRETOUR PAGESsmenusnavs OPTIONS PAGESssgodroitsdroitssrond_droit.gifsr_rond_droit.gifss! Configurer les droits.
sgorefersreferssrond_refer.gifsr_rond_refer.gifsis?s7s,ss0is,s s*s
 s s
(s_print_s_printsdfsamaxstabsasbsiscsswcsszcosrangesaasstrscisswciscspnsii(stabs_print_s_printsdfsamaxsasbsiscsswcsszcosrangesaasstrscisswciscspnsii(sswcisszcosswc(sScript (Python)s affiche_arbomsX       3 )  ) 1 ) sK Choisissez la page laquelle vous voulez appliquer un nouveau skin
seditionsinfos INFORMATIONs configarbos user_roles_idc st}||d}||d}|td|d}xB|dr5}|djo|jo dSnnqTWdSdS(Ns zwo_dossiersgroupes_editeursssplits&isi( s _getattr_s_getattrsrscfss_list_asstringslist_asasroles( srs _getattr_s_getattrscfss_list_asstringslist_asasroles(sroles(sScript (Python)schecks c st}t}|||dddo:|||dd}|td|d}n g}g}x||dddr|} || dd o]|| d d jo@| d jo&||d || d nnnqWg} xu|drh} | |joR| | j o=||| d jo|| d | nnnq0Wx>|dr1} | | j o|| d | nqW| SdS(Ns zwo_dossiers hasPropertysordressplits&s objectValuessFolderis type_zwooksdossierisappendsgetId( s _getitem_s_getitems _getattr_s_getattrsrepsordresstringslordreslistrepsrscheckslistpagesi( sreps _getitem_s_getitems _getattr_s_getattrsordresstringslordreslistrepsrscheckslistpagesi(scheck(sScript (Python)s listrepinreps(  '/ "#cs^t}t}||d}|djo!|d||d}n||d}d} |||dddo|||dddjo'd|||dd d } nd |d ||d d| } |} t | djoD|djo#||d|| dfn|Sndt|d|}|joD|djo#||d|| dfn|Sn|djo#||d|| dfnx8| dr+}|||||d|}q!W|SdS(NsgetIdss*s zwo_dossiers hasPropertysnew_skins1s [sskins]s
s title_or_idsiisappendsclos_s_i(s _getitem_s_getitems _getattr_s_getattrsrsnschsskactusts listrepinrepslistrepslenscheckstabsisstrsncfscfarbosidrsTT(stabsrsischs _getitem_s_getitems _getattr_s_getattrsnsskactusts listrepinrepslistrepslenschecksstrsncfscfarbosidrsTT(schecks listrepinrepsTTscfarbo(sScript (Python)sTTs.!;')     )szwo_objispagesSKINS DES PAGES(#s_write_s_writes _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwuszwuisuosboxsrollsroll2sroll3sheadsspmsmidsspesfootsprntstitreshtmlsswcsswcisszcos affiche_arboscfarbosrolesschecks listrepinrepsTTsTsrep(#s_write_s_writes _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwuszwuisuosboxsrollsroll2sroll3sheadsspmsmidsspesfootsprntstitreshtmlsswcsswcisszcos affiche_arboscfarbosrolesschecks listrepinrepsTTsTsrep((schecksswcsTTscfarbosroless listrepinrepsswcisszcosScript (Python)sskinssd0  9 .   $ $  1    9 1   1  (sskins(sskins((sScript (Python)ssqLU_bodyqMT&mem=context.zwo_lib.mem_data() pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] zwui=zwu+'/zwo_images/bo/' uo=mem['user_zw_obj'] box=[''] if uo.hasProperty('configbox'): box=uo.configbox pr['box']=box def roll(nom,url,img,rol): rett='' return rett def roll2(nom,action,img,rol): rett='' return rett def roll3(nom,url,img,rol,help): hlptxt='' hlptxt2='' if help<>'': hlptxt=' poplink(\''+help+'\');' hlptxt2='killlink();' rett='' return rett # AFFICHAGE DU BANDEAU HAUT (head,spm,mid,spe,foot)=context.zwo_bo.autour(mem,pr,'arbo','Gestion des pages') prnt=head # AFFICHAGE DES CASE DE LA COLONNE (menus) titre='RETOUR PAGES' prnt=prnt+context.zwo_bo.menu(zwu,pr,'nav',titre) prnt=prnt+spm # MENU ACTION PAGES titre ="OPTIONS PAGES" html='' html=html+roll('godroit',"droits",zwui+'rond_droit.gif',zwui+'r_rond_droit.gif') html=html+'' html=html+' Configurer les droits.
' html=html+roll('gorefer',"refers",zwui+'rond_refer.gif',zwui+'r_rond_refer.gif') html=html+'' html=html+' Meta et rfrencement.
' html=html+'
' prnt=prnt+context.zwo_bo.menu(zwu,pr,'nav',titre,html) prnt=prnt+spm prnt=prnt+mid # AFFICHAGE DES ZONES LARGES (editions) def swc(c): c1="#FFFFFF" c2="#cccccc" if c==c1: return c2 else: return c1 def swci(c): c1="#eeeeee" c2="#dddddd" if c==c1: return c2 else: return c1 szco="20" def affiche_arbo(tab): df='' amax=0 for (a,b,i) in tab: if a>amax: amax=a print '' print '' print '' c='' c=swc(c) print '' for aa in range(amax+1): c=swc(c) print '' c=swc(c) c='' c=swc(c) print '' for aa in range(amax+1): c=swc(c) print '' c=swc(c) ci='' for (a,b,i) in tab: ci=swci(ci) c='' c=swc(c) print '' for aa in range(a): c=swc(c) print '' cspn=str(1+amax-a) ii='' c=swc(c) print '' c='' c=swc(c) print '' for aa in range(amax+1): c=swc(c) print '' c=swc(c) print '
 '+df+str(aa)+'
 '+df+' 
 '+df+' '+df+b+ii+'
 '+df+' 
' return printed # EDITION INFORMATION html = """ Choisissez la page laquelle vous voulez appliquer un nouveau skin
""" prnt=prnt+context.zwo_bo.edition(zwu,pr,'info','INFORMATION',html) prnt=prnt+spe cfarbo=[''] if uo.hasProperty('configarbo'): cfarbo=uo.configarbo roles=mem['user_roles_id'] def check(r): cf=r.zwo_dossier s_list_a=cf.groupes_editeurs list_a=string.split(s_list_a,'&') for a in list_a: if a<>'': if a in roles: return 1 return 0 def listrepinrep(rep): if rep.zwo_dossier.hasProperty('ordre'): ordre=rep.zwo_dossier.ordre lordre=string.split(ordre,'&') else: lordre=[] listrep=[] for r in rep.objectValues('Folder'): if r.hasProperty('type_zwook'): if r.type_zwook=="dossier": if check(r)==1: listrep.append(r.getId()) listpage=[] for i in lordre: if i in listrep: if not i in listpage: if check(rep[i])==1: listpage.append(i) for i in listrep: if not i in listpage: listpage.append(i) return listpage def TT(tab,r,i,ch): n=r.getId() if ch<>'': ch=ch+'*'+r.getId() else: ch=r.getId() skactu='' if r.zwo_dossier.hasProperty('new_skin') and r.zwo_dossier.new_skin=="1": skactu = ' ['+r.zwo_dossier.skin+']' t=''+r.title_or_id()+''+skactu listrep=listrepinrep(r) if len(listrep)==0: if check(r)==1: tab.append((i,t,0)) return tab ncf='clos_'+str(i)+'_'+n if ncf in cfarbo: if check(r)==1: tab.append((i,t,1)) return tab if check(r)==1: tab.append((i,t,2)) for idr in listrep: tab=TT(tab,r[idr],i+1,ch) return tab T=[] rep=mem['zwo_obj'] T=TT(T,rep,0,'') html=html+affiche_arbo(T) prnt=prnt+context.zwo_bo.edition(zwu,pr,'page','SKINS DES PAGES',html) prnt=prnt+spe prnt=prnt+foot return prnt qNU Script_magicqOKUwarningsqP)UerrorsqQ)U Python_magicqRU* qSu. j((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Urpq U_write_q U_writeq U _getitem_q U_getitemqU _getattr_qU_getattrqUcontextqUmemqUprqUzwuqUuoqUboxqUheadqUspmqUmidqUspeqUfootqUprntqUtitreqUhtmlqUzwoqUstringq Ureplq!Urepq"Ulenq#Uchq$Us1q%Us2q&U nonvisibleq'Ulv1q(Ulvq)Ule1q*Uleq+Urepgrq,UgUcvq-Uceq.Urepskinsq/tq0U co_argcountq1KubU_paramsq2Urpq3Uidq4U change_droitq5U__ac_local_roles__q6}q7Uxavq8]q9UOwnerq:asU_dav_writelocksq;(U lq<(U Persistenceq=UPersistentMappingq>tq?tq@QU _bind_namesqA(cShared.DC.Scripts.Bindings NameAssignments qBoqC}qDU_asgnsqE}qF(Uname_containerqGU containerqHU name_subpathqIUtraverse_subpathqJU name_m_selfqKUscriptqLU name_contextqMUcontextqNusbU func_defaultsqONU_codeqPTcsdZdS(Nc' s5t}t}t}||tdd}||tdd} ||d} ||d} dg} || dd o|| d } n | || d < ||tdd || d d \} }}}}| }d|| dd}|||tdd| | d|}||}||}d}|||tdd| | dd|} ||}$||d}&|td|d}'|}(t|djo>)x4||ddd)r}*|||}qWn,d}-|d|d}/d}0d}1|||dd d!jo 2d"}n 4d"}6|d#jo.7|d$|d%}8|d&|d'}n:|d(}=d)g}>|||dd*}?|td|d+}A|||dd,} B|td| d+}!D||td-d.}"F|d/}G|d0}H|d1}I|d2}K|d3}Mx||"d4dMr}#N|#|j oOd}$P|#|jo Qd"}$nRd}%S|#|!jo Td"}%nV|d5|#d6|$d7}W|d8|#d6|%d7}X|d9|||"|#d:d;}nqWZ|d2}\||td-d<}&^|d=}`|||tdd| | d>d |}a||}c|d?|}e|SdS(@Nszwo_libsmem_dataszwo_bos presentationszwo_urls user_zw_objss hasPropertys configboxsboxsautoursarbosChangement des droitss RETOURsmenusnavs - Spcifiez que vous souhaitez appliquer des "droits dtaills" cette page
- Dfinissez les droits que vous accordez vos groupes d'utilisateurs
- Validez en cliquant sur OK
seditionsinfos INFORMATIONszwo_objssplits*iis%
s's zwo_dossiers new_droitss1s checkedszwooks+Pas de droit detaille ici...
s,Droits detailles ici...

s/sManagersgroupes_visiteurss&sgroupes_editeursszwo_infosgroupss8
sTsTs
DROITS VISITEURSDROITS EDITEURS
s2s objectIdss<s9sskinss spages('s_write_s_writes _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusuosboxsheadsspmsmidsspesfootsprntstitreshtmlszwosstringsrpsreplsrepslenschss1ss2s nonvisibleslv1slvsle1slesrepgrsgscvscesrepskins('srps_write_s_writes _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusuosboxsheadsspmsmidsspesfootsprntstitreshtmlszwosstringsreplsrepslenschss1ss2s nonvisibleslv1slvsle1slesrepgrsgscvscesrepskins((sScript (Python)s change_droits|09 .   1  $   "         !    2  1 (s change_droit(s change_droit((sScript (Python)ssqQU_bodyqRT mem=context.zwo_lib.mem_data() pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] uo=mem['user_zw_obj'] box=[''] if uo.hasProperty('configbox'): box=uo.configbox pr['box']=box # AFFICHAGE DU BANDEAU HAUT (head,spm,mid,spe,foot)=context.zwo_bo.autour(mem,pr,'arbo','Changement des droits') prnt=head # AFFICHAGE DES CASE DE LA COLONNE (menus) titre='RETOUR' prnt=prnt+context.zwo_bo.menu(zwu,pr,'nav',titre) prnt=prnt+spm prnt=prnt+mid # AFFICHAGE DES ZONES LARGES (editions) # EDITION INFORMATION html = """ - Spcifiez que vous souhaitez appliquer des "droits dtaills" cette page
- Dfinissez les droits que vous accordez vos groupes d'utilisateurs
- Validez en cliquant sur OK
""" prnt=prnt+context.zwo_bo.edition(zwu,pr,'info','INFORMATION',html) prnt=prnt+spe #tableau page zwo=mem['zwo_obj'] repl=string.split(rp,'*') rep=zwo if len(repl)>1: for ch in repl[1:]: rep=rep[ch] html = '
' html=html+'' s1='' s2='' if rep.zwo_dossier.new_droits=='1': s2=' checked' else: s1=' checked' if rp<>'zwook': html=html+'Pas de droit detaille ici...
' html=html+'Droits detailles ici...

' else: html=html+'' nonvisible=['Manager'] lv1=rep.zwo_dossier.groupes_visiteurs lv=string.split(lv1,'&') le1=rep.zwo_dossier.groupes_editeurs le=string.split(le1,'&') repgr=context.zwo_info.groups html=html+'
 s title_or_ids
' html=html+'' html=html+'' html=html+'
DROITS VISITEURSDROITS EDITEURS
' html=html+'' for g in repgr.objectIds(): if not g in nonvisible : cv='' if g in lv: cv=' checked' ce='' if g in le: ce=' checked' html=html+'' html=html+'' html=html+'' html=html+'
 '+repgr[g].title_or_id()+'
' repskins=context.zwo_info.skins html=html+'' prnt=prnt+context.zwo_bo.edition(zwu,pr,'page','Changement des droits',html) prnt=prnt+spe prnt=prnt+''+foot return prnt qSU Script_magicqTKUwarningsqU)UerrorsqV)U Python_magicqWU* qXu. j((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 UcontextqUmemqUprqUzwoqUdicoqUpgokqUkUlUsUstringqUlchqUlenqUrUpUrangeqUiUrolesqUcheckqUeUnewqUoldqUnewidqtqU co_argcountqKubU_paramsqUUidq U renommerokq!U__ac_local_roles__q"}q#Uxavq$]q%UOwnerq&asU_dav_writelocksq'(U lq((U Persistenceq)UPersistentMappingq*tq+tq,QU _bind_namesq-(cShared.DC.Scripts.Bindings NameAssignments q.oq/}q0U_asgnsq1}q2(Uname_containerq3U containerq4U name_subpathq5Utraverse_subpathq6U name_m_selfq7Uscriptq8U name_contextq9Ucontextq:usbU func_defaultsq;NU_codeqsq=U_bodyq>Tmem=context.zwo_lib.mem_data() if mem['droit_edit_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' pr=context.zwo_bo.presentation() zwo=mem['zwo_obj'] dico=context.REQUEST.form pgok=[] for k in dico.keys(): pgok.append(k) l=[] for s in pgok: lch=string.split(s,'*') if len(lch)==1: r='0' l.append(r) else : r=zwo p=zwo for i in range(len(lch)-1): p=r r=p[lch[i+1]] l.append((p,r,s)) roles=mem['user_roles_id'] def check(r): cf=r.zwo_dossier s_list_a=cf.groupes_editeurs list_a=string.split(s_list_a,'&') for a in list_a: if a<>'': if a in roles: return 1 return 0 for e in l: if e=='0': new=dico['zwook'] zwo.manage_changeProperties(title=new) else: if check(p)==1: (p,r,l)=e old=r.getId() new=dico[l] newid=context.zwo_lib.mix_id_zope(new) context.zwo_rename(p,old,newid) p[newid].manage_changeProperties(title=new) context.REQUEST.RESPONSE.redirect('./') return q?U Script_magicq@KUwarningsqA)UerrorsqB)U Python_magicqCU* qDu. j((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Upgsq U _getitem_q U_getitemq U _getattr_q U_getattrqUcontextqUmemqUprqUzwuqUheadqUspmqUmidqUspeqUfootqU listiconesqUprntqUtitreqUhtmlqUzwoqUstringqUllqUlUsUlchqUrUlenq Uchq!Urangeq"Uitq#U co_argcountq$KubU_paramsq%Upgsq&Uidq'Udupliquer_pagesq(U__ac_local_roles__q)}q*Uxavq+]q,UOwnerq-asU_dav_writelocksq.(U lq/(U Persistenceq0UPersistentMappingq1tq2tq3QU _bind_namesq4(cShared.DC.Scripts.Bindings NameAssignments q5oq6}q7U_asgnsq8}q9(Uname_containerq:U containerq;U name_subpathqUcontextq?U name_m_selfq@UscriptqAusbU func_defaultsqBNU_codeqCT csdZdS(Ncst}t}||tdd}||tdd}||d}||tdd||dd\} } } } } ||||td d d d }| } d ||dd} |||tdd||d|} || }|| }d}|d}||d}|td|d}g}x|dr}|td|d}|}t|djo>x4||dddr}|||}qWn||d|qW!xtt|d!r}|"||djoA|||djo+t|td|||ddjo#|d}$|||||d}%|d}&|d |||d!||||dd"}'|d#}nq9W(|d$}*|d%}+|d&}-|||tdd'||d(d)|}.|| }/|| }2|SdS(*Nszwo_libsmem_dataszwo_bos presentationszwo_urlsautoursarbosDuplication de pagess zwo_imagessiconess logo_elementss objectIdssRETOUR PAGESsmenusnavs)
s2szwo_objssplits**is*isappendssactions3s
s title_or_ids@ ss
s%s
seditionspagesDupliquer les pages(s _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusheadsspmsmidsspesfoots listiconessprntstitreshtmlszwosstringspgssllslssslchsrslenschsrangesi(spgss _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusheadsspmsmidsspesfoots listiconessprntstitreshtmlszwosstringsllslssslchsrslenschsrangesi((sScript (Python)sdupliquer_pagessF*90 .      $$Z " ;   1  (sdupliquer_pages(sdupliquer_pages((sScript (Python)ssqDU_bodyqET;mem=context.zwo_lib.mem_data() pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] # AFFICHAGE DU BANDEAU HAUT (head,spm,mid,spe,foot)=context.zwo_bo.autour(mem,pr,'arbo','Duplication de pages') listicones=context.zwo_images.icones.logo_elements.objectIds() prnt=head titre='RETOUR PAGES' prnt=prnt+context.zwo_bo.menu(zwu,pr,'nav',titre) prnt=prnt+spm prnt=prnt+mid html='
' html=html+'' zwo=mem['zwo_obj'] ll=string.split(pgs,'**') l=[] for s in ll: lch=string.split(s,'*') r=zwo if len(lch)>1: for ch in lch[1:]: r=r[ch] l.append(r) for i in range(len(ll)): if ll[i]<>'' and ll[i]<>'action' and len(string.split(ll[i],'*')) >1: html=html+'' html=html+'
' html=html+l[i].title_or_id() html=html+' ' html=html+'' html=html+'
' html=html+'' html=html+'
' prnt=prnt+context.zwo_bo.edition(zwu,pr,'page','Dupliquer les pages',html) prnt=prnt+spe prnt=prnt+foot return prnt qFU Script_magicqGKUwarningsqH)UerrorsqI)U Python_magicqJU* qKu. j;((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Upgsq U_write_q U_writeq U _getitem_q U_getitemqU _getattr_qU_getattrqUcontextqUmemqUprqUzwuqUuoqUboxqUheadqUspmqUmidqUspeqUfootqUprntqUtitreqUhtmlqUstringqUtpgsq Ucfarboq!Uim1q"Uim2q#Uroll2q$Urolesq%Ucheckq&U listrepinrepq'UTTq(UTUrepq)Uswcq*Uswciq+Uszcoq,U affiche_arboq-tq.U co_argcountq/KubU_paramsq0Upgsq1Uidq2Udeplacer_pagesq3U__ac_local_roles__q4}q5Uxavq6]q7UOwnerq8asU_dav_writelocksq9(U lq:(U Persistenceq;UPersistentMappingqQU _bind_namesq?(cShared.DC.Scripts.Bindings NameAssignments q@oqA}qBU_asgnsqC}qD(Uname_containerqEU containerqFU name_subpathqGUtraverse_subpathqHU name_m_selfqIUscriptqJU name_contextqKUcontextqLusbU func_defaultsqMNU_codeqNT:#csdZdS(Nc%)st}t}t}||tdd}||tdd} ||d} ||d} dg} || dd o || d } n | || d < ||tdd || d d \} }}}}| }d|| dd}|||tdd| | d|}||}||}d}|||tdd| | dd|}||}|d}1|d|d}2|d}3|d}5|td|d7dg |8| ddo9|| d n;| d<| d?d J||d! L d"Wd#t d$ g}||d%}  || d&d}d'd(d)d*}$||$|}|||tdd| | d+d,|}||}|d-|}|SdS(.Nszwo_libsmem_dataszwo_bos presentationszwo_urls user_zw_objss hasPropertys configboxsboxsautoursarbosDeplacement pages sRETOUR PAGESsmenusnavseditionsinfos INFORMATIONs s^
s,s,ssplits**s configarbos/zwo_images/bo/carre_ici.gifs/zwo_images/bo/r_carre_ici.gifcs?@d|d}A|d|d|d}B|d}C|d|d|d}D|d}E|d|d}F|d}G|d|d |d }H|SdS( Ns(sactionsrettsnomsrolsimg(snomsactionsimgsrolsrett((sScript (Python)sroll2?s   s user_roles_idc sLt}M||d}N||d}O|td|d}PxB|dPr5}Q|djoR|jo SdSnnqTWTdSdS(Ns zwo_dossiersgroupes_editeursssplits&isi( s _getattr_s_getattrsrscfss_list_asstringslist_asasroles( srs _getattr_s_getattrscfss_list_asstringslist_asasroles(sroles(sScript (Python)scheckLs c sWt}t}||Y|dddo:Z|||dd}[|td|d}n ]g}_g}`x||ddd`r|} |a| dd o]b|| d d jo@c| d jo&|d|d || d nnnqWfg} hxu|dhrh} i| |joRj| | j o=k||| d jo|l| d | nnnq0Wnx>|dnr1} o| | j o|p| d | nqWr| SdS(Ns zwo_dossiers hasPropertysordressplits&s objectValuessFolderis type_zwooksdossierisappendsgetId( s _getitem_s_getitems _getattr_s_getattrsrepsordresstringslordreslistrepsrscheckslistpagesi( sreps _getitem_s_getitems _getattr_s_getattrsordresstringslordreslistrepsrscheckslistpagesi(scheck(sScript (Python)s listrepinrepWs(  '/ "#cstt}t}u||d}v|} w|djo!x|d||d}nz||d}||jo }|Sn|d| d|d}||d}|}t|djo| djo#||d ||d fn|d d|d }||d ||d |df|Sndt|d|}|jo]| djo#||d ||d fn||d ||df|Sn| djo#||d ||d fn||d ||dfx8|dr+}|||||d|}q_W|d d|d }||d |d|d f|SdS(NsgetIdss*s sendici('s','s')s title_or_idisappendisends','end')s sclos_s_ii(s _getitem_s_getitems _getattr_s_getattrsrsnschsoldchstpgsstabsroll2sim1sim2st0sts listrepinrepslistrepslensist1sstrsncfscfarbosidrsTT(stabsrsischs _getitem_s_getitems _getattr_s_getattrsnsoldchstpgssroll2sim1sim2st0sts listrepinrepslistrepslenst1sstrsncfscfarbosidrsTT(stpgssroll2sTTscfarbos listrepinrepsim2sim1(sScript (Python)sTTts< ! ( '$ # #)' szwo_objics;d}d}||jo |Sn|SdS(Ns#FFFFFFs#cccccc(sc1sc2sc(scsc1sc2((sScript (Python)sswcs    cs;d}d}||jo |Sn|SdS(Ns#eeeeees#dddddd(sc1sc2sc(scsc1sc2((sScript (Python)sswcis    s20c$st}d}d}x9|dr,\}}}||jo |}nq*W|dIJ|dIJ|dIJd}|}|d|dd IJx[t |d drD} |}|d |dd |t | d IJqW|}d}|}|d|dd IJxQt |d dr:} |}|d |dd |dIJqtW|}d}x|dr\}}}|}d}|}|d|dd IJxMt |dr:} |}|d |dd |dIJqAWt d ||}d}|}|d|d|d|||dIJqWd}|}|d|dd IJxQt |d dr:} |}|d |dd |dIJq-W|}|dIJ|SdS(Nsis?s7s,ss0is,s s*s
 s s
(s_print_s_printsdfsamaxstabsasbsiscsswcsszcosrangesaasstrscisswciscspnsii(stabs_print_s_printsdfsamaxsasbsiscsswcsszcosrangesaasstrscisswciscspnsii(sswcisszcosswc(sScript (Python)s affiche_arbosX       3 )  ) 1 ) spagesDeplacement de pagess(%s_write_s_writes _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusuosboxsheadsspmsmidsspesfootsprntstitreshtmlspgssstringstpgsscfarbosim1sim2sroll2srolesschecks listrepinrepsTTsTsrepsswcsswcisszcos affiche_arbo(%spgss_write_s_writes _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusuosboxsheadsspmsmidsspesfootsprntstitreshtmlsstringstpgsscfarbosim1sim2sroll2srolesschecks listrepinrepsTTsTsrepsswcsswcisszcos affiche_arbo(( sszcostpgsschecksroll2sswcsswcis listrepinrepsim2sim1sTTscfarbosrolessScript (Python)sdeplacer_pagessV09 .   1        !'   71 (sdeplacer_pages(sdeplacer_pages((sScript (Python)ssqOU_bodyqPTmem=context.zwo_lib.mem_data() pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] uo=mem['user_zw_obj'] box=[''] if uo.hasProperty('configbox'): box=uo.configbox pr['box']=box # AFFICHAGE DU BANDEAU HAUT (head,spm,mid,spe,foot)=context.zwo_bo.autour(mem,pr,'arbo','Deplacement pages ') prnt=head # AFFICHAGE DES CASE DE LA COLONNE (menus) titre='RETOUR PAGES' prnt=prnt+context.zwo_bo.menu(zwu,pr,'nav',titre) prnt=prnt+spm prnt=prnt+mid # AFFICHAGE DES ZONES LARGES (editions) # EDITION INFORMATION html = "" prnt=prnt+context.zwo_bo.edition(zwu,pr,'info','INFORMATION',html) prnt=prnt+spe html=html+""" """ #tableau page html = html+'
' html = html+'' html = html+'' tpgs=string.split(pgs,'**') cfarbo=[''] if uo.hasProperty('configarbo'): cfarbo=uo.configarbo im1=zwu+'/zwo_images/bo/carre_ici.gif' im2=zwu+'/zwo_images/bo/r_carre_ici.gif' def roll2(nom,action,img,rol): rett='' return rett roles=mem['user_roles_id'] def check(r): cf=r.zwo_dossier s_list_a=cf.groupes_editeurs list_a=string.split(s_list_a,'&') for a in list_a: if a<>'': if a in roles: return 1 return 0 def listrepinrep(rep): if rep.zwo_dossier.hasProperty('ordre'): ordre=rep.zwo_dossier.ordre lordre=string.split(ordre,'&') else: lordre=[] listrep=[] for r in rep.objectValues('Folder'): if r.hasProperty('type_zwook'): if r.type_zwook=="dossier": if check(r)==1: listrep.append(r.getId()) listpage=[] for i in lordre: if i in listrep: if not i in listpage: if check(rep[i])==1: listpage.append(i) for i in listrep: if not i in listpage: listpage.append(i) return listpage def TT(tab,r,i,ch): n=r.getId() oldch=ch if ch<>'': ch=ch+'*'+r.getId() else: ch=r.getId() if ch in tpgs: return tab t0=roll2(ch,'sendici(\''+oldch+'\',\''+n+'\')',im1,im2) t=r.title_or_id() listrep=listrepinrep(r) if len(listrep)==0: if oldch<>'': tab.append((i,t0,3)) t1=roll2(ch+'end','sendici(\''+ch+'\',\'end\')',im1,im2) tab.append((i,t+' '+t1,0)) return tab ncf='clos_'+str(i)+'_'+n if ncf in cfarbo: if oldch<>'': tab.append((i,t0,3)) tab.append((i,t,1)) return tab if oldch<>'': tab.append((i,t0,3)) tab.append((i,t,2)) for idr in listrep: tab=TT(tab,r[idr],i+1,ch) t1=roll2(ch+'end','sendici(\''+ch+'\',\'end\')',im1,im2) tab.append((i+1,t1,3)) return tab T=[] rep=mem['zwo_obj'] T=TT(T,rep,0,'') def swc(c): c1="#FFFFFF" c2="#cccccc" if c==c1: return c2 else: return c1 def swci(c): c1="#eeeeee" c2="#dddddd" if c==c1: return c2 else: return c1 szco="20" def affiche_arbo(tab): df='' amax=0 for (a,b,i) in tab: if a>amax: amax=a print '' print '' print '' c='' c=swc(c) print '' for aa in range(amax+1): c=swc(c) print '' c=swc(c) c='' c=swc(c) print '' for aa in range(amax+1): c=swc(c) print '' c=swc(c) ci='' for (a,b,i) in tab: ci=swci(ci) c='' c=swc(c) print '' for aa in range(a): c=swc(c) print '' cspn=str(1+amax-a) ii='' c=swc(c) print '' c='' c=swc(c) print '' for aa in range(amax+1): c=swc(c) print '' c=swc(c) print '
 '+df+str(aa)+'
 '+df+' 
 '+df+' '+df+b+ii+'
 '+df+' 
' return printed html=html+affiche_arbo(T) prnt=prnt+context.zwo_bo.edition(zwu,pr,'page','Deplacement de pages',html) prnt=prnt+spe prnt=prnt+''+foot return prnt qQU Script_magicqRKUwarningsqS)UerrorsqT)U Python_magicqUU* qVu. jB((U PersistenceqUPersistentMappingqtqNt.}qU _containerq}qs. jB((U PersistenceqUPersistentMappingqtqNt.}qU _containerq}qs. jB((U PersistenceqUPersistentMappingqtqNt.}qU _containerq}qs. jUx((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_getattrqUcontextqUmemqUprqUzwuqUzwuiqUuoqUboxqUrollqUroll2qUroll3qUheadqUspmqUmidqUspeqUfootqUprntqUtitreq Uhtmlq!Uobq"Usiteq#Uemailq$Umailhostq%U underlineq&Uhexaq'Ufontq(Usizeq)Uunderq*tq+U co_argcountq,KubU_paramsq-UUidq.U index_htmlq/U__ac_local_roles__q0}q1Uxavq2]q3UOwnerq4asU_dav_writelocksq5(U lq6(U Persistenceq7UPersistentMappingq8tq9tq:QU _bind_namesq;(cShared.DC.Scripts.Bindings NameAssignments qU_asgnsq?}q@(Uname_containerqAU containerqBU name_subpathqCUtraverse_subpathqDU name_m_selfqEUscriptqFU name_contextqGUcontextqHusbU func_defaultsqINU_codeqJT*csdZdS(Nc!ls t}t}t}||tdd}||ddjo dSn||tdd}||d} | d }  ||d }  d g} | | d d o || d } n| ||d<d} d})d}=||tdd||dd\}}}}}?|}Dd}Fd}H|d||dd}I|d}K|d||dd}L|d}N|d||dd}O|d}Q|d}S|||tdd | |d!||}T||}W||}^d"}f|||tdd#| |d$d%|}g||}i|||||d&d'd(d)}j||d*}k||d+}l||||d&d,d-}m||d.}n||d/}o||d0}p||d1}rd2}s|d3}t|d4}u|d5}v|d6}w|d}x|d7}y|d8}z|d9|d:}{|d;}||d4}}|d5}~|d<}|d}|d7}|d8}|d=|d:}|d;}|d4}|d5}|d>}|d}|d7}|d8}|d?|d:}|d;}|d4}|d5}|d@}|d}|d7}|d8}|dA}|dB}|d5}|dC}|dDjo|dE}n|dF}|dGjo|dH}n|dI}|dJjo|dK}n|dL}|dM}|dN}|dOjo|dP}n|dQ}|dRjo|dS}n|dT}|dUjo|dV}n|dW}|dXjo|dY}n|dZ}|d[jo|d\}n|d]}|d^jo|d_}n|d`}|dajo|db}n|dc}|ddjo|de}n|df}|dgjo|dh}n|di}|djjo|dk}n|dl}|dmjo|dn}n|do}|dp}|dq}||dr}||ds}|d4}|d5}|dt}|d}|d7}|d8}|dA}|dB}|d5}|du}|dDjo|dE}n|dF}|dGjo|dH}n|dI}|dJjo|dK}n|dL}|dM}|dv}|dOjo|dP}n|dQ}|dRjo|dS}n|dT}|dUjo|dV}n|dW}|dXjo|dY}n|dZ}|d[jo|d\}n|d]}|d^jo|d_}n|d`}|dajo |db}n |dc} |ddjo |de}n|df}|dgjo|dh}n|di}|djjo|dk}n|dl}|dmjo|dn}n|do}|dp}|dw} d } !|dxjo "dy} n#|d5}$|dz| d{}%|d|}&|d}|d~}'|d}(|dq})|d;}*|d4}+|d},|d7}-|d8}.|d}/|d;}0|d}2|d}3|d}4|d}5|d5}6|d}7|d}8|d}9|d};|d}=|||tdd#| |dd|}>||}@||}B|SdS(Nszwo_libsmem_datasdroit_edit_dossieris.Vous n'avez pas les droits pour cette action !szwo_bos presentationszwo_urls/zwo_images/bo/s user_zw_objss hasPropertys configboxsboxcsd|d}|d|d|d}|d}|d|d|d}|d}|d|d}|d}|djo|d }n|d |d |d }|SdS( Ns (surlsrettsnomsrolsimg(snomsurlsimgsrolsrett((sScript (Python)srolls   csd|d} |d|d|d}!|d}"|d|d|d}#|d}$|d|d}%|d}&|d|d |d }'|SdS( Ns(sactionsrettsnomsrolsimg(snomsactionsimgsrolsrett((sScript (Python)sroll2s   cs#)*d}+d},|djo-d|d}.d}n/d|d|d}0|d|d |d}1|d |d}2|d|d |d}3|d }4|d|d}5|d }6|d jo7|d}n8|d|d|d}9|SdS(Nss poplink('s');s killlink();s (shlptxtshlptxt2shelpsurlsrettsnomsrolsimg(snomsurlsimgsrolshelpshlptxtshlptxt2srett((sScript (Python)sroll3)s      sautoursadminsParametres generauxsMENUSsss Utilisateurs.
ssNs#ss/Adresse du serveur mail (2) :s4s4
ss#Nom du site (1) :ss0

s
s s"Taille : s
slnk_fonts lnk_font_sizes1 Aspect des liens :




ss

sons checkeds' Soulign s
s8Hexa * : sn [
E]s s(ssMs"
s

s1 : le nom du site est utilis diffrents endroits pour identifier le site : par exemple "Sicieto - Le portail des scieries en ligne"

s2 : l'adresse du serveur mail est utilise pour envoyer des emails lorsque ncessaire : par exemple pour un formulaire de contact ou pour prvenir le webmasters
ssPARAMETRES GENERAUX(!s_write_s_writes _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwuszwuisuosboxsrollsroll2sroll3sheadsspmsmidsspesfootsprntstitreshtmlsobssitesemailsmailhosts underlineshexasfontssizesunder(!s_write_s_writes _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwuszwuisuosboxsrollsroll2sroll3sheadsspmsmidsspesfootsprntstitreshtmlsobssitesemailsmailhosts underlineshexasfontssizesunder((sScript (Python)s index_htmls0   9       1   1 -$                                                                                                      1  (s index_html(s index_html((sScript (Python)ssqKU _proxy_rolesqL(UManagerqMtqNU_bodyqOT'mem=context.zwo_lib.mem_data() if mem['droit_edit_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] zwui=zwu+'/zwo_images/bo/' uo=mem['user_zw_obj'] box=[''] if uo.hasProperty('configbox'): box=uo.configbox pr['box']=box def roll(nom,url,img,rol): rett='' return rett def roll2(nom,action,img,rol): rett='' return rett def roll3(nom,url,img,rol,help): hlptxt='' hlptxt2='' if help<>'': hlptxt=' poplink(\''+help+'\');' hlptxt2='killlink();' rett='' return rett # AFFICHAGE DU BANDEAU HAUT (head,spm,mid,spe,foot)=context.zwo_bo.autour(mem,pr,'admin','Parametres generaux') prnt=head # AFFICHAGE DES CASE DE LA COLONNE (menus) # MENU OPTIONS ADMIN titre ="MENUS" html='' html=html+'' html=html+' Utilisateurs.
' html=html+'' html=html+' Groupes.
' html=html+'' html=html+' Modules.
' html=html+'
' prnt=prnt+context.zwo_bo.menu(zwu,pr,'nav',titre,html) prnt=prnt+spm prnt=prnt+mid # AFFICHAGE DES ZONES LARGES (editions) # EDITION INFORMATION html = """ Cette zone destine aux administrateurs du systme leur permet:
- De configurer les paramtres gnraux du systme
- De crer de nouveaux utilisateurs et de leurs donner des droits spcifiques
- De crer des groupes d'utilisateurs ayant les mmes droits
- D'ajouter ou de supprimer de nouveaux modules Zwooks.
""" prnt=prnt+context.zwo_bo.edition(zwu,pr,'info','INFORMATION',html) prnt=prnt+spe ob=mem['zwo_obj'].zwo_info.general.general_data site=ob.site email=ob.email mailhost=mem['zwo_obj'].MailHost.smtp_host underline=ob.underline hexa=ob.hexa font=ob.font size=ob.font_size html='
' html=html+'' html=html+'' html=html+'' html=html+'' html=html+'' html=html+'' html=html+'' html=html+'' html=html+'' html=html+'' html=html+'' html=html+'' html=html+'
' html=html+'' html=html+'Nom du site (1) :' html=html+'' html=html+'' html=html+'

' html=html+'
' html=html+'' html=html+'Adresse du serveur mail (2) :' html=html+'' html=html+'' html=html+'

' html=html+'
' html=html+'' html=html+'Email du webmaster :' html=html+'' html=html+'' html=html+'

' html=html+'
' html=html+'' html=html+' Police :


' html=html+'
' html=html+'
' html=html+'' html=html+'
' html=html+'' html=html+' ' html=html+'Taille : ' html=html+'
' font=ob.lnk_font size=ob.lnk_font_size html=html+'
' html=html+'' html=html+' Aspect des liens :




' html=html+'
' html=html+'
' html=html+'' html=html+'
' html=html+'' html=html+' ' html=html+'Taille : ' html=html+'
' under='' if underline=='on': under=' checked' html=html+'' html=html+' Soulign ' html=html+ '
' html=html+ 'Hexa * : ' html=html+ ' [E]' html=html+'
' html=html+'
' html=html+' ' html=html+'' html=html+'' html=html+'
' html=html+'' html=html+'
' html=html+ '

' html=html+ '' html=html+ '1 : le nom du site est utilis diffrents endroits pour identifier le site : par exemple "Sicieto - Le portail des scieries en ligne"

' html=html+ '2 : l\'adresse du serveur mail est utilise pour envoyer des emails lorsque ncessaire : par exemple pour un formulaire de contact ou pour prvenir le webmaster' html=html+ '
' html=html+ '
' html=html+ '
' prnt=prnt+context.zwo_bo.edition(zwu,pr,'admin','PARAMETRES GENERAUX',html) prnt=prnt+spe prnt=prnt+foot return prnt qPU Script_magicqQKUwarningsqR)UerrorsqS)U Python_magicqTU* qUu. j((U OFS.FolderqUFolderqtqNt.}q(U index_htmlq(U lq(U#Products.PythonScripts.PythonScriptqU PythonScriptqtq tq QUidq Umodulesq U__ac_local_roles__q }qUxavq]qUOwnerqasU_objectsq(}q(U meta_typeqUScript (Python)qUidqUhomequ}q(U meta_typeqUScript (Python)qUidqU validvisiblequ}q(U meta_typeqUScript (Python)qUidq U index_htmlq!u}q"(U meta_typeq#UScript (Python)q$Uidq%Udetailq&u}q'(U meta_typeq(UScript (Python)q)Uidq*Uh_detailq+u}q,(h(h)h*Udetailokq-utUhomeq.(U lq/(hU PythonScriptq0tq1tq2QUtitleq3UUdetailq4(U lq5(hU PythonScriptq6tq7tq8QUh_detailq9(U lq:(hU PythonScriptq;tq(hU PythonScriptq?tq@tqAQh(U lqB(hU PythonScriptqCtqDtqEQu. j((U OFS.FolderqUFolderqtqNt.}q(Uhomeq(U lq(U#Products.PythonScripts.PythonScriptqU PythonScriptqtq tq QUdetruireq (U lq (hU PythonScriptq tqtqQUidqUgroupsqUcreerq(U lq(hU PythonScriptqtqtqQU index_htmlq(U lq(hU PythonScriptqtqtqQU_objectsq(}q(U meta_typeqUScript (Python)qUidq Uhomeq!u}q"(U meta_typeq#UScript (Python)q$Uidq%Udetruireq&u}q'(h#h$h%U detruireokq(u}q)(U meta_typeq*UScript (Python)q+Uidq,Ucreerq-u}q.(h*UFolderq/h,Uetape1q0u}q1(U meta_typeq2UScript (Python)q3Uidq4U index_htmlq5utUetape1q6(U lq7(hUFolderq8tq9tq:QUtitleq;UU__ac_local_roles__q<}q=U detruireokq>(U lq?(hU PythonScriptq@tqAtqBQu. jo((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Uemailq Usiteq Umailhostq Ufontq U font_sizeqUhexaqU underlineqU _getitem_qU_getitemqU _getattr_qU_getattrqU_print_qU_printqUcontextqUmemqUzwuqUzwoqUisokqUmsgqUstringqUemqUaffqUhashostq Udosq!Uoldhostq"Uadrq#Uretourq$tq%U co_argcountq&KubU_paramsq'UGemail, site, mailhost, font, font_size, hexa='#000000', underline='off'q(Uidq)Uparamokq*U__ac_local_roles__q+}q,Ugregq-]q.UOwnerq/asU_dav_writelocksq0(U lq1(U Persistenceq2UPersistentMappingq3tq4tq5QU _bind_namesq6(cShared.DC.Scripts.Bindings NameAssignments q7oq8}q9U_asgnsq:}q;(Uname_containerqUtraverse_subpathq?U name_contextq@UcontextqAU name_m_selfqBUscriptqCusbU func_defaultsqD(U#000000qEUoffqFtqGU_codeqHTS csdddZdS(Ns#000000soffcst}t} t} | | tdd}||ddjo dSn||d}||d}d} d} | t d |d } |djp |d jo d } |d }n|djod }|d }n|djod }|d}nd }|djod }x`| |ddd rD}| |ddjo"d}| |d}nqpW|djoT|  |d|g| || !|ddddd|"d}n8| || &|ddddd|'d}n*| | | |ddd}| +|dd|| ,|dd|| -|dd|| .|dd|| /|dd|| 0|dd || | | 2td!d"d#d$3dS5|djo6| d%|d&IJnK8|| td!d'}:| d(IJ;| |IJ<| d)|d*IJ>| SdS(+Nszwo_libsmem_datasdroit_edit_dossieris.Vous n'avez pas les droits pour cette action !szwo_urlszwo_objsscounts@is)Inscrire l'email du webmaster

s#Inscrire le nom du site

s$Inscrire le serveur mail

s objectValuess Mail HostsgetIdsMailHostsmanage_delObjectssmanage_addProductsmanage_addMailHostsMailHost du siteszwo_infosgenerals general_datasmanage_changePropertiessemailssitesfonts font_sizeshexas underlinesREQUESTsRESPONSEsredirects./s



ok

s HTTP_REFERERs%


s

ok

(s _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextsmemszwuszwosisoksmsgsstringsemailsemssitesmailhostsaffshashostsdossoldhostsadrsfonts font_sizeshexas underlinesretour(semailssitesmailhostsfonts font_sizeshexas underlines _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextsmemszwuszwosisoksmsgsstringsemsaffshashostsdossoldhostsadrsretour((sScript (Python)sparamoksZ3        $ %% '  (sparamok(sparamok((sScript (Python)ssqIU_bodyqJT;mem=context.zwo_lib.mem_data() if mem['droit_edit_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' zwu=mem['zwo_url'] zwo=mem['zwo_obj'] isok=1 msg='' em=string.count(email,'@') if email=='' or em==0: isok=0 msg=msg+'Inscrire l\'email du webmaster

' if site=='': isok=0 msg=msg+'Inscrire le nom du site

' if mailhost=='': isok=0 msg=msg+'Inscrire le serveur mail

' aff=0 if isok==1: #~ ~~~~~~~~~~~~~~~~~~~~~~~ creation ou recreation du mailhost ~~~~~~~~~~~~~~~~~~~~~ hashost=0 #~ verif si le mailhost existe for dos in zwo.objectValues('Mail Host'): if dos.getId()=='MailHost': hashost=1 oldhost=dos.getId() if hashost==1: #~ si il existe on le recre et dtruit l'ancien zwo.manage_delObjects([oldhost]) zwo.manage_addProduct['MailHost'].manage_addMailHost('MailHost','MailHost du site',mailhost) aff=1 else: #~ si il existe pas on le cre #~ manage_addMailHost(id, [title, smtp_host, localhost, smtp_port, timeout, REQUEST]) zwo.manage_addProduct['MailHost'].manage_addMailHost('MailHost','MailHost du site',mailhost) aff=1 #~enregistrement des infos adr=zwo.zwo_info.general.general_data adr.manage_changeProperties(email=email) adr.manage_changeProperties(site=site) adr.manage_changeProperties(font=font) adr.manage_changeProperties(font_size=font_size) adr.manage_changeProperties(hexa=hexa) adr.manage_changeProperties(underline=underline) context.REQUEST.RESPONSE.redirect('./') return if aff==1: print '



ok

' else: retour=context.REQUEST['HTTP_REFERER'] #retour='javascript:history.back()' print '


' print msg print '

ok

' return printed qKU Script_magicqLKUwarningsqM)UerrorsqN)U Python_magicqOU* qPu. jf((U OFS.FolderqUFolderqtqNt.}q(Udetruireq(U lq(U#Products.PythonScripts.PythonScriptqU PythonScriptqtq tq QUidq Uusersq U__ac_local_roles__q }qUxavq]qUOwnerqasU index_htmlq(U lq(hU PythonScriptqtqtqQU_objectsq(}q(U meta_typeqUFolderqh Uconfig_params_userqu}q(hUScript (Python)qh Udetruirequ}q(hhh U detruireokq u}q!(hhh Uetape1q"u}q#(hhh U index_htmlq$u}q%(hhh Ucreerokq&uth"(U lq'(hUFolderq(tq)tq*QUtitleq+UU detruireokq,(U lq-(hU PythonScriptq.tq/tq0Qh(U lq1(hUFolderq2tq3tq4Qh&(U lq5(hU PythonScriptq6tq7tq8Qu. j((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Ucaseq U_write_q U_writeq U _getitem_q U_getitemqU _getattr_qU_getattrqUcontextqUmemqUrepqUconfqUvalqUvtableqUtabqUtbqUligneqUcelqUlistcelqU numcasemaxqUintqUnumqUrspqUcspq Uctstrq!Uctabq"Uflq#Ulinsq$Ucrecaseq%Uposcq&Ucolq'Ufcq(Ucinsq)Ustrq*Uplq+UlUnewlq,Ustringq-Unewctq.Udecq/Upropq0Ulistpropq1UaUelemq2Unewpcq3Ufirstq4Uktq5U co_argcountq6KubU_paramsq7Ucaseq8Uidq9Uannule_fusionokq:U__ac_local_roles__q;}qUOwnerq?asU_dav_writelocksq@(U lqA(U PersistenceqBUPersistentMappingqCtqDtqEQU _bind_namesqF(cShared.DC.Scripts.Bindings NameAssignments qGoqH}qIU_asgnsqJ}qK(Uname_containerqLU containerqMU name_subpathqNUtraverse_subpathqOU name_contextqPUcontextqQU name_m_selfqRUscriptqSusbU func_defaultsqTNU_codeqUTcsdZdS(Nc.?st}t}t}||tdd}||ddjo dSn||d} ||d} ||tdd| }  || d }  d }  xw|| d d  r^} xR|| |d  r<}x0|d r#}||jo |} nqWqWqW|| d }d }xZ||d d rA}t||dd}||jo |}nqdW|||| d|dd jo d}n+t|||| d|d}|||| d|dd jo  d}n+"t|||| d|d}(d })||| d | }*d }+d },g}-d }.x|d .r}/|d jo 0d}n2|d}3d }4d }5|d jo6|d}n7d }8x|d 8r}9|d jo ||jo :|}n;|d jol<d}=|d joO>|d}|?|d|@|dt |d}A|d}nnC|d}D|||| d|dd jo Ed }!n+Gt|||| d|d}!H||}I||jo#J|}K|}L|d}nM|d joKN|d}|O|d|P|dt |}Q|d}nR||!}q@WT|d jo ||jo U|}nWx\W|d joKX|d}|Y|d|Z|dt |}[|d}q:WqW^|| d}"_g}#`x"|"d `r}a|t$d|d| dd jo/bd| d|}%|c|#d|%ne|t$d|d|dd jotf|t$d|d}&gh}'h|t$d||&dd}(ixS|(d irF})j|t$d|)d}*k||*d||'||*d sqVU_bodyqWT mem=context.zwo_lib.mem_data() if mem['droit_edit_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' rep=mem['rep_obj'] conf=mem['config_obj'] val=context.zwo_lib.tab_to_val(conf) # dtermine la table concerne : tab vtable=val['ct'] tab='' for tb in vtable.keys(): for ligne in vtable[tb]: for cel in ligne: if cel==case: tab=tb #determiner l'indice de la dernire case : numcasemax listcel=val['cc'] numcasemax=0 for cel in listcel.keys(): num=int(cel[1:]) if num>numcasemax: numcasemax=num if val['pc'][case]['rowspan']=='': rsp=1 else: rsp=int(val['pc'][case]['rowspan']) if val['pc'][case]['colspan']=='': csp=1 else: csp=int(val['pc'][case]['colspan']) # on determine la nouvelle structure du tableau : # ctstr : chaine de contenu du tableau reconstruite. # crecase : liste de num des cases a creer. ctstr='' ctab=val['ct'][tab] fl=0 lins=0 crecase=[] posc=-1 for ligne in ctab: if fl==0: fl=1 else: ctstr=ctstr+'/' col=0 fc=0 if lins<>0: lins=lins-1 cins=0 for cel in ligne: if lins<>0 and col==posc: cins=csp if fc==0: fc=1 if cins<>0: numcasemax=numcasemax+1 crecase.append(numcasemax) ctstr=ctstr+'C'+str(numcasemax)+'-' cins=cins-1 else: ctstr=ctstr+'-' if val['pc'][cel]['colspan']=='': pl=0 else: pl=int(val['pc'][cel]['colspan']) ctstr=ctstr+cel if cel==case: posc=col lins=rsp cins=csp-1 if cins<>0: numcasemax=numcasemax+1 crecase.append(numcasemax) ctstr=ctstr+'-C'+str(numcasemax) cins=cins-1 col=col+pl if lins<>0 and col<=posc: cins=csp while cins<>0: numcasemax=numcasemax+1 crecase.append(numcasemax) ctstr=ctstr+'-C'+str(numcasemax) cins=cins-1 l=conf.tableaux newl=[] for ligne in l: if string.find(ligne,'CT:'+tab+':')<>-1: newct='CT:'+tab+':'+ctstr newl.append(newct) elif string.find(ligne,'PC:'+case+":")<>-1: dec=string.split(ligne,':') prop={} listprop=string.split(dec[2],'/') for a in listprop: elem=string.split(a,'=') prop[elem[0]]=elem[1] prop['rowspan']=str(1) prop['colspan']=str(1) newpc='PC:'+case+':' first=0 for k in prop.keys(): if first==0: first=1 else: newpc=newpc+'/' newpc=newpc+k+'='+prop[k] newl.append(newpc) else: newl.append(ligne) for num in crecase: newl.append('PC:C'+str(num)+':hauteur=/largeur=/marge=/cadre=/couleurcadre=/couleurfond=/couleurtexte=/align=/valign=/rowspan=1/colspan=1') newl.append('CC:C'+str(num)+':') l=newl conf.manage_changeProperties(tableaux=l) context.REQUEST.RESPONSE.redirect('./') return qXU Script_magicqYKUwarningsqZ)Uerrorsq[)U Python_magicq\U* q]u. j((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Uidobjq U _getitem_q U_getitemq U _getattr_q U_getattrqUcontextqUmemqUprqUzwuqUstringqUrepurlqUrepqUelementqUtypeqUheadqUspmqUmidqUspeqUfootqU listiconesqUprntqUtitreqUmodq Uimgtypq!Uhtmlq"tq#U co_argcountq$KubU_paramsq%Uidobjq&Uidq'Uediter_elementq(U__ac_local_roles__q)}q*Uxavq+]q,UOwnerq-asU_dav_writelocksq.(U lq/(U Persistenceq0UPersistentMappingq1tq2tq3QU _bind_namesq4(cShared.DC.Scripts.Bindings NameAssignments q5oq6}q7U_asgnsq8}q9(Uname_containerq:U containerq;U name_subpathqUscriptq?U name_contextq@UcontextqAusbU func_defaultsqBNU_codeqCT0csdZdS(Ncst}t}||tdd}||ddjo dSn||tdd}||d}||td ||d |d} ||d }  || |}  || d } ||tdd ||d| \}}}}}||||tdddd}|}d||dd}|||tdd||d|}||}||}||td| }d}| d||||tddddjo&d||dd| d}nd| d|d || d!} ||d"|||d | }"|||tdd#||d ||}$||}&|SdS($Nszwo_libsmem_datasdroit_edit_dossieris.Vous n'avez pas les droits pour cette action !szwo_bos presentationszwo_urlssplitsrep_urlsrep_objselementsautoursedits zwo_imagessiconess logo_elementss objectIdssRETOUR CONTENUsmenusnavs zwo_modulesss.gifs sEDITION DE L'ELEMENT s s : s title_or_ids config_htmlsedition(s _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstringsrepurlsrepsidobjselementstypesheadsspmsmidsspesfoots listiconessprntstitresmodsimgtypshtml(sidobjs _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstringsrepurlsrepselementstypesheadsspmsmidsspesfoots listiconessprntstitresmodsimgtypshtml((sScript (Python)sediter_elements0* -90 .   ;&)'1 (sediter_element(sediter_element((sScript (Python)ssqDU_bodyqET<mem=context.zwo_lib.mem_data() if mem['droit_edit_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] repurl=string.split(mem['rep_url'],zwu)[1] rep=mem['rep_obj'] element=rep[idobj] type=element.element # AFFICHAGE DU BANDEAU HAUT (head,spm,mid,spe,foot)=context.zwo_bo.autour(mem,pr,'edit',repurl) listicones=context.zwo_images.icones.logo_elements.objectIds() prnt=head titre='RETOUR CONTENU' prnt=prnt+context.zwo_bo.menu(zwu,pr,'nav',titre) prnt=prnt+spm prnt=prnt+mid mod=context.zwo_modules[type] imgtyp='' if type+'.gif' in context.zwo_images.icones.logo_elements.objectIds(): imgtyp='' titre='EDITION DE L\'ELEMENT '+type+' '+imgtyp+' : '+element.title_or_id() html=mod.config_html(mem, mem['rep_obj'], element) prnt=prnt+context.zwo_bo.edition(zwu,pr,'element',titre,html) prnt=prnt+foot return prnt qFU Script_magicqGKUwarningsqH)UtitleqIUUerrorsqJ)U Python_magicqKU* qLu. jG((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Uidobjsq Uidobjsmq U _getitem_q U_getitemq U _getattr_qU_getattrqUcontextqUmemqUprqUzwuqUrepqUconfqU listiconesqUlistobjqUnbelqUobqUlobjqUstringqUrepurlqUheadqUspmqUmidqUspeq Ufootq!Uprntq"Utitreq#Uhtmlq$Uhmq%Ustrq&Uintq'Uhm2q(Uvalq)U elem_placedq*Uszq+Uaffichetableauq,U affichecaseq-U listnonplaceq.Uelq/Uel_objq0Utypeimgq1Utypeq2Ulistq3tq4U co_argcountq5KubU_paramsq6Uidobjs,idobjsmq7Uidq8Udeplacer_elementsq9U__ac_local_roles__q:}q;Uxavq<]q=UOwnerq>asU_dav_writelocksq?(U lq@(U PersistenceqAUPersistentMappingqBtqCtqDQU _bind_namesqE(cShared.DC.Scripts.Bindings NameAssignments qFoqG}qHU_asgnsqI}qJ(Uname_containerqKU containerqLU name_subpathqMUtraverse_subpathqNU name_contextqOUcontextqPU name_m_selfqQUscriptqRusbU func_defaultsqSNU_codeqTT%csdZdS(Nc*?st}t}||tdd ||tdd | d| d| d} ||||tdd d d |d  d } xOd  rB} ||}| |d do |d}nqW||td| dd}|djo d}n||tdd d|\}}}}}|}d| dd}|||tdd d|}||}||}#d}$|||tdd dd|}%||})| d*tt},||tdd |  .g1d!d"}2|d#}4| d$}!5|d%d&| d'd(|!d)|!d*|!d+|!d,}: d-v  d. | d/}|d0}g}$xdd rW}%|%j o@|||%d do||$d1|%nnqW|d2d3| d'd(|!d)|!d*|!d+|!d4| d'd5}|d6| d7d8}|d9}|d:}|d;d<d=d>}x|$d r}%||%}&d?}'||&d}(|(d@jo |(}'n|dA}|dB| ddC|'dD}|dE||&dFdG}qW|dH}|dI}|dH}|||tdd dJdK|}||}dL|| dMd dNjo+||| dMdLdO})n g})d:}|d;dPd=d>}x|)d r}&||&dF}%d?}'||&d}(|(d@||||tdd d d jo |(}'n|dA}|dB| ddC|'dD}|dE||&dFdG}qbW|dH}|||tdd dQdR|}||}|dS|}|SdS(TNszwo_libsmem_dataszwo_bos presentationszwo_urlsrep_objs config_objs zwo_imagessiconess logo_elementss objectIdsis hasPropertyselementissplitsrep_urlssPage de dpart du zwooksautourseditsRETOUR CONTENUsmenusnavsA FAIREseditionsinfos INFORMATIONshauteur_mini_cases tab_to_vals/sesepaisseur_tableaus sappendss edit*skinsCONTENUsmem_cuts user_zw_objsFolders objectValuess&case=mem&objmem=smemsMEMOIRE TAMPONs(*s _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusrepsconfs listiconesslistobjsnbelsobslobjsstringsrepurlsheadsspmsmidsspesfootsprntstitreshtmlshmsstrsintshm2svals elem_placedsszs affichecasesaffichetableaus listnonplaceselsidobjssidobjsmsel_objstypeimgstypeslist(*sidobjssidobjsms _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusrepsconfs listiconesslistobjsnbelsobslobjsstringsrepurlsheadsspmsmidsspesfootsprntstitreshtmlshmsstrsintshm2svals elem_placedsszsaffichetableaus affichecases listnonplaceselsel_objstypeimgstypeslist(( sidobjssidobjsmszwuslistobjshms affichecases listiconessreps elem_placedsvalsaffichetableausmemsprsScript (Python)sdeplacer_elementss*0 - 9 .   1 !  F0<   W  %   &%   1 (+  % ;  &% 1 (sdeplacer_elements(sdeplacer_elements((sScript (Python)ssqUU_bodyqVTmem=context.zwo_lib.mem_data() pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] rep=mem['rep_obj'] conf=mem['config_obj'] listicones=context.zwo_images.icones.logo_elements.objectIds() listobj=rep.objectIds() nbel=0 for ob in listobj: lobj=rep[ob] if lobj.hasProperty('element'): nbel=nbel+1 repurl=string.split(mem['rep_url'],zwu)[1] if repurl=="": repurl="Page de dpart du zwook" # AFFICHAGE DU BANDEAU HAUT (head,spm,mid,spe,foot)=context.zwo_bo.autour(mem,pr,'edit',repurl) prnt=head # AFFICHAGE DES CASE DE LA COLONNE (menus) titre='RETOUR CONTENU' prnt=prnt+context.zwo_bo.menu(zwu,pr,'nav',titre) prnt=prnt+spm prnt=prnt+mid # AFFICHAGE DES ZONES LARGES (editions) # EDITION INFORMATION html = "A FAIRE" prnt=prnt+context.zwo_bo.edition(zwu,pr,'info','INFORMATION',html) prnt=prnt+spe # EDITION CONTENU hm=pr['hauteur_mini_case'] hm2=str(int(hm)) val=context.zwo_lib.tab_to_val(conf) elem_placed=[] #tableau page html = '
c!s:t}t};||d|}<||d|}=||d}>||d} ?d} @|djo |djoA| d|d} nB| djo | djoC| d | d} nE| d } Gt |d joH||d }It |d joJ||d d joKd}Ld | dd| dd| d| d| d| d}Md}O| d}Pdd}R| d} S|d}T|d|d|d|d}U|d|d |d!|d"|d#|d$| dd| d| d| d| d%}V|||d }W|d&|d |d!|d}X|d'|d|d|d}Y|d(}Z|d)}[|Snnn]d | dd| dd| d| d| d| d}_|d*}`|d+ d,|d-d.d/}ax|d ar}b|joc||}|ed0|fd1}g||d2}h|d3jo i|}nj|d4}k|d5| d6d7|d8}l|d9||d:d;}m|d+ d,|d<|d-d.d/}nqWo|d(}q|d=}s|SdS(>Nsccspcsrowspanscolspanss1s rowspan="s" s colspan="sepaisseur_caseisTss#ffffffsespacement_tableaus sepaisseur_tableaus?ss " width="s">ss8
s
ss
s)sappendsinconnuselements.gifsVs&prev=s
(!s _getitem_s_getitems _getattr_s_getattrsvalscassincasspcassrspscspsspnsprsszslenspresbgcshmshtmlcasssptszwusimsaffichetableausidobjssidobjsmselslistobjsrepsel_objs elem_placedstypeimgstypes listiconessmem(!scass _getitem_s_getitems _getattr_s_getattrsvalsincasspcassrspscspsspnsprsszslenspresbgcshmshtmlcasssptszwusimsaffichetableausidobjssidobjsmselslistobjsrepsel_objs elem_placedstypeimgstypes listiconessmem( szwusidobjsmslistobjshms listiconessreps elem_placedsvalsaffichetableausidobjssmemspr(sScript (Python)s affichecase:s^  J  %f%%  J -   &!=  c svt}wdd}x|d}y||d|}zxY|dzrL} {|d}|x&| d|r} }|| }quW~|d}qSW|d}|SdS( Ns/
 sNs< s title_or_ids
sepaisseur_casesctisss
( s _getitem_s_getitemshmshtmltabsprsszsvalstabsintabsliscas affichecase( stabs _getitem_s_getitemshmshtmltabsprsszsvalsintabsliscas affichecase(shmsvals affichecasespr(sScript (Python)saffichetableauvs   sT1s
s$s-ELEMENTS DE LA PAGE NON PLACES :

s2s)sinconnus.gifsVs
 sNs< s title_or_ids
s
' html = html+'' sz=pr['epaisseur_tableau'] html=html+'' return htmlcas htmlcas='' return htmlcas def affichetableau(tab): htmltab = '
' #tableau contenu def affichecase(cas): incas=val['cc'][cas] pcas=val['pc'][cas] rsp=pcas["rowspan"] csp=pcas["colspan"] spn='' if rsp<>'1' and rsp<>'': spn=spn+'rowspan="'+rsp+'" ' if csp<>'1' and csp<>'': spn=spn+'colspan="'+csp+'" ' sz=pr['epaisseur_case'] if len(incas)>0: pre=incas[0] if len(pre)>0: if pre[0]=="T": bgc='' htmlcas='' bgc='#ffffff' spt=pr['espacement_tableau'] im='' sz=pr['epaisseur_tableau'] htmlcas=htmlcas+'' htmlcas=htmlcas+'' htmlcas=htmlcas+'' htmlcas=htmlcas+'' htmlcas=htmlcas+'
'+im+'
'+im+'' htmlcas=htmlcas+affichetableau(incas[0]) htmlcas=htmlcas+''+im+'
'+im+'
' htmlcas=htmlcas+'
' htmlcas=htmlcas+'
' htmlcas=htmlcas+'' for el in incas: if el in listobj: el_obj=rep[el] elem_placed.append(el) typeimg="inconnu" type=el_obj.element if type+'.gif' in listicones: typeimg=type htmlcas=htmlcas+'' htmlcas=htmlcas+'' htmlcas=htmlcas+'
 ' htmlcas=htmlcas+'' htmlcas=htmlcas+' '+el_obj.title_or_id()+'
' htmlcas=htmlcas+'
' sz=pr['epaisseur_case'] intab=val['ct'][tab] for li in intab: htmltab = htmltab +'' for ca in li: htmltab = htmltab + affichecase(ca) htmltab = htmltab +'' htmltab = htmltab +'
' return htmltab html=html+affichetableau('T1') html=html+'' listnonplace=[] for el in listobj: if not el in elem_placed: if rep[el].hasProperty('element'): listnonplace.append(el) html=html+' ' html=html+'' html=html+'ELEMENTS DE LA PAGE NON PLACES :

' html=html+'' html=html+'' for el in listnonplace: el_obj=rep[el] typeimg="inconnu" type=el_obj.element if type+'.gif' in listicones: typeimg=type html=html+'' html=html+'
 ' html=html+'' html=html+' '+el_obj.title_or_id()+'
' html=html+'
' html=html+'' prnt=prnt+context.zwo_bo.edition(zwu,pr,'edit*skin','CONTENU',html) prnt=prnt+spe # EDITION MEMOIRE TAMPON if 'mem_cut' in mem['user_zw_obj'].objectIds('Folder'): list=mem['user_zw_obj']['mem_cut'].objectValues() else: list=[] html='' html=html+'' for el_obj in list: el=el_obj.title_or_id() typeimg="inconnu" type=el_obj.element if type+'.gif' in context.zwo_images.icones.logo_elements.objectIds(): typeimg=type html=html+'' html=html+'
 ' html=html+'' html=html+' '+el_obj.title_or_id()+'
' prnt=prnt+context.zwo_bo.edition(zwu,pr,'mem','MEMOIRE TAMPON',html) prnt=prnt+spe prnt=prnt+''+foot return prnt qWU Script_magicqXKUwarningsqY)UerrorsqZ)U Python_magicq[U* q\u. j((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Uidobjsoq Uidobjsnq Uidobjsmq U _getitem_q U_getitemqU _getattr_qU_getattrqUcontextqUmemqUprqUzwuqUrepqUstringqUrepurlqUrepuserqUheadqUspmqUmidqUspeqUfootqU listiconesqUprntqUtitreq Uhtmlq!UlUitq"U co_argcountq#KubU_paramsq$Uidobjso,idobjsn,idobjsmq%Uidq&Urenommer_elementsq'U__ac_local_roles__q(}q)Uxavq*]q+UOwnerq,asU_dav_writelocksq-(U lq.(U Persistenceq/UPersistentMappingq0tq1tq2QU _bind_namesq3(cShared.DC.Scripts.Bindings NameAssignments q4oq5}q6U_asgnsq7}q8(Uname_containerq9U containerq:U name_subpathq;Utraverse_subpathqU name_m_selfq?Uscriptq@usbU func_defaultsqANU_codeqBT csdZdS(Ncst}t}||tdd}||tdd} ||d} ||d} ||t d||d| d } ||d } ||tdd || d | \}}}}} ||||td ddd} |} d|| dd}|||tdd| | d|}||}||}d}|d}|t d|d}x|dr}|djo|d}|||| |d}|d}|d|d||| |dd }|d!}nqW!|t d|d}"x|d"r}#|djo$|d}%|||| |d}&|d}'|d"|d||| |dd }(|d!}nqW)|t d|d}*x|d*r}+|djo,|d}-|||||d#|d}.|d}/|d$|d||||d#|dd }0|d!}nqBW2|d%}4|d&|d }5|d'|d }6|d(|d }7|d)}8|d*};|||tdd+| | d,d-|}<||}=||}?|SdS(.Nszwo_libsmem_dataszwo_bos presentationszwo_urlsrep_objssplitsrep_urlis user_zw_objsautoursedits zwo_imagessiconess logo_elementss objectIdssRETOUR CONTENUsmenusnavs(
s2s*iss3ssseditionselementsRENOMMER LES ELEMENTS(s _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusrepsstringsrepurlsrepusersheadsspmsmidsspesfoots listiconessprntstitreshtmlsidobjsoslsisidobjsnsidobjsm(sidobjsosidobjsnsidobjsms _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusrepsstringsrepurlsrepusersheadsspmsmidsspesfoots listiconessprntstitreshtmlslsi((sScript (Python)srenommer_elementss`*-90 .     " 2 " 2 + ;   1  (srenommer_elements(srenommer_elements((sScript (Python)ssqCU_bodyqDTgmem=context.zwo_lib.mem_data() pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] rep=mem['rep_obj'] repurl=string.split(mem['rep_url'],zwu)[1] repuser=mem['user_zw_obj'] # AFFICHAGE DU BANDEAU HAUT (head,spm,mid,spe,foot)=context.zwo_bo.autour(mem,pr,'edit',repurl) listicones=context.zwo_images.icones.logo_elements.objectIds() prnt=head titre='RETOUR CONTENU' prnt=prnt+context.zwo_bo.menu(zwu,pr,'nav',titre) prnt=prnt+spm prnt=prnt+mid html='
' html=html+'
s title_or_ids@ ss
' l=string.split(idobjso,'*') for i in l: if i<>'': html=html+'' l=string.split(idobjsn,'*') for i in l: if i<>'': html=html+'' l=string.split(idobjsm,'*') for i in l: if i<>'': html=html+'' html=html+'
' html=html+rep[i].title_or_id() html=html+' ' html=html+'' html=html+'
' html=html+rep[i].title_or_id() html=html+' ' html=html+'' html=html+'
' html=html+repuser['mem_cut'][i].title_or_id() html=html+' ' html=html+'' html=html+'
' html=html+'' html=html+'' html=html+'' html=html+'' html=html+'' prnt=prnt+context.zwo_bo.edition(zwu,pr,'element','RENOMMER LES ELEMENTS',html) prnt=prnt+spe prnt=prnt+foot return prnt qEU Script_magicqFKUwarningsqG)UerrorsqH)U Python_magicqIU* qJu. jG((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Uobjq U _getitem_q U_getitemq U _getattr_q U_getattrqUcontextqUmemqUprqUzwuqUrepqUconfqU listiconesqUlistobjqUnbelqUobqUlobjqUstringqUrepurlqUheadqUspmqUmidqUspeqUfootq Uprntq!Utitreq"Uhtmlq#Uhmq$Ustrq%Uintq&Uhm2q'Uvalq(U elem_placedq)Uszq*Uaffichetableauq+U affichecaseq,U listnonplaceq-Uelq.Uel_objq/Utypeimgq0Utypeq1Ulistq2tq3U co_argcountq4KubU_paramsq5Uobjq6Uidq7Uplaceq8U__ac_local_roles__q9}q:Uxavq;]q(U lq?(U Persistenceq@UPersistentMappingqAtqBtqCQU _bind_namesqD(cShared.DC.Scripts.Bindings NameAssignments qEoqF}qGU_asgnsqH}qI(Uname_containerqJU containerqKU name_subpathqLUtraverse_subpathqMU name_contextqNUcontextqOU name_m_selfqPUscriptqQusbU func_defaultsqRNU_codeqST%csdZdS(Nc)Ast}t}||tdd | ddjo dSn||tdd | d| d | d }  ||||td d d d |d d}  xOd rB} ||}||ddo| d} nqW||td| dd}|djo d}n||tdd d|\}}}}}|}d| dd}|||tdd d|}||} ||}%d}&|||tdd dd |}'||}+| d!,tt}.||tdd"|  0g3d#d$}4|d%}6| d&} 7|d'd(| d)d*| d+| d,| d-| d.}<  d/x  d0|d1}|d2}g}#xddrW}$|$j o@|||$ddo||#d3|$nnqW|d4d5| d)d*| d+| d,| d-| d6| d)d7}|d8| d9d:}|d;}|d<}|d=d>d?}x|#dr}$||$}%d@}&||%d}'|'dAjo |'}&n|dB}|dC| ddD|&dE}|dF||%dGdH}qW|dI}|dJ}|dI}|||tdd dKdL|}||}dM|| dNddOjo+||| dNdMdP}(n g}(d<}|d=dQd?}x|(dr}%||%dG}$d@}&||%d}'|'dA||||td d d djo |'}&n|dB}|dC| ddD|&dE}|dF||%dGdH}qsW|dI}|||tdd dRdS|}||}|dT|}|SdS(UNszwo_libsmem_datasdroit_edit_dossieris.Vous n'avez pas les droits pour cette action !szwo_bos presentationszwo_urlsrep_objs config_objs zwo_imagessiconess logo_elementss objectIdsis hasPropertyselementssplitsrep_urlssPage de dpart du zwooksautourseditsRETOUR CONTENUsmenusnavsA FAIREseditionsinfos INFORMATIONshauteur_mini_cases tab_to_vals/sesepaisseur_tableaus sappendss edit*skinsCONTENUsmem_cuts user_zw_objsFolders objectValuess&case=mem">RETOUR CONTENU' prnt=prnt+context.zwo_bo.menu(zwu,pr,'nav',titre) prnt=prnt+spm prnt=prnt+mid # AFFICHAGE DES ZONES LARGES (editions) # EDITION INFORMATION html = "A FAIRE" prnt=prnt+context.zwo_bo.edition(zwu,pr,'info','INFORMATION',html) prnt=prnt+spe # EDITION CONTENU hm=pr['hauteur_mini_case'] hm2=str(int(hm)) val=context.zwo_lib.tab_to_val(conf) elem_placed=[] #tableau page html = '
c s<t}t}=||d|}>||d|}?||d}@||d} Ad} B|djo |djoC| d|d} nD| djo | djoE| d | d} nG| d } It |d joJ||d }Kt |d joL||d d joMd}Nd | dd| dd| d| d| d| d}Od}Q| d}Rdd}T| d} U|d}V|d|d|d|d}W|d|d |d!|d"|d#|d$| dd| d| d| d| d%}X|||d }Y|d&|d |d!|d}Z|d'|d|d|d}[|d(}\|d)}]|Snnn_d | dd| dd| d| d| d| d}a|d*}b|d+d,|d-d.}cx |d cr}d|joe||}|gd/|hd0}i||d1}j|d2jo k|}nl|d3}m|d4| d5d6|d7}n|d8||d9d:}o|d+d,|d;|d-d.}nqWq|d(}s|d<}u|SdS(=Nsccspcsrowspanscolspanss1s rowspan="s" s colspan="sepaisseur_caseisTss#ffffffsespacement_tableaus sepaisseur_tableaus?ss " width="s">ss8
s
ss
s)sappendsinconnuselements.gifsVs&prev=s
( s _getitem_s_getitems _getattr_s_getattrsvalscassincasspcassrspscspsspnsprsszslenspresbgcshmshtmlcasssptszwusimsaffichetableausobjselslistobjsrepsel_objs elem_placedstypeimgstypes listiconessmem( scass _getitem_s_getitems _getattr_s_getattrsvalsincasspcassrspscspsspnsprsszslenspresbgcshmshtmlcasssptszwusimsaffichetableausobjselslistobjsrepsel_objs elem_placedstypeimgstypes listiconessmem( szwuslistobjshms listiconessobjsreps elem_placedsvalsaffichetableausmemspr(sScript (Python)s affichecase<s^  J  %f%%  J %   &!5  c sxt}ydd}z|d}{||d|}|xY|d|rL} }|d}~x&| d~r} || }quW|d}qSW|d}|SdS( Ns/
 sNs< s title_or_ids
sepaisseur_casesctisss
( s _getitem_s_getitemshmshtmltabsprsszsvalstabsintabsliscas affichecase( stabs _getitem_s_getitemshmshtmltabsprsszsvalsintabsliscas affichecase(shmsvals affichecasespr(sScript (Python)saffichetableauxs   sT1s
s$s-ELEMENTS DE LA PAGE NON PLACES :

s2s)sinconnus.gifsVs
 sNs< s title_or_ids
s
' html = html+'' sz=pr['epaisseur_tableau'] html=html+'' return htmlcas htmlcas='' return htmlcas def affichetableau(tab): htmltab = '
' #tableau contenu def affichecase(cas): incas=val['cc'][cas] pcas=val['pc'][cas] rsp=pcas["rowspan"] csp=pcas["colspan"] spn='' if rsp<>'1' and rsp<>'': spn=spn+'rowspan="'+rsp+'" ' if csp<>'1' and csp<>'': spn=spn+'colspan="'+csp+'" ' sz=pr['epaisseur_case'] if len(incas)>0: pre=incas[0] if len(pre)>0: if pre[0]=="T": bgc='' htmlcas='' bgc='#ffffff' spt=pr['espacement_tableau'] im='' sz=pr['epaisseur_tableau'] htmlcas=htmlcas+'' htmlcas=htmlcas+'' htmlcas=htmlcas+'' htmlcas=htmlcas+'' htmlcas=htmlcas+'
'+im+'
'+im+'' htmlcas=htmlcas+affichetableau(incas[0]) htmlcas=htmlcas+''+im+'
'+im+'
' htmlcas=htmlcas+'
' htmlcas=htmlcas+'
' htmlcas=htmlcas+'' for el in incas: if el in listobj: el_obj=rep[el] elem_placed.append(el) typeimg="inconnu" type=el_obj.element if type+'.gif' in listicones: typeimg=type htmlcas=htmlcas+'' htmlcas=htmlcas+'' htmlcas=htmlcas+'
 ' htmlcas=htmlcas+'' htmlcas=htmlcas+' '+el_obj.title_or_id()+'
' htmlcas=htmlcas+'
' sz=pr['epaisseur_case'] intab=val['ct'][tab] for li in intab: htmltab = htmltab +'' for ca in li: htmltab = htmltab + affichecase(ca) htmltab = htmltab +'' htmltab = htmltab +'
' return htmltab html=html+affichetableau('T1') html=html+'' listnonplace=[] for el in listobj: if not el in elem_placed: if rep[el].hasProperty('element'): listnonplace.append(el) html=html+' ' html=html+'' html=html+'ELEMENTS DE LA PAGE NON PLACES :

' html=html+'' html=html+'' for el in listnonplace: el_obj=rep[el] typeimg="inconnu" type=el_obj.element if type+'.gif' in listicones: typeimg=type html=html+'' html=html+'
 ' html=html+'' html=html+' '+el_obj.title_or_id()+'
' html=html+'
' html=html+'' prnt=prnt+context.zwo_bo.edition(zwu,pr,'edit*skin','CONTENU',html) prnt=prnt+spe # EDITION MEMOIRE TAMPON if 'mem_cut' in mem['user_zw_obj'].objectIds('Folder'): list=mem['user_zw_obj']['mem_cut'].objectValues() else: list=[] html='' html=html+'' for el_obj in list: el=el_obj.title_or_id() typeimg="inconnu" type=el_obj.element if type+'.gif' in context.zwo_images.icones.logo_elements.objectIds(): typeimg=type html=html+'' html=html+'
 ' html=html+'' html=html+' '+el_obj.title_or_id()+'
' prnt=prnt+context.zwo_bo.edition(zwu,pr,'mem','MEMOIRE TAMPON',html) prnt=prnt+spe prnt=prnt+''+foot return prnt qVU Script_magicqWKUwarningsqX)UerrorsqY)U Python_magicqZU* q[u. j((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Uhauteurq Ulargeurq Umargeq Ucadreq U couleurcadreqU couleurfondqU couleurtexteqUalignqUvalignqUcasesqU _getitem_qU_getitemqU _getattr_qU_getattrqUlistpropqU listpropvalqUcontextqUmemqUrepqUconfqUvalqUstringqUlist_selected1q U list_selectedq!UaUlUcaseq"Upropcaseq#Upropq$Unpq%Urangeq&Ulenq'Uidpq(Unewlq)Uligneq*tq+U co_argcountq,K ubU_paramsq-UThauteur,largeur,marge,cadre,couleurcadre,couleurfond,couleurtexte,align,valign,casesq.Uidq/U modifpropcasq0U__ac_local_roles__q1}q2Uxavq3]q4UOwnerq5asU_dav_writelocksq6(U lq7(U Persistenceq8UPersistentMappingq9tq:tq;QU _bind_namesq<(cShared.DC.Scripts.Bindings NameAssignments q=oq>}q?U_asgnsq@}qA(Uname_containerqBU containerqCU name_subpathqDUtraverse_subpathqEU name_m_selfqFUscriptqGU name_contextqHhusbU func_defaultsqINU_codeqJTT csdZdS(Nc ##st} t} ddddddddd g }|||||||||g }| | td d }| |d d jo dSn| |d}| |d} | | td d|} | td| d} g} x=|d r0}|djo| |d|nq W| |d}xp|drc}d}| |ddjoJ| | |d|}d| |dd| |dd}n| | |d|}d}xtt|dr} ||| || d }d}| || d!jo# || || || }n"|| || }qW$g}!%| |ddjo&xX|d&rK}"'| td"|"d#|d$d jo| (|!d|"nqW| )|!dd#|d$|n,xX|d,rK}"-| td"|"d%|d$d jo| .|!d|"nqIW| /|!dd%|d$|1|!}q`W| 3|d&d|| | | 5td'd(d)d*7dSdS(+Nshauteurslargeursmargescadres couleurcadres couleurfonds couleurtextesalignsvalignszwo_libsmem_datasdroit_edit_dossieris.Vous n'avez pas les droits pour cette action !srep_objs config_objs tab_to_valssplits*issappendstableauxsTspcscolspan=scolspans /rowspan=srowspans/spts=s######sfindsPC:s:sPT:smanage_changePropertiessREQUESTsRESPONSEsredirects./(#s _getitem_s_getitems _getattr_s_getattrslistpropshauteurslargeursmargescadres couleurcadres couleurfonds couleurtextesalignsvaligns listpropvalscontextsmemsrepsconfsvalsstringscasesslist_selected1s list_selectedsaslscasespropcasespropsnpsrangeslensidpsnewlsligne(#shauteurslargeursmargescadres couleurcadres couleurfonds couleurtextesalignsvalignscasess _getitem_s_getitems _getattr_s_getattrslistprops listpropvalscontextsmemsrepsconfsvalsstringslist_selected1s list_selectedsaslscasespropcasespropsnpsrangeslensidpsnewlsligne((sScript (Python)s modifpropcassP0$ !  / ! # .#.(s modifpropcas(s modifpropcas((sScript (Python)ssqKU_bodyqLTklistprop=['hauteur','largeur','marge','cadre','couleurcadre','couleurfond','couleurtexte','align','valign'] listpropval=[hauteur,largeur,marge,cadre,couleurcadre,couleurfond,couleurtexte,align,valign] mem=context.zwo_lib.mem_data() if mem['droit_edit_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' rep=mem['rep_obj'] conf=mem['config_obj'] val=context.zwo_lib.tab_to_val(conf) list_selected1=string.split(cases,'*') list_selected=[] for a in list_selected1: if a<>'': list_selected.append(a) l=conf.tableaux for case in list_selected: propcase='' if case[0]<>'T': prop=val['pc'][case] propcase='colspan='+prop['colspan']+'/rowspan='+prop['rowspan']+'/' else: prop=val['pt'][case] np='' for idp in range(len(listprop)): propcase=propcase+np+listprop[idp]+'=' np='/' if listpropval[idp]=="######": propcase=propcase+prop[listprop[idp]] else: propcase=propcase+listpropval[idp] newl=[] if case[0]<>'T': for ligne in l: if string.find(ligne,'PC:'+case+':')==-1: newl.append(ligne) newl.append('PC:'+case+':'+propcase) else: for ligne in l: if string.find(ligne,'PT:'+case+':')==-1: newl.append(ligne) newl.append('PT:'+case+':'+propcase) l=newl conf.manage_changeProperties(tableaux=l) context.REQUEST.RESPONSE.redirect('./') return qMU Script_magicqNKUwarningsqO)UerrorsqP)U Python_magicqQU* qRu. j(((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Ucase_selq U_write_q U_writeq U _getitem_q U_getitemqU _getattr_qU_getattrqUcontextqUmemqUprqUzwuqUzwuiqUrepqUconfqUvalqUuoqUboxqUrollqUroll2qUroll3qU listiconesqUlistobjqUnbelq Uobq!Uobjq"Ustringq#Ulist_case_sel_tmpq$U list_case_selq%UaUrepurlq&Uheadq'Uspmq(Umidq)Uspeq*Ufootq+Uprntq,Uftq-Ulnkcoltq.Ufcq/Ulnkcolcq0U list_rolesq1U checkadminq2U listrepinrepq3U affiche_arboq4Urepactuq5U chaine_urlq6Ulistelemq7Uhtmlq8Ucolortxtq9Ulenq:Utitreq;UsequenceqUmoduletq?Umoduleidq@UimgqAU checkintabqBU checksametabqCU checksoustabqDU maketabselectqEU testcarreqFU listintabqGU listincaseqHU listallselqIUallselqJUpremsqKU inlistallselqLUstabqMUccqNU tabinlistqOUsel1qPUstrqQUtabqRU tabselectqSUtest10qTUnblqUUnbcqVUclcqWUbgcqXUclfqYUcltqZUvalidq[Ualiq\Utmp0q]Utmp1q^Utmp2q_Utmp3q`UvaliqaUhmqbUintqcUhm2qdU elem_placedqeUszqfUaffichetableauqgU affichecaseqhU listnonplaceqiUelqjUel_objqkUtypeimgqlUtypeqmUlistqnUeliqotqpU co_argcountqqKubU_paramsqrU case_sel=''qsUidqtU index_htmlquU__ac_local_roles__qv}qwUxavqx]qyUOwnerqzasU_dav_writelocksq{(U lq|(U Persistenceq}UPersistentMappingq~tqtqQU _bind_namesq(cShared.DC.Scripts.Bindings NameAssignments qoq}qU_asgnsq}q(Uname_containerqU containerqU name_subpathqUtraverse_subpathqU name_contextqUcontextqU name_m_selfqUscriptqusbU func_defaultsq(UtqU_codeqTcsddZdS(Nscgst}t}t}||tdd|ddjo dSn||tdd|dd }  |d   |d }  ||tdd | |d }dg}||ddo||d}n||d<d}#d}.d}@|||||tddddd A| dBd}CxOdCrB}D| |}|E|ddoF|d}nqWH|tdd}IgJx=|dJr0}K|djo|Ld|nq6WN||td|dd}P|djo Qd }nT||tdd!d"|\}}} }!}"V|}#Xd#j o Yd$Sn]d%}$cd&}%fd'}&|d(}'|d)d*d+ d, |d-},||td|d|dd}-|td|-d.}.d/}/|,d0jod1}0|d|djo d2}0n|/d3}/|/d4||,d5d6|0d7||d-d8d9}/nt1|.djo,|/ |,||.ddd}/n|/ |,gd}/|/d:}/|#||tdd;d<d=|/}#|#|}#t1djod>}2|2|d?d@| dA| dB}2|2dC}2|2dD|dEdF}2|2dG}2d}/|t3dH||tdIdJdKdLdMdNff}4x|4dr}5||5ddOo||5ddP p|dQdjo||5d8}6||5dR}7|7dS joKdT|ddU|7dV}8|/dW|7dX|6dY|8dZ}/nnnqW|#||tdd;d|2|/}#|#|}#d[||d dj o&||d d\d[d]n|djp.t1|||d d[ddjo d^}2 d_}/ |/|d`da| db| dc}/ |/dd|dedf}/ |/dg}/|/|dhdi| dj| dk}/|/dl|dedm}/|/dn}/|/|dodp| dq| dr}/|/dl|deds}/|/dt}/|/|dudv| dw| dx}/|/dl|dedy}/|/dz}/|/|d{d|| d}| d~}/|/dl|ded}/|/d}/|/|dd| d| d}/ |/dl|ded}/!|/d}/#|/|dd| d| d}/$|/dl|ded}/%|/d}/'|/d}/(|#||tdd;d|2|/}#)|#|}#nn-d}2/d_}/1d}9=d}:Md};Wd}<d}=ddd}@d}Ad}BxJ|@dr=}C|Bdjo d}Bn|Ad}A|A|C}Aq Wt1djoS|/|dd| d| d}/|/d|dedf}/|/d}/nt1djosd}D||d|d}Et1|EdjoK|td||Edd}Ft1|Fdjo d}Dnn|Ddjo|9||Eddjoq|/|dd|d| d| d}/|/d|dd|dedf}/|/d}/nnn|/|dd|d| d| d}/|/d|dd|dedf}/|/d}/|d}GtH|||d|Gdd0jp+tH|||d|Gdd0jo_|/|dd|G| d| d}/|/d|Gd|dedf}/|/d}/nnt1djo|:}I|Idjo |;djo|<|I}J|=|J\}K}L}M|Kdjo|/|ddd|Id|Md|L| d| d}/|/dd|Id|Md|Ld|dedf}/|/d}/nnn |/|dd| d| d}/ |/d|Ad|dedf}/ |/d}/ |/|dd| d| d}/ |/d|dedf}/|/d}/|/d}/|#||tdd;d"|2|/}#|#|}#t1djod}/|/d}/|/d}/|/d|$ddd}/|/d}/|/d|$ddd}/|/d}/ |/d|$ddd}/!|/d}/"|/d|$ddd}/$|$dd}N%d}O&|Ndjo'd|Nd}On(|/d}/)|/d|Od|Nd|%dd}/,|$dd}P-d}O.|Pdjo/d|Pd}On0|/d}/1|/d|Od|Pd|%dd}/4|$dd}Q5d}O6|Qdjo7d|Qd}On8|/d}/9|/d|Od|Qd|%dd}/<|/d:}/>d}R@|#||tdd;d"d|/|R}#A|#|}#B|#d}#nGt1djo Hd}/n Jd}/L|/dd7}/N|/d}/O|/d|&dd}/P|/d}/Q|/d|&dd}/S|&d}STd}TUd}UVd}VWd}WX|Sdjo Yd}UnDZ|Sdjo [d}Vn'\|Sdjo ]d}Wn _d}T`|/d}/a|/d}/b|/d|Td}/c|/d|Ud}/d|/d|Vd}/e|/d|Wd}/f|/d}/g|/d}/i|&d}Xjd}Tkd}Uld}Vmd}Wn|Sdjo od}UnDp|Sdjo qd}Vn'r|Sdjo sd}Wn ud}Tv|/d}/w|/d}/x|/d|Td}/y|/d|Ud}/z|/d|Vd}/{|/d|Wd }/||/d}/}|/d}/|/d}/|/d|&dd}/|/d}/|/d|&dd}/|&d}Nd}O|Ndjod|Nd}On|/d}/|/d|Od|Nd|'dd}/|&d}Pd}O|Pdjod|Pd}On|/d}/|/d|Od|Pd|'dd}/|&d}Qd}O|Qdjod|Qd}On|/d}/|/d|Od|Qd|'dd}/|/d:}/d }R|#||tdd;d"d|/|R}#|#|}#|#d}#|#| }#t1djo d }/n d }/|#||tdd dd|/}#|#|!}#d}/|/d|dd|dd| d}/|/d|dd|dd| d}/|dtHtZ}[g |/dd}/|/d}/|d}]|/d d!|d"d#|]d$|]d%|]d&|]d'}/ d( ? d)K|/d}/M|/d*}/Og}`PxddPrW}aQ|a j o@||R |addo|S|`d|annqWUt1|`djoW|/d+d,|d"d#|]d$|]d%|]d&|]d-|d"d.}/X|/d/|d0d7}/Y|/d1}/[|/d2}/\x;|`d\r.}a]| |a}b^d3}c_||bd}d`|ddS jo a|d}cnbt1djoXc|/d4}/d|/d5|ddU|cd6}/e|/d7||bd8d8}/nmg|/d9|ad:}/h|/d;|ad<|ddU|cd6}/i|/d=|ad>||bd8d?}/qWj|/d:}/l|/d@}/no|/d:}/s|/dA|dd|dd| d}/t|/d|dd|dd| d}/v|/d:}/x|#|/}#y|#|!}#}d[||d ddKjo~|||d d[dJ}et1|edjoud2}/x|edr }b||bdR}f||bd8}ad3}c||bd}d|ddS||||tddddjo |d}cnt1djo|/d4}/n|/dB|fd:}/|/d5|ddU|cd6}/|/d7|ad8}/qqW|/d:}/|#||tdd dCdD|/}#|#|!}#nn|#d|"}#|#SdS(ENszwo_libsmem_datasdroit_edit_dossieris.Vous n'avez pas les droits pour cette action !szwo_bos presentationszwo_urls/zwo_images/bo/srep_objs config_objs tab_to_vals user_zw_objss hasPropertys configboxsboxcsd|d}|d|d|d}|d}|d|d|d}|d}|d|d}|d}|djo|d }n |d |d |d }!|SdS( Ns (surlsrettsnomsrolsimg(snomsurlsimgsrolsrett((sScript (Python)srolls   cs#$d|d}%|d|d|d}&|d}'|d|d|d}(|d})|d|d}*|d}+|d|d |d },|SdS( Ns(sactionsrettsnomsrolsimg(snomsactionsimgsrolsrett((sScript (Python)sroll2#s   cs#./d}0d}1|djo2d|d}3d}n4d|d|d}5|d|d |d}6|d |d}7|d|d |d}8|d }9|d|d}:|d };|d jo<|d}n=|d|d|d}>|SdS(Nss poplink('s');s killlink();s (shlptxtshlptxt2shelpsurlsrettsnomsrolsimg(snomsurlsimgsrolshelpshlptxtshlptxt2srett((sScript (Python)sroll3.s      szwo_infos zwo_imagessiconess logo_elementss objectIdsiselementssplits*sappendsrep_urlsPage de dpart du zwooksautoursedits zwo_dossiers5Dossier non zwook, migration auto pas encore faite...c sk]t}t}|||^d|d|o&_|||d||SnadSdS(Nsptshas_keys(s _getitem_s_getitems _getattr_s_getattrsvalstabskey(skeystabs _getitem_s_getitems _getattr_s_getattrsval(sval(sScript (Python)sft]s"&cscdd|dSdS(Ns` [E](stxt(stxt((sScript (Python)slnkcoltcsc szft}t}gg}hx'|dhr}i|djoj||ddjo`|||kd|d|o(l|||d||} n nd} n]|||pd|d|o(q|||d||} n sd} nt| |j o|u|d| nq$Wwt |djox||dSnzd SdS( NissTspcshas_keysptsappendis######( s _getitem_s_getitems _getattr_s_getattrslistvalslistcasscassvalskeysnewvalslen( skeyslistcass _getitem_s_getitems _getattr_s_getattrslistvalscassvalsnewvalslen(sval(sScript (Python)sfcfs ""("( cs|}d|dSdS(Ns` [E](stxt(stxt((sScript (Python)slnkcolc|ss user_roles_idc st}|||dd}|td|d}x[drN}xB|dr5}|djo|jo dSnnq`WqKWdSdS( Ns zwo_dossiersgroupes_editeursssplits:iss1s0(s _getattr_s_getattrsthisrepss_list_asstringslist_as list_rolessa(sthisreps _getattr_s_getattrss_list_asstringslist_as list_rolessa(s list_roles(sScript (Python)s checkadmins c st}|||dddo:|||dd}|td|d}n g}g}x~||dddrb}||dd oC||d d jo&||d ||d nnqWg}xR|drE} | |jo/| |j o||d | nnqWx>|dr1} | |j o||d | nqhW|SdS( Ns zwo_dossiers hasPropertysordressplits&s objectValuessFolderis type_zwooksdossiersappendsgetId( s _getattr_s_getattrsrepsordresstringslordreslistrepsrslistpagesi( sreps _getattr_s_getattrsordresstringslordreslistrepsrslistpagesi((sScript (Python)s listrepinreps$  '+ cst}t}d}d}xe||dddrI} || ddo*|| ddjo d}nnq<W|djo(d } d} xLt |dr9} | d } | d jo d } n d } qWd}g}t|djok||d}d}xF|dr9} |djo d}n||d | qOWn|}x|dr }|||} || d }|| d}| d jo|d}d}|| d|djo d}n|d| d|d|d|| dd}||jo!|| ||d}nnqWn|SdS(Nsis objectValuessFolders hasPropertys type_zwooksdossieris1s   s2sappendsgetIds absolute_urls /zwo_bo/edit/s#000000srep_urls#0000FFs"s&stitles(s _getitem_s_getitems _getattr_s_getattrsrettststsrepnowsnewrepsnumiconesstisrangesisasactusnewlistslens liste_restesbs listrepinrepslistrepsnewrepidsabss checkadminsrelscolortxtsmems affiche_arbo(srepnows liste_restesis _getitem_s_getitems _getattr_s_getattrsrettststsnewrepsnumiconesstisrangesasactusnewlistslensbs listrepinrepslistrepsnewrepidsabss checkadminsrelscolortxtsmems affiche_arbo(s checkadmins listrepinreps affiche_arbosmem(sScript (Python)s affiche_arbosJ  '          % 6-szwo_objs/s?s1s#000000s#0000FFs"s
s&s title_or_ids
smenusnavs NAVIGATIONsd
s listelements list_elementsrond_list_elem.gifsr_rond_plus.gifs&s$ AJOUT ELEMENTs
ssorts zwo_moduless objectValuessFoldersnotescmpsdescszone_principales admin_onlysdroit_config_dossiersgetIds.gifs!ss  smem_cutsmanage_addFoldersmemoire tamponsACTION ELEMENTSss rollediterscheckone('editer')srond_edit_elem.gifsr_rond_edit.gifs5s Editer un lment.
s rolldeplacerschecknozero('deplacer')srond_deplace_elem.gifsr_rond_deplace.gifss Deplacer.
s rolldupliquerschecknozero('dupliquer')srond_duplique_elem.gifsr_rond_duplique.gifsB;text-decoration:none" href="javascript:checknozero('dupliquer')">s Dupliquer.
s rolldetruireschecknozero('detruire')srond_detruire_elem.gifsr_rond_detruire.gifsA;text-decoration:none" href="javascript:checknozero('detruire')">s Detruire.
s rollrenommerschecknozero('renommer')srond_renommer_elem.gifsr_rond_renommer.gifsA;text-decoration:none" href="javascript:checknozero('renommer')">s Renommer.
s rollcochealls cocheform()srond_coche_elem.gifsr_rond_coche.gifs5;text-decoration:none" href="javascript:cocheform()">s Cocher tous.
srolldecochealls decocheform()srond_decoche_elem.gifsr_rond_decoche.gifs7;text-decoration:none" href="javascript:decocheform()">s Decocher tous.
s
sACTION TABLEAUc s1t}t}2d}3||d|}4x|d4r}5x|d5r} 6||d| } 7t | djoK8|t d|| dd} 9t | djo :d}nnqTWq?W;|SdS(NisctsccissplitsT(s _getitem_s_getitems _getattr_s_getattrstabinsvalstabsccslscelsccelslensstrings tabinlist(stabs _getitem_s_getitems _getattr_s_getattrstabinsvalsccslscelsccelslensstrings tabinlist(sval(sScript (Python)s checkintab1s $c s=t}t}>|d}?g}@x||dd@r}Ax|||dArw}Bxk|dBr^} CxRdCrE} D| | jo/E||j o|F|d|nnqWquWq`WqBWHt |djoI||dSnKdSdS(Nsctskeysisappendi( s _getitem_s_getitems _getattr_s_getattrsvalsctstabssidtabslignscass list_case_selscaseslen( s _getitem_s_getitems _getattr_s_getattrsvalsctstabssidtabslignscass list_case_selscaseslen(s list_case_selsval(sScript (Python)s checksametab=s !+c sMt}t}Nd}OxdOr}P||d|}Qt |djoOR|t d||dd} St | djoT|d}nnq$WU|SdS(NisccissplitsT( s _getitem_s_getitems _getattr_s_getattrstabins list_case_selscasesvalsccslensstrings tabinlist( s _getitem_s_getitems _getattr_s_getattrstabins list_case_selscasesvalsccslensstrings tabinlist(s list_case_selsval(sScript (Python)s checksoustabMs $csWt}t}t}X||d|}Zg} [h} \d} ]d} ^d} _g}`xf|d`rY}ax|dar }b|djoct| dt| }dxd|| d|ore| d} ft| dt| }g| d| jo0|h|d| i| d} jd} nqWk||d|}l||d }m||d }n|djo od }np|djo qd }nrt|}st|}txt|dtr}ux{t|durh}vt| |dt| |}w||| |<x|jo|y| d|nqWqW{| |} nqW|| djo }| } n~| d} d} qrW| }g}xt|dr} g}xvt| drc} t| dt| }|| jo||ddn||ddqW||d|qW|SdS( Nsctiss-shas_keyisappendspcscolspansrowspans1(s_write_s_writes _getitem_s_getitems _getattr_s_getattrsvalstabscts dico_selectsveriftabsisjs nbcolonness lignevidesvlignescasesstrsidcasespcscolspansrowspansintsrangesiisjjsidcs list_case_selsnbligness tabselectsligne(stabs_write_s_writes _getitem_s_getitems _getattr_s_getattrsvalscts dico_selectsveriftabsisjs nbcolonness lignevidesvlignescasesstrsidcasespcscolspansrowspansintsrangesiisjjsidcs list_case_selsnbligness tabselectsligne(s list_case_selsval(sScript (Python)s maketabselectWsb          %      csst}d}d}d}d}x|dr}d}xc|drV} |djo3| djod}|}|}nn|d}qWW|d}q9W|||}d}d} x4|dr'} | djo| d} nqWd} x=|dr0}|||djo| d} nq8Wd} d}x|dr}d}x|dr} ||jo,||| jo||jo||| jo!| djo d} nn| djo d} n|d}qW|d}qW| t | t | fSdS(Nii(s _getitem_s_getitemsstartspispjsjstabslsiscsdisdjstaboksstr(stabs _getitem_s_getitemsstartspispjsjslsiscsdisdjstaboksstr((sScript (Python)s testcarresJ              ? c st}t}||d|}g}t|djo||d} t| djoV|| ddjo9||d}||d||Snnn||d||SdS(NsccisTsappend( s _getitem_s_getitems _getattr_s_getattrsvalscassincassl1slenspres listintab( scass _getitem_s_getitems _getattr_s_getattrsvalsincassl1slenspres listintab(s listintabsval(sScript (Python)s listincases c st}t}g}||d|}xj|dr]}xQ|drD} | } x)| dr} ||d| qxWqTWq?W|SdS(Nsctisappend( s _getitem_s_getitems _getattr_s_getattrsl1svalstabsintabsliscas listincasesl2sa( stabs _getitem_s_getitems _getattr_s_getattrsl1svalsintabsliscas listincasesl2sa(s listincasesval(sScript (Python)s listintabs sT1s modif_li_cosrond_modif_li_co.gifsr_rond_modif_li_co.gifs#
spcsrowspanscolspans annulefusionsannule_fusionok?case=srond_edit_annule_fusion.gifsr_rond_annule_fusion.gifs

s cocheallcasesindex_html?case_sel='+allsel+'srond_coche_case.gifsr_rond_coche_case.gifs
Proprits gnrales du tableau
ssdsFsdsFsDsDss couleurfondsgs:>  Couleur Texte  s;>  VALIDER PROPRIETESsPROPRIETE TABLEAUssDProprits de la case selectionnesDProprits des cases selectionness
Hauteur    
Largeur    Marge    Cadre    Couleur Cadre    s
Couleur Fond  
Horizontal  s2s3ssbs
s' if newrepid==actu: rett=rett+affiche_arbo(newrep,newlist,i+1) return rett repactu=mem['zwo_obj'] chaine_url=string.split(mem['rep_url'],mem['zwo_url'])[1] listelem=string.split(chaine_url,'/') html='
  svalignstopsmiddlesbottomse
Vertical    ss
shauteur_mini_cases/sesepaisseur_tableaus
c$st}t}|| d|}|| d|}||d}||d} d} |djo |djo| d|d} n| djo | djo| d | d} n| d } t |d jo||d }t |d joS||d d jo6d}|jod | dd| dd| d| d| d| d| dd}| d}d}xUd rH}||jo2|djo|d}n||}nqWd|}|d| dd|d}nd | dd| dd| d| d| d| d}d}}|djo|d}n||}d|}|d| dd|d }| d!}d"d#}| d$} |d%}|d&|d'|d(|d)}|d&|d*|d+|d,|d-|d.| dd| d| d| d| d/}| ||d } |d0|d*|d+|d)} |d1|d'|d(|d)} |d2} |d3} |Snnn|jod | dd| dd| d| d| d| d| dd}d}xUd rH}||jo2|djo|d}n||}nqWd|}|d| dd|d4}nd | dd| dd| d| d| d| d}}|djo|d}n||} d|}!|d| dd|d5}$|d6}%xe|d %rX}&|joB'||}|)d7|*d8} +||d9}!,|!d:jo -|!} n.t d joX/|d;}0|d<|d=d>| d?}1|d@||dAdB}nm4|dC|dD}5|dE|dF|d=d>| dG}6|dH|dI||dAdJ}nqXW8|d2}:|dK}<|SdS(LNsccspcsrowspanscolspanss1s rowspan="s" s colspan="sepaisseur_caseisTss*s./index_html?case_sel=sC
Deselectionne le tableau
s.px; background-color: #ffffff;" valign="top" >s#ffffffs5">Selectionne le tableau
sespacement_tableaus sepaisseur_tableaus?ss " width="s">ss4">Deselectionne la case
s
ss
s2">Selectionne la case
s8
sappendsinconnuselements.gifsVsbs
($s _getitem_s_getitems _getattr_s_getattrsvalscassincasspcassrspscspsspnsprsszslenspresbgcs list_case_selshmshtmlcassnew_cssasurlscase_selssptszwusimsaffichetableauselslistobjsrepsel_objs elem_placedstypeimgstypes listiconessmem($scass _getitem_s_getitems _getattr_s_getattrsvalsincasspcassrspscspsspnsprsszslenspresbgcs list_case_selshmshtmlcassnew_cssasurlscase_selssptszwusimsaffichetableauselslistobjsrepsel_objs elem_placedstypeimgstypes listiconessmem( szwus list_case_selshmslistobjsmemscase_sels listiconessreps elem_placedsvalsaffichetableauspr(sScript (Python)s affichecases  [  *J    & %f%%  [  *J   &    &%.1  c s?t}@dd}A|d}B||d|}CxY|dCrL} D|d}Ex&| dEr} F|| }quWG|d}qSWH|d}I|SdS( Ns/
 sNs< s title_or_ids
ssD s
sepaisseur_casesctisss
( s _getitem_s_getitemshmshtmltabsprsszsvalstabsintabsliscas affichecase( stabs _getitem_s_getitemshmshtmltabsprsszsvalsintabsliscas affichecase(shmsvals affichecasespr(sScript (Python)saffichetableau?s   s
s$sinconnusV
 sNs< s
sJ s
$& $  1         +  +  +  4                                 +  +  +  4     1  77  F0e   W     &%.-  77   ('  ; & 1(s index_html(s index_html((sScript (Python)ssqU_bodyqTUmem=context.zwo_lib.mem_data() if mem['droit_edit_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] zwui=zwu+'/zwo_images/bo/' rep=mem['rep_obj'] conf=mem['config_obj'] val=context.zwo_lib.tab_to_val(conf) uo=mem['user_zw_obj'] box=[''] if uo.hasProperty('configbox'): box=uo.configbox pr['box']=box def roll(nom,url,img,rol): rett='' return rett def roll2(nom,action,img,rol): rett='' return rett def roll3(nom,url,img,rol,help): hlptxt='' hlptxt2='' if help<>'': hlptxt=' poplink(\''+help+'\');' hlptxt2='killlink();' rett='' return rett listicones=context.zwo_info.zwo_images.icones.logo_elements.objectIds() listobj=rep.objectIds() nbel=0 for ob in listobj: obj=rep[ob] if obj.hasProperty('element'): nbel=nbel+1 list_case_sel_tmp=string.split(case_sel,'*') list_case_sel=[] for a in list_case_sel_tmp: if a<>'': list_case_sel.append(a) repurl=string.split(mem['rep_url'],zwu)[1] if repurl=="": repurl="Page de dpart du zwook" # AFFICHAGE DU BANDEAU HAUT (head,spm,mid,spe,foot)=context.zwo_bo.autour(mem,pr,'edit',repurl) prnt=head if not 'zwo_dossier' in listobj: return "Dossier non zwook, migration auto pas encore faite..." # AFFICHAGE DES CASE DE LA COLONNE (menus) def ft(key,tab): if val['pt'][tab].has_key(key): return val['pt'][tab][key] else: return '' def lnkcolt(txt): return ' [E]' def fc(key,listcas): listval=[] for cas in listcas: if cas<>'': if cas[0]<>'T': if val['pc'][cas].has_key(key): newval=val['pc'][cas][key] else: newval='' else: if val['pt'][cas].has_key(key): newval=val['pt'][cas][key] else: newval='' if not newval in listval: listval.append(newval) if len(listval)==1: return listval[0] else: return '######' def lnkcolc(txt): return ' [E]' # MENU NAVIGATION list_roles=mem['user_roles_id'] def checkadmin(thisrep): s_list_a=thisrep.zwo_dossier.groupes_editeurs list_a=string.split(s_list_a,':') for a in list_roles: for a in list_a: if a<>'': if a in list_roles: return "1" return "0" def listrepinrep(rep): if rep.zwo_dossier.hasProperty('ordre'): ordre=rep.zwo_dossier.ordre lordre=string.split(ordre,'&') else: lordre=[] listrep=[] for r in rep.objectValues('Folder'): if r.hasProperty('type_zwook'): if r.type_zwook=="dossier": listrep.append(r.getId()) listpage=[] for i in lordre: if i in listrep: if not i in listpage: listpage.append(i) for i in listrep: if not i in listpage: listpage.append(i) return listpage def affiche_arbo(repnow,liste_reste,i): rett='' tst=0 for newrep in repnow.objectValues('Folder'): if newrep.hasProperty("type_zwook"): if newrep.type_zwook=='dossier': tst=1 if tst==1: numicone="1" sti='' for a in range(i): sti=sti+'  ' if numicone=="1": numicone="2" else: numicone="1" actu='' newlist=[] if len(liste_reste)>0: actu=liste_reste[0] b=0 for a in liste_reste: if b==0: b=1 else: newlist.append(a) listrep=listrepinrep(repnow) for newrepid in listrep: newrep=repnow[newrepid] newrepid=newrep.getId() abs=newrep.absolute_url() if checkadmin(newrep)=="1": rel=abs+'/zwo_bo/edit/' colortxt='#000000' if newrep.absolute_url()==mem['rep_url']: colortxt="#0000FF" rett=rett+'
'+sti+''+newrep.title+'
' if checkadmin(repactu)=="1": colortxt='#000000' if mem['zwo_url']==mem['rep_url']: colortxt="#0000FF" html=html+'' if len(listelem)>1: html=html+affiche_arbo(repactu,listelem[1:],0) else: html=html+affiche_arbo(repactu,[],0) html=html+ '
' html=html+''+mem['zwo_obj'].title_or_id()+'
' prnt=prnt+context.zwo_bo.menu(zwu,pr,'nav','NAVIGATION',html) prnt=prnt+spm # MENU AJOUT ELEMENT if len(list_case_sel)==0: titre='
' titre=titre+roll('listelement',"list_element",zwui+'rond_list_elem.gif',zwui+'r_rond_plus.gif') titre=titre+'' titre=titre+' AJOUT ELEMENT' titre=titre+'
' html='' lm=sequence.sort(context.zwo_modules.objectValues('Folder'), (('note', 'cmp', 'desc'),) ) for module in lm: if module.hasProperty('zone_principale'): if not module.hasProperty('admin_only') or mem['droit_config_dossier']==1: modulet=module.title_or_id() moduleid=module.getId() if moduleid+'.gif' in listicones: img='' html=html+'
'+img+' ' prnt=prnt+context.zwo_bo.menu(zwu,pr,'element',titre,html) prnt=prnt+spm # MENU ACTION ELEMENT if not 'mem_cut' in mem['user_zw_obj'].objectIds(): mem['user_zw_obj'].manage_addFolder('mem_cut','memoire tampon') if nbel>0 or len(mem['user_zw_obj']['mem_cut'].objectIds())>0: titre ="ACTION ELEMENTS" html='' html=html+roll2('rollediter',"checkone(\'editer\')",zwui+'rond_edit_elem.gif',zwui+'r_rond_edit.gif') html=html+'' html=html+' Editer un lment.
' html=html+roll2('rolldeplacer',"checknozero(\'deplacer\')",zwui+'rond_deplace_elem.gif',zwui+'r_rond_deplace.gif') html=html+'' html=html+' Deplacer.
' html=html+roll2('rolldupliquer',"checknozero(\'dupliquer\')",zwui+'rond_duplique_elem.gif',zwui+'r_rond_duplique.gif') html=html+'' html=html+' Dupliquer.
' html=html+roll2('rolldetruire',"checknozero(\'detruire\')",zwui+'rond_detruire_elem.gif',zwui+'r_rond_detruire.gif') html=html+'' html=html+' Detruire.
' html=html+roll2('rollrenommer',"checknozero(\'renommer\')",zwui+'rond_renommer_elem.gif',zwui+'r_rond_renommer.gif') html=html+'' html=html+' Renommer.
' html=html+roll2('rollcocheall',"cocheform()",zwui+'rond_coche_elem.gif',zwui+'r_rond_coche.gif') html=html+'' html=html+' Cocher tous.
' html=html+roll2('rolldecocheall',"decocheform()",zwui+'rond_decoche_elem.gif',zwui+'r_rond_decoche.gif') html=html+'' html=html+' Decocher tous.
' html=html+'
' prnt=prnt+context.zwo_bo.menu(zwu,pr,'element',titre,html) prnt=prnt+spm # MENU ACTION TABLEAU titre ="ACTION TABLEAU" html='' def checkintab(tab): tabin=0 cc=val['ct'][tab] for l in cc: for cel in l: ccel=val['cc'][cel] if len(ccel)==1: tabinlist=string.split(ccel[0],'T') if len(tabinlist)>1: tabin=1 return tabin def checksametab(): ct=val['ct'] tabs=[] for idtab in ct.keys(): for lign in ct[idtab]: for cas in lign: for case in list_case_sel: if case==cas: if not idtab in tabs: tabs.append(idtab) if len(tabs)==1: return tabs[0] else: return 0 def checksoustab(): tabin=0 for case in list_case_sel: cc=val['cc'][case] if len(cc)==1: tabinlist=string.split(cc[0],'T') if len(tabinlist)>1: tabin=tabin+1 return tabin def maketabselect(tab): ct=val['ct'][tab] dico_select=[] veriftab={} i=0 j=0 nbcolonnes=0 lignevide=[] for vligne in ct: for case in vligne: if case<>'': 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]=case if case in list_case_sel: dico_select.append(idc) i=i+colspan if j==0: nbcolonnes=i j=j+1 i=0 nblignes=j tabselect=[] for j in range(nblignes): ligne=[] for i in range(nbcolonnes): idc=str(i)+'-'+str(j) if idc in dico_select: ligne.append(1) else: ligne.append(0) tabselect.append(ligne) #return dico_select return tabselect def testcarre(tab): #determine le premier 1: start=0 pi=0 pj=0 j=0 for l in tab: i=0 for c in l: if start==0: if c==1: start=1 pi=i pj=j i=i+1 j=j+1 #determine largeur carre de 1: l=tab[pj] i=0 di=0 for c in l: if c==1: di=di+1 #determine hauteur carre de 1: dj=0 for l in tab: if l[pi]==1: dj=dj+1 #Check table: tabok=1 j=0 for l in tab: i=0 for c in l: if i>=pi and i=pj and j0: pre=incas[0] if len(pre)>0: if pre[0]=="T": l1=listintab(incas[0]) l1.append(cas) return l1 l1.append(cas) return l1 def listintab(tab): l1=[] intab=val['ct'][tab] for li in intab: for ca in li: l2=listincase(ca) for a in l2: l1.append(a) return l1 listallsel=listintab('T1') allsel='' prems=0 for inlistallsel in listallsel: if prems==0: prems=1 else: allsel=allsel+'*' allsel=allsel+inlistallsel if len(list_case_sel)==0: html=html+roll('modif_li_co',"modif_li_co",zwui+'rond_modif_li_co.gif',zwui+'r_rond_modif_li_co.gif') html=html+'' html=html+' Editer lignes et colonnes.
' elif len(list_case_sel)==1: stab=0 cc=val['cc'][list_case_sel[0]] if len(cc)==1: tabinlist=string.split(cc[0],'T') if len(tabinlist)>1: stab=1 if stab==1: if checkintab(cc[0])==0: html=html+roll('delsoustab','del_soustabok?case='+list_case_sel[0],zwui+'rond_edit_detruit_soustab.gif',zwui+'r_rond_detruit_soustab.gif') html=html+'' html=html+' Detruire sous tableau.
' else: html=html+roll('addsoustab','add_soustabok?case='+list_case_sel[0],zwui+'rond_edit_ajout_soustab.gif',zwui+'r_rond_ajout_soustab.gif') html=html+'' html=html+' Ajout sous tableau.
' sel1=list_case_sel[0] if str(val['pc'][sel1]['rowspan'])<>"1" or str(val['pc'][sel1]['colspan'])<>"1": html=html+roll('annulefusion','annule_fusionok?case='+sel1,zwui+'rond_edit_annule_fusion.gif',zwui+'r_rond_annule_fusion.gif') html=html+'' html=html+' Annule la fusion.
' elif len(list_case_sel)>1: tab=checksametab() if tab<>0 and checksoustab()==0: tabselect=maketabselect(tab) (test10,nbl,nbc)=testcarre(tabselect) if test10==1: html=html+roll('fusion','fusionok?cases='+case_sel+'&tab='+tab+'&nbc='+nbc+'&nbl='+nbl,zwui+'rond_edit_fusion.gif',zwui+'r_rond_fusion.gif') html=html+'' html=html+' Fusion de cases.
' html=html+roll('cocheallcase',"index_html?case_sel='+allsel+'",zwui+'rond_coche_case.gif',zwui+'r_rond_coche_case.gif') html=html+'' html=html+' Selectionne tout.
' html=html+roll('decocheallcase',"index_html",zwui+'rond_decoche_case.gif',zwui+'r_rond_decoche_case.gif') html=html+'' html=html+' Deselectionne tout.
' html=html+'
' prnt=prnt+context.zwo_bo.menu(zwu,pr,'edit',titre,html) prnt=prnt+spm # MENU PROPRIETE TABLEAU if len(list_case_sel)==0: html='Proprits gnrales du tableau' html=html+'' html=html+'' html=html+'' html=html+'' html=html+'' html=html+'' html=html+'' html=html+'' html=html+'' clc=ft('couleurcadre','T1') bgc='' if clc<>'': bgc='bgcolor="'+clc+'"' html=html+'' html=html+'' clf=ft('couleurfond','T1') bgc='' if clf<>'': bgc='bgcolor="'+clf+'"' html=html+'' html=html+'' clt=ft('couleurtexte','T1') bgc='' if clt<>'': bgc='bgcolor="'+clt+'"' html=html+'' html=html+'' html=html+'
Hauteur    
Largeur    
Marge    
Cadre    
Couleur Cadre    '+lnkcolt('cadre')+'
Couleur Fond    '+lnkcolt('fond')+'
Couleur Texte    '+lnkcolt('texte')+'
' valid='VALIDER PROPRIETES' prnt=prnt+context.zwo_bo.menu(zwu,pr,'edit','PROPRIETE TABLEAU',html,valid) prnt=prnt+spm prnt=prnt+'' # MENU PROPRIETE CASES else: if len(list_case_sel)==1: html='Proprits de la case selectionne' else: html='Proprits des cases selectionnes' html=html+'' html=html+'' html=html+'' html=html+'' html=html+'' ali = fc( 'align',list_case_sel) tmp0='' tmp1='' tmp2='' tmp3='' if ali=='left': tmp1=" selected" elif ali=='center': tmp2=" selected" elif ali=='right': tmp3=" selected" else: tmp0=" selected" html=html+'' html=html+'' vali = fc('valign',list_case_sel) tmp0='' tmp1='' tmp2='' tmp3='' if ali=='top': tmp1=" selected" elif ali=='middle': tmp2=" selected" elif ali=='bottom': tmp3=" selected" else: tmp0=" selected" html=html+'' html=html+'' html=html+'' html=html+'' html=html+'' html=html+'' clc=fc('couleurcadre',list_case_sel) bgc='' if clc<>'': bgc='bgcolor="'+clc+'"' html=html+'' html=html+'' clf=fc('couleurfond',list_case_sel) bgc='' if clf<>'': bgc='bgcolor="'+clf+'"' html=html+'' html=html+'' clt=fc('couleurtexte',list_case_sel) bgc='' if clt<>'': bgc='bgcolor="'+clt+'"' html=html+'' html=html+'' html=html+'
Hauteur    
Largeur    
Horizontal    ' html=html+'
Vertical    ' html=html+'
Marge    
Cadre    
Couleur Cadre    '+lnkcolc('cadre')+'
Couleur Fond    '+lnkcolc('fond')+'
Couleur Texte    '+lnkcolc('texte')+'
' valid='VALIDER PROPRIETES' prnt=prnt+context.zwo_bo.menu(zwu,pr,'edit','PROPRIETE TABLEAU',html,valid) prnt=prnt+spm prnt=prnt+'' prnt=prnt+mid # AFFICHAGE DES ZONES LARGES (editions) # EDITION INFORMATION if len(list_case_sel)==0: html = """ Zone d'dition de contenu. Vous allez pouvoir, selon les droits qui vous ont t attribus,
- ajouter de nouveaux lments d'ditions (texte, images, liens, ...)
- Mettre en page ces lments en agissant sur les proprits du tableau et de ses cases.
""" else: html = """ Vous pouvez dfinir:
- Une hauteur et une largeur
- Le positionnement des lments qui seront placs l'intrieur (alignement horizontal / vertical)
- Une marge
- Un cadre et une couleur de votre choix
- Une couleur de fond d'cran
- La couleur des textes positionns dans la case
""" prnt=prnt+context.zwo_bo.edition(zwu,pr,'info','INFORMATION',html) prnt=prnt+spe # EDITION CONTENU html = '' html=html+'' html=html+'' listnonplace=[] for el in listobj: if not el in elem_placed: if rep[el].hasProperty('element'): listnonplace.append(el) if len(listnonplace)>0: html=html+'' html=html+'
' hm=pr['hauteur_mini_case'] hm2=str(int(hm)) elem_placed=[] #tableau page html = html+'' html = html+'' sz=pr['epaisseur_tableau'] html=html+'' return htmlcas if cas in list_case_sel: htmlcas='' return htmlcas def affichetableau(tab): htmltab = '
' #tableau contenu def affichecase(cas): incas=val['cc'][cas] pcas=val['pc'][cas] rsp=pcas["rowspan"] csp=pcas["colspan"] spn='' if rsp<>'1' and rsp<>'': spn=spn+'rowspan="'+rsp+'" ' if csp<>'1' and csp<>'': spn=spn+'colspan="'+csp+'" ' sz=pr['epaisseur_case'] if len(incas)>0: pre=incas[0] if len(pre)>0: if pre[0]=="T": bgc='' if cas in list_case_sel: htmlcas='' bgc=pr['color_case_sel'] new_cs='' for a in list_case_sel: if a<>cas: if new_cs<>'': new_cs=new_cs+'*' new_cs=new_cs+a url="./index_html?case_sel="+new_cs htmlcas=htmlcas+'
Deselectionne le tableau
' else: htmlcas='
' bgc='#ffffff' new_cs=case_sel if new_cs<>'': new_cs=new_cs+'*' new_cs=new_cs+cas url="./index_html?case_sel="+new_cs htmlcas=htmlcas+'
Selectionne le tableau
' spt=pr['espacement_tableau'] im='' sz=pr['epaisseur_tableau'] htmlcas=htmlcas+'' htmlcas=htmlcas+'' htmlcas=htmlcas+'' htmlcas=htmlcas+'' htmlcas=htmlcas+'
'+im+'
'+im+'' htmlcas=htmlcas+affichetableau(incas[0]) htmlcas=htmlcas+''+im+'
'+im+'
' htmlcas=htmlcas+'
' new_cs='' for a in list_case_sel: if a<>cas: if new_cs<>'': new_cs=new_cs+'*' new_cs=new_cs+a url="./index_html?case_sel="+new_cs htmlcas=htmlcas+'
Deselectionne la case
' else: htmlcas='
' new_cs=case_sel if new_cs<>'': new_cs=new_cs+'*' new_cs=new_cs+cas url="./index_html?case_sel="+new_cs htmlcas=htmlcas+'
Selectionne la case
' htmlcas=htmlcas+'
' for el in incas: if el in listobj: el_obj=rep[el] elem_placed.append(el) typeimg="inconnu" type=el_obj.element if type+'.gif' in listicones: typeimg=type if len(list_case_sel)>0: htmlcas=htmlcas+'' else: htmlcas=htmlcas+'' htmlcas=htmlcas+'
 ' htmlcas=htmlcas+'' htmlcas=htmlcas+' '+el_obj.title_or_id()+'
' htmlcas=htmlcas+'' htmlcas=htmlcas+' '+el_obj.title_or_id()+'
' htmlcas=htmlcas+'
' sz=pr['epaisseur_case'] intab=val['ct'][tab] for li in intab: htmltab = htmltab +'' for ca in li: htmltab = htmltab + affichecase(ca) htmltab = htmltab +'' htmltab = htmltab +'
' return htmltab html=html+affichetableau('T1') html=html+'
' html=html+'' html=html+'ELEMENTS DE LA PAGE NON PLACES :

' html=html+'' for el in listnonplace: el_obj=rep[el] typeimg="inconnu" type=el_obj.element if type+'.gif' in listicones: typeimg=type if len(list_case_sel)>0: html=html+'' else: html=html+'' html=html+'
 ' html=html+'' html=html+' '+el_obj.title_or_id()+'
' html=html+'' html=html+' '+el_obj.title_or_id()+'
' html=html+'
' html=html+'' html=html+'' html=html+'' prnt=prnt+html prnt=prnt+spe # EDITION MEMOIRE TAMPON if 'mem_cut' in mem['user_zw_obj'].objectIds('Folder'): list=mem['user_zw_obj']['mem_cut'].objectValues() if len(list)>0: html='' for el_obj in list: eli=el_obj.getId() el=el_obj.title_or_id() typeimg="inconnu" type=el_obj.element if type+'.gif' in context.zwo_images.icones.logo_elements.objectIds(): typeimg=type if len(list_case_sel)>0: html=html+'' html=html+'
 ' else: html=html+'
' html=html+'' html=html+' '+el+'
' prnt=prnt+context.zwo_bo.edition(zwu,pr,'mem','MEMOIRE TAMPON',html) prnt=prnt+spe prnt=prnt+''+foot return prnt qU Script_magicqKUwarningsq)Uerrorsq)U Python_magicqU* qu. j((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Ucaseq U _getitem_q U_getitemq U _getattr_q U_getattrqUcontextqUmemqUrepqUconfqUvalqUl2qU numcasemaxqUvligneqUstringqUl3qUintqUnumqU numtabmaxqUlUrecupqUaUchpttqUstrqtqU co_argcountq KubU_paramsq!Ucaseq"Uidq#U add_soustabokq$U__ac_local_roles__q%}q&Uxavq']q(UOwnerq)asU_dav_writelocksq*(U lq+(U Persistenceq,UPersistentMappingq-tq.tq/QU _bind_namesq0(cShared.DC.Scripts.Bindings NameAssignments q1oq2}q3U_asgnsq4}q5(Uname_containerq6U containerq7U name_subpathq8Utraverse_subpathq9U name_m_selfq:Uscriptq;U name_contextqNU_codeq?TcsdZdS(Ncst}t}||tdd}||ddjo dSn||d}||d}||tdd|}  ||d }  d }  x| d  r}  |t d | d d joc |t d | d}t|||ddd}|| jo |} nnqWd }x| d r} |t d | dd joc|t d | d}t|||ddd}||jo |}nnqbWg}d}x|| d ro}|t d |d |dd jo||d|n%!||t d |dd}qW#|d}$| d} %d}|'|ddt|d||(|ddt|dt| |*|ddt| d|+|ddt| d||-|dd |dt||/|dd ||||1tdddd3dSdS( Nszwo_libsmem_datasdroit_edit_dossieris.Vous n'avez pas les droits pour cette action !srep_objs config_objs tab_to_valstableauxisfindsCC:ssplits:sCT:ssappendis]hauteur=/largeur=100%/marge=0/cadre=0/couleurcadre=/couleurfond=/couleurtexte=/align=/valign=sPT:TsCT:Ts:CsPC:Csl:hauteur=/largeur=/marge=/cadre=/couleurcadre=/couleurfond=/couleurtexte=/align=/valign=/rowspan=1/colspan=1sCC:Cs:Tsmanage_changePropertiessREQUESTsRESPONSEsredirects./(s _getitem_s_getitems _getattr_s_getattrscontextsmemsrepsconfsvalsl2s numcasemaxsvlignesstringsl3sintsnums numtabmaxslsrecupsascaseschpttsstr(scases _getitem_s_getitems _getattr_s_getattrscontextsmemsrepsconfsvalsl2s numcasemaxsvlignesstringsl3sintsnums numtabmaxslsrecupsaschpttsstr((sScript (Python)s add_soustaboksJ* ! #' #'  .(   (.$(((s add_soustabok(s add_soustabok((sScript (Python)ssq@U_bodyqATmem=context.zwo_lib.mem_data() if mem['droit_edit_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' rep=mem['rep_obj'] conf=mem['config_obj'] val=context.zwo_lib.tab_to_val(conf) l2=conf.tableaux numcasemax=0 for vligne in l2: if string.find(vligne,'CC:')<>-1: l3=string.split(vligne,':') num=int(l3[1][1:]) if num>numcasemax: numcasemax=num numtabmax=0 for vligne in l2: if string.find(vligne,'CT:')<>-1: l3=string.split(vligne,':') num=int(l3[1][1:]) if num>numtabmax: numtabmax=num l=[] recup='' for a in l2: if string.find(a,'CC:'+case+':')==-1: l.append(a) else: recup=(string.split(a,':'))[2] numtabmax=numtabmax+1 numcasemax=numcasemax+1 chptt='hauteur=/largeur=100%/marge=0/cadre=0/couleurcadre=/couleurfond=/couleurtexte=/align=/valign=' l.append('PT:T'+str(numtabmax)+':'+chptt) l.append('CT:T'+str(numtabmax)+':C'+str(numcasemax)) l.append('PC:C'+str(numcasemax)+':hauteur=/largeur=/marge=/cadre=/couleurcadre=/couleurfond=/couleurtexte=/align=/valign=/rowspan=1/colspan=1') l.append('CC:C'+str(numcasemax)+':'+recup) l.append('CC:'+case+':T'+str(numtabmax)) conf.manage_changeProperties(tableaux=l) context.REQUEST.RESPONSE.redirect('./') return qBU Script_magicqCKUwarningsqD)UerrorsqE)U Python_magicqFU* qGu. jH((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Uidobjsoq Uidobjsnq Uidobjsmq U _getitem_q U_getitemqU _getattr_qU_getattrqUcontextqUmemqUrepqUrepuserqUdicoqU repusercutqUkUoldqUnewqUnewidqtqU co_argcountqKubU_paramsqUidobjso,idobjsn,idobjsmqUidqU dupliquerokqU__ac_local_roles__q }q!Uxavq"]q#UOwnerq$asU_dav_writelocksq%(U lq&(U Persistenceq'UPersistentMappingq(tq)tq*QU _bind_namesq+(cShared.DC.Scripts.Bindings NameAssignments q,oq-}q.U_asgnsq/}q0(Uname_containerq1U containerq2U name_subpathq3Utraverse_subpathq4U name_contextq5hU name_m_selfq6Uscriptq7usbU func_defaultsq8NU_codeq9TcsdZdS(Ncs#t}t}||tdd}||ddjo dSn||d} ||d} ||tdd }  d || d j o| | d d n || d } || d d || d d x|| ddr} || dddjo|| dd}|| | }||tdd|}|td| || d |||td|| d | |||| |dd|n|| dddjo|| dd}|| | }||tdd|}|td| || d |||td|| d | |||| |dd|n|| dddjo || dd}!|| | }"||tdd|}|#td| || d |||$td|| d | |||%| |dd|nqW|'| dd g|(| dd g|||)tdddd+dSdS(Nszwo_libsmem_datasdroit_edit_dossieris.Vous n'avez pas les droits pour cette action !srep_objs user_zw_objsREQUESTsformsmem_cuts objectIdssmanage_addFolderszwo_tempskeysiiso_s mix_id_zopeszwo_cpysmanage_changePropertiesstitlesn_sm_smanage_delObjectssRESPONSEsredirects./(s _getitem_s_getitems _getattr_s_getattrscontextsmemsrepsrepusersdicos repusercutsksoldsnewsnewid(sidobjsosidobjsnsidobjsms _getitem_s_getitems _getattr_s_getattrscontextsmemsrepsrepusersdicos repusercutsksoldsnewsnewid((sScript (Python)s dupliqueroksH*  !$(( $(( $(('(s dupliquerok(s dupliquerok((sScript (Python)ssq:U_bodyq;Tmem=context.zwo_lib.mem_data() if mem['droit_edit_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' rep=mem['rep_obj'] repuser=mem['user_zw_obj'] dico=context.REQUEST.form if not 'mem_cut' in repuser.objectIds(): repuser.manage_addFolder('mem_cut') repusercut=repuser['mem_cut'] rep.manage_addFolder('zwo_temp') repusercut.manage_addFolder('zwo_temp') for k in dico.keys(): if k[0:2]=='o_': old=k[2:] new=dico[k] newid=context.zwo_lib.mix_id_zope(new) context.zwo_cpy(rep,rep['zwo_temp'],old,newid) context.zwo_cpy(rep['zwo_temp'],rep,newid) rep[newid].manage_changeProperties(title=new) if k[0:2]=='n_': old=k[2:] new=dico[k] newid=context.zwo_lib.mix_id_zope(new) context.zwo_cpy(rep,rep['zwo_temp'],old,newid) context.zwo_cpy(rep['zwo_temp'],rep,newid) rep[newid].manage_changeProperties(title=new) if k[0:2]=='m_': old=k[2:] new=dico[k] newid=context.zwo_lib.mix_id_zope(new) context.zwo_cpy(repusercut,repusercut['zwo_temp'],old,newid) context.zwo_cpy(repusercut['zwo_temp'],repusercut,newid) repusercut[newid].manage_changeProperties(title=new) rep.manage_delObjects(['zwo_temp']) repusercut.manage_delObjects(['zwo_temp']) context.REQUEST.RESPONSE.redirect('./') return q)Uerrorsq?)U Python_magicq@U* qAu. jI$((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Utabq Unumq U_write_q U_writeq U _getitem_qU_getitemqU _getattr_qU_getattrqUcontextqUmemqUrepqUconfqUvalqUligneqUtableqUaddcaseqU tabfusionqUstrtointqUvtableqUlUtabfusqU caserowdimqUcasedelqUcaseinsq Ustrctq!Uintq"Uilq#U firstligneq$Ulineq%U infoligneq&Uicq'Uinfocaseq(Utypeq)Ucasq*Ufirstq+Ucaseq,Uposq-Unonfinq.UcUnewlq/Ustringq0Udecq1Upropq2Ulistpropq3UaUelemq4Ustrq5Unewpcq6UkUligne_a_applatirq7Ucolonnes_a_applatirq8Uapl_rowq9Udim_rowq:Udimlignq;UbUapl_colqUlentabq?Udimcoloq@UliqAUdim_allqBUlistlignqCUnewctqDUrangeqEUitqFU co_argcountqGKubU_paramsqHUtab,numqIUidqJU delligneokqKU__ac_local_roles__qL}qMUxavqN]qOUOwnerqPasU_dav_writelocksqQ(U lqR(U PersistenceqSUPersistentMappingqTtqUtqVQU _bind_namesqW(cShared.DC.Scripts.Bindings NameAssignments qXoqY}qZU_asgnsq[}q\(Uname_containerq]U containerq^U name_subpathq_Utraverse_subpathq`U name_contextqaUcontextqbU name_m_selfqcUscriptqdusbU func_defaultsqeNU_codeqfT,'csdZdS(NcB7s t}t}t}||tdd} || ddjo dSn|| d} || d} ||tdd|  |}  |} d 2d }Vd }^||d |}`|| d }b||}eg}fg}gg}id|d}kt| } md}nd}px|dpr}q|| jos||| }td}ux|dur}v|\} }!w| djo|x|d|!ny| djoz||||d|!ddjo|{|d|!n3|}|d|!|~|d|!|fn|d}qWn|| djo<|djo d}n|d}d}"d}||| d}x|dr}x|dr\}#}$|$|joi|"djo d}"n|d}||#}|||||d|#d}nqW|\} }!| djo;|"djo d}"n|d}||!}n|d}qWd}%x|%djod}%x|dr\}#}$|$|jor|"djo d}"n|d}||#}|||||d|#d}d}%nqDWqWn|djo d}n|d}d}"xJ|dr=}&|"djo d}"n|d}||&}q!W|d}qjWg}'x|dr} |t(d| d|dd jo||'d|nx|t(d| dd joS|t(d| d})||)d|j o||'d| nn|t(d| dd jo|t(d| d})||)d|j o||)d|jo\h}*|t(d||)dd}+xS|+drF},|t(d|,d}-||-d||*||-d5d|d}?6d}"7x^|>d7rQ},8|,d$jo;9|"djo :d}"n<|?d}?=|?|,}?nq W|>|'d|?n@|t(d| dd jo~A|t(d| d})B||)d|=jo0Ch}*D|t(d||)dd}+ExS|+dErF},F|t(d|,d}-G||-d||*||-d|||} ?t | |joF@|| |\} } A| djoB|d}Cd} nnnqWEt|||d|d}Ft|||d|d}Gxxt|dGre}HxYt|dHrF}I|djo |djo3J|||||d |fddf}nK|djo |djo3L|||||d |fddf}nM|djo |djo3N|||||d |fddf}nO|djo |djo3P|||||d |fddf}nqWqWQ|d}nqWWR|d}q9WS|SdS( Nisctsisnospcsrowspanscolspansokscsrscr(s _getitem_s_getitemsretsi_lsvalstabslignesi_cscasesokslensltmpsactuscasasintsr_spsc_spsrangessplsspcsaddcase(stabs _getitem_s_getitemsretsi_lsvalslignesi_cscasesokslensltmpsactuscasasintsr_spsc_spsrangessplsspcsaddcase(svalsaddcase(sScript (Python)s tabfusion2s>   '    **333;cs/VW|djo XdSnZt|SdS(Nsi(schsint(schsint((sScript (Python)sstrtointVs sctstableauxsCT:s:isrsappendsokspcsrowspans/s-scolspansfindsCC:ssplitsPC:is=skeyssmanage_changePropertiesc st}g}d}x|dr}d}x6|dr)\}}|djo d}nqEW|djo||d|n|d}q'W|SdS(Niisoksappend( s _getattr_s_getattrsapplatirslignestabfusslisapplastypesnumcase( stabfuss _getattr_s_getattrsapplatirsligneslisapplastypesnumcase((sScript (Python)sligne_a_applatirs    c st}t}g}d}xtt||ddr} d} xH|dr;} || | \} } | djo d} nq`W| djo||d|n|d}qBW|SdS(Niisoksappend(s _getitem_s_getitems _getattr_s_getattrsapplatirscolonnesrangeslenstabfussisapplaslstypesnumcase(stabfuss _getitem_s_getitems _getattr_s_getattrsapplatirscolonnesrangeslensisapplaslstypesnumcase((sScript (Python)scolonnes_a_applatirs  * sX print val['ct'][tab] for ltf in tabfus: print ltf print dim_row print dim_col sscountsREQUESTsRESPONSEsredirects modif_li_co(Bs_write_s_writes _getitem_s_getitems _getattr_s_getattrscontextsmemsrepsconfsvalsnumslignestabstablesaddcases tabfusionsstrtointsvtableslstabfuss caserowdimscasedelscaseinssstrctsintsils firstligneslines infolignesicsinfocasestypescassfirstscasespossnonfinscsnewlsstringsdecspropslistpropsaselemsstrsnewpcsksligne_a_applatirscolonnes_a_applatirsapl_rowsdim_rowsdimlignsbsapl_colsdim_colslenslentabsdimcoloslisdim_allslistlignsnewctsrangesi(Bstabsnums_write_s_writes _getitem_s_getitems _getattr_s_getattrscontextsmemsrepsconfsvalslignestablesaddcases tabfusionsstrtointsvtableslstabfuss caserowdimscasedelscaseinssstrctsintsils firstligneslines infolignesicsinfocasestypescassfirstscasespossnonfinscsnewlsstringsdecspropslistpropsaselemsstrsnewpcsksligne_a_applatirscolonnes_a_applatirsapl_rowsdim_rowsdimlignsbsapl_colsdim_colslenslentabsdimcoloslisdim_allslistlignsnewctsrangesi((saddcasesvalsScript (Python)s delligneoksj0 !   &$       4       6       .      .## $), !  %  !  $    +$   # $)3434 !  %(s delligneok(s delligneok((sScript (Python)ssqgU_bodyqhTmem=context.zwo_lib.mem_data() if mem['droit_edit_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' rep=mem['rep_obj'] conf=mem['config_obj'] val=context.zwo_lib.tab_to_val(conf) ligne=num table=tab def addcase(tab,ligne,colonne,data,vide): #test si la ligne existe if len(tab)>ligne: #la ligne existe lign=tab[ligne] #test si la collone existe if len(lign)>colonne: #la colonne existe lign[colonne]=data tab[ligne]=lign else: #la colonne n'existe pas #test si l'on doit crer des cellules vides acreer=len(lign)-colonne-1 if acreer>0: for a in range(acreer): lign.append(vide) lign.append(data) tab[ligne]=lign else: # la ligne n'existe pas lign=[] #calcul du nombre de cellule vide a crer if colonne>0: for a in range(colonne): lign.append(vide) lign.append(data) tab.append(lign) return tab def tabfusion(tab): ret=[] i_l=0 for ligne in val['ct'][tab]: i_c=0 for case in ligne: if case<>'': ok=0 while ok==0: ok=1 if len(ret)>i_l: ltmp=ret[i_l] if len(ltmp)>i_c: (actu,casa)=ltmp[i_c] if actu<>'no': i_c=i_c+1 ok=0 r_sp=int(val['pc'][case]['rowspan']) c_sp=int(val['pc'][case]['colspan']) for spl in range(r_sp): for spc in range(c_sp): if spl==0 and spc==0: ret=addcase(ret,i_l+spl,i_c+spc,('ok',case),('no','no')) if spl==0 and spc<>0: ret=addcase(ret,i_l+spl,i_c+spc,('c',case),('no','no')) if spl<>0 and spc==0: ret=addcase(ret,i_l+spl,i_c+spc,('r',case),('no','no')) if spl<>0 and spc<>0: ret=addcase(ret,i_l+spl,i_c+spc,('cr',case),('no','no')) i_c=i_c+1 i_l=i_l+1 return ret def strtoint(ch): if ch=="": return 1 else: return int(ch) vtable=val['ct'][table] l=conf.tableaux tabfus=tabfusion(table) caserowdim=[] casedel=[] caseins=[] strct="CT:"+table+":" ligne=int(ligne) il=0 firstligne=0 for line in vtable: if il==ligne: #c'est la ligne a detruire infoligne=tabfus[ligne] ic=0 for infocase in infoligne: (type,cas)=infocase if type=='r': caserowdim.append(cas) elif type=='ok': if strtoint(val['pc'][cas]['rowspan'])==1: casedel.append(cas) else: caserowdim.append(cas) caseins.append((cas,ic)) ic=ic+1 elif il==ligne+1: #c'est la ligne ou il peut y avoir des recup de case de la ligne detruite if firstligne==0: firstligne=1 else: strct=strct+'/' first=0 ic=0 infoligne=tabfus[ligne+1] for infocase in infoligne: for (case,pos) in caseins: if pos==ic: if first==0: first=1 else: strct=strct+'-' strct=strct+case ic=ic+strtoint(val['pc'][case]['colspan']) (type,cas)=infocase if type=='ok': if first==0: first=1 else: strct=strct+'-' strct=strct+cas ic=ic+1 nonfin=1 while (nonfin==1): nonfin=0 for (case,pos) in caseins: if pos==ic: if first==0: first=1 else: strct=strct+'-' strct=strct+case ic=ic+strtoint(val['pc'][case]['colspan']) nonfin=1 else: #ligne sans modif if firstligne==0: firstligne=1 else: strct=strct+'/' first=0 for c in line: if first==0: first=1 else: strct=strct+'-' strct=strct+c il=il+1 newl=[] for ligne in l: if string.find(ligne,'CT:'+table+':')<>-1: newl.append(strct) elif string.find(ligne,'CC:')<>-1: dec=string.split(ligne,':') if not dec[1] in casedel: newl.append(ligne) elif string.find(ligne,'PC:')<>-1: dec=string.split(ligne,':') if not dec[1] in casedel: if dec[1] in caserowdim: prop={} listprop=string.split(dec[2],'/') for a in listprop: elem=string.split(a,'=') prop[elem[0]]=elem[1] prop['rowspan']=str(int(prop['rowspan'])-1) newpc='PC:'+dec[1]+':' first=0 for k in prop.keys(): if first==0: first=1 else: newpc=newpc+'/' newpc=newpc+k+'='+prop[k] newl.append(newpc) else: newl.append(ligne) else: newl.append(ligne) l=newl conf.manage_changeProperties(tableaux=l) def ligne_a_applatir(tabfus): applatir=[] ligne=0 for li in tabfus: appla=1 for (type,numcase) in li: if type=='ok': appla=0 if appla==1: applatir.append(ligne) ligne=ligne+1 return applatir def colonnes_a_applatir(tabfus): applatir=[] colonne=0 for i in range(len(tabfus[0])): appla=1 for l in tabfus: (type,numcase)=l[i] if type=='ok': appla=0 if appla==1: applatir.append(colonne) colonne=colonne+1 return applatir val=context.zwo_lib.tab_to_val(conf) tabfus=tabfusion(tab) apl_row=ligne_a_applatir(tabfus) dim_row=[] for a in apl_row: dimlign=[] for (type, case) in tabfus[a]: if not case in dimlign: dimlign.append(case) for b in dimlign: dim_row.append(b) tabfus=tabfusion(tab) apl_col=colonnes_a_applatir(tabfus) dim_col=[] lentab=len(tabfus) for a in apl_col: dimcolo=[] for li in tabfus: (type, case)=li[a] if not case in dimcolo: dimcolo.append(case) for b in dimcolo: dim_col.append(b) dim_all=[] for a in dim_row: dim_all.append(a) for a in dim_col: dim_all.append(a) """ print val['ct'][tab] for ltf in tabfus: print ltf print dim_row print dim_col """ l=conf.tableaux newl=[] for ligne in l: if string.find(ligne,'CT:'+tab+':')<>-1: dec=string.split(ligne,':') listlign=string.split(dec[2],'/') newct='CT:'+tab+':' first=0 for a in listlign: if a<>'': if first==0: first=1 else: newct=newct+'/' newct=newct+a newl.append(newct) elif string.find(ligne,'PC:')<>-1: dec=string.split(ligne,':') if dec[1] in dim_all: prop={} listprop=string.split(dec[2],'/') for a in listprop: elem=string.split(a,'=') prop[elem[0]]=elem[1] if dec[1] in dim_row: for i in range(dim_row.count(dec[1])): prop['rowspan']=str(int(prop['rowspan'])-1) if dec[1] in dim_col: for i in range(dim_col.count(dec[1])): prop['colspan']=str(int(prop['colspan'])-1) newpc='PC:'+dec[1]+':' first=0 for k in prop.keys(): if first==0: first=1 else: newpc=newpc+'/' newpc=newpc+k+'='+prop[k] newl.append(newpc) else: newl.append(ligne) else: newl.append(ligne) l=newl conf.manage_changeProperties(tableaux=l) context.REQUEST.RESPONSE.redirect('modif_li_co') return qiU Script_magicqjKUwarningsqk)Uerrorsql)U Python_magicqmU* qnu. j-((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Utabq Unumq U_write_q U_writeq U _getitem_qU_getitemqU _getattr_qU_getattrqUcontextqUmemqUrepqUconfqUvalqUcolonneqUtableqUaddcaseqU tabfusionqUvtableqUlU numcasemaxqUvligneqUstringqUl3qUintq Utabfusq!Unewpcccq"Ustrctq#Udimcolpcq$Ui_lq%U firstligneq&Ulineq'Ui_cq(Ulenq)Ufirstq*Ucolllq+Ustrq,Utypeq-Ucasq.Unewlq/Uligneq0Udecq1Upropq2Ulistpropq3UaUelemq4Unewpcq5Uktq6U co_argcountq7KubU_paramsq8Utab,numq9Uidq:U addcolonneokq;U__ac_local_roles__q<}q=Uxavq>]q?UOwnerq@asU_dav_writelocksqA(U lqB(U PersistenceqCUPersistentMappingqDtqEtqFQU _bind_namesqG(cShared.DC.Scripts.Bindings NameAssignments qHoqI}qJU_asgnsqK}qL(Uname_containerqMU containerqNU name_subpathqOUtraverse_subpathqPU name_contextqQUcontextqRU name_m_selfqSUscriptqTusbU func_defaultsqUNU_codeqVTcsdZdS(Nc/'sRt}t}t}||tdd} || ddjo dSn|| d} || d} ||tdd|  |}  |} d 2d }U||d |}W|| d }Yd }Zx|d Zr}[|td|dd joc\|td|d}]t|||ddd}^||jo _|}nnq Wa||}cg}dd|d}eg}gt| } id }jd }kx[|d krN}ld }m|d jo nd}np|d}r| t ||d jotd }!uxJ|d ur=}"v|!d jo wd}!ny|d}z||"}qmW{|d}||d}|}|d|~|dt#|}nFd }!x6|||d r \}$}%|| jo|$djp |$djo||d|%ne|!d jo d}!n|d}|d}||d||dt#|}|d}n|$djo;|!d jo d}!n|d}||%}n|d}qW|d}qWg}&x;|d r.}'|td|'d|dd jo||&d|n|td|'dd jo|td|'d}(||(d|jo\h})|td||(dd}*xS|*d rF}+|td|+d},||,d||)||,d |||} ?t | |joF@|| |\} } A| djoB|d}Cd} nnnqWEt|||d|d}Ft|||d|d}Gxxt|dGre}HxYt|dHrF}I|djo |djo3J|||||d |fddf}nK|djo |djo3L|||||d |fddf}nM|djo |djo3N|||||d |fddf}nO|djo |djo3P|||||d |fddf}nqWqWQ|d}nqWWR|d}q9WS|SdS( Nisctsisnospcsrowspanscolspansokscsrscr(s _getitem_s_getitemsretsi_lsvalstabslignesi_cscasesokslensltmpsactuscasasintsr_spsc_spsrangessplsspcsaddcase(stabs _getitem_s_getitemsretsi_lsvalslignesi_cscasesokslensltmpsactuscasasintsr_spsc_spsrangessplsspcsaddcase(svalsaddcase(sScript (Python)s tabfusion2s>   '    **333;sctstableauxisfindsCC:ssplits:sCT:s/s-sappendsCscscrsoksPC:is=scolspanskeyssPC:Csl:hauteur=/largeur=/marge=/cadre=/couleurcadre=/couleurfond=/couleurtexte=/align=/valign=/rowspan=1/colspan=1sCC:Csmanage_changePropertiessREQUESTsRESPONSEsredirects modif_li_co(/s_write_s_writes _getitem_s_getitems _getattr_s_getattrscontextsmemsrepsconfsvalsnumscolonnestabstablesaddcases tabfusionsvtablesls numcasemaxsvlignesstringsl3sintstabfussnewpcccsstrctsdimcolpcsi_ls firstligneslinesi_cslensfirstscolllsstrstypescassnewlslignesdecspropslistpropsaselemsnewpcsk(/stabsnums_write_s_writes _getitem_s_getitems _getattr_s_getattrscontextsmemsrepsconfsvalscolonnestablesaddcases tabfusionsvtablesls numcasemaxsvlignesstringsl3sintstabfussnewpcccsstrctsdimcolpcsi_ls firstligneslinesi_cslensfirstscolllsstrstypescassnewlslignesdecspropslistpropsaselemsnewpcsk((saddcasesvalsScript (Python)s addcolonneoks0 !   &# #'            $      .# $), !  %$% (s addcolonneok(s addcolonneok((sScript (Python)ssqWU_bodyqXTmem=context.zwo_lib.mem_data() if mem['droit_edit_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' rep=mem['rep_obj'] conf=mem['config_obj'] val=context.zwo_lib.tab_to_val(conf) colonne=num table=tab def addcase(tab,ligne,colonne,data,vide): #test si la ligne existe if len(tab)>ligne: #la ligne existe lign=tab[ligne] #test si la collone existe if len(lign)>colonne: #la colonne existe lign[colonne]=data tab[ligne]=lign else: #la colonne n'existe pas #test si l'on doit crer des cellules vides acreer=len(lign)-colonne-1 if acreer>0: for a in range(acreer): lign.append(vide) lign.append(data) tab[ligne]=lign else: # la ligne n'existe pas lign=[] #calcul du nombre de cellule vide a crer if colonne>0: for a in range(colonne): lign.append(vide) lign.append(data) tab.append(lign) return tab def tabfusion(tab): ret=[] i_l=0 for ligne in val['ct'][tab]: i_c=0 for case in ligne: if case<>'': ok=0 while ok==0: ok=1 if len(ret)>i_l: ltmp=ret[i_l] if len(ltmp)>i_c: (actu,casa)=ltmp[i_c] if actu<>'no': i_c=i_c+1 ok=0 r_sp=int(val['pc'][case]['rowspan']) c_sp=int(val['pc'][case]['colspan']) for spl in range(r_sp): for spc in range(c_sp): if spl==0 and spc==0: ret=addcase(ret,i_l+spl,i_c+spc,('ok',case),('no','no')) if spl==0 and spc<>0: ret=addcase(ret,i_l+spl,i_c+spc,('c',case),('no','no')) if spl<>0 and spc==0: ret=addcase(ret,i_l+spl,i_c+spc,('r',case),('no','no')) if spl<>0 and spc<>0: ret=addcase(ret,i_l+spl,i_c+spc,('cr',case),('no','no')) i_c=i_c+1 i_l=i_l+1 return ret vtable=val['ct'][table] l=conf.tableaux numcasemax=0 for vligne in l: if string.find(vligne,'CC:')<>-1: l3=string.split(vligne,':') num=int(l3[1][1:]) if num>numcasemax: numcasemax=num tabfus=tabfusion(table) newpccc=[] strct="CT:"+table+":" dimcolpc=[] colonne=int(colonne) i_l=0 firstligne=0 for line in vtable: i_c=0 if firstligne==0: firstligne=1 else: strct=strct+'/' if colonne==len(tabfus[0]): #CAS d'ajout d'une colonne en fin first=0 for colll in line: if first==0: first=1 else: strct=strct+'-' strct=strct+colll strct=strct+'-' numcasemax=numcasemax+1 newpccc.append(numcasemax) strct=strct+'C'+str(numcasemax) else: #Colonne au millieu (ou dbut) first=0 for (type,cas) in tabfus[i_l]: if i_c==colonne: #test si insertion de nouvelle case ou extention colspan if type=='c' or type=='cr': #cas extention colspan dimcolpc.append(cas) else: #Cas ajout de cellule if first==0: first=1 else: strct=strct+'-' numcasemax=numcasemax+1 newpccc.append(numcasemax) strct=strct+'C'+str(numcasemax) i_c=i_c+1 if type=="ok": if first==0: first=1 else: strct=strct+'-' strct=strct+cas i_c=i_c+1 i_l=i_l+1 newl=[] for ligne in l: if string.find(ligne,'CT:'+table+':')<>-1: newl.append(strct) elif string.find(ligne,'PC:')<>-1: dec=string.split(ligne,':') if dec[1] in dimcolpc: prop={} listprop=string.split(dec[2],'/') for a in listprop: elem=string.split(a,'=') prop[elem[0]]=elem[1] prop['colspan']=str(int(prop['colspan'])+1) newpc='PC:'+dec[1]+':' first=0 for k in prop.keys(): if first==0: first=1 else: newpc=newpc+'/' newpc=newpc+k+'='+prop[k] newl.append(newpc) else: newl.append(ligne) else: newl.append(ligne) for a in newpccc: newl.append('PC:C'+str(a)+':hauteur=/largeur=/marge=/cadre=/couleurcadre=/couleurfond=/couleurtexte=/align=/valign=/rowspan=1/colspan=1') newl.append('CC:C'+str(a)+':') l=newl conf.manage_changeProperties(tableaux=l) context.REQUEST.RESPONSE.redirect('modif_li_co') return qYU Script_magicqZKUwarningsq[)Uerrorsq\)U Python_magicq]U* q^u. jBw((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Utabq Unumq U_write_q U_writeq U _getitem_qU_getitemqU _getattr_qU_getattrqUcontextqUmemqUrepqUconfqUvalqUcolonneqUtableqUaddcaseqU tabfusionqUstrtointqUvtableqUlUtabfusqU casecoldimqUcasedelqUstrctq Uintq!Uilq"U firstligneq#Ulineq$Ufirstq%Uicq&U infoligneq'Uinfocaseq(Utypeq)Ucasq*Unewlq+Uligneq,Ustringq-Udecq.Upropq/Ulistpropq0UaUelemq1Ustrq2Unewpcq3UkUligne_a_applatirq4Ucolonnes_a_applatirq5Uapl_rowq6Udim_rowq7Udimlignq8Ucaseq9UbUapl_colq:Udim_colq;UlenqUliq?Udim_allq@UlistlignqAUnewctqBUrangeqCUitqDU co_argcountqEKubU_paramsqFUtab,numqGUidqHU delcolonneokqIU__ac_local_roles__qJ}qKUxavqL]qMUOwnerqNasU_dav_writelocksqO(U lqP(U PersistenceqQUPersistentMappingqRtqStqTQU _bind_namesqU(cShared.DC.Scripts.Bindings NameAssignments qVoqW}qXU_asgnsqY}qZ(Uname_containerq[U containerq\U name_subpathq]Utraverse_subpathq^U name_contextq_Ucontextq`U name_m_selfqaUscriptqbusbU func_defaultsqcNU_codeqdT$csdZdS(Nc?7s t}t}t}||tdd} || ddjo dSn|| d} || d} ||tdd|  |}  |} d 2d }Vd }^||d |}`|| d }b||}eg}fg}hd|d}jt| } ld}md}nx|dnr}o|djo pd}nr|d}td}ud}v|||}wxd|dwrW}x|\} }!y|| joz| djo{t|||d|!ddjo|||d|!nN|~|d|!|djo d}n|d}||!}n| djo||d|!nnL| djo;|djo d}n|d}||!}n|d}qW|d}qaWg}"x|dr}#|t$d|#d|dd jo||"d|nx|t$d|#dd joS|t$d|#d}%||%d|j o||"d|#nn|t$d|#dd jo|t$d|#d}%||%d|j o||%d|jo\h}&|t$d||%dd}'xS|'drF}(|t$d|(d})||)d||&||)dt*t||&d%d||&d%!t*t||&dd||&d|||} ?t | |joF@|| |\} } A| djoB|d}Cd} nnnqWEt|||d|d}Ft|||d|d}Gxxt|dGre}HxYt|dHrF}I|djo |djo3J|||||d |fddf}nK|djo |djo3L|||||d |fddf}nM|djo |djo3N|||||d |fddf}nO|djo |djo3P|||||d |fddf}nqWqWQ|d}nqWWR|d}q9WS|SdS( Nisctsisnospcsrowspanscolspansokscsrscr(s _getitem_s_getitemsretsi_lsvalstabslignesi_cscasesokslensltmpsactuscasasintsr_spsc_spsrangessplsspcsaddcase(stabs _getitem_s_getitemsretsi_lsvalslignesi_cscasesokslensltmpsactuscasasintsr_spsc_spsrangessplsspcsaddcase(svalsaddcase(sScript (Python)s tabfusion2s>   '    **333;cs/VW|djo XdSnZt|SdS(Nsi(schsint(schsint((sScript (Python)sstrtointVs sctstableauxsCT:s:is/sokspcscolspansappends-scsfindsCC:ssplitsPC:is=skeyssmanage_changePropertiesc st}g}d}x|dr}d}x6|dr)\}}|djo d}nqEW|djo||d|n|d}q'W|SdS(Niisoksappend( s _getattr_s_getattrsapplatirslignestabfusslisapplastypesnumcase( stabfuss _getattr_s_getattrsapplatirsligneslisapplastypesnumcase((sScript (Python)sligne_a_applatirs    c st}t}g}d}xtt||ddr} d} xH|dr;} || | \} } | djo d} nq`W| djo||d|n|d}qBW|SdS(Niisoksappend(s _getitem_s_getitems _getattr_s_getattrsapplatirscolonnesrangeslenstabfussisapplaslstypesnumcase(stabfuss _getitem_s_getitems _getattr_s_getattrsapplatirscolonnesrangeslensisapplaslstypesnumcase((sScript (Python)scolonnes_a_applatirs  * sX print val['ct'][tab] for ltf in tabfus: print ltf print dim_row print dim_col sscountsrowspansREQUESTsRESPONSEsredirects modif_li_co(?s_write_s_writes _getitem_s_getitems _getattr_s_getattrscontextsmemsrepsconfsvalsnumscolonnestabstablesaddcases tabfusionsstrtointsvtableslstabfuss casecoldimscasedelsstrctsintsils firstligneslinesfirstsics infolignesinfocasestypescassnewlslignesstringsdecspropslistpropsaselemsstrsnewpcsksligne_a_applatirscolonnes_a_applatirsapl_rowsdim_rowsdimlignscasesbsapl_colsdim_colslenslentabsdimcoloslisdim_allslistlignsnewctsrangesi(?stabsnums_write_s_writes _getitem_s_getitems _getattr_s_getattrscontextsmemsrepsconfsvalscolonnestablesaddcases tabfusionsstrtointsvtableslstabfuss casecoldimscasedelsstrctsintsils firstligneslinesfirstsics infolignesinfocasestypescassnewlslignesstringsdecspropslistpropsaselemsstrsnewpcsksligne_a_applatirscolonnes_a_applatirsapl_rowsdim_rowsdimlignscasesbsapl_colsdim_colslenslentabsdimcoloslisdim_allslistlignsnewctsrangesi((saddcasesvalsScript (Python)s delcolonneoks,0 !   &$         4     .## $), !  %  !  $    +$   # $)3434 !  %(s delcolonneok(s delcolonneok((sScript (Python)ssqeU_bodyqfTmem=context.zwo_lib.mem_data() if mem['droit_edit_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' rep=mem['rep_obj'] conf=mem['config_obj'] val=context.zwo_lib.tab_to_val(conf) colonne=num table=tab def addcase(tab,ligne,colonne,data,vide): #test si la ligne existe if len(tab)>ligne: #la ligne existe lign=tab[ligne] #test si la collone existe if len(lign)>colonne: #la colonne existe lign[colonne]=data tab[ligne]=lign else: #la colonne n'existe pas #test si l'on doit crer des cellules vides acreer=len(lign)-colonne-1 if acreer>0: for a in range(acreer): lign.append(vide) lign.append(data) tab[ligne]=lign else: # la ligne n'existe pas lign=[] #calcul du nombre de cellule vide a crer if colonne>0: for a in range(colonne): lign.append(vide) lign.append(data) tab.append(lign) return tab def tabfusion(tab): ret=[] i_l=0 for ligne in val['ct'][tab]: i_c=0 for case in ligne: if case<>'': ok=0 while ok==0: ok=1 if len(ret)>i_l: ltmp=ret[i_l] if len(ltmp)>i_c: (actu,casa)=ltmp[i_c] if actu<>'no': i_c=i_c+1 ok=0 r_sp=int(val['pc'][case]['rowspan']) c_sp=int(val['pc'][case]['colspan']) for spl in range(r_sp): for spc in range(c_sp): if spl==0 and spc==0: ret=addcase(ret,i_l+spl,i_c+spc,('ok',case),('no','no')) if spl==0 and spc<>0: ret=addcase(ret,i_l+spl,i_c+spc,('c',case),('no','no')) if spl<>0 and spc==0: ret=addcase(ret,i_l+spl,i_c+spc,('r',case),('no','no')) if spl<>0 and spc<>0: ret=addcase(ret,i_l+spl,i_c+spc,('cr',case),('no','no')) i_c=i_c+1 i_l=i_l+1 return ret def strtoint(ch): if ch=="": return 1 else: return int(ch) vtable=val['ct'][table] l=conf.tableaux tabfus=tabfusion(table) casecoldim=[] casedel=[] strct="CT:"+table+":" colonne=int(colonne) il=0 firstligne=0 for line in vtable: if firstligne==0: firstligne=1 else: strct=strct+'/' first=0 ic=0 infoligne=tabfus[il] for infocase in infoligne: (type,cas)=infocase if ic==colonne: if type=='ok': if int(val['pc'][cas]['colspan'])==1: casedel.append(cas) else: casecoldim.append(cas) if first==0: first=1 else: strct=strct+'-' strct=strct+cas if type=='c': casecoldim.append(cas) else: if type=='ok': if first==0: first=1 else: strct=strct+'-' strct=strct+cas ic=ic+1 il=il+1 newl=[] for ligne in l: if string.find(ligne,'CT:'+table+':')<>-1: newl.append(strct) elif string.find(ligne,'CC:')<>-1: dec=string.split(ligne,':') if not dec[1] in casedel: newl.append(ligne) elif string.find(ligne,'PC:')<>-1: dec=string.split(ligne,':') if not dec[1] in casedel: if dec[1] in casecoldim: prop={} listprop=string.split(dec[2],'/') for a in listprop: elem=string.split(a,'=') prop[elem[0]]=elem[1] prop['colspan']=str(int(prop['colspan'])-1) newpc='PC:'+dec[1]+':' first=0 for k in prop.keys(): if first==0: first=1 else: newpc=newpc+'/' newpc=newpc+k+'='+prop[k] newl.append(newpc) else: newl.append(ligne) else: newl.append(ligne) l=newl conf.manage_changeProperties(tableaux=l) def ligne_a_applatir(tabfus): applatir=[] ligne=0 for li in tabfus: appla=1 for (type,numcase) in li: if type=='ok': appla=0 if appla==1: applatir.append(ligne) ligne=ligne+1 return applatir def colonnes_a_applatir(tabfus): applatir=[] colonne=0 for i in range(len(tabfus[0])): appla=1 for l in tabfus: (type,numcase)=l[i] if type=='ok': appla=0 if appla==1: applatir.append(colonne) colonne=colonne+1 return applatir val=context.zwo_lib.tab_to_val(conf) tabfus=tabfusion(tab) apl_row=ligne_a_applatir(tabfus) dim_row=[] for a in apl_row: dimlign=[] for (type, case) in tabfus[a]: if not case in dimlign: dimlign.append(case) for b in dimlign: dim_row.append(b) tabfus=tabfusion(tab) apl_col=colonnes_a_applatir(tabfus) dim_col=[] lentab=len(tabfus) for a in apl_col: dimcolo=[] for li in tabfus: (type, case)=li[a] if not case in dimcolo: dimcolo.append(case) for b in dimcolo: dim_col.append(b) dim_all=[] for a in dim_row: dim_all.append(a) for a in dim_col: dim_all.append(a) """ print val['ct'][tab] for ltf in tabfus: print ltf print dim_row print dim_col """ l=conf.tableaux newl=[] for ligne in l: if string.find(ligne,'CT:'+tab+':')<>-1: dec=string.split(ligne,':') listlign=string.split(dec[2],'/') newct='CT:'+tab+':' first=0 for a in listlign: if a<>'': if first==0: first=1 else: newct=newct+'/' newct=newct+a newl.append(newct) elif string.find(ligne,'PC:')<>-1: dec=string.split(ligne,':') if dec[1] in dim_all: prop={} listprop=string.split(dec[2],'/') for a in listprop: elem=string.split(a,'=') prop[elem[0]]=elem[1] if dec[1] in dim_row: for i in range(dim_row.count(dec[1])): prop['rowspan']=str(int(prop['rowspan'])-1) if dec[1] in dim_col: for i in range(dim_col.count(dec[1])): prop['colspan']=str(int(prop['colspan'])-1) newpc='PC:'+dec[1]+':' first=0 for k in prop.keys(): if first==0: first=1 else: newpc=newpc+'/' newpc=newpc+k+'='+prop[k] newl.append(newpc) else: newl.append(ligne) else: newl.append(ligne) l=newl conf.manage_changeProperties(tableaux=l) context.REQUEST.RESPONSE.redirect('modif_li_co') return qgU Script_magicqhKUwarningsqi)Uerrorsqj)U Python_magicqkU* qlu. jD((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 UcontextqUmemqUprqUzwuqUstringqUrepurlqUheadqUspmqUmidqUspeqUfootqU listiconesqUprntqUtitreqUhtmlqUsequenceqUlmqUcUmoduleqUintq Umoduletq!Umoduleidq"Ugimgq#Umoduledq$Uatq%U co_argcountq&KubU_paramsq'UUidq(U list_elementq)U__ac_local_roles__q*}q+Uxavq,]q-UOwnerq.asU_dav_writelocksq/(U lq0(U Persistenceq1UPersistentMappingq2tq3tq4QU _bind_namesq5(cShared.DC.Scripts.Bindings NameAssignments q6oq7}q8U_asgnsq9}q:(Uname_containerq;U containerqU name_m_selfq?Uscriptq@U name_contextqAUcontextqBusbU func_defaultsqCNU_codeqDT csdZdS(Ncs t}t}||tdd}||ddjo dSn||tdd}||d}||td ||d |d}  ||tdd ||d | \} } } } } ||||td ddd} | }d||dd}|||tdd||d|}|| }|| }d}|td||tddddddff}d}x|dr}||dd ot||ddjo||dd! p||d"djoT||d#}||d$}|d%|jo& d&||dd'|d(}n"d&||dd)}|#|dd*oY$d+}%x-||d*d%r}&||d,}qW'||dd- }n )d.},|d/|d0|d1}-|d2|d3|d4}.|d2|d5|d6}nnqW0|d7}2|||tdd8||d9d:|}3|| }4||}6|SdS(;Nszwo_libsmem_datasdroit_edit_dossieris.Vous n'avez pas les droits pour cette action !szwo_bos presentationszwo_urlssplitsrep_urlsautoursedits zwo_imagessiconess logo_elementss objectIdssRETOURsmenusnavs?ssorts zwo_moduless objectValuessFoldersnotescmpsdescis hasPropertyszone_principales admin_onlysdroit_config_dossiers title_or_idsgetIds.gifs s;/zwo_images/icones/logo_elements/inconnu.gif" border="0" />s descriptionss
isPas de description.s6s=s"">ss
s s
seditionselementsAJOUTER UN ELEMENT(s _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstringsrepurlsheadsspmsmidsspesfoots listiconessprntstitreshtmlssequenceslmscsmodulesintsmoduletsmoduleidsgimgsmoduledsa(s _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstringsrepurlsheadsspmsmidsspesfoots listiconessprntstitreshtmlssequenceslmscsmodulesintsmoduletsmoduleidsgimgsmoduledsa((sScript (Python)s list_elementsJ* -90 .   ? 5-&  ) 1  (s list_element(s list_element((sScript (Python)ssqEU_bodyqFTmem=context.zwo_lib.mem_data() if mem['droit_edit_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] repurl=string.split(mem['rep_url'],zwu)[1] # AFFICHAGE DU BANDEAU HAUT (head,spm,mid,spe,foot)=context.zwo_bo.autour(mem,pr,'edit',repurl) listicones=context.zwo_images.icones.logo_elements.objectIds() prnt=head titre='RETOUR' prnt=prnt+context.zwo_bo.menu(zwu,pr,'nav',titre) prnt=prnt+spm prnt=prnt+mid html='' lm=sequence.sort(context.zwo_modules.objectValues('Folder'), (('note', 'cmp', 'desc'),) ) c=0 for module in lm: if module.hasProperty('zone_principale') and int(module.note)>=0 : if not module.hasProperty('admin_only') or mem['droit_config_dossier']==1: modulet=module.title_or_id() moduleid=module.getId() if moduleid+'.gif' in listicones: gimg='' else: gimg='' if module.hasProperty('description'): moduled='' for a in module.description: moduled=moduled+a+'
' moduled=moduled[:-6] else: moduled='Pas de description.' html=html+'' html=html+'' html=html+'' html=html+'
'+gimg+''+modulet+''+moduled+'
' prnt=prnt+context.zwo_bo.edition(zwu,pr,'element','AJOUTER UN ELEMENT',html) prnt=prnt+spe prnt=prnt+foot return prnt qGU Script_magicqHKUwarningsqI)UerrorsqJ)U Python_magicqKU* qLu. j((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Uactionq U _getitem_q U_getitemq U _getattr_q U_getattrqU_print_qU_printqUcontextqUmemqUdicoqUelrpqUelokqUelnpqUelmmqUkUlenqUstringqUidobjsqUidobjsmqUidobjsoqUidobjsnqtqU co_argcountqKubU_paramsq Uactionq!Uidq"U valid_selq#U__ac_local_roles__q$}q%Uxavq&]q'UOwnerq(asU_dav_writelocksq)(U lq*(U Persistenceq+UPersistentMappingq,tq-tq.QU _bind_namesq/(cShared.DC.Scripts.Bindings NameAssignments q0oq1}q2U_asgnsq3}q4(Uname_containerq5U containerq6U name_subpathq7Utraverse_subpathq8U name_contextq9Ucontextq:U name_m_selfq;UscriptqT: csdZdS(Ncst}t}t}||tdd}||ddjo dSn||tdd} g} g} g}  g}  xA|| dd  r(} ||d d d joN| | d ||d d|| d ||d dn||d d d joN|| d ||d d|| d ||d dn||d ddjo)|| d ||ddnqW|djot| d jo)||td|| d IJngt| d jo)||td|| d IJn(t| d jo|dIJnn|djoY|td| d}|td| d} ||td||IJn"|djow#|td| d}$|td| d}%|td| d}&||td|||IJn(|djow)|td| d}*|td| d}+|td| d},||td|||IJn.|djow/|td| d}0|td| d}1|td| d}2||td|||IJn4|SdS(Nszwo_libsmem_datasdroit_edit_dossieris.Vous n'avez pas les droits pour cette action !sREQUESTsformskeysiiselem_sappendselnp_iselmem_seditersediter_elements1L'edition en mmoire n'est pas encore possible...sdeplacersjoins*sdeplacer_elementssdetruiresdetruire_elementss dupliquersdupliquer_elementssrenommersrenommer_elements(s _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextsmemsdicoselrpselokselnpselmmsksactionslensstringsidobjssidobjsmsidobjsosidobjsn(sactions _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextsmemsdicoselrpselokselnpselmmskslensstringsidobjssidobjsmsidobjsosidobjsn((sScript (Python)s valid_selsV3     !"%&"%&"*))#&&&(s valid_sel(s valid_sel((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 !' dico=context.REQUEST.form elrp=[] elok=[] elnp=[] elmm=[] for k in dico.keys(): if k[0:5]=='elem_': elok.append(k[5:]) elrp.append(k[5:]) if k[0:5]=='elnp_': elnp.append(k[5:]) elrp.append(k[5:]) if k[0:6]=='elmem_': elmm.append(k[6:]) if action=='editer': if len(elok)>0: print context.editer_element(elok[0]) elif len(elnp)>0: print context.editer_element(elnp[0]) elif len(elmm)>0: print 'L\'edition en mmoire n\'est pas encore possible...' if action=='deplacer': idobjs=string.join(elrp, '*') idobjsm=string.join(elmm, '*') print context.deplacer_elements(idobjs,idobjsm) if action=='detruire': idobjso=string.join(elok, '*') idobjsn=string.join(elnp, '*') idobjsm=string.join(elmm, '*') print context.detruire_elements(idobjso,idobjsn,idobjsm) if action=='dupliquer': idobjso=string.join(elok, '*') idobjsn=string.join(elnp, '*') idobjsm=string.join(elmm, '*') print context.dupliquer_elements(idobjso,idobjsn,idobjsm) if action=='renommer': idobjso=string.join(elok, '*') idobjsn=string.join(elnp, '*') idobjsm=string.join(elmm, '*') print context.renommer_elements(idobjso,idobjsn,idobjsm) return printed qAU Script_magicqBKUwarningsqC)UerrorsqD)U Python_magicqEU* qFu. j?#((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Utabq Ucasesq Unbcq Unblq U_write_qU_writeqU _getitem_qU_getitemqU _getattr_qU_getattrqUcontextqUmemqUrepqUconfqUvalqUvtableqUstringqUlist_selected1qU list_selectedqUaU firstcaseqUflqUctstrqUlUfcq UcUccstrq!Upremccq"Ucaseq#Unewccq$Uelemq%Unewlq&Uligneq'Upropcaseq(Uaddcaseq)U tabfusionq*Uligne_a_applatirq+Ucolonnes_a_applatirq,Utabfusq-Uapl_rowq.Udim_rowq/Udimlignq0Utypeq1UbUapl_colq2Udim_colq3Ulenq4Ulentabq5Udimcoloq6Uliq7Udim_allq8Udecq9Ulistlignq:Unewctq;UfirstqUrangeq?UiUstrq@UintqAUnewpcqBUktqCU co_argcountqDKubU_paramsqEUtab,cases,nbc,nblqFUidqGUfusionokqHU__ac_local_roles__qI}qJUxavqK]qLUOwnerqMasU_dav_writelocksqN(U lqO(U PersistenceqPUPersistentMappingqQtqRtqSQU _bind_namesqT(cShared.DC.Scripts.Bindings NameAssignments qUoqV}qWU_asgnsqX}qY(Uname_containerqZU containerq[U name_subpathq\Utraverse_subpathq]U name_contextq^Ucontextq_U name_m_selfq`UscriptqausbU func_defaultsqbNU_codeqcT"csdZdS(Nc?As t}t}t} | | tdd} || ddjo dSn|| d} || d} | | tdd|  ||d |} | t d |d } g} x=|d  r0}|d jo| |d|nqW||d |}d }d}d }x|d r}|djo d }n|d}d}x|d r}||joX|d joD|} |djo !d }n#|d}$||}nn8&|djo 'd }n)|d}*||}qWq]W,d }-d}.x|d .r}/||d|}0x^|d 0rQ}1|d jo;2|djo 3d }n5|d}6||}nqWqsW8| | d}9g}:xX|d :rK} ;| t d| d|dd jo| <|d| nq&W| >|dd|d|?|}Ax,|d Ar}Cg}Ex|d Erz} F| t d| d|dd joIG| t d| d|dd jo| H|d| nnqWJ||jojKd}!L|!d|d|}!| M|dd|d|!| N|dd|d|nP|}qW| R| dd|Td{d}#d}$d}%| | tdd| |#|}&|$|&}'g}(x|'d r}g})xM||&|d r7\}*}||)j o| |)d|nqWx)|)d r}+| |(d|+qWqxW|#|}&|%|&},g}-t.|&}/x|,d r}g}0xV|&d rI}1||1|\}*}||0j o| |0d|nqpWx)|0d r}+| |-d|+qWqRWg}2x)|(d r}| |2d|qWx)|-d r}| |2d|q7Wd | | d}g}x|d r} | t d| d|dd jo| t d | d}3| t d ||3d!d}4d|d}5d }6x^|4d rQ}|d jo;|6d jo d}6n|5d}5|5|}5nq!W| |d|5n| t d| dd jo~| t d | d}3||3d|2jo0h}7| t d ||3d!d}8xS|8d rF}| t d |d"}||d||7||d  |6d jo  d}6n|=d}=|=|>d"||7|>}=q W| |d|=n| |d| n| |d| |}qW| | dd|| | | td'd(d)d*dSdS(+Nszwo_libsmem_datasdroit_edit_dossieris.Vous n'avez pas les droits pour cette action !srep_objs config_objs tab_to_valsctssplits*issappends/s-sccstableauxsfindsCT:s:sPC:sCC:sXhauteur=/largeur=/marge=/cadre=/couleurcadre=/couleurfond=/couleurtexte=/align=/valign=/srowspan=s /colspan=smanage_changePropertiesc sTt}t}t} Vt||joX|||} [t| |jo*]||| |<^| |||   '    **333;c st}g}d}x|dr}d}x6|dr)\}}|djo d}nqEW|djo||d|n|d}q'W|SdS(Niisoksappend( s _getattr_s_getattrsapplatirslignestabfusslisapplastypesnumcase( stabfuss _getattr_s_getattrsapplatirsligneslisapplastypesnumcase((sScript (Python)sligne_a_applatirs    c st}t}g}d}xtt||ddr} d} xH|dr;} || | \} } | djo d} nq`W| djo||d|n|d}qBW|SdS(Niisoksappend(s _getitem_s_getitems _getattr_s_getattrsapplatirscolonnesrangeslenstabfussisapplaslstypesnumcase(stabfuss _getitem_s_getitems _getattr_s_getattrsapplatirscolonnesrangeslensisapplaslstypesnumcase((sScript (Python)scolonnes_a_applatirs  * sX print val['ct'][tab] for ltf in tabfus: print ltf print dim_row print dim_col is=scountsrowspanscolspanskeyssREQUESTsRESPONSEsredirects./(?s_write_s_writes _getitem_s_getitems _getattr_s_getattrscontextsmemsrepsconfsvalstabsvtablesstringscasesslist_selected1s list_selectedsas firstcasesflsctstrslsfcscsccstrspremccscasesnewccselemsnewlslignespropcasesnblsnbcsaddcases tabfusionsligne_a_applatirscolonnes_a_applatirstabfussapl_rowsdim_rowsdimlignstypesbsapl_colsdim_colslenslentabsdimcoloslisdim_allsdecslistlignsnewctsfirstspropslistpropsrangesisstrsintsnewpcsk(?stabscasessnbcsnbls_write_s_writes _getitem_s_getitems _getattr_s_getattrscontextsmemsrepsconfsvalsvtablesstringslist_selected1s list_selectedsas firstcasesflsctstrslsfcscsccstrspremccscasesnewccselemsnewlslignespropcasesaddcases tabfusionsligne_a_applatirscolonnes_a_applatirstabfussapl_rowsdim_rowsdimlignstypesbsapl_colsdim_colslenslentabsdimcoloslisdim_allsdecslistlignsnewctsfirstspropslistpropsrangesisstrsintsnewpcsk((saddcasesvalsScript (Python)sfusionoks0 !                 .  +. "# '$ !  $    +$   # $)3434 !  %(sfusionok(sfusionok((sScript (Python)ssqdU_bodyqeTQmem=context.zwo_lib.mem_data() if mem['droit_edit_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' rep=mem['rep_obj'] conf=mem['config_obj'] val=context.zwo_lib.tab_to_val(conf) vtable=val['ct'][tab] list_selected1=string.split(cases,'*') list_selected=[] for a in list_selected1: if a<>'': list_selected.append(a) vtable=val['ct'][tab] firstcase='' fl=1 ctstr='' for l in vtable: if fl==1: fl=0 else: ctstr=ctstr+'/' fc=1 for c in l: if c in list_selected: if firstcase=='': firstcase=c if fc==1: fc=0 else: ctstr=ctstr+'-' ctstr=ctstr+c else: if fc==1: fc=0 else: ctstr=ctstr+'-' ctstr=ctstr+c ccstr='' premcc=1 for case in list_selected: newcc=val['cc'][case] for elem in newcc: if elem<>'': if premcc==1: premcc=0 else: ccstr=ccstr+'/' ccstr=ccstr+elem l=conf.tableaux newl=[] for ligne in l: if string.find(ligne,'CT:'+tab+':')==-1: newl.append(ligne) newl.append('CT:'+tab+':'+ctstr) l=newl for case in list_selected: newl=[] for ligne in l: if string.find(ligne,'PC:'+case+':')==-1: if string.find(ligne,'CC:'+case+':')==-1: newl.append(ligne) if case==firstcase: propcase='hauteur=/largeur=/marge=/cadre=/couleurcadre=/couleurfond=/couleurtexte=/align=/valign=/' propcase=propcase+'rowspan='+nbl+'/colspan='+nbc newl.append('PC:'+case+':'+propcase) newl.append('CC:'+case+':'+ccstr) l=newl conf.manage_changeProperties(tableaux=l) def addcase(tab,ligne,colonne,data,vide): #test si la ligne existe if len(tab)>ligne: #la ligne existe lign=tab[ligne] #test si la collone existe if len(lign)>colonne: #la colonne existe lign[colonne]=data tab[ligne]=lign else: #la colonne n'existe pas #test si l'on doit crer des cellules vides acreer=len(lign)-colonne-1 if acreer>0: for a in range(acreer): lign.append(vide) lign.append(data) tab[ligne]=lign else: # la ligne n'existe pas lign=[] #calcul du nombre de cellule vide a crer if colonne>0: for a in range(colonne): lign.append(vide) lign.append(data) tab.append(lign) return tab def tabfusion(tab): ret=[] i_l=0 for ligne in val['ct'][tab]: i_c=0 for case in ligne: if case<>'': ok=0 while ok==0: ok=1 if len(ret)>i_l: ltmp=ret[i_l] if len(ltmp)>i_c: (actu,casa)=ltmp[i_c] if actu<>'no': i_c=i_c+1 ok=0 r_sp=int(val['pc'][case]['rowspan']) c_sp=int(val['pc'][case]['colspan']) for spl in range(r_sp): for spc in range(c_sp): if spl==0 and spc==0: ret=addcase(ret,i_l+spl,i_c+spc,('ok',case),('no','no')) if spl==0 and spc<>0: ret=addcase(ret,i_l+spl,i_c+spc,('c',case),('no','no')) if spl<>0 and spc==0: ret=addcase(ret,i_l+spl,i_c+spc,('r',case),('no','no')) if spl<>0 and spc<>0: ret=addcase(ret,i_l+spl,i_c+spc,('cr',case),('no','no')) i_c=i_c+1 i_l=i_l+1 return ret def ligne_a_applatir(tabfus): applatir=[] ligne=0 for li in tabfus: appla=1 for (type,numcase) in li: if type=='ok': appla=0 if appla==1: applatir.append(ligne) ligne=ligne+1 return applatir def colonnes_a_applatir(tabfus): applatir=[] colonne=0 for i in range(len(tabfus[0])): appla=1 for l in tabfus: (type,numcase)=l[i] if type=='ok': appla=0 if appla==1: applatir.append(colonne) colonne=colonne+1 return applatir val=context.zwo_lib.tab_to_val(conf) tabfus=tabfusion(tab) apl_row=ligne_a_applatir(tabfus) dim_row=[] for a in apl_row: dimlign=[] for (type, case) in tabfus[a]: if not case in dimlign: dimlign.append(case) for b in dimlign: dim_row.append(b) tabfus=tabfusion(tab) apl_col=colonnes_a_applatir(tabfus) dim_col=[] lentab=len(tabfus) for a in apl_col: dimcolo=[] for li in tabfus: (type, case)=li[a] if not case in dimcolo: dimcolo.append(case) for b in dimcolo: dim_col.append(b) dim_all=[] for a in dim_row: dim_all.append(a) for a in dim_col: dim_all.append(a) """ print val['ct'][tab] for ltf in tabfus: print ltf print dim_row print dim_col """ l=conf.tableaux newl=[] for ligne in l: if string.find(ligne,'CT:'+tab+':')<>-1: dec=string.split(ligne,':') listlign=string.split(dec[2],'/') newct='CT:'+tab+':' first=0 for a in listlign: if a<>'': if first==0: first=1 else: newct=newct+'/' newct=newct+a newl.append(newct) elif string.find(ligne,'PC:')<>-1: dec=string.split(ligne,':') if dec[1] in dim_all: prop={} listprop=string.split(dec[2],'/') for a in listprop: elem=string.split(a,'=') prop[elem[0]]=elem[1] if dec[1] in dim_row: for i in range(dim_row.count(dec[1])): prop['rowspan']=str(int(prop['rowspan'])-1) if dec[1] in dim_col: for i in range(dim_col.count(dec[1])): prop['colspan']=str(int(prop['colspan'])-1) newpc='PC:'+dec[1]+':' first=0 for k in prop.keys(): if first==0: first=1 else: newpc=newpc+'/' newpc=newpc+k+'='+prop[k] newl.append(newpc) else: newl.append(ligne) else: newl.append(ligne) l=newl conf.manage_changeProperties(tableaux=l) context.REQUEST.RESPONSE.redirect('./') return qfU Script_magicqgKUwarningsqh)Uerrorsqi)U Python_magicqjU* qku. j ((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Uobjq Ucaseq Uprevq Uobjmemq U _getitem_qU_getitemqU _getattr_qU_getattrqUcontextqUmemqUrepurlqUrepqUconfqUrepuserqUstringqU idobjs_tmpqUidobjsqUiU idobjsmem_tmpqU idobjsmemqUallidobjqUrepidsqUmemidsqUlUl2q Uligneq!Udecq"Ucasq#Unewlq$Upremsq%Ulistidsq&Uunidq'Ulfinq(Uplokq)tq*U co_argcountq+KubU_paramsq,Uobj, case, prev="", objmem=""q-Uidq.Uplaceokq/U__ac_local_roles__q0}q1Uxavq2]q3UOwnerq4asU_dav_writelocksq5(U lq6(U Persistenceq7UPersistentMappingq8tq9tq:QU _bind_namesq;(cShared.DC.Scripts.Bindings NameAssignments qU_asgnsq?}q@(Uname_containerqAU containerqBU name_subpathqCUtraverse_subpathqDU name_m_selfqEUscriptqFU name_contextqGUcontextqHusbU func_defaultsqI(UUtqJU_codeqKT csdddZdS(Nsc"0st}t}||tdd} || ddjo dSn|| d} || d} || d}  || d }  |t d |d } g}x=|d r0}|d jo||d|nqW|t d |d }g}x=|d r0}|d jo||d|nq-Wg}x>|d r1}||j o||d|nqyWx>|d r1}||j o||d|nqW || d}"d|| ddjo"#||| dd}n |%| dd&g}*g}+|| d},x`|d ,rS}-|t d|dd jo|.|d|n0|t d |d}1||d}2||d d||dd}3d }4|t d ||dd}5xs|d 5rf}6|d joP7||j o;8|d jo 9d}n;|d}<||}nnqdW|=|d|qW|?| dd|C|djo[DxQ|d DrD}|Etd| || d||F| d|gq WnaHxZ|d HrM}|Itd|| d| |||J| dd|gq{WM|djo |djoNg} Od }!Pxt|d Prg}Q|t d|d|dd jo|R| d|nT|t d |d}U||d}V||d d||dd}X|t d ||dd}Yd }Z|d jo][xJ|d [r=}\|d jo ]d}n_|d}`||}qWad}!ncx|d cr}d|d joe|d jo fd}nh|d}i||}j||jo@kx-|d kr }l|d}m||}qWnd}!nnqRWo|!d joTpxJ|d pr=}q|d jo rd}nt|d}u||}qWn|w| d|q W|y| dd| n|||{tddd d!}dSdS("Nszwo_libsmem_datasdroit_edit_dossieris.Vous n'avez pas les droits pour cette action !srep_urlsrep_objs config_objs user_zw_objssplits*issappends objectIdssmem_cutsFoldersmanage_addFolderstableauxsfindsCC:s:is/smanage_changePropertiessmemszwo_cpysmanage_delObjectssnosREQUESTsRESPONSEsredirects./("s _getitem_s_getitems _getattr_s_getattrscontextsmemsrepurlsrepsconfsrepusersstringsobjs idobjs_tmpsidobjssisobjmems idobjsmem_tmps idobjsmemsallidobjsrepidssmemidsslsl2slignesdecscassnewlspremsslistidssunidscaseslfinsploksprev("sobjscasesprevsobjmems _getitem_s_getitems _getattr_s_getattrscontextsmemsrepurlsrepsconfsrepusersstrings idobjs_tmpsidobjssis idobjsmem_tmps idobjsmemsallidobjsrepidssmemidsslsl2slignesdecscassnewlspremsslistidssunidslfinsplok((sScript (Python)splaceoks*    %  &' $  %(   .'$          #(splaceok(splaceok((sScript (Python)ssqLU_bodyqMTZ mem=context.zwo_lib.mem_data() if mem['droit_edit_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' repurl=mem['rep_url'] rep=mem['rep_obj'] conf=mem['config_obj'] repuser=mem['user_zw_obj'] idobjs_tmp=string.split(obj,'*') idobjs=[] for i in idobjs_tmp: if i<>'': idobjs.append(i) idobjsmem_tmp=string.split(objmem,'*') idobjsmem=[] for i in idobjsmem_tmp: if i<>'': idobjsmem.append(i) allidobj=[] for i in idobjs: if not i in allidobj: allidobj.append(i) for i in idobjsmem: if not i in allidobj: allidobj.append(i) repids=rep.objectIds() if 'mem_cut' in repuser.objectIds('Folder'): memids=repuser['mem_cut'].objectIds() else: repuser.manage_addFolder('mem_cut') memids=[] #ETAPE 1 : enlever les ids correspondant dans le positionement actuel de conf l=[] l2=conf.tableaux for ligne in l2: if string.find(ligne,'CC:')==-1: l.append(ligne) else: dec=string.split(ligne,':') cas=dec[1] newl=dec[0]+':'+dec[1]+':' prems=0 listids=string.split(dec[2],'/') for unid in listids: if unid<>'': if not unid in idobjs: if prems==0: prems=1 else: newl=newl+'/' newl=newl+unid l.append(newl) conf.manage_changeProperties(tableaux=l) #ETAPE 2 : dplacer les modules ci necessaire... if case=="mem": for i in idobjs: context.zwo_cpy(rep,repuser['mem_cut'],i) rep.manage_delObjects([i]) else: for i in idobjsmem: context.zwo_cpy(repuser['mem_cut'],rep,i) repuser['mem_cut'].manage_delObjects([i]) #ETAPE 3 : enregistrer la nouvelle position... if case<>"mem" and case<>"no": lfin=[] plok=0 for ligne in l: if string.find(ligne,'CC:'+case+':')==-1: lfin.append(ligne) else: dec=string.split(ligne,':') cas=dec[1] newl=dec[0]+':'+dec[1]+':' listids=string.split(dec[2],'/') prems=0 if prev=='': for i in allidobj: if prems==0: prems=1 else: newl=newl+'/' newl=newl+i plok=1 for unid in listids: if unid<>'': if prems==0: prems=1 else: newl=newl+'/' newl=newl+unid if prev==unid: for i in allidobj: newl=newl+'/' newl=newl+i plok=1 if plok==0: for i in allidobj: if prems==0: prems=1 else: newl=newl+'/' newl=newl+i lfin.append(newl) conf.manage_changeProperties(tableaux=lfin) context.REQUEST.RESPONSE.redirect('./') return qNU Script_magicqOKUwarningsqP)UerrorsqQ)U Python_magicqRU* qSu. j((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Uidobjsoq Uidobjsnq Uidobjsmq U _getitem_q U_getitemqU _getattr_qU_getattrqUcontextqUmemqUrepurlqUrepqUconfqUrepuserqUvidetmpqUstringqUidsoqUidsnqUidsmqUidso2qUaUlenqUlUl2qUligneqUdecq Ucasq!Unewlq"Upremsq#Ulistidsq$Uunidq%tq&U co_argcountq'KubU_paramsq(Uidobjso,idobjsn,idobjsmq)Uidq*U detruireokq+U__ac_local_roles__q,}q-Uxavq.]q/UOwnerq0asU_dav_writelocksq1(U lq2(U Persistenceq3UPersistentMappingq4tq5tq6QU _bind_namesq7(cShared.DC.Scripts.Bindings NameAssignments q8oq9}q:U_asgnsq;}q<(Uname_containerq=U containerq>U name_subpathq?Utraverse_subpathq@U name_contextqAUcontextqBU name_m_selfqCUscriptqDusbU func_defaultsqENU_codeqFT csdZdS(Ncst}t}||tdd}||ddjo dSn||d} ||d} ||d}  ||d }  |||f d } | |td |d }| |td |d }| |td |d }g}x)|d r}||d|q*Wt|d jo|| d|nt|d jo|| d|nt|d jo#|| | dd|n"g}#|| d}$x`|d $rS}%|td|dd jo|&|d|n(|td |d})||d}*||d d||dd}+d },|td ||dd}-xs|d -rf}.|djoP/||j o;0|d jo 1d}n3|d}4||}nnqW|5|d|q W|7| dd||||8tdddd:dSdS(Nszwo_libsmem_datasdroit_edit_dossieris.Vous n'avez pas les droits pour cette action !srep_urlsrep_objs config_objs user_zw_objcs` t} g}x=|dr0}|djo||d|nqW|SdS(Nissappend(s _getattr_s_getattrsnwsoldsel(solds _getattr_s_getattrsnwsel((sScript (Python)svidetmp s  ssplits*isappendsmanage_delObjectssmem_cutstableauxsfindsCC:s:is/ssmanage_changePropertiessREQUESTsRESPONSEsredirects./(s _getitem_s_getitems _getattr_s_getattrscontextsmemsrepurlsrepsconfsrepusersidobjsosidobjsnsidobjsmsvidetmpsstringsidsosidsnsidsmsidso2saslenslsl2slignesdecscassnewlspremsslistidssunid(sidobjsosidobjsnsidobjsms _getitem_s_getitems _getattr_s_getattrscontextsmemsrepurlsrepsconfsrepusersvidetmpsstringsidsosidsnsidsmsidso2saslenslsl2slignesdecscassnewlspremsslistidssunid((sScript (Python)s detruireoksR*  !!!  &' $  (s detruireok(s detruireok((sScript (Python)ssqGU_bodyqHTmem=context.zwo_lib.mem_data() if mem['droit_edit_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' repurl=mem['rep_url'] rep=mem['rep_obj'] conf=mem['config_obj'] repuser=mem['user_zw_obj'] idobjso,idobjsn,idobjsm def videtmp(old): nw=[] for el in old: if el<>'': nw.append(el) return nw idso=videtmp(string.split(idobjso,'*')) idsn=videtmp(string.split(idobjsn,'*')) idsm=videtmp(string.split(idobjsm,'*')) idso2=[] for a in idso: idso2.append(a) if len(idso)>0: rep.manage_delObjects(idso) if len(idsn)>0: rep.manage_delObjects(idsn) if len(idsm)>0: repuser['mem_cut'].manage_delObjects(idsm) l=[] l2=conf.tableaux for ligne in l2: if string.find(ligne,'CC:')==-1: l.append(ligne) else: dec=string.split(ligne,':') cas=dec[1] newl=dec[0]+':'+dec[1]+':' prems=0 listids=string.split(dec[2],'/') for unid in listids: if unid<>'': if not unid in idso2: if prems==0: prems=1 else: newl=newl+'/' newl=newl+unid l.append(newl) conf.manage_changeProperties(tableaux=l) context.REQUEST.RESPONSE.redirect('./') return qIU Script_magicqJKUwarningsqK)UerrorsqL)U Python_magicqMU* qNu. j((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Uidobjsoq Uidobjsnq Uidobjsmq U _getitem_q U_getitemqU _getattr_qU_getattrqUcontextqUmemqUprqUzwuqUrepqUstringqUrepurlqUrepuserqUheadqUspmqUmidqUspeqUfootqU listiconesqUprntqUtitreq Uhtmlq!UlUitq"U co_argcountq#KubU_paramsq$Uidobjso,idobjsn,idobjsmq%Uidq&Udupliquer_elementsq'U__ac_local_roles__q(}q)Uxavq*]q+UOwnerq,asU_dav_writelocksq-(U lq.(U Persistenceq/UPersistentMappingq0tq1tq2QU _bind_namesq3(cShared.DC.Scripts.Bindings NameAssignments q4oq5}q6U_asgnsq7}q8(Uname_containerq9U containerq:U name_subpathq;Utraverse_subpathqU name_m_selfq?Uscriptq@usbU func_defaultsqANU_codeqBT csdZdS(Ncst}t}||tdd}||tdd} ||d} ||d} ||t d||d| d } ||d } ||tdd || d | \}}}}} ||||td ddd} |} d|| dd}|||tdd| | d|}||}||}d}|d}|t d|d}x|dr}|djo|d}|||| |d}|d}|d|d||| |dd }|d!}nqW!|t d|d}"x|d"r}#|djo$|d}%|||| |d}&|d}'|d"|d||| |dd }(|d!}nqW)|t d|d}*x|d*r}+|djo,|d}-|||||d#|d}.|d}/|d$|d||||d#|dd }0|d!}nqBW2|d%}4|d&|d }5|d'|d }6|d(|d }7|d)}8|d*};|||tdd+| | d,d-|}<||}=||}?|SdS(.Nszwo_libsmem_dataszwo_bos presentationszwo_urlsrep_objssplitsrep_urlis user_zw_objsautoursedits zwo_imagessiconess logo_elementss objectIdssRETOUR CONTENUsmenusnavs)
s2s*iss3ssseditionselementsDUPLIQUER LES ELEMENTS(s _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusrepsstringsrepurlsrepusersheadsspmsmidsspesfoots listiconessprntstitreshtmlsidobjsoslsisidobjsnsidobjsm(sidobjsosidobjsnsidobjsms _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusrepsstringsrepurlsrepusersheadsspmsmidsspesfoots listiconessprntstitreshtmlslsi((sScript (Python)sdupliquer_elementss`*-90 .     " 2 " 2 + ;   1  (sdupliquer_elements(sdupliquer_elements((sScript (Python)ssqCU_bodyqDTumem=context.zwo_lib.mem_data() pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] rep=mem['rep_obj'] repurl=string.split(mem['rep_url'],zwu)[1] repuser=mem['user_zw_obj'] # AFFICHAGE DU BANDEAU HAUT (head,spm,mid,spe,foot)=context.zwo_bo.autour(mem,pr,'edit',repurl) listicones=context.zwo_images.icones.logo_elements.objectIds() prnt=head titre='RETOUR CONTENU' prnt=prnt+context.zwo_bo.menu(zwu,pr,'nav',titre) prnt=prnt+spm prnt=prnt+mid html='
' html=html+'
s title_or_ids@ ss
' l=string.split(idobjso,'*') for i in l: if i<>'': html=html+'' l=string.split(idobjsn,'*') for i in l: if i<>'': html=html+'' l=string.split(idobjsm,'*') for i in l: if i<>'': html=html+'' html=html+'
' html=html+rep[i].title_or_id() html=html+' ' html=html+'' html=html+'
' html=html+rep[i].title_or_id() html=html+' ' html=html+'' html=html+'
' html=html+repuser['mem_cut'][i].title_or_id() html=html+' ' html=html+'' html=html+'
' html=html+'' html=html+'' html=html+'' html=html+'' html=html+'' prnt=prnt+context.zwo_bo.edition(zwu,pr,'element','DUPLIQUER LES ELEMENTS',html) prnt=prnt+spe prnt=prnt+foot return prnt qEU Script_magicqFKUwarningsqG)UerrorsqH)U Python_magicqIU* qJu. j/$((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Utabq Unumq U_write_q U_writeq U _getitem_qU_getitemqU _getattr_qU_getattrqUcontextqUmemqUrepqUconfqUvalqUligneqUtableqUaddcaseqU tabfusionqUvtableqUlU numcasemaxqUvligneqUstringqUl3qUintq Utabfusq!Unewpcccq"Ustrctq#Udimrowpcq$Ulenq%Ufirstq&Ulineq'UcUrangeq(Ui_cq)Ustrq*U firstligneq+Uilq,Ufaitq-U infoligneq.Uinfocaseq/Utypeq0Ucasq1Unewlq2Udecq3Upropq4Ulistpropq5UaUelemq6Unewpcq7Uktq8U co_argcountq9KubU_paramsq:Utab,numq;Uidq}q?Uxavq@]qAUOwnerqBasU_dav_writelocksqC(U lqD(U PersistenceqEUPersistentMappingqFtqGtqHQU _bind_namesqI(cShared.DC.Scripts.Bindings NameAssignments qJoqK}qLU_asgnsqM}qN(Uname_containerqOU containerqPU name_subpathqQUtraverse_subpathqRU name_contextqSUcontextqTU name_m_selfqUUscriptqVusbU func_defaultsqWNU_codeqXTcsdZdS(Nc2)st}t}t}||tdd} || ddjo dSn|| d} || d} ||tdd|  |}  |} d 2d }U||d |}X|| d }Zd }[x|d [r}\|td|dd joc]|td|d}^t|||ddd}_||jo `|}nnq Wb||}dg}ed|d}fg}ht| } j| t|jo'ld }nxy|d nrl}od }pxJ|d pr=}q|d jo rd}nt|d}u||}q(Wv|d}q Wxd }yxt t||d d yrj}!z|d}|{|d|||d jo }d}n|d}|dt"|}qWnd }#d }$d }%x|d r}|$| jo|#d jo d}#n|d}d}%||| }&d }x|&d r}'|'\}(})|(djp |(djo||d|)ne|d}||d||d jo d}n|d}|dt"|}qWn|#d jo d}#n|d}d }xJ|d r=}|d jo d}n|d}||}qW|$d}$qCWg}*x;|d r.} |td| d|dd jo||*d|n|td| dd jo|td| d}+||+d|jo\h},|td||+dd}-xS|-d rF}.|td|.d}/||/d||,||/d |||} ?t | |joF@|| |\} } A| djoB|d}Cd} nnnqWEt|||d|d}Ft|||d|d}Gxxt|dGre}HxYt|dHrF}I|djo |djo3J|||||d |fddf}nK|djo |djo3L|||||d |fddf}nM|djo |djo3N|||||d |fddf}nO|djo |djo3P|||||d |fddf}nqWqWQ|d}nqWWR|d}q9WS|SdS( Nisctsisnospcsrowspanscolspansokscsrscr(s _getitem_s_getitemsretsi_lsvalstabslignesi_cscasesokslensltmpsactuscasasintsr_spsc_spsrangessplsspcsaddcase(stabs _getitem_s_getitemsretsi_lsvalslignesi_cscasesokslensltmpsactuscasasintsr_spsc_spsrangessplsspcsaddcase(svalsaddcase(sScript (Python)s tabfusion2s>   '    **333;sctstableauxisfindsCC:ssplits:sCT:s-s/sappendsCsrscrsPC:is=srowspanskeyssPC:Csl:hauteur=/largeur=/marge=/cadre=/couleurcadre=/couleurfond=/couleurtexte=/align=/valign=/rowspan=1/colspan=1sCC:Csmanage_changePropertiessREQUESTsRESPONSEsredirects modif_li_co(2s_write_s_writes _getitem_s_getitems _getattr_s_getattrscontextsmemsrepsconfsvalsnumslignestabstablesaddcases tabfusionsvtablesls numcasemaxsvlignesstringsl3sintstabfussnewpcccsstrctsdimrowpcslensfirstslinescsrangesi_csstrs firstlignesilsfaits infolignesinfocasestypescassnewlsdecspropslistpropsaselemsnewpcsk(2stabsnums_write_s_writes _getitem_s_getitems _getattr_s_getattrscontextsmemsrepsconfsvalslignestablesaddcases tabfusionsvtablesls numcasemaxsvlignesstringsl3sintstabfussnewpcccsstrctsdimrowpcslensfirstslinescsrangesi_csstrs firstlignesilsfaits infolignesinfocasestypescassnewlsdecspropslistpropsaselemsnewpcsk((saddcasesvalsScript (Python)s addligneoks0 !   &# #'       *                  .# $), !  %$% (s addligneok(s addligneok((sScript (Python)ssqYU_bodyqZT,mem=context.zwo_lib.mem_data() if mem['droit_edit_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' rep=mem['rep_obj'] conf=mem['config_obj'] val=context.zwo_lib.tab_to_val(conf) ligne=num table=tab def addcase(tab,ligne,colonne,data,vide): #test si la ligne existe if len(tab)>ligne: #la ligne existe lign=tab[ligne] #test si la collone existe if len(lign)>colonne: #la colonne existe lign[colonne]=data tab[ligne]=lign else: #la colonne n'existe pas #test si l'on doit crer des cellules vides acreer=len(lign)-colonne-1 if acreer>0: for a in range(acreer): lign.append(vide) lign.append(data) tab[ligne]=lign else: # la ligne n'existe pas lign=[] #calcul du nombre de cellule vide a crer if colonne>0: for a in range(colonne): lign.append(vide) lign.append(data) tab.append(lign) return tab def tabfusion(tab): ret=[] i_l=0 for ligne in val['ct'][tab]: i_c=0 for case in ligne: if case<>'': ok=0 while ok==0: ok=1 if len(ret)>i_l: ltmp=ret[i_l] if len(ltmp)>i_c: (actu,casa)=ltmp[i_c] if actu<>'no': i_c=i_c+1 ok=0 r_sp=int(val['pc'][case]['rowspan']) c_sp=int(val['pc'][case]['colspan']) for spl in range(r_sp): for spc in range(c_sp): if spl==0 and spc==0: ret=addcase(ret,i_l+spl,i_c+spc,('ok',case),('no','no')) if spl==0 and spc<>0: ret=addcase(ret,i_l+spl,i_c+spc,('c',case),('no','no')) if spl<>0 and spc==0: ret=addcase(ret,i_l+spl,i_c+spc,('r',case),('no','no')) if spl<>0 and spc<>0: ret=addcase(ret,i_l+spl,i_c+spc,('cr',case),('no','no')) i_c=i_c+1 i_l=i_l+1 return ret vtable=val['ct'][table] l=conf.tableaux numcasemax=0 for vligne in l: if string.find(vligne,'CC:')<>-1: l3=string.split(vligne,':') num=int(l3[1][1:]) if num>numcasemax: numcasemax=num tabfus=tabfusion(table) newpccc=[] strct="CT:"+table+":" dimrowpc=[] ligne=int(ligne) if ligne==len(tabfus): first=0 for line in vtable: first=0 for c in line: if first==0: first=1 else: strct=strct+'-' strct=strct+c strct=strct+'/' first=0 for i_c in range(len(tabfus[0])): numcasemax=numcasemax+1 newpccc.append(numcasemax) if first==0: first=1 else: strct=strct+'-' strct=strct+'C'+str(numcasemax) else: firstligne=0 il=0 fait=0 for line in vtable: if il==ligne: if firstligne==0: firstligne=1 else: strct=strct+'/' fait=1 infoligne=tabfus[ligne] first=0 for infocase in infoligne: (type,cas)=infocase if type=='r' or type=='cr': dimrowpc.append(cas) else: numcasemax=numcasemax+1 newpccc.append(numcasemax) if first==0: first=1 else: strct=strct+'-' strct=strct+'C'+str(numcasemax) if firstligne==0: firstligne=1 else: strct=strct+'/' first=0 for c in line: if first==0: first=1 else: strct=strct+'-' strct=strct+c il=il+1 # Nouveaux PC et CC #newpccc=[] # New CT #strct="CT:"+table+":" # PC a modifier #dimrowpc=[] newl=[] for ligne in l: if string.find(ligne,'CT:'+table+':')<>-1: newl.append(strct) elif string.find(ligne,'PC:')<>-1: dec=string.split(ligne,':') if dec[1] in dimrowpc: prop={} listprop=string.split(dec[2],'/') for a in listprop: elem=string.split(a,'=') prop[elem[0]]=elem[1] prop['rowspan']=str(int(prop['rowspan'])+1) newpc='PC:'+dec[1]+':' first=0 for k in prop.keys(): if first==0: first=1 else: newpc=newpc+'/' newpc=newpc+k+'='+prop[k] newl.append(newpc) else: newl.append(ligne) else: newl.append(ligne) for a in newpccc: newl.append('PC:C'+str(a)+':hauteur=/largeur=/marge=/cadre=/couleurcadre=/couleurfond=/couleurtexte=/align=/valign=/rowspan=1/colspan=1') newl.append('CC:C'+str(a)+':') l=newl conf.manage_changeProperties(tableaux=l) context.REQUEST.RESPONSE.redirect('modif_li_co') return q[U Script_magicq\KUwarningsq])Uerrorsq^)U Python_magicq_U* q`u. jW((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Ucase_selq U _getitem_q U_getitemq U _getattr_q U_getattrqUcontextqUmemqUprqUzwuqUzwuiqUrepqUconfqUvalqUrollqUroll2qU listiconesqUlistobjqUnbelqUobqUobjqUstringqUlist_case_sel_tmpqU list_case_selq UaUrepurlq!Uheadq"Uspmq#Umidq$Uspeq%Ufootq&Uprntq'Utitreq(Uhtmlq)Uhmq*Ustrq+Uintq,Uhm2q-U elem_placedq.Uszq/Uaffichetableauq0U affichecaseq1tq2U co_argcountq3KubU_paramsq4U case_sel=''q5Uidq6U modif_li_coq7U__ac_local_roles__q8}q9Uxavq:]q;UOwnerq(U Persistenceq?UPersistentMappingq@tqAtqBQU _bind_namesqC(cShared.DC.Scripts.Bindings NameAssignments qDoqE}qFU_asgnsqG}qH(Uname_containerqIU containerqJU name_subpathqKUtraverse_subpathqLU name_m_selfqMUscriptqNU name_contextqOUcontextqPusbU func_defaultsqQ(UtqRU_codeqST;/csddZdS(Nsc)3st}t}||tdd | ddjo dSn||tdd | d}|d | d  | d }  ||tdd |  d d}&||||tdddd'|d(d})xOd)rB}*||}|+|ddo,|d}nqBW.|td|d}/g}0x=|d0r0}1|djo|2|d|nqW4||td| d|d}6|djo 7d}n:||tdd d|\}}}}}<|}>dj o ?dSnCd | d!d"}D|||tdd#| d$|}E||}G||}Ld%} R|||tdd&| d'd(| }S||}Wd)} X| d*} [| d+\t"t#}$^ga| d,d-} b| d.} d| d/}&e| d0d1| d2d3|&d4|&d5|&d6|&d7} i  d8 d9 | d:} | d;}  | d<}  || }||}|SdS(=Nszwo_libsmem_datasdroit_edit_dossieris.Vous n'avez pas les droits pour cette action !szwo_bos presentationszwo_urls/zwo_images/bo/srep_objs config_objs tab_to_valcs d|d}|d|d|d}|d}|d|d|d}|d}|d|d}|d}|djo|d }n|d |d |d }|SdS( Ns (surlsrettsnomsrolsimg(snomsurlsimgsrolsrett((sScript (Python)sroll s   csd}|d|d|d}|d}|d|d|d}|d} |d|d}!|d}"|d|d|d |d }#|SdS( Ns(srettsnomsrolsimgsaction(snomsactionsimgsrolsrett((sScript (Python)sroll2s    %s zwo_imagessiconess logo_elementss objectIdsis hasPropertyselementssplits*ssappendsrep_urlsPage de dpart du zwooksautoursedits zwo_dossiers5Dossier non zwook, migration auto pas encore faite...sRETOUR CONTENUsmenusnavsD : ajouter une ligne
: supprimer une ligne
: ajouter colonnes
: supprimer une colonne
seditionsinfos INFORMATIONs?s(s _getitem_s_getitems _getattr_s_getattrsvalscassincasspcassrspscspsspnsprsszslenspreshmshtmlcassaffichetableauselslistobjsrepsel_objs elem_placedstypeimgstypes listiconessmem(scass _getitem_s_getitems _getattr_s_getattrsvalsincasspcassrspscspsspnsprsszslenspreshmshtmlcassaffichetableauselslistobjsrepsel_objs elem_placedstypeimgstypes listiconessmem( s elem_placeds listiconessaffichetableausrepslistobjshmsvalsmemspr(sScript (Python)s affichecaseisD [ [    &)  c( st}t}t}||d|}h} d} d} d} g} x<|dr/}x |dr}|djot| dt| }x|| d|or| d} t| dt| }| d| jo0|| d| | d} d} nqW||d|}n||d }||d }|djo d }n|djo d }nt|}t|}xpt|dr]}xQt|dr>}t| |dt| |}d || |ss s">sajoutcolsaddcolonneok?tab=s&num=scarre_edit_ajout_colonne.gifsr_carre_ajout_colonne.gifss" align="center">sdelcolsdelcolonneok?tab=scarre_detruit_colonne.gifsr_carre_detruit_colonne.gifs s
shauteur_mini_cases/sesepaisseur_tableaus s8
csGit}t}j||d|}k||d|}l||d}m||d} nd} o|djo |djop| d|d} nq| djo | djor| d | d} nt|d } vt |d jow||d }xt |d joy||d d jozd | dd|dd| d| d| d| d|dd}{||}||d}}|Snnnd | dd|dd| d| d| d| d|dd}|d}x|d r}|jo||}|d|d}||d}|djo |}n|d}|d|d d!|d"}|d#||d$d%}nqIW|d&}|d'}|SdS((Nsccspcsrowspanscolspanss1s rowspan="s" s colspan="sepaisseur_caseisTss
sappendsinconnuselements.gifsVs
 sNs< s title_or_ids
s
ssepaisseur_cases" valign="top">sMs
sdellisdelligneok?tab=scarre_detruit_ligne.gifsr_carre_detruit_ligne.gifs " colspan="s
((s_write_s_writes _getitem_s_getitems _getattr_s_getattrsvalstabstablesveriftabsisjs nbcolonness lignevideslignescasesstrsidcasespcscolspansrowspansintsrangesiisjjsidcsnblignessprsbgcshmshtmltabszwuisasrollsszsintabslinsliscas affichecase((stabs_write_s_writes _getitem_s_getitems _getattr_s_getattrsvalstablesveriftabsisjs nbcolonness lignevideslignescasesstrsidcasespcscolspansrowspansintsrangesiisjjsidcsnblignessprsbgcshmshtmltabszwuisasrollsszsintabslinsliscas affichecase(s affichecasesrollshmsvalszwuispr(sScript (Python)saffichetableaus         %     ?& 7D &H  7D    &  &D H   . 7D @  sT1s s()s _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwuszwuisrepsconfsvalsrollsroll2s listiconesslistobjsnbelsobsobjsstringscase_selslist_case_sel_tmps list_case_selsasrepurlsheadsspmsmidsspesfootsprntstitreshtmlshmsstrsintshm2s elem_placedsszs affichecasesaffichetableau()scase_sels _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwuszwuisrepsconfsvalsrollsroll2s listiconesslistobjsnbelsobsobjsstringslist_case_sel_tmps list_case_selsasrepurlsheadsspmsmidsspesfootsprntstitreshtmlshmsstrsintshm2s elem_placedsszsaffichetableaus affichecase(( srollslistobjshmszwuis affichecases listiconessreps elem_placedsvalsaffichetableausmemsprsScript (Python)s modif_li_cosj*  ! 0  - 9  .   1     F'+r    (s modif_li_co(s modif_li_co((sScript (Python)ssqTU_bodyqUT\$mem=context.zwo_lib.mem_data() if mem['droit_edit_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] zwui=zwu+'/zwo_images/bo/' rep=mem['rep_obj'] conf=mem['config_obj'] val=context.zwo_lib.tab_to_val(conf) def roll(nom,url,img,rol): rett='' return rett def roll2(nom,action,img,rol): rett='' return rett listicones=context.zwo_images.icones.logo_elements.objectIds() listobj=rep.objectIds() nbel=0 for ob in listobj: obj=rep[ob] if obj.hasProperty('element'): nbel=nbel+1 list_case_sel_tmp=string.split(case_sel,'*') list_case_sel=[] for a in list_case_sel_tmp: if a<>'': list_case_sel.append(a) repurl=string.split(mem['rep_url'],zwu)[1] if repurl=="": repurl="Page de dpart du zwook" # AFFICHAGE DU BANDEAU HAUT (head,spm,mid,spe,foot)=context.zwo_bo.autour(mem,pr,'edit',repurl) prnt=head if not 'zwo_dossier' in listobj: return "Dossier non zwook, migration auto pas encore faite..." # AFFICHAGE DES CASE DE LA COLONNE (menus) titre='RETOUR CONTENU' prnt=prnt+context.zwo_bo.menu(zwu,pr,'nav',titre) prnt=prnt+spm prnt=prnt+mid # AFFICHAGE DES ZONES LARGES (editions) # EDITION INFORMATION html = """ : ajouter une ligne
: supprimer une ligne
: ajouter colonnes
: supprimer une colonne
""" prnt=prnt+context.zwo_bo.edition(zwu,pr,'info','INFORMATION',html) prnt=prnt+spe # EDITION CONTENU html = '' html=html+'' html=html+'
' hm=pr['hauteur_mini_case'] hm2=str(int(hm)) elem_placed=[] #tableau page html = html+'' html = html+'' sz=pr['epaisseur_tableau'] html=html+'' return htmlcas htmlcas='' return htmlcas def affichetableau(tab): table=val['ct'][tab] veriftab={} i=0 j=0 nbcolonnes=0 lignevide=[] for ligne in table: for case in ligne: if case<>'': 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 nblignes nbcolonnes bgc=pr['color_case_sel'] if tab=='T1': bgc=pr['color_skin'] htmltab='
' #tableau contenu def affichecase(cas): incas=val['cc'][cas] pcas=val['pc'][cas] rsp=pcas["rowspan"] csp=pcas["colspan"] spn='' if rsp<>'1' and rsp<>'': spn=spn+'rowspan="'+rsp+'" ' if csp<>'1' and csp<>'': spn=spn+'colspan="'+csp+'" ' sz=pr['epaisseur_case'] if len(incas)>0: pre=incas[0] if len(pre)>0: if pre[0]=="T": htmlcas='' htmlcas=htmlcas+affichetableau(pre) htmlcas=htmlcas+'' htmlcas=htmlcas+'
' for el in incas: if el in listobj: el_obj=rep[el] elem_placed.append(el) typeimg="inconnu" type=el_obj.element if type+'.gif' in listicones: typeimg=type htmlcas=htmlcas+'' htmlcas=htmlcas+'
 ' htmlcas=htmlcas+'' htmlcas=htmlcas+' '+el_obj.title_or_id()+'
' htmlcas=htmlcas+'
' htmltab=htmltab+'' htmltab=htmltab+'' for a in range(nbcolonnes): htmltab=htmltab+'' htmltab=htmltab+'' htmltab=htmltab+'' sz=pr['epaisseur_case'] intab=val['ct'][tab] lin=0 for li in intab: htmltab = htmltab +'' htmltab = htmltab +'' for ca in li: htmltab = htmltab + affichecase(ca) htmltab = htmltab +'' htmltab = htmltab +'' lin=lin+1 htmltab=htmltab+'' htmltab=htmltab+'' htmltab=htmltab+'' htmltab = htmltab +'
' htmltab=htmltab+'' htmltab=htmltab+'' htmltab=htmltab+'' htmltab=htmltab+'' htmltab=htmltab+'
' htmltab=htmltab+roll('ajoutcol'+tab+str(a),'addcolonneok?tab='+tab+'&num='+str(a),zwui+'carre_edit_ajout_colonne.gif',zwui+'r_carre_ajout_colonne.gif') htmltab=htmltab+'' if nbcolonnes<>1: htmltab=htmltab+roll('delcol'+tab+str(a),'delcolonneok?tab='+tab+'&num='+str(a),zwui+'carre_detruit_colonne.gif',zwui+'r_carre_detruit_colonne.gif') else: htmltab=htmltab+'' htmltab=htmltab+'
' htmltab=htmltab+'
' htmltab=htmltab+roll('ajoutcol'+tab+str(nbcolonnes),'addcolonneok?tab='+tab+'&num='+str(nbcolonnes),zwui+'carre_edit_ajout_colonne.gif',zwui+'r_carre_ajout_colonne.gif') htmltab=htmltab+'
' htmltab=htmltab+'' htmltab=htmltab+'' htmltab=htmltab+'' htmltab=htmltab+'' htmltab=htmltab+'
' htmltab=htmltab+roll('ajoutli'+tab+str(lin),'addligneok?tab='+tab+'&num='+str(lin),zwui+'carre_edit_ajout_ligne.gif',zwui+'r_carre_ajout_ligne.gif') htmltab=htmltab+'
' if nblignes<>1: htmltab=htmltab+roll('delli'+tab+str(lin),'delligneok?tab='+tab+'&num='+str(lin),zwui+'carre_detruit_ligne.gif',zwui+'r_carre_detruit_ligne.gif') else: htmltab=htmltab+'' htmltab=htmltab+'
' htmltab=htmltab+'
' htmltab=htmltab+roll('ajoutli'+tab+str(nblignes),'addligneok?tab='+tab+'&num='+str(nblignes),zwui+'carre_edit_ajout_ligne.gif',zwui+'r_carre_ajout_ligne.gif') htmltab=htmltab+'
' return htmltab html=html+affichetableau('T1') html=html+'
' prnt=prnt+html prnt=prnt+foot return prnt qVU Script_magicqWKUwarningsqX)UerrorsqY)U Python_magicqZU* q[u. jD((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Uidobjsoq Uidobjsnq Uidobjsmq U _getitem_q U_getitemqU _getattr_qU_getattrqUcontextqUmemqUrepqUrepuserqUdicoqUconfqU repusercutqUtablqU renameintabqUkUoldqUnewqUnewidqUttqU co_argcountqKubU_paramsqUidobjso,idobjsn,idobjsmq Uidq!U renommerokq"U__ac_local_roles__q#}q$Uxavq%]q&UOwnerq'asU_dav_writelocksq((U lq)(U Persistenceq*UPersistentMappingq+tq,tq-QU _bind_namesq.(cShared.DC.Scripts.Bindings NameAssignments q/oq0}q1U_asgnsq2}q3(Uname_containerq4U containerq5U name_subpathq6Utraverse_subpathq7U name_m_selfq8Uscriptq9U name_contextq:Ucontextq;usbU func_defaultsq| dd||||?tddddAdSdS(Nszwo_libsmem_datasdroit_edit_dossieris.Vous n'avez pas les droits pour cette action !srep_objs user_zw_objsREQUESTsforms config_objsmem_cuts objectIdssmanage_addFolderstableauxcst}t}g}xl|dr_}|td|dd jo||d|n|td|d} || d} || dd|| dd} d} |td|| dd }x|drr}|d jo\| djo d} n | d } !||jo"| |} n$| |} nqW|%|d| q$W&|SdS( NisfindsCC:isappendssplits:is/s(s _getitem_s_getitems _getattr_s_getattrsnewtabstablslignesstringsdecscassnewlspremsslistidssunidsoldidsnewid(stablsoldidsnewids _getitem_s_getitems _getattr_s_getattrsnewtabslignesstringsdecscassnewlspremsslistidssunid((sScript (Python)s renameintabs& &' $  skeysiiso_s mix_id_zopes zwo_renamesmanage_changePropertiesstitlesn_sm_sRESPONSEsredirects./(s _getitem_s_getitems _getattr_s_getattrscontextsmemsrepsrepusersdicosconfs repusercutstabls renameintabsksoldsnewsnewidst(sidobjsosidobjsnsidobjsms _getitem_s_getitems _getattr_s_getattrscontextsmemsrepsrepusersdicosconfs repusercutstabls renameintabsksoldsnewsnewidst((sScript (Python)s renommeroksF*   !$ $ $'(s renommerok(s renommerok((sScript (Python)ssq>U_bodyq?Tqmem=context.zwo_lib.mem_data() if mem['droit_edit_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' rep=mem['rep_obj'] repuser=mem['user_zw_obj'] dico=context.REQUEST.form conf=mem['config_obj'] if not 'mem_cut' in repuser.objectIds(): repuser.manage_addFolder('mem_cut') repusercut=repuser['mem_cut'] tabl=conf.tableaux def renameintab(tabl,oldid,newid): newtab=[] for ligne in tabl: if string.find(ligne,'CC:')==-1: newtab.append(ligne) else: dec=string.split(ligne,':') cas=dec[1] newl=dec[0]+':'+dec[1]+':' prems=0 listids=string.split(dec[2],'/') for unid in listids: if unid<>'': if prems==0: prems=1 else: newl=newl+'/' if unid==oldid: newl=newl+newid else: newl=newl+unid newtab.append(newl) return newtab for k in dico.keys(): if k[0:2]=='o_': old=k[2:] new=dico[k] newid=context.zwo_lib.mix_id_zope(new) context.zwo_rename(rep,old,newid) rep[newid].manage_changeProperties(title=new) t=renameintab(tabl,old,newid) tabl=t if k[0:2]=='n_': old=k[2:] new=dico[k] newid=context.zwo_lib.mix_id_zope(new) context.zwo_rename(rep,old,newid) rep[newid].manage_changeProperties(title=new) if k[0:2]=='m_': old=k[2:] new=dico[k] newid=context.zwo_lib.mix_id_zope(new) context.zwo_rename(repusercut,old,newid) repusercut[newid].manage_changeProperties(title=new) conf.manage_changeProperties(tableaux=tabl) context.REQUEST.RESPONSE.redirect('./') return q@U Script_magicqAKUwarningsqB)UerrorsqC)U Python_magicqDU* qEu. ja((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Uidobjsoq Uidobjsnq Uidobjsmq U _getitem_q U_getitemqU _getattr_qU_getattrqUcontextqUmemqUprqUzwuqUrepqUstringqUrepurlqUrepuserqUheadqUspmqUmidqUspeqUfootqU listiconesqUprntqUtitreq Uhtmlq!Utitlesq"UlUitq#U co_argcountq$KubU_paramsq%Uidobjso,idobjsn,idobjsmq&Uidq'Udetruire_elementsq(U__ac_local_roles__q)}q*Uxavq+]q,UOwnerq-asU_dav_writelocksq.(U lq/(U Persistenceq0UPersistentMappingq1tq2tq3QU _bind_namesq4(cShared.DC.Scripts.Bindings NameAssignments q5oq6}q7U_asgnsq8}q9(Uname_containerq:U containerq;U name_subpathqUcontextq?U name_m_selfq@UscriptqAusbU func_defaultsqBNU_codeqCTC csdZdS(Ncst}t}||tdd}||tdd} ||d} ||d} ||t d||d| d } ||d } ||tdd || d | \}}}}} ||||td ddd} |} d|| dd}|||tdd| | d|}||}||}d}g}|t d|d}xR|drE}|djo/||d||| |dnqW|t d|d}xR|drE}|djo/||d||| |dnq+W|t d|d} x[|d rN}!|djo8|"|d||||d|dnqW$x8|d$r+}%|djo&||d}nqW'|d}(|d|d })|d!|d }*|d"|d }+|d#},|d$}-|d%}/|||tdd&| | d'd(|}0||}1||}3|SdS()Nszwo_libsmem_dataszwo_bos presentationszwo_urlsrep_objssplitsrep_urlis user_zw_objsautoursedits zwo_imagessiconess logo_elementss objectIdssRETOUR CONTENUsmenusnavss*issappends title_or_idsmem_cuts
s(s+s+ss
seditionselements0! ETES VOUS SUR DE VOULOIR DETRUIRE CES ELEMENTS(s _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusrepsstringsrepurlsrepusersheadsspmsmidsspesfoots listiconessprntstitreshtmlstitlessidobjsoslsisidobjsnsidobjsm(sidobjsosidobjsnsidobjsms _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusrepsstringsrepurlsrepusersheadsspmsmidsspesfoots listiconessprntstitreshtmlstitlesslsi((sScript (Python)sdetruire_elementssP*-90 .    009    1  (sdetruire_elements(sdetruire_elements((sScript (Python)ssqDU_bodyqETmem=context.zwo_lib.mem_data() pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] rep=mem['rep_obj'] repurl=string.split(mem['rep_url'],zwu)[1] repuser=mem['user_zw_obj'] # AFFICHAGE DU BANDEAU HAUT (head,spm,mid,spe,foot)=context.zwo_bo.autour(mem,pr,'edit',repurl) listicones=context.zwo_images.icones.logo_elements.objectIds() prnt=head titre='RETOUR CONTENU' prnt=prnt+context.zwo_bo.menu(zwu,pr,'nav',titre) prnt=prnt+spm prnt=prnt+mid html='' titles=[] l=string.split(idobjso,'*') for i in l: if i<>'': titles.append(rep[i].title_or_id()) l=string.split(idobjsn,'*') for i in l: if i<>'': titles.append(rep[i].title_or_id()) l=string.split(idobjsm,'*') for i in l: if i<>'': titles.append(repuser['mem_cut'][i].title_or_id()) for i in titles: if i<>'': html=html+i+'
' html=html+'
' html=html+'' html=html+'' html=html+'' html=html+'' html=html+'
' html=html+'
' prnt=prnt+context.zwo_bo.edition(zwu,pr,'element','! ETES VOUS SUR DE VOULOIR DETRUIRE CES ELEMENTS',html) prnt=prnt+spe prnt=prnt+foot return prnt qFU Script_magicqGKUwarningsqH)UerrorsqI)U Python_magicqJU* qKu. j((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Ucaseq U _getitem_q U_getitemq U _getattr_q U_getattrqUcontextqUmemqUrepqUconfqUvalqUtabqUcelssqUcelsqUlUcUrecupqUaUbUch_recupqUpremsqUl2qUvligneqUokqUstringqtqU co_argcountqKubU_paramsq Ucaseq!Uidq"U del_soustabokq#U__ac_local_roles__q$}q%Uxavq&]q'UOwnerq(asU_dav_writelocksq)(U lq*(U Persistenceq+UPersistentMappingq,tq-tq.QU _bind_namesq/(cShared.DC.Scripts.Bindings NameAssignments q0oq1}q2U_asgnsq3}q4(Uname_containerq5U containerq6U name_subpathq7Utraverse_subpathq8U name_m_selfq9Uscriptq:U name_contextq;UcontextqT csdZdS(Nc st}t}||tdd}||ddjo dSn||d}||d}||tdd|}  |||| d |d }  ||| d | }  g} xB| d r5} x)| d r}|| d |qWqWg}xT| d rG}x;||| d |d r}||d |q_Wq8Wd }d}x|d rr}|d jo\||d djo?|djod }||}n |d|}nnqW#g} $||d}%x |d %r}&d}'|td|dd jok(|td|d})||d| jo *d }n+||d|jo ,d }nn-|td|dd joE.|td|d}/||d| jo 0d }nn1|td|dd joE2|td|d}3||d| jo 4d }nn5|td|dd joE6|td|d}7||d| jo 8d }nn9|djo|:| d |nqDW|<| d d|d||>|dd| |||@tddddBdSdS(Nszwo_libsmem_datasdroit_edit_dossieris.Vous n'avez pas les droits pour cette action !srep_objs config_objs tab_to_valsccisctsappendssTs/stableauxsfindsCC:ssplits:sPC:sCT:sPT:smanage_changePropertiessREQUESTsRESPONSEsredirects./(s _getitem_s_getitems _getattr_s_getattrscontextsmemsrepsconfsvalscasestabscelssscelsslscsrecupsasbsch_recupspremssl2svlignesoksstring(scases _getitem_s_getitems _getattr_s_getattrscontextsmemsrepsconfsvalstabscelssscelsslscsrecupsasbsch_recupspremssl2svlignesoksstring((sScript (Python)s del_soustaboksh* !$  *     # ###"(s del_soustabok(s del_soustabok((sScript (Python)ssq?U_bodyq@Tmem=context.zwo_lib.mem_data() if mem['droit_edit_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' rep=mem['rep_obj'] conf=mem['config_obj'] val=context.zwo_lib.tab_to_val(conf) tab=val['cc'][case][0] celss=val['ct'][tab] cels=[] for l in celss: for c in l: cels.append(c) recup=[] for a in cels: for b in val['cc'][a]: recup.append(b) ch_recup='' prems=1 for b in recup: if b<>'': if b[0]<>'T': if prems==1: prems=0 ch_recup=ch_recup+b else: ch_recup=ch_recup+'/'+b l=[] l2=conf.tableaux for vligne in l2: ok=1 if string.find(vligne,'CC:')<>-1: l2=string.split(vligne,':') if l2[1] in cels: ok=0 if l2[1]==case: ok=0 if string.find(vligne,'PC:')<>-1: l2=string.split(vligne,':') if l2[1] in cels: ok=0 if string.find(vligne,'CT:')<>-1: l2=string.split(vligne,':') if l2[1]==tab: ok=0 if string.find(vligne,'PT:')<>-1: l2=string.split(vligne,':') if l2[1]==tab: ok=0 if ok==1: l.append(vligne) l.append('CC:'+case+':'+ch_recup) conf.manage_changeProperties(tableaux=l) context.REQUEST.RESPONSE.redirect('./') return qAU Script_magicqBKUwarningsqC)UerrorsqD)U Python_magicqEU* qFu. jI((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Utypeq U _getitem_q U_getitemq U _getattr_q U_getattrqUcontextqUmemqUprqUzwuqUstringqUrepurlqUheadqUspmqUmidqUspeqUfootqU listiconesqUprntqUtitreqUmodqUimgtypqUhtmlqtq U co_argcountq!KubU_paramsq"Utypeq#Uidq$U ajout_elementq%U__ac_local_roles__q&}q'Uxavq(]q)UOwnerq*asU_dav_writelocksq+(U lq,(U Persistenceq-UPersistentMappingq.tq/tq0QU _bind_namesq1(cShared.DC.Scripts.Bindings NameAssignments q2oq3}q4U_asgnsq5}q6(Uname_containerq7U containerq8U name_subpathq9Utraverse_subpathq:U name_m_selfq;UscriptqusbU func_defaultsq?NU_codeq@TTcsdZdS(Ncst}t}||tdd}||ddjo dSn||tdd}||d}||td ||d |d}  ||tdd ||d | \} } } }} ||||td ddd} | }d||dd}|||tdd||d|}|| }d||dd}|||tdd||d|}|| }|| }||td|}d}|d||||td dddjo&d||dd|d}nd|d||d } ||d!|||d"}"|||tdd#||d$||}$||}&|SdS(%Nszwo_libsmem_datasdroit_edit_dossieris.Vous n'avez pas les droits pour cette action !szwo_bos presentationszwo_urlssplitsrep_urlsautoursedits zwo_imagessiconess logo_elementss objectIdssRETOUR CONTENUsmenusnavs&RETOUR LISTEs zwo_modulesss.gifs sCREATION D'UN ELEMENT : s s title_or_idsnew_htmlsrep_objseditionselement(s _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstringsrepurlsheadsspmsmidsspesfoots listiconessprntstitrestypesmodsimgtypshtml(stypes _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstringsrepurlsheadsspmsmidsspesfoots listiconessprntstitresmodsimgtypshtml((sScript (Python)s ajout_elements0* -90 . .   ;&!$1 (s ajout_element(s ajout_element((sScript (Python)ssqAU_bodyqBTmem=context.zwo_lib.mem_data() if mem['droit_edit_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] repurl=string.split(mem['rep_url'],zwu)[1] # AFFICHAGE DU BANDEAU HAUT (head,spm,mid,spe,foot)=context.zwo_bo.autour(mem,pr,'edit',repurl) listicones=context.zwo_images.icones.logo_elements.objectIds() prnt=head titre='RETOUR CONTENU' prnt=prnt+context.zwo_bo.menu(zwu,pr,'nav',titre) prnt=prnt+spm titre='RETOUR LISTE' prnt=prnt+context.zwo_bo.menu(zwu,pr,'nav',titre) prnt=prnt+spm prnt=prnt+mid mod=context.zwo_modules[type] imgtyp='' if type+'.gif' in context.zwo_images.icones.logo_elements.objectIds(): imgtyp='' titre='CREATION D\'UN ELEMENT : '+imgtyp+' '+mod.title_or_id() html=mod.new_html(mem, mem['rep_obj']) prnt=prnt+context.zwo_bo.edition(zwu,pr,'element',titre,html) prnt=prnt+foot return prnt qCU Script_magicqDKUwarningsqE)UtitleqFUUerrorsqG)U Python_magicqHU* qIu. j!O((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Ucaseq U_write_q U_writeq U _getitem_q U_getitemqU _getattr_qU_getattrqUcontextqUmemqUprqUzwuqUstringqUdecqUlenqU listrepurlqUidskinqUzwuiqUrepqUconfqUvalqUvtableqUtabqUtbq Uligneq!Ucelq"Ulistcelq#U numcasemaxq$Uintq%Unumq&Urspq'Ucspq(Uctstrq)Uctabq*Uflq+Ulinsq,Ucrecaseq-Uposcq.Ucolq/Ufcq0Ucinsq1Ustrq2Uplq3UlUnewlq4Unewctq5Upropq6Ulistpropq7UaUelemq8Unewpcq9Ufirstq:Uktq;U co_argcountqUidq?Uannule_fusionokq@U__ac_local_roles__qA}qBUxavqC]qDUOwnerqEasU_dav_writelocksqF(U lqG(U PersistenceqHUPersistentMappingqItqJtqKQU _bind_namesqL(cShared.DC.Scripts.Bindings NameAssignments qMoqN}qOU_asgnsqP}qQ(Uname_containerqRU containerqSU name_subpathqTUtraverse_subpathqUU name_m_selfqVUscriptqWU name_contextqXUcontextqYusbU func_defaultsqZNU_codeq[TQcsdZdS(Nc4Fs t}t}t}||tdd}||tdd} ||d} |t d||d| } t | djo4|t d||d|td } n|t d|| dd }||d d jo# ||td d|Sn ||d} | d} |||tdd |}|}||tdd|}||d}d}xw||ddr^}xR|||dr<}x0|dr#}||jo |}nqWqWqW||d}d}xZ||ddrA}t||dd} ||jo !|}nqfW#||||d|ddjo $d}n+&t||||d|d}(||||d|ddjo )d}n++t||||d|d}1d}2|||d|} 3d}!4d}"5g}#6d }$7x| d7r}8|!djo 9d}!n;|d }<d}%=d}&>|"djo?|"d}"n@d}'Ax|dAr}B|"djo |%|$jo C|}'nD|&djolEd}&F|'djoOG|d}|H|#d|I|dt(|d}J|'d}'nnL|d}M||||d|ddjo Nd})n+Pt||||d|d})Q||}R||jo#S|%}$T|}"U|d}'nV|'djoKW|d}|X|#d|Y|dt(|}Z|'d}'n[|%|)}%qBW]|"djo |%|$jo ^|}'n`x\`|'djoKa|d}|b|#d|c|dt(|}d|'d}'q<WqWg||d}*hg}+ix"|*dir}j|t d |d!|d"d jo/kd!|d"|},|l|+d|,nn|t d |d#|d"d joto|t d|d"} ph}-q|t d|| d d }.rxS|.drrF}/s|t d|/d$}0t||0d||-||0dsq\U_bodyq]T mem=context.zwo_lib.mem_data() pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] dec=string.split(mem['url'],zwu) if len(dec)==1: dec=string.split(mem['url'],context.acl_url()) listrepurl=string.split(dec[1],'/') if listrepurl[2]=='skin': return context.skins.index_html(mem) else: idskin=listrepurl[3] zwui=zwu+'/zwo_images/bo/' rep=context.zwo_info.skins[idskin] conf=rep val=context.zwo_lib.tab_to_val(conf) # dtermine la table concerne : tab vtable=val['ct'] tab='' for tb in vtable.keys(): for ligne in vtable[tb]: for cel in ligne: if cel==case: tab=tb #determiner l'indice de la dernire case : numcasemax listcel=val['cc'] numcasemax=0 for cel in listcel.keys(): num=int(cel[1:]) if num>numcasemax: numcasemax=num if val['pc'][case]['rowspan']=='': rsp=1 else: rsp=int(val['pc'][case]['rowspan']) if val['pc'][case]['colspan']=='': csp=1 else: csp=int(val['pc'][case]['colspan']) # on determine la nouvelle structure du tableau : # ctstr : chaine de contenu du tableau reconstruite. # crecase : liste de num des cases a creer. ctstr='' ctab=val['ct'][tab] fl=0 lins=0 crecase=[] posc=-1 for ligne in ctab: if fl==0: fl=1 else: ctstr=ctstr+'/' col=0 fc=0 if lins<>0: lins=lins-1 cins=0 for cel in ligne: if lins<>0 and col==posc: cins=csp if fc==0: fc=1 if cins<>0: numcasemax=numcasemax+1 crecase.append(numcasemax) ctstr=ctstr+'C'+str(numcasemax)+'-' cins=cins-1 else: ctstr=ctstr+'-' if val['pc'][cel]['colspan']=='': pl=0 else: pl=int(val['pc'][cel]['colspan']) ctstr=ctstr+cel if cel==case: posc=col lins=rsp cins=csp-1 if cins<>0: numcasemax=numcasemax+1 crecase.append(numcasemax) ctstr=ctstr+'-C'+str(numcasemax) cins=cins-1 col=col+pl if lins<>0 and col<=posc: cins=csp while cins<>0: numcasemax=numcasemax+1 crecase.append(numcasemax) ctstr=ctstr+'-C'+str(numcasemax) cins=cins-1 l=conf.tableaux newl=[] for ligne in l: if string.find(ligne,'CT:'+tab+':')<>-1: newct='CT:'+tab+':'+ctstr newl.append(newct) elif string.find(ligne,'PC:'+case+":")<>-1: dec=string.split(ligne,':') prop={} listprop=string.split(dec[2],'/') for a in listprop: elem=string.split(a,'=') prop[elem[0]]=elem[1] prop['rowspan']=str(1) prop['colspan']=str(1) newpc='PC:'+case+':' first=0 for k in prop.keys(): if first==0: first=1 else: newpc=newpc+'/' newpc=newpc+k+'='+prop[k] newl.append(newpc) else: newl.append(ligne) for num in crecase: newl.append('PC:C'+str(num)+':hauteur=/largeur=/marge=/cadre=/couleurcadre=/couleurfond=/couleurtexte=/align=/valign=/rowspan=1/colspan=1') newl.append('CC:C'+str(num)+':') l=newl conf.manage_changeProperties(tableaux=l) context.REQUEST.RESPONSE.redirect('./') return q^U Script_magicq_KUwarningsq`)Uerrorsqa)U Python_magicqbU* qcu. j((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Uidobjq U _getitem_q U_getitemq U _getattr_q U_getattrqUcontextqUmemqUprqUzwuqUstringqU listrepurlqUidskinqUzwuiqUrepqUconfqUelementqUtypeqUheadqUspmqUmidqUspeqUfootqU listiconesq Uprntq!Utitreq"Umodq#Uimgtypq$Uhtmlq%tq&U co_argcountq'KubU_paramsq(Uidobjq)Uidq*Uediter_elementq+U__ac_local_roles__q,}q-Uxavq.]q/UOwnerq0asU_dav_writelocksq1(U lq2(U Persistenceq3UPersistentMappingq4tq5tq6QU _bind_namesq7(cShared.DC.Scripts.Bindings NameAssignments q8oq9}q:U_asgnsq;}q<(Uname_containerq=U containerq>U name_subpathq?Utraverse_subpathq@U name_contextqAUcontextqBU name_m_selfqCUscriptqDusbU func_defaultsqENU_codeqFTN csdZdS(NcsVt}t}||tdd}||ddjo dSn||tdd}||d}|td ||td ||d |dd } || d d jo#||tdd|Sn || d}  |d}  |||tdd| }  | }|| |}||d}||tdd||d d| \}}}}}||||tdddd}|}d||dd}|||tdd||d|}||}||}||td|} d }!|d!||||tddddjo&"d"||dd#|d$}n#d%|d&|d'||d(}%||d)|| |}'|||tdd*||d||})||}+|SdS(+Nszwo_libsmem_datasdroit_edit_dossieris.Vous n'avez pas les droits pour cette action !szwo_bos presentationszwo_urlssplitsurls/isskinsskinss index_htmlis/zwo_images/bo/szwo_infoselementsautoursEdition du skin s zwo_imagessiconess logo_elementss objectIdssRETOUR CONTENUsmenusnavs zwo_modulesss.gifs sEDITION DE L'ELEMENT s s : s title_or_ids config_htmlsedition(s _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstrings listrepurlsidskinszwuisrepsconfsidobjselementstypesheadsspmsmidsspesfoots listiconessprntstitresmodsimgtypshtml(sidobjs _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstrings listrepurlsidskinszwuisrepsconfselementstypesheadsspmsmidsspesfoots listiconessprntstitresmodsimgtypshtml((sScript (Python)sediter_elements:* ?# $ =0 .   ;&)1 (sediter_element(sediter_element((sScript (Python)ssqGU_bodyqHTmem=context.zwo_lib.mem_data() if mem['droit_edit_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] listrepurl=string.split(string.split(mem['url'],zwu)[1],'/') if listrepurl[2]=='skin': return context.skins.index_html(mem) else: idskin=listrepurl[3] zwui=zwu+'/zwo_images/bo/' rep=context.zwo_info.skins[idskin] conf=rep element=rep[idobj] type=element.element # AFFICHAGE DU BANDEAU HAUT (head,spm,mid,spe,foot)=context.zwo_bo.autour(mem,pr,'skin','Edition du skin '+idskin) listicones=context.zwo_images.icones.logo_elements.objectIds() prnt=head titre='RETOUR CONTENU' prnt=prnt+context.zwo_bo.menu(zwu,pr,'nav',titre) prnt=prnt+spm prnt=prnt+mid mod=context.zwo_modules[type] imgtyp='' if type+'.gif' in context.zwo_images.icones.logo_elements.objectIds(): imgtyp='' titre='EDITION DE L\'ELEMENT '+type+' '+imgtyp+' : '+element.title_or_id() html=mod.config_html(mem, rep, element) prnt=prnt+context.zwo_bo.edition(zwu,pr,'element',titre,html) prnt=prnt+foot return prnt qIU Script_magicqJKUwarningsqK)UtitleqLUUerrorsqM)U Python_magicqNU* qOu. j C((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 UcontextqUmemqUprqUzwuqUstringqU listrepurlqUidskinqUzwuiqUrepqUconfqUnewokqtqU co_argcountqKubU_paramsqUUidqU validationqU__ac_local_roles__q}qUxavq ]q!UOwnerq"asU_dav_writelocksq#(U lq$(U Persistenceq%UPersistentMappingq&tq'tq(QU _bind_namesq)(cShared.DC.Scripts.Bindings NameAssignments q*oq+}q,U_asgnsq-}q.(Uname_containerq/U containerq0U name_subpathq1Utraverse_subpathq2U name_m_selfq3Uscriptq4U name_contextq5Ucontextq6usbU func_defaultsq7NU_codeq8T(csdZdS(Ncst}t}||tdd}||ddjo dSn||tdd}||d}|td ||td ||d |dd } || d d jo#||tdd|Sn || d}  |d}  |||tdd| }  | } d}|| dd||||tddd|ddSdS(Nszwo_libsmem_datasdroit_edit_dossieris.Vous n'avez pas les droits pour cette action !szwo_bos presentationszwo_urlssplitsurls/isskinsskinss index_htmlis/zwo_images/bo/szwo_infos0smanage_changePropertiessoksREQUESTsRESPONSEsredirects /zwo_bo/skin(s _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstrings listrepurlsidskinszwuisrepsconfsnewok(s _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstrings listrepurlsidskinszwuisrepsconfsnewok((sScript (Python)s validations* ?# $  #(s validation(s validation((sScript (Python)ssq9U_bodyq:Tmem=context.zwo_lib.mem_data() if mem['droit_edit_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] listrepurl=string.split(string.split(mem['url'],zwu)[1],'/') if listrepurl[2]=='skin': return context.skins.index_html(mem) else: idskin=listrepurl[3] zwui=zwu+'/zwo_images/bo/' rep=context.zwo_info.skins[idskin] conf=rep newok="0" conf.manage_changeProperties(ok=newok) context.REQUEST.RESPONSE.redirect(zwu+'/zwo_bo/skin') return q;U Script_magicq)U Python_magicq?U* q@u. j((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Uidobjsoq Uidobjsnq Uidobjsmq U _getitem_q U_getitemqU _getattr_qU_getattrqUcontextqUmemqUprqUzwuqUstringqU listrepurlqUidskinqUzwuiqUrepqUconfqUrepuserqUheadqUspmqUmidqUspeqUfootq U listiconesq!Uprntq"Utitreq#Uhtmlq$UlUitq%U co_argcountq&KubU_paramsq'Uidobjso,idobjsn,idobjsmq(Uidq)Urenommer_elementsq*U__ac_local_roles__q+}q,Uxavq-]q.UOwnerq/asU_dav_writelocksq0(U lq1(U Persistenceq2UPersistentMappingq3tq4tq5QU _bind_namesq6(cShared.DC.Scripts.Bindings NameAssignments q7oq8}q9U_asgnsq:}q;(Uname_containerqUtraverse_subpathq?U name_contextq@UcontextqAU name_m_selfqBUscriptqCusbU func_defaultsqDNU_codeqET csdZdS(Ncs8t}t}||tdd}||tdd} ||d} |td||td||d| dd } || d d jo#||td d |Sn|| d}  | d} |||tdd | } |} ||d}||tdd|| d d| \}}}}}||||tdddd}|}d|| dd}|||tdd| | d|}||}||}d}|d}|td|d} x|d  r}!|d!jo"|d"}#|||||d#}$|d$}%|d%|d&||||d#d'}&|d(}nqHW(|td|d})x|d )r}*|d!jo+|d"},|||||d#}-|d$}.|d)|d&||||d#d'}/|d(}nq W0|td|d}1x|d 1r}2|d!jo3|d"}4|||||d*|d#}5|d$}6|d+|d&||||d*|d#d'}7|d(}nqW9|d,};|d-|d'}<|d.|d'}=|d/|d'}>|d0}?|d1}B|||tdd2| | d3d4|}C||}D||}F|SdS(5Nszwo_libsmem_dataszwo_bos presentationszwo_urlssplitsurlis/isskinsskinss index_htmlis/zwo_images/bo/szwo_infos user_zw_objsautoursEdition du skin s zwo_imagessiconess logo_elementss objectIdssRETOUR CONTENUsmenusnavs(
s2s*iss3ssseditionselementsRENOMMER LES ELEMENTS(s _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstrings listrepurlsidskinszwuisrepsconfsrepusersheadsspmsmidsspesfoots listiconessprntstitreshtmlsidobjsoslsisidobjsnsidobjsm(sidobjsosidobjsnsidobjsms _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstrings listrepurlsidskinszwuisrepsconfsrepusersheadsspmsmidsspesfoots listiconessprntstitreshtmlslsi((sScript (Python)srenommer_elementssj*?# $ =0 .     " 2 " 2 + ;   1  (srenommer_elements(srenommer_elements((sScript (Python)ssqFU_bodyqGT mem=context.zwo_lib.mem_data() pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] listrepurl=string.split(string.split(mem['url'],zwu)[1],'/') if listrepurl[2]=='skin': return context.skins.index_html(mem) else: idskin=listrepurl[3] zwui=zwu+'/zwo_images/bo/' rep=context.zwo_info.skins[idskin] conf=rep repuser=mem['user_zw_obj'] # AFFICHAGE DU BANDEAU HAUT (head,spm,mid,spe,foot)=context.zwo_bo.autour(mem,pr,'skin','Edition du skin '+idskin) listicones=context.zwo_images.icones.logo_elements.objectIds() prnt=head titre='RETOUR CONTENU' prnt=prnt+context.zwo_bo.menu(zwu,pr,'nav',titre) prnt=prnt+spm prnt=prnt+mid html='
' html=html+'
s title_or_ids@ ss
' l=string.split(idobjso,'*') for i in l: if i<>'': html=html+'' l=string.split(idobjsn,'*') for i in l: if i<>'': html=html+'' l=string.split(idobjsm,'*') for i in l: if i<>'': html=html+'' html=html+'
' html=html+rep[i].title_or_id() html=html+' ' html=html+'' html=html+'
' html=html+rep[i].title_or_id() html=html+' ' html=html+'' html=html+'
' html=html+repuser['mem_cut'][i].title_or_id() html=html+' ' html=html+'' html=html+'
' html=html+'' html=html+'' html=html+'' html=html+'' html=html+'' prnt=prnt+context.zwo_bo.edition(zwu,pr,'element','RENOMMER LES ELEMENTS',html) prnt=prnt+spe prnt=prnt+foot return prnt qHU Script_magicqIKUwarningsqJ)UerrorsqK)U Python_magicqLU* qMu. jO((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Uobjq U _getitem_q U_getitemq U _getattr_q U_getattrqUcontextqUmemqUprqUzwuqUstringqU listrepurlqUidskinqUzwuiqUrepqUconfqU listiconesqUlistobjqUnbelqUobqUlobjqUheadqUspmqUmidq Uspeq!Ufootq"Uprntq#Utitreq$Uhtmlq%Uhmq&Ustrq'Uintq(Uhm2q)Uvalq*U elem_placedq+Uszq,Uaffichetableauq-U affichecaseq.U listnonplaceq/Uelq0Uel_objq1Utypeimgq2Utypeq3Ulistq4tq5U co_argcountq6KubU_paramsq7Uobjq8Uidq9Uplaceq:U__ac_local_roles__q;}qUOwnerq?asU_dav_writelocksq@(U lqA(U PersistenceqBUPersistentMappingqCtqDtqEQU _bind_namesqF(cShared.DC.Scripts.Bindings NameAssignments qGoqH}qIU_asgnsqJ}qK(Uname_containerqLU containerqMU name_subpathqNUtraverse_subpathqOU name_m_selfqPUscriptqQU name_contextqRUcontextqSusbU func_defaultsqTNU_codeqUTM(csdZdS(Nc+Ast}t}||tdd ||tdd | d|td||td| ddd } || d d jo#||td d  Sn|| d}  d}  |||tdd |  } ||||tdddd|dd}xOdrB}||}||ddo|d}nq{W||tdd d d| \}}}}}|}d| dd}|||tdd d|}||}||}$d}%|||tdd  d!d"|}&||}*| d#+tt}-||tdd$| /g2d%d&}3|d'}5| d(}"6|d)d*| d+d,|"d-|"d.|"d/|"d0};  d1  d2|d3}|d4}g}%xddrW}&|&j o@|||&ddo||%d5|&nnqW|d6d7| d+d,|"d-|"d.|"d/|"d8| d+d9}|d:| d;d<}|d=}|d>}|d?d@dA}x|%dr}&||&}'dB}(||'d})|)dCjo |)}(n|dD}|dE| ddF|(dG}|dH||'dIdJ}q W|dK}|dL}|dK}|||tdd  d dM|}||}dN|| dOddPjo+||| dOdNdQ}*n g}*d>}|d?dRdA}x|*dr}'||'dI}&dB}(||'d})|)dC||||tddddjo |)}(n|dD}|dE| ddF|(dG}|dH||'dIdJ}qW|dK}|||tdd  dSdT|}||}|dU|}|SdS(VNszwo_libsmem_dataszwo_bos presentationszwo_urlssplitsurlis/isskinsskinss index_htmlis/zwo_images/bo/szwo_infos zwo_imagessiconess logo_elementss objectIdsis hasPropertyselementsautoursEdition du skin sRETOUR CONTENUsmenusnavsA FAIREseditionsinfos INFORMATIONshauteur_mini_cases tab_to_vals/sesepaisseur_tableaus sappendssPlacement du nouvel lmentsmem_cuts user_zw_objsFolders objectValuess&case=mem">RETOUR CONTENU' prnt=prnt+context.zwo_bo.menu(zwu,pr,'nav',titre) prnt=prnt+spm prnt=prnt+mid # AFFICHAGE DES ZONES LARGES (editions) # EDITION INFORMATION html = "A FAIRE" prnt=prnt+context.zwo_bo.edition(zwu,pr,'info','INFORMATION',html) prnt=prnt+spe # EDITION CONTENU hm=pr['hauteur_mini_case'] hm2=str(int(hm)) val=context.zwo_lib.tab_to_val(conf) elem_placed=[] #tableau page html = '
c s;t}t}<||d|}=||d|}>||d}?||d} @d} A|djo |djoB| d|d} nC| djo | djoD| d | d} nF| d } G||d d joHd} Id | dd| dd| d| d| d| d| dd}J| d} L| d}Mdd}O| d} P|d}Q|d| d|d|d}R|d| d |d!|d"| d#|d$| dd| d| d| d| d| d%}S|d&}T|d'| d |d!|d}U|d(| d|d|d}V|d)}W|d*}X|Sn\t|d jo]||d }^t|d jo_||d d+jo`d} ad | dd| d,d| d| d| d| d-}bd.} d| d}edd}g| d} h|d}i|d| d|d|d}j|d| d |d!|d"| d#|d$| d,d| d| d| d| d/}k|||d }l|d'| d |d!|d}m|d(| d|d|d}n|d)}o|d*}p|Snnnrd | dd| d,d| d| d| d| d-}t|d0}u|d1d2|d3d4}vx |d vr}w|jox||}|zd5|{d6}|||d7}}|d8jo ~|}n|d9}|d:| d;d<|d=}|d>||d?d@}|d1d2|dA|d3d4}nqkW|d)}|dB}|SdS(CNsccspcsrowspanscolspanss1s rowspan="s" s colspan="sepaisseur_caseis######ssespacement_tableaus sepaisseur_tableaus?ss " width="s">ssTs color_skins.px; background-color: #ffffff;" valign="top" >s#ffffffs px; background-color: #ffffff;">s8
s
sZONE D'EDITION DU CONTENUss
s)sappendsinconnuselements.gifsVs&prev=s
( s _getitem_s_getitems _getattr_s_getattrsvalscassincasspcassrspscspsspnsprsszsbgcshmshtmlcasssptszwusimslenspresaffichetableausobjselslistobjsrepsel_objs elem_placedstypeimgstypes listiconessmem( scass _getitem_s_getitems _getattr_s_getattrsvalsincasspcassrspscspsspnsprsszsbgcshmshtmlcasssptszwusimslenspresaffichetableausobjselslistobjsrepsel_objs elem_placedstypeimgstypes listiconessmem( szwuslistobjshms listiconessobjsreps elem_placedsvalsaffichetableausmemspr(sScript (Python)s affichecase;s~  [ %n %%    J  %f%%  J %   &!5  c st}dd}|d}||d|}xY|drL} |d}x&| dr} || }quW|d}qSW|d}|SdS( Ns/
 sNs< s title_or_ids
sepaisseur_casesctisss
( s _getitem_s_getitemshmshtmltabsprsszsvalstabsintabsliscas affichecase( stabs _getitem_s_getitemshmshtmltabsprsszsvalsintabsliscas affichecase(shmsvals affichecasespr(sScript (Python)saffichetableaus   sT1s
s$s-ELEMENTS DE LA PAGE NON PLACES :

s2s)sinconnus.gifsVs
 sNs< s title_or_ids
s
' html = html+'' sz=pr['epaisseur_tableau'] html=html+'' return htmlcas if len(incas)>0: pre=incas[0] if len(pre)>0: if pre[0]=="T": bgc='' htmlcas='' return htmlcas htmlcas='' return htmlcas def affichetableau(tab): htmltab = '
' #tableau contenu def affichecase(cas): incas=val['cc'][cas] pcas=val['pc'][cas] rsp=pcas["rowspan"] csp=pcas["colspan"] spn='' if rsp<>'1' and rsp<>'': spn=spn+'rowspan="'+rsp+'" ' if csp<>'1' and csp<>'': spn=spn+'colspan="'+csp+'" ' sz=pr['epaisseur_case'] if incas[0]=="######": bgc='' htmlcas='' bgc=pr['color_edit'] spt=pr['espacement_tableau'] im='' sz=pr['epaisseur_tableau'] htmlcas=htmlcas+'' htmlcas=htmlcas+'' htmlcas=htmlcas+'' htmlcas=htmlcas+'' htmlcas=htmlcas+'
'+im+'
'+im+'' htmlcas=htmlcas+'ZONE D\'EDITION DU CONTENU' htmlcas=htmlcas+''+im+'
'+im+'
' htmlcas=htmlcas+'
' bgc='#ffffff' spt=pr['espacement_tableau'] im='' sz=pr['epaisseur_tableau'] htmlcas=htmlcas+'' htmlcas=htmlcas+'' htmlcas=htmlcas+'' htmlcas=htmlcas+'' htmlcas=htmlcas+'
'+im+'
'+im+'' htmlcas=htmlcas+affichetableau(incas[0]) htmlcas=htmlcas+''+im+'
'+im+'
' htmlcas=htmlcas+'
' htmlcas=htmlcas+'
' htmlcas=htmlcas+'' for el in incas: if el in listobj: el_obj=rep[el] elem_placed.append(el) typeimg="inconnu" type=el_obj.element if type+'.gif' in listicones: typeimg=type htmlcas=htmlcas+'' htmlcas=htmlcas+'' htmlcas=htmlcas+'
 ' htmlcas=htmlcas+'' htmlcas=htmlcas+' '+el_obj.title_or_id()+'
' htmlcas=htmlcas+'
' sz=pr['epaisseur_case'] intab=val['ct'][tab] for li in intab: htmltab = htmltab +'' for ca in li: htmltab = htmltab + affichecase(ca) htmltab = htmltab +'' htmltab = htmltab +'
' return htmltab html=html+affichetableau('T1') html=html+'' listnonplace=[] for el in listobj: if not el in elem_placed: if rep[el].hasProperty('element'): listnonplace.append(el) html=html+' ' html=html+'' html=html+'ELEMENTS DE LA PAGE NON PLACES :

' html=html+'' html=html+'' for el in listnonplace: el_obj=rep[el] typeimg="inconnu" type=el_obj.element if type+'.gif' in listicones: typeimg=type html=html+'' html=html+'
 ' html=html+'' html=html+' '+el_obj.title_or_id()+'
' html=html+'
' html=html+'' prnt=prnt+context.zwo_bo.edition(zwu,pr,'skin','Placement du nouvel lment',html) prnt=prnt+spe # EDITION MEMOIRE TAMPON if 'mem_cut' in mem['user_zw_obj'].objectIds('Folder'): list=mem['user_zw_obj']['mem_cut'].objectValues() else: list=[] html='' html=html+'' for el_obj in list: el=el_obj.title_or_id() typeimg="inconnu" type=el_obj.element if type+'.gif' in context.zwo_images.icones.logo_elements.objectIds(): typeimg=type html=html+'' html=html+'
 ' html=html+'' html=html+' '+el_obj.title_or_id()+'
' prnt=prnt+context.zwo_bo.edition(zwu,pr,'mem','MEMOIRE TAMPON',html) prnt=prnt+spe prnt=prnt+''+foot return prnt qXU Script_magicqYKUwarningsqZ)Uerrorsq[)U Python_magicq\U* q]u. j9^((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Ucase_selq U_write_q U_writeq U _getitem_q U_getitemqU _getattr_qU_getattrqUcontextqUmemqUprqUzwuqUstringqU listrepurlqUidskinqUzwuiqUrepqUconfqUetatokqUvalqUuoqUboxqUrollqUroll2q Uroll3q!U listiconesq"Ulistobjq#Unbelq$Uobq%Uobjq&Ulist_case_sel_tmpq'U list_case_selq(UaUrepurlq)Uheadq*Uspmq+Umidq,Uspeq-Ufootq.Uprntq/Ulppq0Utppq1Udecq2Ulenq3Ufpq4Uftq5Ulnkcoltq6Ufcq7Ulnkcolcq8Uintq9Utitreq:Uhtmlq;UsequenceqUmoduletq?Umoduleidq@UimgqAUaliqBUtmp0qCUtmp2qDUtmp3qEUtmp1qFUclpqGUbgcqHUimgfondqIU listimagesqJUeUbUclcqKUclfqLUcltqMUvalidqNUvaliqOU checkintabqPU checksametabqQU checksoustabqRU maketabselectqSU testcarreqTU listintabqUU listincaseqVU listallselqWUallselqXUpremsqYU inlistallselqZUstabq[Uccq\U tabinlistq]Usel1q^Ustrq_Utabq`U tabselectqaUtest10qbUnblqcUnbcqdUhmqeUhm2qfU elem_placedqgUszqhUaffichetableauqiU affichecaseqjU listnonplaceqkUelqlUel_objqmUtypeimgqnUtypeqoUlistqpUeliqqtqrU co_argcountqsKubU_paramsqtU case_sel=''quUidqvU index_htmlqwU__ac_local_roles__qx}qyUxavqz]q{UOwnerq|asU_dav_writelocksq}(U lq~(U PersistenceqUPersistentMappingqtqtqQU _bind_namesq(cShared.DC.Scripts.Bindings NameAssignments qoq}qU_asgnsq}q(Uname_containerqU containerqU name_subpathqUtraverse_subpathqU name_contextqUcontextqU name_m_selfqUscriptqusbU func_defaultsq(UtqU_codeqTcsddZdS(Nscks#t}t}t}||tdd|ddjo dSn||tdd|d|d dd jo|dd n |t d ||t d |d dd} | | ddjp|| ddjo# ||tddSn|| d} d}|||tdd|   }| d}||tdd| |djo|| dddggjo|| dddgjo,|||tddd d!n#d"}| d#d|n"|d$}$dg}|%|d%d&o&||d&}n(||d'<*d(}7d)}Bd*}T||||td+d,d-d.U| d.Vd/}WxOd/WrB}X| |}|Y|d%d0oZ|d}nq[W\|t d d1}]g^x=|d/^r0}_|djo|`d2|nqWb||t d |d3d} d| djo ed4} nh||tdd5dd6| \}!}"}#}$}%j|!}&n|&||tdd7d8d9d:}&o|&|"}&q|t d | d;d}'rhsx|'d/srt}t|djo^u|t d |d<})vt*|)djo)w||)d|||)d/},d?}- d@}.dA}/|dBjpt0|djot*d/jodC}1|1|dDdE|dF|dG}1|1dH}1|1dI|dJdK}1|1dL}1d}2|t3dM||tdNdOdPdQdRdSff}4x|4d/r}5||5d%do||5d%dT p|dUdjo||5dV}6||5dW}7|7dXjoKdY|ddZ|7d[}8|2d\|7d]|6d^|8d_}2nnnqW|&||tdd7d0|1|2}&|&|"}&d`||d$d.j o&||d$dad`dbn|d/jp.t*|||d$d`d.d/jodc}1dd}2|2|dedf|dg|dh}2|2di|djdk}2|2dl}2|2|dmdn|do|dp}2|2dq|djdr}2|2ds}2|2|dtdu|dv|dw}2|2dq|djdx}2|2dy}2|2|dzd{|d||d}}2|2dq|djd~}2|2d}2|2|dd|d|d}2|2dq|djd}2|2d}2|2|dd|d|d}2|2dq|djd}2|2d}2|2|dd|d|d}2|2dq|djd}2|2d}2|2d}2|&||tdd7d0|1|2}&|&|"}&nn|djo?|&||tdd7dd}&|&|"}&nt*d/jod}2|2d}2|2d}2|2d}2|+d}9d}:d};d}<d}=|9djo d}=nD|9djo d};n'|9djo d}<n d}:|2d}2|2d|:d}2|2d|=d}2|2d|;d}2|2d|<d}2|2d}2|2d}2|2d}2|2d|+dd}2|2d}2|2d|+dd}2|+d}>d}?|>djod|>d}?n|2d}2|2d|?d|>d|-d;d}2 |2d}2 |2d}2 |+d}@ g}A||Ad2ddfxV||||tdddd.d/r"}B||Ad2|B|Bfq Wx|Ad/r\}}C||@joSt*|Cdjo||Cdd}Cn|2d|d|Cd}2n|2d|d|Cd}2q$W|2d}2|2d}2|2d}2|2d}2 |2d}2!|2d|,ddd}2"|2d}2#|2d|,ddd}2$|2d}2%|2d|,ddd}2&|2d}2'|2d|,ddd}2)|,dd}D*d}?+|Ddjo,d|Dd}?n-|2d}2.|2d|?d|Dd|-dd}21|,dd}E2d}?3|Edjo4d|Ed}?n5|2d}26|2d|?d|Ed|-dd}29|,dd}F:d}?;|Fdjo<d|Fd}?n=|2d}2>|2d|?d|Fd|-dd}2A|2d}2Cd}GE|&||tdd7dd|2|G}&F|&|"}&G|&d}&nLt*djo Md}2n Od}2Q|2dd}2S|2d}2T|2d|.dd}2U|2d}2V|2d|.dd}2X|.d}9Yd}:Zd}=[d};\d}<]|9djo ^d}=nD_|9djo `d};n'a|9djo bd}<n dd}:e|2d}2f|2d}2g|2d|:d}2h|2d|=d}2i|2d|;d}2j|2d|<d}2k|2d}2l|2d}2n|.d}Hod}:pd}=qd};rd}<s|9djo td}=nDu|9djo vd};n'w|9djo xd}<n zd}:{|2d}2||2d}2}|2d|:d}2~|2d|=d}2|2d|;d}2|2d|<d}2|2d}2|2d}2|2d}2|2d|.dd}2|2d}2|2d|.dd}2|.d}Dd}?|Ddjod|Dd}?n|2d}2|2d|?d|Dd|/dd}2|.d}Ed}?|Edjod|Ed}?n|2d}2|2d|?d|Ed|/dd}2|.d}Fd}?|Fdjod|Fd}?n|2d}2|2d|?d|Fd|/dd}2|2d}2d}G|&||tdd7dd|2|G}&|&|"}&|&d}&d}1dd}2 d}I d}J d}K d}L d}M= d J dTd}PUd}QVd/}RWxJ|Pd/Wr=}SX|Rd/jo Yd}Rn[|Qd1}Q\|Q|S}QqW_t*d/joS`|2|d!d!|d|d}2a|2d|djdk}2b|2d}2ndt*djosed/}Tf|| d|d/}Ugt*|UdjoKh|t d ||Ud/d}Vit*|Vdjo jd}Tnnk|Tdjol|I||Ud/d/joqm|2|dd|d/|d|d}2n|2d|d/d|djdk}2o|2d}2nnnr|2|dd|d/|d|d }2s|2d |d/d|djdk}2t|2d }2w|d/}WxtX||| d |Wd djp+tX||| d |Wddjo_y|2|dd|W|d|d}2z|2d|Wd|djdk}2{|2d}2nn}t*djo~|J}Y|Yd/jo |Kd/jo|L|Y}Z|M|Z\}[}\}]|[djo|2|ddd|Yd|]d|\|d|d}2|2dd|Yd|]d|\d|djdk}2|2d}2nnn|2|dd|d |d!}2|2d"|Qd|djdk}2|2d#}2|2|d$d|d%|d&}2|2d'|djdk}2|2d(}2|2|d)d*|d+|d,}2|2d-|djdk}2|2d.}2|2d}2|&||tdd7d|1|2}&|&|"}&|&|#}&t*d/jo d/}2n d0}2|&||tdd1dd2|2}&|&|$}&d3}2|2d4|d5d6|d7d8|d9}2|2d:|d5d;|d<d8|d=}2|d>tXt0}_g |2d?d@}2|2dA}2|dB}a|2dCdD|dEdF|adG|adH|adI|adJ}2 dKP dL _|2 d}2b|2dM}2dg}dexdd/erW}ef|e j o@||g |ed%d0o|h|dd2|ennqWjt*|dd/jol|2dNdO|dEdF|adG|adH|adI|adP|dEdQ}2m|2dR|dSd}2n|2dT}2p|2dU}2qx;|dd/qr.}er| |e}fsdV}gt||fd0}hu|hdXjo v|h}gnwt*d/joXx|2dW}2y|2dX|ddZ|gdY}2z|2dZ||fdVd[}2nm||2d\|ed]}2}|2d^|ed_|ddZ|gdY}2~|2d`|eda||fdVdb}2qW|2d}2|2dc}2n|2d}2|2dd|d5d;|d<d8|d9}2|2d4|d5d6|d7d8|d9}2|2d}2|&|2}&|&|$}&d`||d$d.dPjo|||d$d`dO}it*|id/joudU}2x|id/r }f||fdW}j||fdV}edV}g||fd0}h|hdX||||td+d,d-d.jo |h}gnt*d/jo|2dW}2n|2de|jd]}2|2dX|ddZ|gdY}2|2dZ|ed[}2q)"W|2d}2|&||tdd1dfdg|2}&|&|$}&nn|&d|%}&|&SdS(hNszwo_libsmem_datasdroit_edit_dossieris.Vous n'avez pas les droits pour cette action !szwo_bos presentationszwo_urlis/zwookissplitsurls/isskinisskinss index_htmls/zwo_images/bo/szwo_infosoks tab_to_vals1sctsT1sC1sccssREQUESTsRESPONSEsredirects modif_li_cos2smanage_changePropertiess user_zw_objs hasPropertys configboxsboxcs*+d|d},|d|d|d}-|d}.|d|d|d}/|d}0|d|d}1|d}2|djo3|d }n4|d |d |d }5|SdS( Ns (surlsrettsnomsrolsimg(snomsurlsimgsrolsrett((sScript (Python)sroll*s   cs78d|d}9|d|d|d}:|d};|d|d|d}<|d}=|d|d}>|d}?|d|d |d }@|SdS( Ns(sactionsrettsnomsrolsimg(snomsactionsimgsrolsrett((sScript (Python)sroll27s   cs#BCd}Dd}E|djoFd|d}Gd}nHd|d|d}I|d|d |d}J|d |d}K|d|d |d}L|d }M|d|d}N|d }O|d joP|d}nQ|d|d|d}R|SdS(Nss poplink('s');s killlink();s (shlptxtshlptxt2shelpsurlsrettsnomsrolsimg(snomsurlsimgsrolshelpshlptxtshlptxt2srett((sScript (Python)sroll3Bs      s zwo_imagessiconess logo_elementss objectIdsiselements*sappendsrep_urlsPage de dpart du zwooksautoursEdition du skin smenusnavs4LISTE DES SKINSspages=csGyt}t}|zd|o{||Sn}dSdS(Nshas_keys(s _getitem_s_getitems _getattr_s_getattrstppskey(skeys _getitem_s_getitems _getattr_s_getattrstpp(stpp(sScript (Python)sfpysc skt}t}|||d|d|o&|||d||SndSdS(Nsptshas_keys(s _getitem_s_getitems _getattr_s_getattrsvalstabskey(skeystabs _getitem_s_getitems _getattr_s_getattrsval(sval(sScript (Python)sfts"&csd|dSdS(Ns` [E](stxt(stxt((sScript (Python)slnkcoltsc szt}t}g}x'|dr}|djo||ddjo`|||d|d|o(|||d||} n d} n]|||d|d|o(|||d||} n d} n| |j o||d| nq$Wt |djo||dSnd SdS( NissTspcshas_keysptsappendis######( s _getitem_s_getitems _getattr_s_getattrslistvalslistcasscassvalskeysnewvalslen( skeyslistcass _getitem_s_getitems _getattr_s_getattrslistvalscassvalsnewvalslen(sval(sScript (Python)sfcs ""("( csd|dSdS(Ns` [E](stxt(stxt((sScript (Python)slnkcolcss0sd
s listelements list_elementsrond_list_elem.gifsr_rond_plus.gifs&s$ AJOUT ELEMENTs
ssorts zwo_moduless objectValuessFoldersnotescmpsdescs admin_onlysdroit_config_dossiers title_or_idsgetIds.gifs!ss  smem_cutsmanage_addFoldersmemoire tamponsACTION ELEMENTSss rollediterscheckone('editer')srond_edit_elem.gifsr_rond_edit.gifs5s Editer un lment.
s rolldeplacerschecknozero('deplacer')srond_deplace_elem.gifsr_rond_deplace.gifss Deplacer.
s rolldupliquerschecknozero('dupliquer')srond_duplique_elem.gifsr_rond_duplique.gifsB;text-decoration:none" href="javascript:checknozero('dupliquer')">s Dupliquer.
s rolldetruireschecknozero('detruire')srond_detruire_elem.gifsr_rond_detruire.gifsA;text-decoration:none" href="javascript:checknozero('detruire')">s Detruire.
s rollrenommerschecknozero('renommer')srond_renommer_elem.gifsr_rond_renommer.gifsA;text-decoration:none" href="javascript:checknozero('renommer')">s Renommer.
s rollcochealls cocheform()srond_coche_elem.gifsr_rond_coche.gifs5;text-decoration:none" href="javascript:cocheform()">s Cocher tous.
srolldecochealls decocheform()srond_decoche_elem.gifsr_rond_decoche.gifs7;text-decoration:none" href="javascript:decocheform()">s Decocher tous.
s
s3sinfosVVALIDATION DU SKINsH
Proprits de la page
s?sXsgsaligns selectedsleftscentersrights2sgsCsgsCssDsdsFsFsDsDs;>  Couleur Fond  s:>  Couleur Texte  s;>  VALIDER PROPRIETESsPROPRIETE PAGEssDProprits de la case selectionnesDProprits des cases selectionness
Alignement    s
Marge Cot    
Marge Haut    Fond exterieur    s

Image de Fond  
  
  

sIProprits du tableau general
Hauteur    Largeur    Marge    Cadre    Couleur Cadre  
Horizontal  svalignstopsmiddlesbottomses3ssbs
s' html=html+'' html=html+'
Vertical    ss
shauteur_mini_cases/sesepaisseur_tableaus
c$s5 t}t}|| d|}|| d|}||d}||d} d} |djo |djo| d|d} n| djo | djo| d | d} n| d } ||d d jo@|jod | dd| dd| d| d| d| d| dd}| d}d}xUd rH}||jo2|djo|d}n||}nqWd|}|d| dd|d}nd | dd| dd| d| d| d| d| dd}| d}}|djo|d}n||}d|}|d| dd|d}| d }d!d"}| d#} |d$}|d%|d&|d'|d(}|d%|d)|d*|d+|d,|d-| dd| d| d| d| d|d.}|d/}|d0|d)|d*|d(}|d1|d&|d'|d(}|d2}|d3}|Snt|d jo||d }t|d joS||d d4jo6d}|jod | dd| dd| d| d| d| d| d5d}| d5}d}xUd rH}||jo2|djo|d}n||}nq;Wd|}|d| dd|d}n d | dd| dd| d| d| d| d6} d7} } |djo |d}n||}d|}|d| dd|d}| d }d!d"}| d#} |d$}|d%|d&|d'|d(}|d%|d)|d*|d8|d,|d-| dd| d| d| d| d9}| ||d }|d0|d)|d*|d(}|d1|d&|d'|d(}|d2}|d3}|Snnn |jo!d | dd| dd| d| d| d| d| d5d}"d}#xUd #rH}$||jo2%|djo&|d}n'||}nq^W(d|})|d| dd|d:}n,d | dd| dd| d| d| d| d6}-}.|djo/|d}n0||}1d|}2|d| dd|d;}5|d<}6xe|d 6rX}7|joB8||}|:d=|;d>} <||d?}!=|!d@jo >|!} n?td joX@|dA}A|dB|dCdD| dE}B|dF||dGdH}nmE|dI|dJ}F|dK|dL|dCdD| dM}G|dN|dO||dGdP}nq WI|d2}K|dQ}M|SdS(RNsccspcsrowspanscolspanss1s rowspan="s" s colspan="sepaisseur_caseis######ss*s./index_html?case_sel=sC
Deselectionne le tableau
s color_edits5">Selectionne le tableau
sespacement_tableaus sepaisseur_tableaus?ss " width="s">s1sTscolor_skin_case_sels.px; background-color: #ffffff;" valign="top" >s#ffffffs
s
sZONE D'EDITION DU CONTENUsss4">Deselectionne la case
s2">Selectionne la case
s8
sappendsinconnuselements.gifsVsbs
($s _getitem_s_getitems _getattr_s_getattrsvalscassincasspcassrspscspsspnsprsszs list_case_selshmshtmlcassbgcsnew_cssasurlscase_selssptszwusimslenspresaffichetableauselslistobjsrepsel_objs elem_placedstypeimgstypes listiconessmem($scass _getitem_s_getitems _getattr_s_getattrsvalsincasspcassrspscspsspnsprsszs list_case_selshmshtmlcassbgcsnew_cssasurlscase_selssptszwusimslenspresaffichetableauselslistobjsrepsel_objs elem_placedstypeimgstypes listiconessmem( szwus list_case_selshmslistobjsmemscase_sels listiconessreps elem_placedsvalsaffichetableauspr(sScript (Python)s affichecases [  *[   & %n %%    [  *J    & %f%%  [  *J   &    &%.1  c sPt}Qdd}R|d}S||d|}TxY|dTrL} U|d}Vx&| dVr} W|| }quWX|d}qSWY|d}Z|SdS( Ns/
 sNs< s title_or_ids
ssD s
sepaisseur_casesctisss
( s _getitem_s_getitemshmshtmltabsprsszsvalstabsintabsliscas affichecase( stabs _getitem_s_getitemshmshtmltabsprsszsvalsintabsliscas affichecase(shmsvals affichecasespr(sScript (Python)saffichetableauPs   s
s$sinconnusV
 sNs< s
sJ s
$& $ $  1    1  77  F0  W     &%.-  77   ('  ; & 1(s index_html(s index_html((sScript (Python)ssqU_bodyqT,mem=context.zwo_lib.mem_data() if mem['droit_edit_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] if zwu[-6:]=='/zwook': zwu=zwu[:-5] listrepurl=string.split(string.split(mem['url'],zwu)[1],'/') if listrepurl[3]=='skin' or listrepurl[2]=='skin': return context.skins.index_html(mem) else: idskin=listrepurl[3] zwui=zwu+'/zwo_images/bo/' rep=context.zwo_info.skins[idskin] conf=rep etatok=rep.ok val=context.zwo_lib.tab_to_val(conf) if etatok=="1": if val['ct']['T1']==[['C1']] and val['cc']['C1']==['']: context.REQUEST.RESPONSE.redirect('modif_li_co') else: etatok="2" rep.manage_changeProperties(ok=etatok) uo=mem['user_zw_obj'] box=[''] if uo.hasProperty('configbox'): box=uo.configbox pr['box']=box def roll(nom,url,img,rol): rett='' return rett def roll2(nom,action,img,rol): rett='' return rett def roll3(nom,url,img,rol,help): hlptxt='' hlptxt2='' if help<>'': hlptxt=' poplink(\''+help+'\');' hlptxt2='killlink();' rett='' return rett listicones=context.zwo_images.icones.logo_elements.objectIds() listobj=rep.objectIds() nbel=0 for ob in listobj: obj=rep[ob] if obj.hasProperty('element'): nbel=nbel+1 list_case_sel_tmp=string.split(case_sel,'*') list_case_sel=[] for a in list_case_sel_tmp: if a<>'': list_case_sel.append(a) repurl=string.split(mem['rep_url'],zwu)[1] if repurl=="": repurl="Page de dpart du zwook" # AFFICHAGE DU BANDEAU HAUT (head,spm,mid,spe,foot)=context.zwo_bo.autour(mem,pr,'skin','Edition du skin '+idskin) prnt=head # AFFICHAGE DES CASE DE LA COLONNE (menus) prnt=prnt+context.zwo_bo.menu(zwu,pr,'nav','LISTE DES SKINS') prnt=prnt+spm lpp=string.split(rep.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 '' def ft(key,tab): if val['pt'][tab].has_key(key): return val['pt'][tab][key] else: return '' def lnkcolt(txt): return ' [E]' def fc(key,listcas): listval=[] for cas in listcas: if cas<>'': if cas[0]<>'T': if val['pc'][cas].has_key(key): newval=val['pc'][cas][key] else: newval='' else: if val['pt'][cas].has_key(key): newval=val['pt'][cas][key] else: newval='' if not newval in listval: listval.append(newval) if len(listval)==1: return listval[0] else: return '######' def lnkcolc(txt): return ' [E]' # MENU AJOUT ELEMENT if (etatok=="0" or (int(etatok))>2) and len(list_case_sel)==0: titre='
' titre=titre+roll('listelement',"list_element",zwui+'rond_list_elem.gif',zwui+'r_rond_plus.gif') titre=titre+'' titre=titre+' AJOUT ELEMENT' titre=titre+'
' html='' lm=sequence.sort(context.zwo_modules.objectValues('Folder'), (('note', 'cmp', 'desc'),) ) for module in lm: if module.hasProperty('skin'): if not module.hasProperty('admin_only') or mem['droit_config_dossier']==1: modulet=module.title_or_id() moduleid=module.getId() if moduleid+'.gif' in listicones: img='' html=html+''+img+' ' prnt=prnt+context.zwo_bo.menu(zwu,pr,'element',titre,html) prnt=prnt+spm # MENU ACTION ELEMENT if not 'mem_cut' in mem['user_zw_obj'].objectIds(): mem['user_zw_obj'].manage_addFolder('mem_cut','memoire tampon') if nbel>0 or len(mem['user_zw_obj']['mem_cut'].objectIds())>0: titre ="ACTION ELEMENTS" html='' html=html+roll2('rollediter',"checkone(\'editer\')",zwui+'rond_edit_elem.gif',zwui+'r_rond_edit.gif') html=html+'' html=html+' Editer un lment.
' html=html+roll2('rolldeplacer',"checknozero(\'deplacer\')",zwui+'rond_deplace_elem.gif',zwui+'r_rond_deplace.gif') html=html+'' html=html+' Deplacer.
' html=html+roll2('rolldupliquer',"checknozero(\'dupliquer\')",zwui+'rond_duplique_elem.gif',zwui+'r_rond_duplique.gif') html=html+'' html=html+' Dupliquer.
' html=html+roll2('rolldetruire',"checknozero(\'detruire\')",zwui+'rond_detruire_elem.gif',zwui+'r_rond_detruire.gif') html=html+'' html=html+' Detruire.
' html=html+roll2('rollrenommer',"checknozero(\'renommer\')",zwui+'rond_renommer_elem.gif',zwui+'r_rond_renommer.gif') html=html+'' html=html+' Renommer.
' html=html+roll2('rollcocheall',"cocheform()",zwui+'rond_coche_elem.gif',zwui+'r_rond_coche.gif') html=html+'' html=html+' Cocher tous.
' html=html+roll2('rolldecocheall',"decocheform()",zwui+'rond_decoche_elem.gif',zwui+'r_rond_decoche.gif') html=html+'' html=html+' Decocher tous.
' html=html+'
' prnt=prnt+context.zwo_bo.menu(zwu,pr,'element',titre,html) prnt=prnt+spm if etatok=="3": prnt=prnt+context.zwo_bo.menu(zwu,pr,'info','VALIDATION DU SKIN') prnt=prnt+spm # MENU PROPRIETE PAGE if len(list_case_sel)==0: html='
Proprits de la page
' html=html+'' html=html+'' html=html+'' ali = fp('align') tmp0='' tmp2='' tmp3='' tmp1=" selected" if ali=='left': tmp1=" selected" elif ali=='center': tmp2=" selected" elif ali=='right': tmp3=" selected" else: tmp0=" selected" html=html+'' html=html+'' html=html+'' html=html+'' html=html+'' clp=fp('couleurpage') bgc='' if clp<>'': bgc='bgcolor="'+clp+'"' html=html+'' html=html+'' html=html+'' html=html+'' html=html+'' html=html+'' html=html+'' html=html+'' html=html+'' html=html+'' html=html+'' html=html+'' html=html+'' clc=ft('couleurcadre','T1') bgc='' if clc<>'': bgc='bgcolor="'+clc+'"' html=html+'' html=html+'' clf=ft('couleurfond','T1') bgc='' if clf<>'': bgc='bgcolor="'+clf+'"' html=html+'' html=html+'' clt=ft('couleurtexte','T1') bgc='' if clt<>'': bgc='bgcolor="'+clt+'"' html=html+'' html=html+'' html=html+'
Alignement    ' html=html+'
Marge Cot    
Marge Haut    
Fond exterieur    '+lnkcolt('page')+'

Image de Fond  
  ' html=html+'
  

' html=html+'Proprits du tableau general
Hauteur    
Largeur    
Marge    
Cadre    
Couleur Cadre    '+lnkcolt('cadre')+'
Couleur Fond    '+lnkcolt('fond')+'
Couleur Texte    '+lnkcolt('texte')+'
' valid='VALIDER PROPRIETES' prnt=prnt+context.zwo_bo.menu(zwu,pr,'skin','PROPRIETE PAGE',html,valid) prnt=prnt+spm prnt=prnt+'' # MENU PROPRIETE TABLEAU else: if len(list_case_sel)==1: html='Proprits de la case selectionne' else: html='Proprits des cases selectionnes' html=html+'' html=html+'' html=html+'' html=html+'' html=html+'' ali = fc( 'align',list_case_sel) tmp0='' tmp1='' tmp2='' tmp3='' if ali=='left': tmp1=" selected" elif ali=='center': tmp2=" selected" elif ali=='right': tmp3=" selected" else: tmp0=" selected" html=html+'' html=html+'' vali = fc('valign',list_case_sel) tmp0='' tmp1='' tmp2='' tmp3='' if ali=='top': tmp1=" selected" elif ali=='middle': tmp2=" selected" elif ali=='bottom': tmp3=" selected" else: tmp0=" selected" html=html+'' html=html+'' html=html+'' html=html+'' html=html+'' html=html+'' clc=fc('couleurcadre',list_case_sel) bgc='' if clc<>'': bgc='bgcolor="'+clc+'"' html=html+'' html=html+'' clf=fc('couleurfond',list_case_sel) bgc='' if clf<>'': bgc='bgcolor="'+clf+'"' html=html+'' html=html+'' clt=fc('couleurtexte',list_case_sel) bgc='' if clt<>'': bgc='bgcolor="'+clt+'"' html=html+'' html=html+'' html=html+'
Hauteur    
Largeur    
Horizontal    ' html=html+'
Vertical    ' html=html+'
Marge    
Cadre    
Couleur Cadre    '+lnkcolc('cadre')+'
Couleur Fond    '+lnkcolc('fond')+'
Couleur Texte    '+lnkcolc('texte')+'
' valid='VALIDER PROPRIETES' prnt=prnt+context.zwo_bo.menu(zwu,pr,'skin','PROPRIETE TABLEAU',html,valid) prnt=prnt+spm prnt=prnt+'' # MENU ACTION TABLEAU titre ="ACTION TABLEAU" html='' def checkintab(tab): tabin=0 cc=val['ct'][tab] for l in cc: for cel in l: ccel=val['cc'][cel] if len(ccel)==1: tabinlist=string.split(ccel[0],'T') if len(tabinlist)>1: tabin=1 return tabin def checksametab(): ct=val['ct'] tabs=[] for idtab in ct.keys(): for lign in ct[idtab]: for cas in lign: for case in list_case_sel: if case==cas: if not idtab in tabs: tabs.append(idtab) if len(tabs)==1: return tabs[0] else: return 0 def checksoustab(): tabin=0 for case in list_case_sel: cc=val['cc'][case] if len(cc)==1: tabinlist=string.split(cc[0],'T') if len(tabinlist)>1: tabin=tabin+1 return tabin def maketabselect(tab): ct=val['ct'][tab] dico_select=[] veriftab={} i=0 j=0 nbcolonnes=0 lignevide=[] for vligne in ct: for case in vligne: if case<>'': 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]=case if case in list_case_sel: dico_select.append(idc) i=i+colspan if j==0: nbcolonnes=i j=j+1 i=0 nblignes=j tabselect=[] for j in range(nblignes): ligne=[] for i in range(nbcolonnes): idc=str(i)+'-'+str(j) if idc in dico_select: ligne.append(1) else: ligne.append(0) tabselect.append(ligne) #return dico_select return tabselect def testcarre(tab): #determine le premier 1: start=0 pi=0 pj=0 j=0 for l in tab: i=0 for c in l: if start==0: if c==1: start=1 pi=i pj=j i=i+1 j=j+1 #determine largeur carre de 1: l=tab[pj] i=0 di=0 for c in l: if c==1: di=di+1 #determine hauteur carre de 1: dj=0 for l in tab: if l[pi]==1: dj=dj+1 #Check table: tabok=1 j=0 for l in tab: i=0 for c in l: if i>=pi and i=pj and j0: pre=incas[0] if len(pre)>0: if pre[0]=="T": l1=listintab(incas[0]) l1.append(cas) return l1 l1.append(cas) return l1 def listintab(tab): l1=[] intab=val['ct'][tab] for li in intab: for ca in li: l2=listincase(ca) for a in l2: l1.append(a) return l1 listallsel=listintab('T1') allsel='' prems=0 for inlistallsel in listallsel: if prems==0: prems=1 else: allsel=allsel+'*' allsel=allsel+inlistallsel if len(list_case_sel)==0: html=html+roll('modif_li_co',"modif_li_co",zwui+'rond_skin_modif_li_co.gif',zwui+'r_rond_modif_li_co.gif') html=html+'' html=html+' Editer lignes et colonnes.
' elif len(list_case_sel)==1: stab=0 cc=val['cc'][list_case_sel[0]] if len(cc)==1: tabinlist=string.split(cc[0],'T') if len(tabinlist)>1: stab=1 if stab==1: if checkintab(cc[0])==0: html=html+roll('delsoustab','del_soustabok?case='+list_case_sel[0],zwui+'rond_skin_detruit_soustab.gif',zwui+'r_rond_detruit_soustab.gif') html=html+'' html=html+' Detruire sous tableau.
' else: html=html+roll('addsoustab','add_soustabok?case='+list_case_sel[0],zwui+'rond_skin_ajout_soustab.gif',zwui+'r_rond_ajout_soustab.gif') html=html+'' html=html+' Ajout sous tableau.
' sel1=list_case_sel[0] if str(val['pc'][sel1]['rowspan'])<>"1" or str(val['pc'][sel1]['colspan'])<>"1": html=html+roll('annulefusion','annule_fusionok?case='+sel1,zwui+'rond_skin_annule_fusion.gif',zwui+'r_rond_annule_fusion.gif') html=html+'' html=html+' Annule la fusion.
' elif len(list_case_sel)>1: tab=checksametab() if tab<>0 and checksoustab()==0: tabselect=maketabselect(tab) (test10,nbl,nbc)=testcarre(tabselect) if test10==1: html=html+roll('fusion','fusionok?cases='+case_sel+'&tab='+tab+'&nbc='+nbc+'&nbl='+nbl,zwui+'rond_skin_fusion.gif',zwui+'r_rond_fusion.gif') html=html+'' html=html+' Fusion de cases.
' html=html+roll('cocheallcase',"index_html?case_sel='+allsel+'",zwui+'rond_skin_coche_case.gif',zwui+'r_rond_coche_case.gif') html=html+'' html=html+' Selectionne tout.
' html=html+roll('decocheallcase',"index_html",zwui+'rond_skin_decoche_case.gif',zwui+'r_rond_decoche_case.gif') html=html+'' html=html+' Deselectionne tout.
' html=html+roll('placerzoneedit',"place_zone_edit",zwui+'rond_zone_edit.gif',zwui+'r_rond_zone_edit.gif') html=html+'' html=html+' Placer la zone d\'edition.
' html=html+'
' prnt=prnt+context.zwo_bo.menu(zwu,pr,'skin',titre,html) prnt=prnt+spm prnt=prnt+mid # AFFICHAGE DES ZONES LARGES (editions) # EDITION INFORMATION if len(list_case_sel)==0: html = """ Zone d'dition d'un skin. Vous allez pouvoir:
- ajouter de nouveaux lments (login manager, navigation, titre, images, liens, ...)
- Mettre en page ces lments en agissant sur les proprits du tableau et des ses cases.
- Lors de la cration d'un nouveau skin, aprs avoir dfini les proprits du tableau et de ses cases, vous devez imprativement placer la zone d'dition avant de pouvoir y insrer des lments.
""" else: html = """ Vous pouvez dfinir:
- Une hauteur et une largeur
- Le positionnement des lments qui seront placs l'intrieur (alignement horizontal / vertical)
- Une marge
- Un cadre et une couleur de votre choix
- Une couleur de fond d'cran
- La couleur des textes positionns dans la case
""" prnt=prnt+context.zwo_bo.edition(zwu,pr,'info','INFORMATION',html) prnt=prnt+spe # EDITION CONTENU html = '' html=html+'' html=html+'' listnonplace=[] for el in listobj: if not el in elem_placed: if rep[el].hasProperty('element'): listnonplace.append(el) if len(listnonplace)>0: html=html+'' html=html+'
' hm=pr['hauteur_mini_case'] hm2=str(int(hm)) elem_placed=[] #tableau page html = html+'' html = html+'' sz=pr['epaisseur_tableau'] html=html+'' return htmlcas if len(incas)>0: pre=incas[0] if len(pre)>0: if pre[0]=="T": bgc='' if cas in list_case_sel: htmlcas='' return htmlcas if cas in list_case_sel: htmlcas='' return htmlcas def affichetableau(tab): htmltab = '
' #tableau contenu def affichecase(cas): incas=val['cc'][cas] pcas=val['pc'][cas] rsp=pcas["rowspan"] csp=pcas["colspan"] spn='' if rsp<>'1' and rsp<>'': spn=spn+'rowspan="'+rsp+'" ' if csp<>'1' and csp<>'': spn=spn+'colspan="'+csp+'" ' sz=pr['epaisseur_case'] if incas[0]=="######": if cas in list_case_sel: htmlcas='' bgc=pr['color_case_sel'] new_cs='' for a in list_case_sel: if a<>cas: if new_cs<>'': new_cs=new_cs+'*' new_cs=new_cs+a url="./index_html?case_sel="+new_cs htmlcas=htmlcas+'
Deselectionne le tableau
' else: htmlcas='
' bgc=pr['color_edit'] new_cs=case_sel if new_cs<>'': new_cs=new_cs+'*' new_cs=new_cs+cas url="./index_html?case_sel="+new_cs htmlcas=htmlcas+'
Selectionne le tableau
' spt=pr['espacement_tableau'] im='' sz=pr['epaisseur_tableau'] htmlcas=htmlcas+'' htmlcas=htmlcas+'' htmlcas=htmlcas+'' htmlcas=htmlcas+'' htmlcas=htmlcas+'
'+im+'
'+im+'' htmlcas=htmlcas+'ZONE D\'EDITION DU CONTENU' htmlcas=htmlcas+''+im+'
'+im+'
' htmlcas=htmlcas+'
' bgc=pr['color_skin_case_sel'] new_cs='' for a in list_case_sel: if a<>cas: if new_cs<>'': new_cs=new_cs+'*' new_cs=new_cs+a url="./index_html?case_sel="+new_cs htmlcas=htmlcas+'
Deselectionne le tableau
' else: htmlcas='
' bgc='#ffffff' new_cs=case_sel if new_cs<>'': new_cs=new_cs+'*' new_cs=new_cs+cas url="./index_html?case_sel="+new_cs htmlcas=htmlcas+'
Selectionne le tableau
' spt=pr['espacement_tableau'] im='' sz=pr['epaisseur_tableau'] htmlcas=htmlcas+'' htmlcas=htmlcas+'' htmlcas=htmlcas+'' htmlcas=htmlcas+'' htmlcas=htmlcas+'
'+im+'
'+im+'' htmlcas=htmlcas+affichetableau(incas[0]) htmlcas=htmlcas+''+im+'
'+im+'
' htmlcas=htmlcas+'
' new_cs='' for a in list_case_sel: if a<>cas: if new_cs<>'': new_cs=new_cs+'*' new_cs=new_cs+a url="./index_html?case_sel="+new_cs htmlcas=htmlcas+'
Deselectionne la case
' else: htmlcas='
' new_cs=case_sel if new_cs<>'': new_cs=new_cs+'*' new_cs=new_cs+cas url="./index_html?case_sel="+new_cs htmlcas=htmlcas+'
Selectionne la case
' htmlcas=htmlcas+'
' for el in incas: if el in listobj: el_obj=rep[el] elem_placed.append(el) typeimg="inconnu" type=el_obj.element if type+'.gif' in listicones: typeimg=type if len(list_case_sel)>0: htmlcas=htmlcas+'' else: htmlcas=htmlcas+'' htmlcas=htmlcas+'
 ' htmlcas=htmlcas+'' htmlcas=htmlcas+' '+el_obj.title_or_id()+'
' htmlcas=htmlcas+'' htmlcas=htmlcas+' '+el_obj.title_or_id()+'
' htmlcas=htmlcas+'
' sz=pr['epaisseur_case'] intab=val['ct'][tab] for li in intab: htmltab = htmltab +'' for ca in li: htmltab = htmltab + affichecase(ca) htmltab = htmltab +'' htmltab = htmltab +'
' return htmltab html=html+affichetableau('T1') html=html+'
' html=html+'' html=html+'ELEMENTS DE LA PAGE NON PLACES :

' html=html+'' for el in listnonplace: el_obj=rep[el] typeimg="inconnu" type=el_obj.element if type+'.gif' in listicones: typeimg=type if len(list_case_sel)>0: html=html+'' else: html=html+'' html=html+'
 ' html=html+'' html=html+' '+el_obj.title_or_id()+'
' html=html+'' html=html+' '+el_obj.title_or_id()+'
' html=html+'
' html=html+'
' prnt=prnt+html prnt=prnt+spe # EDITION MEMOIRE TAMPON if 'mem_cut' in mem['user_zw_obj'].objectIds('Folder'): list=mem['user_zw_obj']['mem_cut'].objectValues() if len(list)>0: html='' for el_obj in list: eli=el_obj.getId() el=el_obj.title_or_id() typeimg="inconnu" type=el_obj.element if type+'.gif' in context.zwo_images.icones.logo_elements.objectIds(): typeimg=type if len(list_case_sel)>0: html=html+'' html=html+'
 ' else: html=html+'
' html=html+'' html=html+' '+el+'
' prnt=prnt+context.zwo_bo.edition(zwu,pr,'mem','MEMOIRE TAMPON',html) prnt=prnt+spe prnt=prnt+''+foot return prnt qU Script_magicqKUwarningsq)Uerrorsq)U Python_magicqU* qu. j((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Ucaseq U _getitem_q U_getitemq U _getattr_q U_getattrqUcontextqUmemqUprqUzwuqUstringqUdecqUlenqU listrepurlqUidskinqUzwuiqUrepqUconfqUvalqUl2qU numcasemaxqUvligneqUl3qUintq Unumq!U numtabmaxq"UlUrecupq#UaUchpttq$Ustrq%tq&U co_argcountq'KubU_paramsq(Ucaseq)Uidq*U add_soustabokq+U__ac_local_roles__q,}q-Uxavq.]q/UOwnerq0asU_dav_writelocksq1(U lq2(U Persistenceq3UPersistentMappingq4tq5tq6QU _bind_namesq7(cShared.DC.Scripts.Bindings NameAssignments q8oq9}q:U_asgnsq;}q<(Uname_containerq=U containerq>U name_subpathq?Utraverse_subpathq@U name_m_selfqAUscriptqBU name_contextqCUcontextqDusbU func_defaultsqENU_codeqFT csdZdS(Ncst}t}||tdd}||ddjo dSn||tdd}||d}|td ||d |} t | djo4|td ||d |td } n |td || dd }  || d djo# ||tdd|Sn || d} |d}|||tdd| }|}||tdd|}||d}d}x|dr}|td|dd joc|td |d}t|||ddd}||jo |}nnqWd}x|dr}|td|dd joc|td |d} t|||ddd}!||jo "|}nnqW$g}%d}'x||d'ro}(|td|d|dd jo|)|d|n%+||td |dd }q9W-|d}.|d}/d}|1|ddt|d||2|ddt|d t||4|dd!t|d"|5|dd#t|d||7|dd|d$t||9|d%d||||;td&d'd(d)=dSdS(*Nszwo_libsmem_datasdroit_edit_dossieris.Vous n'avez pas les droits pour cette action !szwo_bos presentationszwo_urlssplitsurlsacl_urls/isskinsskinss index_htmlis/zwo_images/bo/szwo_infos tab_to_valstableauxisfindsCC:s:sCT:ssappends]hauteur=/largeur=100%/marge=0/cadre=0/couleurcadre=/couleurfond=/couleurtexte=/align=/valign=sPT:TsCT:Ts:CsPC:Csl:hauteur=/largeur=/marge=/cadre=/couleurcadre=/couleurfond=/couleurtexte=/align=/valign=/rowspan=1/colspan=1sCC:Cs:Tsmanage_changePropertiessREQUESTsRESPONSEsredirects./(s _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstringsdecslens listrepurlsidskinszwuisrepsconfsvalsl2s numcasemaxsvlignesl3sintsnums numtabmaxslsrecupsascaseschpttsstr(scases _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstringsdecslens listrepurlsidskinszwuisrepsconfsvalsl2s numcasemaxsvlignesl3sintsnums numtabmaxslsrecupsaschpttsstr((sScript (Python)s add_soustaboks^* $4$# $ ! #' #'  .(   (.$(((s add_soustabok(s add_soustabok((sScript (Python)ssqGU_bodyqHTmem=context.zwo_lib.mem_data() if mem['droit_edit_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] dec=string.split(mem['url'],zwu) if len(dec)==1: dec=string.split(mem['url'],context.acl_url()) listrepurl=string.split(dec[1],'/') if listrepurl[2]=='skin': return context.skins.index_html(mem) else: idskin=listrepurl[3] zwui=zwu+'/zwo_images/bo/' rep=context.zwo_info.skins[idskin] conf=rep val=context.zwo_lib.tab_to_val(conf) l2=conf.tableaux numcasemax=0 for vligne in l2: if string.find(vligne,'CC:')<>-1: l3=string.split(vligne,':') num=int(l3[1][1:]) if num>numcasemax: numcasemax=num numtabmax=0 for vligne in l2: if string.find(vligne,'CT:')<>-1: l3=string.split(vligne,':') num=int(l3[1][1:]) if num>numtabmax: numtabmax=num l=[] recup='' for a in l2: if string.find(a,'CC:'+case+':')==-1: l.append(a) else: recup=(string.split(a,':'))[2] numtabmax=numtabmax+1 numcasemax=numcasemax+1 chptt='hauteur=/largeur=100%/marge=0/cadre=0/couleurcadre=/couleurfond=/couleurtexte=/align=/valign=' l.append('PT:T'+str(numtabmax)+':'+chptt) l.append('CT:T'+str(numtabmax)+':C'+str(numcasemax)) l.append('PC:C'+str(numcasemax)+':hauteur=/largeur=/marge=/cadre=/couleurcadre=/couleurfond=/couleurtexte=/align=/valign=/rowspan=1/colspan=1') l.append('CC:C'+str(numcasemax)+':'+recup) l.append('CC:'+case+':T'+str(numtabmax)) conf.manage_changeProperties(tableaux=l) context.REQUEST.RESPONSE.redirect('./') return qIU Script_magicqJKUwarningsqK)UerrorsqL)U Python_magicqMU* qNu. j<((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Uidobjsoq Uidobjsnq Uidobjsmq U _getitem_q U_getitemqU _getattr_qU_getattrqUcontextqUmemqUprqUzwuqUstringqU listrepurlqUidskinqUzwuiqUrepqUconfqUrepurlqUrepuserqUdicoqU repusercutqUkUoldqUnewq Unewidq!tq"U co_argcountq#KubU_paramsq$Uidobjso,idobjsn,idobjsmq%Uidq&U dupliquerokq'U__ac_local_roles__q(}q)Uxavq*]q+UOwnerq,asU_dav_writelocksq-(U lq.(U Persistenceq/UPersistentMappingq0tq1tq2QU _bind_namesq3(cShared.DC.Scripts.Bindings NameAssignments q4oq5}q6U_asgnsq7}q8(Uname_containerq9U containerq:U name_subpathq;Utraverse_subpathqU name_m_selfq?Uscriptq@usbU func_defaultsqANU_codeqBTr csdZdS(Nc&sHt}t}||tdd}||ddjo dSn||tdd} ||d} |td ||td ||d | dd } || d d jo#||tdd|Sn || d}  | d} |||tdd| } |}||td ||d|| dd d}||d}||tdd}d||dj o||ddn||d}||dd||ddx||ddr}||dd djo||d d}|||}||tdd|}|td |||d||| td ||d||||!||d!d"|n"||dd d#jo#||d d}$|||}%||tdd|}|&td |||d|||'td ||d||||(||d!d"|n)||dd d$jo*||d d}+|||},||tdd|}|-td |||d|||.td ||d||||/||d!d"|nq?W|1|d%dg|2|d%dg|||3tdd&d'd(5dSdS()Nszwo_libsmem_datasdroit_edit_dossieris.Vous n'avez pas les droits pour cette action !szwo_bos presentationszwo_urlssplitsurls/isskinsskinss index_htmlis/zwo_images/bo/szwo_infos absolute_urlis user_zw_objsREQUESTsformsmem_cuts objectIdssmanage_addFolderszwo_tempskeysiso_s mix_id_zopeszwo_cpysmanage_changePropertiesstitlesn_sm_smanage_delObjectssRESPONSEsredirects./(s _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstrings listrepurlsidskinszwuisrepsconfsrepurlsrepusersdicos repusercutsksoldsnewsnewid(sidobjsosidobjsnsidobjsms _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstrings listrepurlsidskinszwuisrepsconfsrepurlsrepusersdicos repusercutsksoldsnewsnewid((sScript (Python)s dupliqueroksZ* ?# $ @ !$(( $(( $(('(s dupliquerok(s dupliquerok((sScript (Python)ssqCU_bodyqDT=mem=context.zwo_lib.mem_data() if mem['droit_edit_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] listrepurl=string.split(string.split(mem['url'],zwu)[1],'/') if listrepurl[2]=='skin': return context.skins.index_html(mem) else: idskin=listrepurl[3] zwui=zwu+'/zwo_images/bo/' rep=context.zwo_info.skins[idskin] conf=rep repurl=string.split(rep.absolute_url(),zwu[:-5])[1] repuser=mem['user_zw_obj'] dico=context.REQUEST.form if not 'mem_cut' in repuser.objectIds(): repuser.manage_addFolder('mem_cut') repusercut=repuser['mem_cut'] rep.manage_addFolder('zwo_temp') repusercut.manage_addFolder('zwo_temp') for k in dico.keys(): if k[0:2]=='o_': old=k[2:] new=dico[k] newid=context.zwo_lib.mix_id_zope(new) context.zwo_cpy(rep,rep['zwo_temp'],old,newid) context.zwo_cpy(rep['zwo_temp'],rep,newid) rep[newid].manage_changeProperties(title=new) if k[0:2]=='n_': old=k[2:] new=dico[k] newid=context.zwo_lib.mix_id_zope(new) context.zwo_cpy(rep,rep['zwo_temp'],old,newid) context.zwo_cpy(rep['zwo_temp'],rep,newid) rep[newid].manage_changeProperties(title=new) if k[0:2]=='m_': old=k[2:] new=dico[k] newid=context.zwo_lib.mix_id_zope(new) context.zwo_cpy(repusercut,repusercut['zwo_temp'],old,newid) context.zwo_cpy(repusercut['zwo_temp'],repusercut,newid) repusercut[newid].manage_changeProperties(title=new) rep.manage_delObjects(['zwo_temp']) repusercut.manage_delObjects(['zwo_temp']) context.REQUEST.RESPONSE.redirect('./') return qEU Script_magicqFKUwarningsqG)UerrorsqH)U Python_magicqIU* qJu. jK((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Utabq Unumq U_write_q U_writeq U _getitem_qU_getitemqU _getattr_qU_getattrqUcontextqUmemqUprqUzwuqUstringqUdecqUlenqU listrepurlqUidskinqUzwuiqUrepqUconfqUvalqUligneqUtableq Uaddcaseq!U tabfusionq"Ustrtointq#Uvtableq$UlUtabfusq%U caserowdimq&Ucasedelq'Ucaseinsq(Ustrctq)Uintq*Uilq+U firstligneq,Ulineq-U infoligneq.Uicq/Uinfocaseq0Utypeq1Ucasq2Ufirstq3Ucaseq4Uposq5Unonfinq6UcUnewlq7Upropq8Ulistpropq9UaUelemq:Ustrq;UnewpcqUapl_rowq?Udim_rowq@UdimlignqAUbUapl_colqBUdim_colqCUlentabqDUdimcoloqEUliqFUdim_allqGUlistlignqHUnewctqIUrangeqJUitqKU co_argcountqLKubU_paramsqMUtab,numqNUidqOU delligneokqPU__ac_local_roles__qQ}qRUxavqS]qTUOwnerqUasU_dav_writelocksqV(U lqW(U PersistenceqXUPersistentMappingqYtqZtq[QU _bind_namesq\(cShared.DC.Scripts.Bindings NameAssignments q]oq^}q_U_asgnsq`}qa(Uname_containerqbU containerqcU name_subpathqdUtraverse_subpathqeU name_m_selfqfUscriptqgU name_contextqhUcontextqiusbU func_defaultsqjNU_codeqkT(csdZdS(NcG=st}t}t}||tdd} ||tdd} || d} |t d|| d| } t | djo4|t d|| d|td } n|t d|| dd }||d d jo# ||td d| Sn ||d} | d} |||tdd |}|}||tdd||}|}d:d}^d}f||d|}h||d}j||}mg}ng}og}qd|d} st!|}ud}"vd}#xx|dxr}$y|"|jo{|||}%|d}&}x|%d}r}'~|'\}(})|(djo||d|)n|(djo||||d|)ddjo||d|)n3||d|)||d|)|&fn|&d}&qWn|"|djo<|#djo d}#n| d } d}*d}&|||d}%x|%dr}'x|dr\}+},|,|&joi|*djo d}*n| d } | |+} |&||||d|+d!}&nqW|'\}(})|(djo;|*djo d}*n| d } | |)} n|&d}&qWd}-x|-djod}-x|dr\}+},|,|&jor|*djo d}*n| d } | |+} |&||||d|+d!}&d}-nqFWq!Wn|#djo d}#n| d } d}*xJ|$dr=}.|*djo d}*n| d } | |.} q#W|"d}"qlWg}/x|dr}|t d"|d|dd jo||/d| nx|t d"|d#d joS|t d|d} || d|j o||/d|nn|t d"|d$d jo|t d|d} || d|j o|| d|jo\h}0|t d|| d d }1xS|1drF}2|t d|2d%}3||3d||0||3dt |}? x|=d r}2!g}@"xV|d"rI}A#||A|2\}(}+$|+|@j o|%|@d|+nq W&x)|@d&r}<|'|>d|<q8 Wq W)g}B*x)|:d*r}2|+|Bd|2qt W,x)|>d,r}2|-|Bd|2q W5d*7||d}8g}/9x|d9r}:|t d"|d|dd jo;|t d|d} <|t d|| d d }C=d|d}D>d}*?x^|Cd?rQ}2@|2d+jo;A|*djo Bd}*nD|Dd }DE|D|2}Dnq W|F|/d|DnH|t d"|d$d jo~I|t d|d} J|| d|Bjo0Kh}0L|t d|| d d }1MxS|1dMrF}2N|t d|2d%}3O||3d||0||3djogUx]tE||>d,|| ddUr2}FVt4t!||0d!d||0d!d}?x|d?r}@|djoAd} CxC| djoDd} Et ||jorF|||} Gt | |joFH|| |\} } I| djoJ|d}Kd} nnnqWMt|||d|d}Nt|||d|d}Oxxt|dOre}PxYt|dPrF}Q|djo |djo3R|||||d |fddf}nS|djo |djo3T|||||d |fddf}nU|djo |djo3V|||||d |fddf}nW|djo |djo3X|||||d |fddf}nqWqWY|d}nqWWZ|d}q9W[|SdS( Nisctsisnospcsrowspanscolspansokscsrscr(s _getitem_s_getitemsretsi_lsvalstabslignesi_cscasesokslensltmpsactuscasasintsr_spsc_spsrangessplsspcsaddcase(stabs _getitem_s_getitemsretsi_lsvalslignesi_cscasesokslensltmpsactuscasasintsr_spsc_spsrangessplsspcsaddcase(svalsaddcase(sScript (Python)s tabfusion:s>   '    **333;cs/^_|djo `dSnbt|SdS(Nsi(schsint(schsint((sScript (Python)sstrtoint^s sctstableauxsCT:s:isrsappendsokspcsrowspans-scolspansfindsCC:sPC:s=skeyssmanage_changePropertiesc st}g}d}x|dr}d}x6|dr)\}}|djo d}nqEW|djo||d|n|d}q'W|SdS(Niisoksappend( s _getattr_s_getattrsapplatirslignestabfusslisapplastypesnumcase( stabfuss _getattr_s_getattrsapplatirsligneslisapplastypesnumcase((sScript (Python)sligne_a_applatirs    c st}t}g}d}xtt||ddr} d} xH|dr;} || | \} } | djo d} nq`W| djo||d|n|d}qBW|SdS(Niisoksappend(s _getitem_s_getitems _getattr_s_getattrsapplatirscolonnesrangeslenstabfussisapplaslstypesnumcase(stabfuss _getitem_s_getitems _getattr_s_getattrsapplatirscolonnesrangeslensisapplaslstypesnumcase((sScript (Python)scolonnes_a_applatirs  * sX print val['ct'][tab] for ltf in tabfus: print ltf print dim_row print dim_col sscountsREQUESTsRESPONSEsredirects modif_li_co(Gs_write_s_writes _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstringsdecslens listrepurlsidskinszwuisrepsconfsvalsnumslignestabstablesaddcases tabfusionsstrtointsvtableslstabfuss caserowdimscasedelscaseinssstrctsintsils firstligneslines infolignesicsinfocasestypescassfirstscasespossnonfinscsnewlspropslistpropsaselemsstrsnewpcsksligne_a_applatirscolonnes_a_applatirsapl_rowsdim_rowsdimlignsbsapl_colsdim_colslentabsdimcoloslisdim_allslistlignsnewctsrangesi(Gstabsnums_write_s_writes _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstringsdecslens listrepurlsidskinszwuisrepsconfsvalslignestablesaddcases tabfusionsstrtointsvtableslstabfuss caserowdimscasedelscaseinssstrctsintsils firstligneslines infolignesicsinfocasestypescassfirstscasespossnonfinscsnewlspropslistpropsaselemsstrsnewpcsksligne_a_applatirscolonnes_a_applatirsapl_rowsdim_rowsdimlignsbsapl_colsdim_colslentabsdimcoloslisdim_allslistlignsnewctsrangesi((saddcasesvalsScript (Python)s delligneoksz0$4$# $ !   &$       4       6       .      .## $), !  %  !  $    +$   # $)3434 !  %(s delligneok(s delligneok((sScript (Python)ssqlU_bodyqmTmem=context.zwo_lib.mem_data() pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] dec=string.split(mem['url'],zwu) if len(dec)==1: dec=string.split(mem['url'],context.acl_url()) listrepurl=string.split(dec[1],'/') if listrepurl[2]=='skin': return context.skins.index_html(mem) else: idskin=listrepurl[3] zwui=zwu+'/zwo_images/bo/' rep=context.zwo_info.skins[idskin] conf=rep val=context.zwo_lib.tab_to_val(conf) ligne=num table=tab def addcase(tab,ligne,colonne,data,vide): #test si la ligne existe if len(tab)>ligne: #la ligne existe lign=tab[ligne] #test si la collone existe if len(lign)>colonne: #la colonne existe lign[colonne]=data tab[ligne]=lign else: #la colonne n'existe pas #test si l'on doit crer des cellules vides acreer=len(lign)-colonne-1 if acreer>0: for a in range(acreer): lign.append(vide) lign.append(data) tab[ligne]=lign else: # la ligne n'existe pas lign=[] #calcul du nombre de cellule vide a crer if colonne>0: for a in range(colonne): lign.append(vide) lign.append(data) tab.append(lign) return tab def tabfusion(tab): ret=[] i_l=0 for ligne in val['ct'][tab]: i_c=0 for case in ligne: if case<>'': ok=0 while ok==0: ok=1 if len(ret)>i_l: ltmp=ret[i_l] if len(ltmp)>i_c: (actu,casa)=ltmp[i_c] if actu<>'no': i_c=i_c+1 ok=0 r_sp=int(val['pc'][case]['rowspan']) c_sp=int(val['pc'][case]['colspan']) for spl in range(r_sp): for spc in range(c_sp): if spl==0 and spc==0: ret=addcase(ret,i_l+spl,i_c+spc,('ok',case),('no','no')) if spl==0 and spc<>0: ret=addcase(ret,i_l+spl,i_c+spc,('c',case),('no','no')) if spl<>0 and spc==0: ret=addcase(ret,i_l+spl,i_c+spc,('r',case),('no','no')) if spl<>0 and spc<>0: ret=addcase(ret,i_l+spl,i_c+spc,('cr',case),('no','no')) i_c=i_c+1 i_l=i_l+1 return ret def strtoint(ch): if ch=="": return 1 else: return int(ch) vtable=val['ct'][table] l=conf.tableaux tabfus=tabfusion(table) caserowdim=[] casedel=[] caseins=[] strct="CT:"+table+":" ligne=int(ligne) il=0 firstligne=0 for line in vtable: if il==ligne: #c'est la ligne a detruire infoligne=tabfus[ligne] ic=0 for infocase in infoligne: (type,cas)=infocase if type=='r': caserowdim.append(cas) elif type=='ok': if strtoint(val['pc'][cas]['rowspan'])==1: casedel.append(cas) else: caserowdim.append(cas) caseins.append((cas,ic)) ic=ic+1 elif il==ligne+1: #c'est la ligne ou il peut y avoir des recup de case de la ligne detruite if firstligne==0: firstligne=1 else: strct=strct+'/' first=0 ic=0 infoligne=tabfus[ligne+1] for infocase in infoligne: for (case,pos) in caseins: if pos==ic: if first==0: first=1 else: strct=strct+'-' strct=strct+case ic=ic+strtoint(val['pc'][case]['colspan']) (type,cas)=infocase if type=='ok': if first==0: first=1 else: strct=strct+'-' strct=strct+cas ic=ic+1 nonfin=1 while (nonfin==1): nonfin=0 for (case,pos) in caseins: if pos==ic: if first==0: first=1 else: strct=strct+'-' strct=strct+case ic=ic+strtoint(val['pc'][case]['colspan']) nonfin=1 else: #ligne sans modif if firstligne==0: firstligne=1 else: strct=strct+'/' first=0 for c in line: if first==0: first=1 else: strct=strct+'-' strct=strct+c il=il+1 newl=[] for ligne in l: if string.find(ligne,'CT:'+table+':')<>-1: newl.append(strct) elif string.find(ligne,'CC:')<>-1: dec=string.split(ligne,':') if not dec[1] in casedel: newl.append(ligne) elif string.find(ligne,'PC:')<>-1: dec=string.split(ligne,':') if not dec[1] in casedel: if dec[1] in caserowdim: prop={} listprop=string.split(dec[2],'/') for a in listprop: elem=string.split(a,'=') prop[elem[0]]=elem[1] prop['rowspan']=str(int(prop['rowspan'])-1) newpc='PC:'+dec[1]+':' first=0 for k in prop.keys(): if first==0: first=1 else: newpc=newpc+'/' newpc=newpc+k+'='+prop[k] newl.append(newpc) else: newl.append(ligne) else: newl.append(ligne) l=newl conf.manage_changeProperties(tableaux=l) def ligne_a_applatir(tabfus): applatir=[] ligne=0 for li in tabfus: appla=1 for (type,numcase) in li: if type=='ok': appla=0 if appla==1: applatir.append(ligne) ligne=ligne+1 return applatir def colonnes_a_applatir(tabfus): applatir=[] colonne=0 for i in range(len(tabfus[0])): appla=1 for l in tabfus: (type,numcase)=l[i] if type=='ok': appla=0 if appla==1: applatir.append(colonne) colonne=colonne+1 return applatir val=context.zwo_lib.tab_to_val(conf) tabfus=tabfusion(tab) apl_row=ligne_a_applatir(tabfus) dim_row=[] for a in apl_row: dimlign=[] for (type, case) in tabfus[a]: if not case in dimlign: dimlign.append(case) for b in dimlign: dim_row.append(b) tabfus=tabfusion(tab) apl_col=colonnes_a_applatir(tabfus) dim_col=[] lentab=len(tabfus) for a in apl_col: dimcolo=[] for li in tabfus: (type, case)=li[a] if not case in dimcolo: dimcolo.append(case) for b in dimcolo: dim_col.append(b) dim_all=[] for a in dim_row: dim_all.append(a) for a in dim_col: dim_all.append(a) """ print val['ct'][tab] for ltf in tabfus: print ltf print dim_row print dim_col """ l=conf.tableaux newl=[] for ligne in l: if string.find(ligne,'CT:'+tab+':')<>-1: dec=string.split(ligne,':') listlign=string.split(dec[2],'/') newct='CT:'+tab+':' first=0 for a in listlign: if a<>'': if first==0: first=1 else: newct=newct+'/' newct=newct+a newl.append(newct) elif string.find(ligne,'PC:')<>-1: dec=string.split(ligne,':') if dec[1] in dim_all: prop={} listprop=string.split(dec[2],'/') for a in listprop: elem=string.split(a,'=') prop[elem[0]]=elem[1] if dec[1] in dim_row: for i in range(dim_row.count(dec[1])): prop['rowspan']=str(int(prop['rowspan'])-1) if dec[1] in dim_col: for i in range(dim_col.count(dec[1])): prop['colspan']=str(int(prop['colspan'])-1) newpc='PC:'+dec[1]+':' first=0 for k in prop.keys(): if first==0: first=1 else: newpc=newpc+'/' newpc=newpc+k+'='+prop[k] newl.append(newpc) else: newl.append(ligne) else: newl.append(ligne) l=newl conf.manage_changeProperties(tableaux=l) context.REQUEST.RESPONSE.redirect('modif_li_co') return qnU Script_magicqoKUwarningsqp)Uerrorsqq)U Python_magicqrU* qsu. j0((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Utabq Unumq U_write_q U_writeq U _getitem_qU_getitemqU _getattr_qU_getattrqUcontextqUmemqUprqUzwuqUstringqUdecqUlenqU listrepurlqUidskinqUzwuiqUrepqUconfqUvalqUcolonneqUtableq Uaddcaseq!U tabfusionq"Uvtableq#UlU numcasemaxq$Uvligneq%Ul3q&Uintq'Utabfusq(Unewpcccq)Ustrctq*Udimcolpcq+Ui_lq,U firstligneq-Ulineq.Ui_cq/Ufirstq0Ucolllq1Ustrq2Utypeq3Ucasq4Unewlq5Uligneq6Upropq7Ulistpropq8UaUelemq9Unewpcq:Uktq;U co_argcountqUidq?U addcolonneokq@U__ac_local_roles__qA}qBUxavqC]qDUOwnerqEasU_dav_writelocksqF(U lqG(U PersistenceqHUPersistentMappingqItqJtqKQU _bind_namesqL(cShared.DC.Scripts.Bindings NameAssignments qMoqN}qOU_asgnsqP}qQ(Uname_containerqRU containerqSU name_subpathqTUtraverse_subpathqUU name_contextqVUcontextqWU name_m_selfqXUscriptqYusbU func_defaultsqZNU_codeq[TcsdZdS(Nc41sxt}t}t}||tdd} || ddjo dSn||tdd} || d} |t d || d | } t | djo4|t d || d |td } n |t d || dd } ||d djo# ||tdd| Sn ||d}| d}|||tdd|}|}||tdd||}|}d=d}`||d|}b||d}dd}ex|der}f|t d|dd jocg|t d |d}ht|||ddd}i||jo j|}nnq1Wl||}ng} od|d}!pg}"rt|}td}#ud}$vx[|dvrN}%wd}&x|$djo yd}$n{|!d }!}|t ||djod}'xJ|%dr=}(|'djo d}'n|!d}!|!|(}!qW|!d}!|d}|| d||!d t)|}!nFd}'x6|||#dr \}*}+|&|jo|*d!jp |*d"jo||"d|+ne|'djo d}'n|!d}!|d}|| d||!d t)|}!|&d}&n|*d#jo;|'djo d}'n|!d}!|!|+}!n|&d}&q@W|#d}#q#Wg},x;|dr.}-|t d|-d|dd jo||,d|!n|t d|-d$d jo|t d |-d} || d|"jo\h}.|t d || d d }/xS|/drF}0|t d |0d%}1||1d||.||1dg}?d}@x||d|d@r}Ad}Bx|dBr}C|djoDd} FxF| djoGd} Ht ||jorI|||} Jt | |joFK|| |\} } L| djoM|d}Nd} nnnqWPt|||d|d}Qt|||d|d}Rxxt|dRre}SxYt|dSrF}T|djo |djo3U|||||d |fddf}nV|djo |djo3W|||||d |fddf}nX|djo |djo3Y|||||d |fddf}nZ|djo |djo3[|||||d |fddf}nqWqW\|d}nqWW]|d}q9W^|SdS( Nisctsisnospcsrowspanscolspansokscsrscr(s _getitem_s_getitemsretsi_lsvalstabslignesi_cscasesokslensltmpsactuscasasintsr_spsc_spsrangessplsspcsaddcase(stabs _getitem_s_getitemsretsi_lsvalslignesi_cscasesokslensltmpsactuscasasintsr_spsc_spsrangessplsspcsaddcase(svalsaddcase(sScript (Python)s tabfusion=s>   '    **333;sctstableauxisfindsCC:s:sCT:s-sappendsCscscrsoksPC:s=scolspanskeyssPC:Csl:hauteur=/largeur=/marge=/cadre=/couleurcadre=/couleurfond=/couleurtexte=/align=/valign=/rowspan=1/colspan=1sCC:Csmanage_changePropertiessREQUESTsRESPONSEsredirects modif_li_co(4s_write_s_writes _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstringsdecslens listrepurlsidskinszwuisrepsconfsvalsnumscolonnestabstablesaddcases tabfusionsvtablesls numcasemaxsvlignesl3sintstabfussnewpcccsstrctsdimcolpcsi_ls firstligneslinesi_csfirstscolllsstrstypescassnewlslignespropslistpropsaselemsnewpcsk(4stabsnums_write_s_writes _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstringsdecslens listrepurlsidskinszwuisrepsconfsvalscolonnestablesaddcases tabfusionsvtablesls numcasemaxsvlignesl3sintstabfussnewpcccsstrctsdimcolpcsi_ls firstligneslinesi_csfirstscolllsstrstypescassnewlslignespropslistpropsaselemsnewpcsk((saddcasesvalsScript (Python)s addcolonneoks0 $4$# $ !   &# #'            $      .# $), !  %$% (s addcolonneok(s addcolonneok((sScript (Python)ssq\U_bodyq]Tmem=context.zwo_lib.mem_data() if mem['droit_edit_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] dec=string.split(mem['url'],zwu) if len(dec)==1: dec=string.split(mem['url'],context.acl_url()) listrepurl=string.split(dec[1],'/') if listrepurl[2]=='skin': return context.skins.index_html(mem) else: idskin=listrepurl[3] zwui=zwu+'/zwo_images/bo/' rep=context.zwo_info.skins[idskin] conf=rep val=context.zwo_lib.tab_to_val(conf) colonne=num table=tab def addcase(tab,ligne,colonne,data,vide): #test si la ligne existe if len(tab)>ligne: #la ligne existe lign=tab[ligne] #test si la collone existe if len(lign)>colonne: #la colonne existe lign[colonne]=data tab[ligne]=lign else: #la colonne n'existe pas #test si l'on doit crer des cellules vides acreer=len(lign)-colonne-1 if acreer>0: for a in range(acreer): lign.append(vide) lign.append(data) tab[ligne]=lign else: # la ligne n'existe pas lign=[] #calcul du nombre de cellule vide a crer if colonne>0: for a in range(colonne): lign.append(vide) lign.append(data) tab.append(lign) return tab def tabfusion(tab): ret=[] i_l=0 for ligne in val['ct'][tab]: i_c=0 for case in ligne: if case<>'': ok=0 while ok==0: ok=1 if len(ret)>i_l: ltmp=ret[i_l] if len(ltmp)>i_c: (actu,casa)=ltmp[i_c] if actu<>'no': i_c=i_c+1 ok=0 r_sp=int(val['pc'][case]['rowspan']) c_sp=int(val['pc'][case]['colspan']) for spl in range(r_sp): for spc in range(c_sp): if spl==0 and spc==0: ret=addcase(ret,i_l+spl,i_c+spc,('ok',case),('no','no')) if spl==0 and spc<>0: ret=addcase(ret,i_l+spl,i_c+spc,('c',case),('no','no')) if spl<>0 and spc==0: ret=addcase(ret,i_l+spl,i_c+spc,('r',case),('no','no')) if spl<>0 and spc<>0: ret=addcase(ret,i_l+spl,i_c+spc,('cr',case),('no','no')) i_c=i_c+1 i_l=i_l+1 return ret vtable=val['ct'][table] l=conf.tableaux numcasemax=0 for vligne in l: if string.find(vligne,'CC:')<>-1: l3=string.split(vligne,':') num=int(l3[1][1:]) if num>numcasemax: numcasemax=num tabfus=tabfusion(table) newpccc=[] strct="CT:"+table+":" dimcolpc=[] colonne=int(colonne) i_l=0 firstligne=0 for line in vtable: i_c=0 if firstligne==0: firstligne=1 else: strct=strct+'/' if colonne==len(tabfus[0]): #CAS d'ajout d'une colonne en fin first=0 for colll in line: if first==0: first=1 else: strct=strct+'-' strct=strct+colll strct=strct+'-' numcasemax=numcasemax+1 newpccc.append(numcasemax) strct=strct+'C'+str(numcasemax) else: #Colonne au millieu (ou dbut) first=0 for (type,cas) in tabfus[i_l]: if i_c==colonne: #test si insertion de nouvelle case ou extention colspan if type=='c' or type=='cr': #cas extention colspan dimcolpc.append(cas) else: #Cas ajout de cellule if first==0: first=1 else: strct=strct+'-' numcasemax=numcasemax+1 newpccc.append(numcasemax) strct=strct+'C'+str(numcasemax) i_c=i_c+1 if type=="ok": if first==0: first=1 else: strct=strct+'-' strct=strct+cas i_c=i_c+1 i_l=i_l+1 newl=[] for ligne in l: if string.find(ligne,'CT:'+table+':')<>-1: newl.append(strct) elif string.find(ligne,'PC:')<>-1: dec=string.split(ligne,':') if dec[1] in dimcolpc: prop={} listprop=string.split(dec[2],'/') for a in listprop: elem=string.split(a,'=') prop[elem[0]]=elem[1] prop['colspan']=str(int(prop['colspan'])+1) newpc='PC:'+dec[1]+':' first=0 for k in prop.keys(): if first==0: first=1 else: newpc=newpc+'/' newpc=newpc+k+'='+prop[k] newl.append(newpc) else: newl.append(ligne) else: newl.append(ligne) for a in newpccc: newl.append('PC:C'+str(a)+':hauteur=/largeur=/marge=/cadre=/couleurcadre=/couleurfond=/couleurtexte=/align=/valign=/rowspan=1/colspan=1') newl.append('CC:C'+str(a)+':') l=newl conf.manage_changeProperties(tableaux=l) context.REQUEST.RESPONSE.redirect('modif_li_co') return q^U Script_magicq_KUwarningsq`)Uerrorsqa)U Python_magicqbU* qcu. j(cShared.DC.Scripts.Bindings NameAssignments q?oq@}qAU_asgnsqB}qC(Uname_containerqDU containerqEU name_subpathqFUtraverse_subpathqGU name_m_selfqHUscriptqIU name_contextqJUcontextqKusbU func_defaultsqLNU_codeqMTcsdZdS(Nc$-s2t}t}||tdd ||tdd | d|td||td| ddd } || d d jo#||td d  Sn|| d}  d}  |||tdd |  }  ||||tdddd|dd}xOdrB}||}||ddo|d}nq{W||tdd d d| \}}}}}|}d| dd}|||tdd d|}||}||}$d}%|||tdd  d!d"|}&||}*| d#+tt}-||tdd$| /g2d%d&}3|d'}5| d(}!6|d)d*|!d+|!d,|!d-|!d.}; d/ d0|d1}|d2}|d3}|||tdd  d d4|}||}|d5|}|SdS(6Nszwo_libsmem_dataszwo_bos presentationszwo_urlssplitsurlis/isskinsskinss index_htmlis/zwo_images/bo/szwo_infos zwo_imagessiconess logo_elementss objectIdsis hasPropertyselementsautoursEdition du skin sRETOUR CONTENUsmenusnavsA FAIREseditionsinfos INFORMATIONshauteur_mini_cases tab_to_vals/sesepaisseur_tableaus s
csa;t}t}<||d|}=||d|}>||d}?||d} @d} A|djo |djoB| d|d} nC| djo | djoD| d | d} nF| d } G||d d joHd} Id | dd| dd| d| d| d| d| dd}J| d} L| d}Mdd}O| d} P|d}Q|d| d|d|d}R|d| d |d!|d"| d#|d$| dd| d| d| d| d| d%}S|d&}T|d'| d |d!|d}U|d(| d|d|d}V|d)}W|d*}X|Sn\t|d jo]||d }^t|d jo_||d d+jo`d} ad | dd| d,d| d| d| d| d-}bd.} d| d}edd}g| d} h|d}i|d| d|d|d}j|d| d |d!|d"| d#|d$| d,d| d| d| d| d/}k|||d }l|d'| d |d!|d}m|d(| d|d|d}n|d)}o|d*}p|Snnnrd | dd| d,d| d| d| d| d-}t|d0}u|d1|d2d3}vx|d vr}w|jox||}|zd4|{d5}|||d6}}|d7jo ~|}n|d8}|d9|d:d;|d<}|d=||d>d?}nqcW|d)}|d@}|SdS(ANsccspcsrowspanscolspanss1s rowspan="s" s colspan="sepaisseur_caseis######ssespacement_tableaus sepaisseur_tableaus?ss " width="s">ssTs color_skins.px; background-color: #ffffff;" valign="top" >s#ffffffs px; background-color: #ffffff;">s8
s
sZONE D'EDITION DU CONTENUss
s4sappendsinconnuselements.gifsVs
(s _getitem_s_getitems _getattr_s_getattrsvalscassincasspcassrspscspsspnsprsszsbgcshmshtmlcasssptszwusimslenspresaffichetableauselslistobjsrepsel_objs elem_placedstypeimgstypes listiconessmem(scass _getitem_s_getitems _getattr_s_getattrsvalsincasspcassrspscspsspnsprsszsbgcshmshtmlcasssptszwusimslenspresaffichetableauselslistobjsrepsel_objs elem_placedstypeimgstypes listiconessmem( s elem_placeds listiconessaffichetableauszwusrepslistobjshmsvalsmemspr(sScript (Python)s affichecase;s|  [ %n %%    J  %f%%  J    &)  c st}dd}|d}||d|}xY|drL} |d}x&| dr} || }quW|d}qSW|d}|SdS( Ns/
 sNs< s title_or_ids
sepaisseur_casesctisss
( s _getitem_s_getitemshmshtmltabsprsszsvalstabsintabsliscas affichecase( stabs _getitem_s_getitemshmshtmltabsprsszsvalsintabsliscas affichecase(shmsvals affichecasespr(sScript (Python)saffichetableaus   sT1s
sCONTENUs($s _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstrings listrepurlsidskinszwuisrepsconfs listiconesslistobjsnbelsobslobjsheadsspmsmidsspesfootsprntstitreshtmlshmsstrsintshm2svals elem_placedsszs affichecasesaffichetableau($s _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstrings listrepurlsidskinszwuisrepsconfs listiconesslistobjsnbelsobslobjsheadsspmsmidsspesfootsprntstitreshtmlshmsstrsintshm2svals elem_placedsszsaffichetableaus affichecase(( szwuslistobjshms affichecases listiconessreps elem_placedsvalsaffichetableausmemsprsScript (Python)splace_zone_editsT*?# $ 0 = .   1 !  5*O   1 (splace_zone_edit(splace_zone_edit((sScript (Python)ssqNU_bodyqOTmem=context.zwo_lib.mem_data() pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] listrepurl=string.split(string.split(mem['url'],zwu)[1],'/') if listrepurl[2]=='skin': return context.skins.index_html(mem) else: idskin=listrepurl[3] zwui=zwu+'/zwo_images/bo/' rep=context.zwo_info.skins[idskin] conf=rep listicones=context.zwo_images.icones.logo_elements.objectIds() listobj=rep.objectIds() nbel=0 for ob in listobj: lobj=rep[ob] if lobj.hasProperty('element'): nbel=nbel+1 # AFFICHAGE DU BANDEAU HAUT (head,spm,mid,spe,foot)=context.zwo_bo.autour(mem,pr,'skin','Edition du skin '+idskin) prnt=head # AFFICHAGE DES CASE DE LA COLONNE (menus) titre='RETOUR CONTENU' prnt=prnt+context.zwo_bo.menu(zwu,pr,'nav',titre) prnt=prnt+spm prnt=prnt+mid # AFFICHAGE DES ZONES LARGES (editions) # EDITION INFORMATION html = "A FAIRE" prnt=prnt+context.zwo_bo.edition(zwu,pr,'info','INFORMATION',html) prnt=prnt+spe # EDITION CONTENU hm=pr['hauteur_mini_case'] hm2=str(int(hm)) val=context.zwo_lib.tab_to_val(conf) elem_placed=[] #tableau page html = '' html = html+'' sz=pr['epaisseur_tableau'] html=html+'' return htmlcas if len(incas)>0: pre=incas[0] if len(pre)>0: if pre[0]=="T": bgc='' htmlcas='' return htmlcas htmlcas='' return htmlcas def affichetableau(tab): htmltab = '
' #tableau contenu def affichecase(cas): incas=val['cc'][cas] pcas=val['pc'][cas] rsp=pcas["rowspan"] csp=pcas["colspan"] spn='' if rsp<>'1' and rsp<>'': spn=spn+'rowspan="'+rsp+'" ' if csp<>'1' and csp<>'': spn=spn+'colspan="'+csp+'" ' sz=pr['epaisseur_case'] if incas[0]=="######": bgc='' htmlcas='' bgc=pr['color_edit'] spt=pr['espacement_tableau'] im='' sz=pr['epaisseur_tableau'] htmlcas=htmlcas+'' htmlcas=htmlcas+'' htmlcas=htmlcas+'' htmlcas=htmlcas+'' htmlcas=htmlcas+'
'+im+'
'+im+'' htmlcas=htmlcas+'ZONE D\'EDITION DU CONTENU' htmlcas=htmlcas+''+im+'
'+im+'
' htmlcas=htmlcas+'
' bgc='#ffffff' spt=pr['espacement_tableau'] im='' sz=pr['epaisseur_tableau'] htmlcas=htmlcas+'' htmlcas=htmlcas+'' htmlcas=htmlcas+'' htmlcas=htmlcas+'' htmlcas=htmlcas+'
'+im+'
'+im+'' htmlcas=htmlcas+affichetableau(incas[0]) htmlcas=htmlcas+''+im+'
'+im+'
' htmlcas=htmlcas+'
' htmlcas=htmlcas+'
' htmlcas=htmlcas+'' for el in incas: if el in listobj: el_obj=rep[el] elem_placed.append(el) typeimg="inconnu" type=el_obj.element if type+'.gif' in listicones: typeimg=type htmlcas=htmlcas+'' htmlcas=htmlcas+'
 ' htmlcas=htmlcas+'' htmlcas=htmlcas+' '+el_obj.title_or_id()+'
' htmlcas=htmlcas+'
' sz=pr['epaisseur_case'] intab=val['ct'][tab] for li in intab: htmltab = htmltab +'' for ca in li: htmltab = htmltab + affichecase(ca) htmltab = htmltab +'' htmltab = htmltab +'
' return htmltab html=html+affichetableau('T1') html=html+'' html=html+'' prnt=prnt+context.zwo_bo.edition(zwu,pr,'skin','CONTENU',html) prnt=prnt+spe prnt=prnt+''+foot return prnt qPU Script_magicqQKUwarningsqR)UerrorsqS)U Python_magicqTU* qUu. jE((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Utabq Unumq U_write_q U_writeq U _getitem_qU_getitemqU _getattr_qU_getattrqUcontextqUmemqUprqUzwuqUstringqUdecqUlenqU listrepurlqUidskinqUzwuiqUrepqUconfqUvalqUcolonneqUtableq Uaddcaseq!U tabfusionq"Ustrtointq#Uvtableq$UlUtabfusq%U casecoldimq&Ucasedelq'Ustrctq(Uintq)Uilq*U firstligneq+Ulineq,Ufirstq-Uicq.U infoligneq/Uinfocaseq0Utypeq1Ucasq2Unewlq3Uligneq4Upropq5Ulistpropq6UaUelemq7Ustrq8Unewpcq9UkUligne_a_applatirq:Ucolonnes_a_applatirq;Uapl_rowqUcaseq?UbUapl_colq@Udim_colqAUlentabqBUdimcoloqCUliqDUdim_allqEUlistlignqFUnewctqGUrangeqHUitqIU co_argcountqJKubU_paramsqKUtab,numqLUidqMU delcolonneokqNU__ac_local_roles__qO}qPUxavqQ]qRUOwnerqSasU_dav_writelocksqT(U lqU(U PersistenceqVUPersistentMappingqWtqXtqYQU _bind_namesqZ(cShared.DC.Scripts.Bindings NameAssignments q[oq\}q]U_asgnsq^}q_(Uname_containerq`U containerqaU name_subpathqbUtraverse_subpathqcU name_m_selfqdUscriptqeU name_contextqfUcontextqgusbU func_defaultsqhNU_codeqiT&csdZdS(NcD=s t}t}t}||tdd} ||tdd} || d} |t d|| d| } t | djo4|t d|| d|td } n|t d|| dd }||d d jo# ||td d| Sn ||d} | d} |||tdd |}|}||tdd||}|}d;d}_d}g||d|}i||d}k||}ng}og}qd|d}st |}ud}!vd}"wx|dwr}#x|"djo yd}"n{|d }}d}$~d}%|||!}&xd|&drW}'|'\}(})|%|jo|(djot |||d|)ddjo||d|)nN||d|)|$djo d}$n|d}||)}n|(d jo||d|)nnL|(djo;|$djo d}$n|d}||)}n|%d}%qW|!d}!qcWg}*x|dr}+|t d!|+d|dd jo||*d|nx|t d!|+d"d joS|t d|+d} || d|j o||*d|+nn|t d!|+d#d jo|t d|+d} || d|j o|| d|jo\h},|t d|| d d }-xS|-drF}.|t d|.d$}/||/d||,||/d||>|.\}(}8|8|=j o||=d|8nqWx)|=dr}9||;d|9qWq{Wg}?x)|6dr}.||?d|.q1 Wx)|;dr}.||?d|.q` W d) ||d} g}* x|d r}+|t d!|+d|dd jo|t d|+d} |t d|| d d }@d|d}Ad}$x^|@drQ}.|.d*jo;|$djo d}$n|Ad }A|A|.}AnqJ W||*d|An|t d!|+d#d jo~|t d|+d} || d|?jo0h}, |t d|| d d }-!xS|-d!rF}."|t d|.d$}/#||/d||,||/d|d&d||||@td-d.d/d0AdSdS(1Nszwo_libsmem_dataszwo_bos presentationszwo_urlssplitsurlisacl_urls/isskinsskinss index_htmlis/zwo_images/bo/szwo_infos tab_to_valc st}t}t} t||jo|||} t| |jo*||| |<| |||x||d|d>r}?d}@x|d@r}A|djoBd} DxD| djoEd} Ft ||jorG|||} Ht | |joFI|| |\} } J| djoK|d}Ld} nnnqWNt|||d|d}Ot|||d|d}Pxxt|dPre}QxYt|dQrF}R|djo |djo3S|||||d |fddf}nT|djo |djo3U|||||d |fddf}nV|djo |djo3W|||||d |fddf}nX|djo |djo3Y|||||d |fddf}nqWqWZ|d}nqWW[|d}q9W\|SdS( Nisctsisnospcsrowspanscolspansokscsrscr(s _getitem_s_getitemsretsi_lsvalstabslignesi_cscasesokslensltmpsactuscasasintsr_spsc_spsrangessplsspcsaddcase(stabs _getitem_s_getitemsretsi_lsvalslignesi_cscasesokslensltmpsactuscasasintsr_spsc_spsrangessplsspcsaddcase(svalsaddcase(sScript (Python)s tabfusion;s>   '    **333;cs/_`|djo adSnct|SdS(Nsi(schsint(schsint((sScript (Python)sstrtoint_s sctstableauxsCT:s:isokspcscolspansappends-scsfindsCC:sPC:s=skeyssmanage_changePropertiesc st}g}d}x|dr}d}x6|dr)\}}|djo d}nqEW|djo||d|n|d}q'W|SdS(Niisoksappend( s _getattr_s_getattrsapplatirslignestabfusslisapplastypesnumcase( stabfuss _getattr_s_getattrsapplatirsligneslisapplastypesnumcase((sScript (Python)sligne_a_applatirs    c st}t}g}d}xtt||ddr} d} xH|dr;} || | \} } | djo d} nq`W| djo||d|n|d}qBW|SdS(Niisoksappend(s _getitem_s_getitems _getattr_s_getattrsapplatirscolonnesrangeslenstabfussisapplaslstypesnumcase(stabfuss _getitem_s_getitems _getattr_s_getattrsapplatirscolonnesrangeslensisapplaslstypesnumcase((sScript (Python)scolonnes_a_applatirs  * sX print val['ct'][tab] for ltf in tabfus: print ltf print dim_row print dim_col sscountsrowspansREQUESTsRESPONSEsredirects modif_li_co(Ds_write_s_writes _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstringsdecslens listrepurlsidskinszwuisrepsconfsvalsnumscolonnestabstablesaddcases tabfusionsstrtointsvtableslstabfuss casecoldimscasedelsstrctsintsils firstligneslinesfirstsics infolignesinfocasestypescassnewlslignespropslistpropsaselemsstrsnewpcsksligne_a_applatirscolonnes_a_applatirsapl_rowsdim_rowsdimlignscasesbsapl_colsdim_colslentabsdimcoloslisdim_allslistlignsnewctsrangesi(Dstabsnums_write_s_writes _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstringsdecslens listrepurlsidskinszwuisrepsconfsvalscolonnestablesaddcases tabfusionsstrtointsvtableslstabfuss casecoldimscasedelsstrctsintsils firstligneslinesfirstsics infolignesinfocasestypescassnewlslignespropslistpropsaselemsstrsnewpcsksligne_a_applatirscolonnes_a_applatirsapl_rowsdim_rowsdimlignscasesbsapl_colsdim_colslentabsdimcoloslisdim_allslistlignsnewctsrangesi((saddcasesvalsScript (Python)s delcolonneoks<0$4$# $ !   &$         4     .## $), !  %  !  $    +$   # $)3434 !  %(s delcolonneok(s delcolonneok((sScript (Python)ssqjU_bodyqkTmem=context.zwo_lib.mem_data() pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] dec=string.split(mem['url'],zwu) if len(dec)==1: dec=string.split(mem['url'],context.acl_url()) listrepurl=string.split(dec[1],'/') if listrepurl[2]=='skin': return context.skins.index_html(mem) else: idskin=listrepurl[3] zwui=zwu+'/zwo_images/bo/' rep=context.zwo_info.skins[idskin] conf=rep val=context.zwo_lib.tab_to_val(conf) colonne=num table=tab def addcase(tab,ligne,colonne,data,vide): #test si la ligne existe if len(tab)>ligne: #la ligne existe lign=tab[ligne] #test si la collone existe if len(lign)>colonne: #la colonne existe lign[colonne]=data tab[ligne]=lign else: #la colonne n'existe pas #test si l'on doit crer des cellules vides acreer=len(lign)-colonne-1 if acreer>0: for a in range(acreer): lign.append(vide) lign.append(data) tab[ligne]=lign else: # la ligne n'existe pas lign=[] #calcul du nombre de cellule vide a crer if colonne>0: for a in range(colonne): lign.append(vide) lign.append(data) tab.append(lign) return tab def tabfusion(tab): ret=[] i_l=0 for ligne in val['ct'][tab]: i_c=0 for case in ligne: if case<>'': ok=0 while ok==0: ok=1 if len(ret)>i_l: ltmp=ret[i_l] if len(ltmp)>i_c: (actu,casa)=ltmp[i_c] if actu<>'no': i_c=i_c+1 ok=0 r_sp=int(val['pc'][case]['rowspan']) c_sp=int(val['pc'][case]['colspan']) for spl in range(r_sp): for spc in range(c_sp): if spl==0 and spc==0: ret=addcase(ret,i_l+spl,i_c+spc,('ok',case),('no','no')) if spl==0 and spc<>0: ret=addcase(ret,i_l+spl,i_c+spc,('c',case),('no','no')) if spl<>0 and spc==0: ret=addcase(ret,i_l+spl,i_c+spc,('r',case),('no','no')) if spl<>0 and spc<>0: ret=addcase(ret,i_l+spl,i_c+spc,('cr',case),('no','no')) i_c=i_c+1 i_l=i_l+1 return ret def strtoint(ch): if ch=="": return 1 else: return int(ch) vtable=val['ct'][table] l=conf.tableaux tabfus=tabfusion(table) casecoldim=[] casedel=[] strct="CT:"+table+":" colonne=int(colonne) il=0 firstligne=0 for line in vtable: if firstligne==0: firstligne=1 else: strct=strct+'/' first=0 ic=0 infoligne=tabfus[il] for infocase in infoligne: (type,cas)=infocase if ic==colonne: if type=='ok': if int(val['pc'][cas]['colspan'])==1: casedel.append(cas) else: casecoldim.append(cas) if first==0: first=1 else: strct=strct+'-' strct=strct+cas if type=='c': casecoldim.append(cas) else: if type=='ok': if first==0: first=1 else: strct=strct+'-' strct=strct+cas ic=ic+1 il=il+1 newl=[] for ligne in l: if string.find(ligne,'CT:'+table+':')<>-1: newl.append(strct) elif string.find(ligne,'CC:')<>-1: dec=string.split(ligne,':') if not dec[1] in casedel: newl.append(ligne) elif string.find(ligne,'PC:')<>-1: dec=string.split(ligne,':') if not dec[1] in casedel: if dec[1] in casecoldim: prop={} listprop=string.split(dec[2],'/') for a in listprop: elem=string.split(a,'=') prop[elem[0]]=elem[1] prop['colspan']=str(int(prop['colspan'])-1) newpc='PC:'+dec[1]+':' first=0 for k in prop.keys(): if first==0: first=1 else: newpc=newpc+'/' newpc=newpc+k+'='+prop[k] newl.append(newpc) else: newl.append(ligne) else: newl.append(ligne) l=newl conf.manage_changeProperties(tableaux=l) def ligne_a_applatir(tabfus): applatir=[] ligne=0 for li in tabfus: appla=1 for (type,numcase) in li: if type=='ok': appla=0 if appla==1: applatir.append(ligne) ligne=ligne+1 return applatir def colonnes_a_applatir(tabfus): applatir=[] colonne=0 for i in range(len(tabfus[0])): appla=1 for l in tabfus: (type,numcase)=l[i] if type=='ok': appla=0 if appla==1: applatir.append(colonne) colonne=colonne+1 return applatir val=context.zwo_lib.tab_to_val(conf) tabfus=tabfusion(tab) apl_row=ligne_a_applatir(tabfus) dim_row=[] for a in apl_row: dimlign=[] for (type, case) in tabfus[a]: if not case in dimlign: dimlign.append(case) for b in dimlign: dim_row.append(b) tabfus=tabfusion(tab) apl_col=colonnes_a_applatir(tabfus) dim_col=[] lentab=len(tabfus) for a in apl_col: dimcolo=[] for li in tabfus: (type, case)=li[a] if not case in dimcolo: dimcolo.append(case) for b in dimcolo: dim_col.append(b) dim_all=[] for a in dim_row: dim_all.append(a) for a in dim_col: dim_all.append(a) """ print val['ct'][tab] for ltf in tabfus: print ltf print dim_row print dim_col """ l=conf.tableaux newl=[] for ligne in l: if string.find(ligne,'CT:'+tab+':')<>-1: dec=string.split(ligne,':') listlign=string.split(dec[2],'/') newct='CT:'+tab+':' first=0 for a in listlign: if a<>'': if first==0: first=1 else: newct=newct+'/' newct=newct+a newl.append(newct) elif string.find(ligne,'PC:')<>-1: dec=string.split(ligne,':') if dec[1] in dim_all: prop={} listprop=string.split(dec[2],'/') for a in listprop: elem=string.split(a,'=') prop[elem[0]]=elem[1] if dec[1] in dim_row: for i in range(dim_row.count(dec[1])): prop['rowspan']=str(int(prop['rowspan'])-1) if dec[1] in dim_col: for i in range(dim_col.count(dec[1])): prop['colspan']=str(int(prop['colspan'])-1) newpc='PC:'+dec[1]+':' first=0 for k in prop.keys(): if first==0: first=1 else: newpc=newpc+'/' newpc=newpc+k+'='+prop[k] newl.append(newpc) else: newl.append(ligne) else: newl.append(ligne) l=newl conf.manage_changeProperties(tableaux=l) context.REQUEST.RESPONSE.redirect('modif_li_co') return qlU Script_magicqmKUwarningsqn)Uerrorsqo)U Python_magicqpU* qqu. j0((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 UcontextqUmemqUprqUzwuqUstringqU listrepurlqUidskinqUzwuiqUrepqUconfqUheadqUspmqUmidqUspeqUfootqU listiconesqUprntqUtitreqUhtmlq Usequenceq!Ulmq"Umoduleq#Uintq$Umoduletq%Umoduleidq&Ugimgq'Umoduledq(Uatq)U co_argcountq*KubU_paramsq+UUidq,U list_elementq-U__ac_local_roles__q.}q/Uxavq0]q1UOwnerq2asU_dav_writelocksq3(U lq4(U Persistenceq5UPersistentMappingq6tq7tq8QU _bind_namesq9(cShared.DC.Scripts.Bindings NameAssignments q:oq;}q(Uname_containerq?U containerq@U name_subpathqAUtraverse_subpathqBU name_m_selfqCUscriptqDU name_contextqEUcontextqFusbU func_defaultsqGNU_codeqHT csdZdS(Nc %st}t}||tdd}||ddjo dSn||tdd}||d}|td ||td ||d |dd } || d d jo#||tdd|Sn || d}  |d}  |||tdd| }  | } ||tdd||d d| \}}}}}||||tdddd}|}d||dd}|||tdd||d|}||}||}d}|td||td d!d"d#d$d%ff}x|d&r}||d'd ot||d#d&jo| |d'd( p||d)djoT!||d*}"||d+}#|d,|jo&$d-||dd.|d/}n&d-||dd0}|'|d'd1oY(d2})x-||d1d&)r}*||d3}qW+||dd4 }n -d5}0|d6|d7|d8}1|d9|d:|d;}2|d9|d<|d=}nnqqW3|d>}5|||tdd?||d@dA|}6||}7||}9|SdS(BNszwo_libsmem_datasdroit_edit_dossieris.Vous n'avez pas les droits pour cette action !szwo_bos presentationszwo_urlssplitsurls/isskinsskinss index_htmlis/zwo_images/bo/szwo_infosautoursEdition du skin s zwo_imagessiconess logo_elementss objectIdssRETOURsmenusnavs2ssorts zwo_moduless objectValuessFoldersnotescmpsdescis hasPropertys admin_onlysdroit_config_dossiers title_or_idsgetIds.gifs s;/zwo_images/icones/logo_elements/inconnu.gif" border="0" />s descriptionss
isPas de description.s6s=s"">ss
s s
seditionselementsAJOUTER UN ELEMENT( s _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstrings listrepurlsidskinszwuisrepsconfsheadsspmsmidsspesfoots listiconessprntstitreshtmlssequenceslmsmodulesintsmoduletsmoduleidsgimgsmoduledsa( s _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstrings listrepurlsidskinszwuisrepsconfsheadsspmsmidsspesfoots listiconessprntstitreshtmlssequenceslmsmodulesintsmoduletsmoduleidsgimgsmoduledsa((sScript (Python)s list_elementsT* ?# $ =0 .   ?5-&  ) 1  (s list_element(s list_element((sScript (Python)ssqIU_bodyqJTzmem=context.zwo_lib.mem_data() if mem['droit_edit_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] listrepurl=string.split(string.split(mem['url'],zwu)[1],'/') if listrepurl[2]=='skin': return context.skins.index_html(mem) else: idskin=listrepurl[3] zwui=zwu+'/zwo_images/bo/' rep=context.zwo_info.skins[idskin] conf=rep # AFFICHAGE DU BANDEAU HAUT (head,spm,mid,spe,foot)=context.zwo_bo.autour(mem,pr,'skin','Edition du skin '+idskin) listicones=context.zwo_images.icones.logo_elements.objectIds() prnt=head titre='RETOUR' prnt=prnt+context.zwo_bo.menu(zwu,pr,'nav',titre) prnt=prnt+spm prnt=prnt+mid html='' lm=sequence.sort(context.zwo_modules.objectValues('Folder'), (('note', 'cmp', 'desc'),) ) for module in lm: if module.hasProperty('skin') and int(module.note)>=0 : if not module.hasProperty('admin_only') or mem['droit_config_dossier']==1: modulet=module.title_or_id() moduleid=module.getId() if moduleid+'.gif' in listicones: gimg='' else: gimg='' if module.hasProperty('description'): moduled='' for a in module.description: moduled=moduled+a+'
' moduled=moduled[:-6] else: moduled='Pas de description.' html=html+'' html=html+'' html=html+'' html=html+'
'+gimg+''+modulet+''+moduled+'
' prnt=prnt+context.zwo_bo.edition(zwu,pr,'element','AJOUTER UN ELEMENT',html) prnt=prnt+spe prnt=prnt+foot return prnt qKU Script_magicqLKUwarningsqM)UerrorsqN)U Python_magicqOU* qPu. j((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Uactionq U _getitem_q U_getitemq U _getattr_q U_getattrqU_print_qU_printqUcontextqUmemqUprqUzwuqUstringqU listrepurlqUidskinqUzwuiqUrepqUconfqUrepurlqUdicoqUelrpqUelokqUelnpqUelmmq UkUlenq!Uidobjsq"Uidobjsmq#Uidobjsoq$Uidobjsnq%tq&U co_argcountq'KubU_paramsq(Uactionq)Uidq*U valid_selq+U__ac_local_roles__q,}q-Uxavq.]q/UOwnerq0asU_dav_writelocksq1(U lq2(U Persistenceq3UPersistentMappingq4tq5tq6QU _bind_namesq7(cShared.DC.Scripts.Bindings NameAssignments q8oq9}q:U_asgnsq;}q<(Uname_containerq=U containerq>U name_subpathq?Utraverse_subpathq@U name_m_selfqAUscriptqBU name_contextqCUcontextqDusbU func_defaultsqENU_codeqFT csdZdS(Nc#st}t}t}||tdd}||ddjo dSn||tdd} ||d} |t d ||t d ||d | dd } || d d jo#||tdd|Sn || d}  | d} |||tdd| } |}||t d ||d|| dd d}||tdd}g}g}g}g}xA||ddr(}||dddjoN||d||dd||d||ddn||dddjoN||d||dd||d||ddn||dddjo)||d||ddnqW!|djo"t|djo)#||td||dIJng$t|djo)%||td||dIJn(&t|djo'|d IJnn)|d!joY*|t d"|d#}+|t d"|d#},||td$||IJn.|d%jow/|t d"|d#}0|t d"|d#}1|t d"|d#}2||td&|||IJn4|d'jow5|t d"|d#}6|t d"|d#}7|t d"|d#}8||td(|||IJn:|d)jow;|t d"|d#}<|t d"|d#}=|t d"|d#}>||td*|||IJn@|SdS(+Nszwo_libsmem_datasdroit_edit_dossieris.Vous n'avez pas les droits pour cette action !szwo_bos presentationszwo_urlssplitsurls/isskinsskinss index_htmlis/zwo_images/bo/szwo_infos absolute_urlisREQUESTsformskeysiselem_sappendselnp_iselmem_seditersediter_elements1L'edition en mmoire n'est pas encore possible...sdeplacersjoins*sdeplacer_elementssdetruiresdetruire_elementss dupliquersdupliquer_elementssrenommersrenommer_elements(s _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextsmemsprszwusstrings listrepurlsidskinszwuisrepsconfsrepurlsdicoselrpselokselnpselmmsksactionslensidobjssidobjsmsidobjsosidobjsn(sactions _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextsmemsprszwusstrings listrepurlsidskinszwuisrepsconfsrepurlsdicoselrpselokselnpselmmskslensidobjssidobjsmsidobjsosidobjsn((sScript (Python)s valid_selsj3 ?# $ @    !"%&"%&"*))#&&&(s valid_sel(s valid_sel((sScript (Python)ssqGU_bodyqHTqmem=context.zwo_lib.mem_data() if mem['droit_edit_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] listrepurl=string.split(string.split(mem['url'],zwu)[1],'/') if listrepurl[2]=='skin': return context.skins.index_html(mem) else: idskin=listrepurl[3] zwui=zwu+'/zwo_images/bo/' rep=context.zwo_info.skins[idskin] conf=rep repurl=string.split(rep.absolute_url(),zwu[:-5])[1] dico=context.REQUEST.form elrp=[] elok=[] elnp=[] elmm=[] for k in dico.keys(): if k[0:5]=='elem_': elok.append(k[5:]) elrp.append(k[5:]) if k[0:5]=='elnp_': elnp.append(k[5:]) elrp.append(k[5:]) if k[0:6]=='elmem_': elmm.append(k[6:]) if action=='editer': if len(elok)>0: print context.editer_element(elok[0]) elif len(elnp)>0: print context.editer_element(elnp[0]) elif len(elmm)>0: print 'L\'edition en mmoire n\'est pas encore possible...' if action=='deplacer': idobjs=string.join(elrp, '*') idobjsm=string.join(elmm, '*') print context.deplacer_elements(idobjs,idobjsm) if action=='detruire': idobjso=string.join(elok, '*') idobjsn=string.join(elnp, '*') idobjsm=string.join(elmm, '*') print context.detruire_elements(idobjso,idobjsn,idobjsm) if action=='dupliquer': idobjso=string.join(elok, '*') idobjsn=string.join(elnp, '*') idobjsm=string.join(elmm, '*') print context.dupliquer_elements(idobjso,idobjsn,idobjsm) if action=='renommer': idobjso=string.join(elok, '*') idobjsn=string.join(elnp, '*') idobjsm=string.join(elmm, '*') print context.renommer_elements(idobjso,idobjsn,idobjsm) return printed qIU Script_magicqJKUwarningsqK)UerrorsqL)U Python_magicqMU* qNu. jl((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Uhauteurq Ulargeurq Umargeq Ucadreq U couleurcadreqU couleurfondqU couleurtexteqUalignqUvalignqUcasesqU _getitem_qU_getitemqU _getattr_qU_getattrqUcontextqUmemqUprqUzwuqUstringqU listrepurlqUidskinqUzwuiqUrepq Uconfq!Urepurlq"Ulistpropq#U listpropvalq$Uvalq%Ulist_selected1q&U list_selectedq'UaUlUcaseq(Upropcaseq)Upropq*Unpq+Urangeq,Ulenq-Uidpq.Unewlq/Uligneq0tq1U co_argcountq2K ubU_paramsq3UThauteur,largeur,marge,cadre,couleurcadre,couleurfond,couleurtexte,align,valign,casesq4Uidq5U modifpropcasq6U__ac_local_roles__q7}q8Uxavq9]q:UOwnerq;asU_dav_writelocksq<(U lq=(U Persistenceq>UPersistentMappingq?tq@tqAQU _bind_namesqB(cShared.DC.Scripts.Bindings NameAssignments qCoqD}qEU_asgnsqF}qG(Uname_containerqHU containerqIU name_subpathqJUtraverse_subpathqKU name_m_selfqLUscriptqMU name_contextqNUcontextqOusbU func_defaultsqPNU_codeqQTi csdZdS(Nc )+s)t} t} | | tdd}| |ddjo dSn| | tdd}| |d}| td | | td | |d |dd }| |d d jo#| | tdd|Sn | |d} |d} | | | tdd|} |}| | td | |d| |dd d}dddddddddg }|||||||||g }| | tdd|}| td | d}g}x=|d r0}|d!jo| |d"|nqW| |d#}xp|d rc} d!}!| | d d$joJ | | |d%| }"!d&| |"d'd(| |"d)d }!n#| | |d*| }"%d!}#&xt$t%|d &r}&'|!|#| ||&d+}!(d }#)| ||&d,jo#*|!| |"| ||&}!n,|!| ||&}!q$W.g}'/| | d d$jo0xX|d 0rK}(1| td-|(d.| d/d jo| 2|'d"|(nqW| 3|'d"d.| d/|!n6xX|d 6rK}(7| td-|(d0| d/d jo| 8|'d"|(nq\W| 9|'d"d0| d/|!;|'}qsW| =|d1d#|| | | ?td2d3d4d5AdSdS(6Nszwo_libsmem_datasdroit_edit_dossieris.Vous n'avez pas les droits pour cette action !szwo_bos presentationszwo_urlssplitsurls/isskinsskinss index_htmlis/zwo_images/bo/szwo_infos absolute_urlishauteurslargeursmargescadres couleurcadres couleurfonds couleurtextesalignsvaligns tab_to_vals*issappendstableauxsTspcscolspan=scolspans /rowspan=srowspanspts=s######sfindsPC:s:sPT:smanage_changePropertiessREQUESTsRESPONSEsredirects./()s _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstrings listrepurlsidskinszwuisrepsconfsrepurlslistpropshauteurslargeursmargescadres couleurcadres couleurfonds couleurtextesalignsvaligns listpropvalsvalscasesslist_selected1s list_selectedsaslscasespropcasespropsnpsrangeslensidpsnewlsligne()shauteurslargeursmargescadres couleurcadres couleurfonds couleurtextesalignsvalignscasess _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstrings listrepurlsidskinszwuisrepsconfsrepurlslistprops listpropvalsvalslist_selected1s list_selectedsaslscasespropcasespropsnpsrangeslensidpsnewlsligne((sScript (Python)s modifpropcass`* ?# $ @$$!  / ! # .#.(s modifpropcas(s modifpropcas((sScript (Python)ssqRU_bodyqSTmem=context.zwo_lib.mem_data() if mem['droit_edit_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] listrepurl=string.split(string.split(mem['url'],zwu)[1],'/') if listrepurl[2]=='skin': return context.skins.index_html(mem) else: idskin=listrepurl[3] zwui=zwu+'/zwo_images/bo/' rep=context.zwo_info.skins[idskin] conf=rep repurl=string.split(rep.absolute_url(),zwu[:-5])[1] listprop=['hauteur','largeur','marge','cadre','couleurcadre','couleurfond','couleurtexte','align','valign'] listpropval=[hauteur,largeur,marge,cadre,couleurcadre,couleurfond,couleurtexte,align,valign] val=context.zwo_lib.tab_to_val(conf) list_selected1=string.split(cases,'*') list_selected=[] for a in list_selected1: if a<>'': list_selected.append(a) l=conf.tableaux for case in list_selected: propcase='' if case[0]<>'T': prop=val['pc'][case] propcase='colspan='+prop['colspan']+'/rowspan='+prop['rowspan']+'/' else: prop=val['pt'][case] np='' for idp in range(len(listprop)): propcase=propcase+np+listprop[idp]+'=' np='/' if listpropval[idp]=="######": propcase=propcase+prop[listprop[idp]] else: propcase=propcase+listpropval[idp] newl=[] if case[0]<>'T': for ligne in l: if string.find(ligne,'PC:'+case+':')==-1: newl.append(ligne) newl.append('PC:'+case+':'+propcase) else: for ligne in l: if string.find(ligne,'PT:'+case+':')==-1: newl.append(ligne) newl.append('PT:'+case+':'+propcase) l=newl conf.manage_changeProperties(tableaux=l) context.REQUEST.RESPONSE.redirect('./') return qTU Script_magicqUKUwarningsqV)UerrorsqW)U Python_magicqXU* qYu. jB((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Utabq Ucasesq Unbcq Unblq U_write_qU_writeqU _getitem_qU_getitemqU _getattr_qU_getattrqUcontextqUmemqUprqUzwuqUstringqU listrepurlqUidskinqUzwuiqUrepqUconfqUrepurlqUvalqUvtableq Ulist_selected1q!U list_selectedq"UaU firstcaseq#Uflq$Uctstrq%UlUfcq&UcUccstrq'Upremccq(Ucaseq)Unewccq*Uelemq+Unewlq,Uligneq-Upropcaseq.Uaddcaseq/U tabfusionq0Uligne_a_applatirq1Ucolonnes_a_applatirq2Utabfusq3Uapl_rowq4Udim_rowq5Udimlignq6Utypeq7UbUapl_colq8Udim_colq9Ulenq:Ulentabq;UdimcoloqUdecq?Ulistlignq@UnewctqAUfirstqBUpropqCUlistpropqDUrangeqEUiUstrqFUintqGUnewpcqHUktqIU co_argcountqJKubU_paramsqKUtab,cases,nbc,nblqLUidqMUfusionokqNU__ac_local_roles__qO}qPUxavqQ]qRUOwnerqSasU_dav_writelocksqT(U lqU(U PersistenceqVUPersistentMappingqWtqXtqYQU _bind_namesqZ(cShared.DC.Scripts.Bindings NameAssignments q[oq\}q]U_asgnsq^}q_(Uname_containerq`U containerqaU name_subpathqbUtraverse_subpathqcU name_contextqdUcontextqeU name_m_selfqfUscriptqgusbU func_defaultsqhNU_codeqiT$csdZdS(NcEKs t}t}t} | | tdd} || ddjo dSn| | tdd} || d} | t d || t d || d | dd }||d d jo#| | tdd| Sn ||d} | d} || | tdd|} |}|| t d | |d|| dd d}| | tdd|||d|}| t d |d}g}x=|dr0}|djo| |d|nqW||d|}d}d}d}x|dr} |djo !d}n#|d }$d}%x|d%r}&||joX'|djoD(|})|djo *d}n,|d}-||}nn8/|djo 0d}n2|d}3||}qWqpW5d} 6d}!7x|d7r}"8||d|"}#9x^|#d9rQ}$:|$djo;;|!djo <d}!n>| d } ?| |$} nqWqWA| |d}Bg}%CxX|dCrK}&D| t d|&d|d d jo| E|%d|&nq9W| G|%dd|d |H|%}Jx,|dJr}"Lg}%Nx|dNrz}&O| t d|&d!|"d d joIP| t d|&d"|"d d jo| Q|%d|&nnqWS|"|jojTd#}'U|'d$|d%|}'| V|%dd!|"d |'| W|%dd"|"d | nY|%}qW| [|d&d|]d'd(})d)}*d*}+| | tdd||)|},|*|,}-g}.x|-dr}g}/xM||,|dr7\}0}"|"|/j o| |/d|"nqWx)|/dr}1| |.d|1qWqW|)|},|+|,}2g}3t4|,}5x|2dr}g}6xV|,drI}7||7|\}0}"|"|6j o| |6d|"nqWx)|6dr}1| |3d|1qWqeWg}8x)|.dr}| |8d|qWx)|3dr}| |8d|qJWd+| |d}g}%x|dr}&| t d|&d|d d jo| t d |&d }9| t d ||9d d }:d|d };d}<x^|:drQ}|djo;|<djo d}<n|;d };|;|};nq4 W| |%d|;n| t d|&d!d jo~| t d |&d }9||9d|8jo0h}=| t d ||9d d }>xS|>drF}| t d |d,}$ ||$d||=||$d   '    **333;c st}g}d}x|dr}d}x6|dr)\}}|djo d}nqEW|djo||d|n|d}q'W|SdS(Niisoksappend( s _getattr_s_getattrsapplatirslignestabfusslisapplastypesnumcase( stabfuss _getattr_s_getattrsapplatirsligneslisapplastypesnumcase((sScript (Python)sligne_a_applatirs    c st}t}g}d}xtt||ddr} d} xH|dr;} || | \} } | djo d} nq`W| djo||d|n|d}qBW|SdS(Niisoksappend(s _getitem_s_getitems _getattr_s_getattrsapplatirscolonnesrangeslenstabfussisapplaslstypesnumcase(stabfuss _getitem_s_getitems _getattr_s_getattrsapplatirscolonnesrangeslensisapplaslstypesnumcase((sScript (Python)scolonnes_a_applatirs  * sX print val['ct'][tab] for ltf in tabfus: print ltf print dim_row print dim_col s=scountsrowspanscolspanskeyssREQUESTsRESPONSEsredirects./(Es_write_s_writes _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstrings listrepurlsidskinszwuisrepsconfsrepurlsvalstabsvtablescasesslist_selected1s list_selectedsas firstcasesflsctstrslsfcscsccstrspremccscasesnewccselemsnewlslignespropcasesnblsnbcsaddcases tabfusionsligne_a_applatirscolonnes_a_applatirstabfussapl_rowsdim_rowsdimlignstypesbsapl_colsdim_colslenslentabsdimcoloslisdim_allsdecslistlignsnewctsfirstspropslistpropsrangesisstrsintsnewpcsk(Estabscasessnbcsnbls_write_s_writes _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstrings listrepurlsidskinszwuisrepsconfsrepurlsvalsvtableslist_selected1s list_selectedsas firstcasesflsctstrslsfcscsccstrspremccscasesnewccselemsnewlslignespropcasesaddcases tabfusionsligne_a_applatirscolonnes_a_applatirstabfussapl_rowsdim_rowsdimlignstypesbsapl_colsdim_colslenslentabsdimcoloslisdim_allsdecslistlignsnewctsfirstspropslistpropsrangesisstrsintsnewpcsk((saddcasesvalsScript (Python)sfusionoks$0 ?# $ @!                 .  +. "# '$ !  $    +$   # $)3434 !  %(sfusionok(sfusionok((sScript (Python)ssqjU_bodyqkTqmem=context.zwo_lib.mem_data() if mem['droit_edit_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] listrepurl=string.split(string.split(mem['url'],zwu)[1],'/') if listrepurl[2]=='skin': return context.skins.index_html(mem) else: idskin=listrepurl[3] zwui=zwu+'/zwo_images/bo/' rep=context.zwo_info.skins[idskin] conf=rep repurl=string.split(rep.absolute_url(),zwu[:-5])[1] val=context.zwo_lib.tab_to_val(conf) vtable=val['ct'][tab] list_selected1=string.split(cases,'*') list_selected=[] for a in list_selected1: if a<>'': list_selected.append(a) vtable=val['ct'][tab] firstcase='' fl=1 ctstr='' for l in vtable: if fl==1: fl=0 else: ctstr=ctstr+'/' fc=1 for c in l: if c in list_selected: if firstcase=='': firstcase=c if fc==1: fc=0 else: ctstr=ctstr+'-' ctstr=ctstr+c else: if fc==1: fc=0 else: ctstr=ctstr+'-' ctstr=ctstr+c ccstr='' premcc=1 for case in list_selected: newcc=val['cc'][case] for elem in newcc: if elem<>'': if premcc==1: premcc=0 else: ccstr=ccstr+'/' ccstr=ccstr+elem l=conf.tableaux newl=[] for ligne in l: if string.find(ligne,'CT:'+tab+':')==-1: newl.append(ligne) newl.append('CT:'+tab+':'+ctstr) l=newl for case in list_selected: newl=[] for ligne in l: if string.find(ligne,'PC:'+case+':')==-1: if string.find(ligne,'CC:'+case+':')==-1: newl.append(ligne) if case==firstcase: propcase='hauteur=/largeur=/marge=/cadre=/couleurcadre=/couleurfond=/couleurtexte=/align=/valign=/' propcase=propcase+'rowspan='+nbl+'/colspan='+nbc newl.append('PC:'+case+':'+propcase) newl.append('CC:'+case+':'+ccstr) l=newl conf.manage_changeProperties(tableaux=l) def addcase(tab,ligne,colonne,data,vide): #test si la ligne existe if len(tab)>ligne: #la ligne existe lign=tab[ligne] #test si la collone existe if len(lign)>colonne: #la colonne existe lign[colonne]=data tab[ligne]=lign else: #la colonne n'existe pas #test si l'on doit crer des cellules vides acreer=len(lign)-colonne-1 if acreer>0: for a in range(acreer): lign.append(vide) lign.append(data) tab[ligne]=lign else: # la ligne n'existe pas lign=[] #calcul du nombre de cellule vide a crer if colonne>0: for a in range(colonne): lign.append(vide) lign.append(data) tab.append(lign) return tab def tabfusion(tab): ret=[] i_l=0 for ligne in val['ct'][tab]: i_c=0 for case in ligne: if case<>'': ok=0 while ok==0: ok=1 if len(ret)>i_l: ltmp=ret[i_l] if len(ltmp)>i_c: (actu,casa)=ltmp[i_c] if actu<>'no': i_c=i_c+1 ok=0 r_sp=int(val['pc'][case]['rowspan']) c_sp=int(val['pc'][case]['colspan']) for spl in range(r_sp): for spc in range(c_sp): if spl==0 and spc==0: ret=addcase(ret,i_l+spl,i_c+spc,('ok',case),('no','no')) if spl==0 and spc<>0: ret=addcase(ret,i_l+spl,i_c+spc,('c',case),('no','no')) if spl<>0 and spc==0: ret=addcase(ret,i_l+spl,i_c+spc,('r',case),('no','no')) if spl<>0 and spc<>0: ret=addcase(ret,i_l+spl,i_c+spc,('cr',case),('no','no')) i_c=i_c+1 i_l=i_l+1 return ret def ligne_a_applatir(tabfus): applatir=[] ligne=0 for li in tabfus: appla=1 for (type,numcase) in li: if type=='ok': appla=0 if appla==1: applatir.append(ligne) ligne=ligne+1 return applatir def colonnes_a_applatir(tabfus): applatir=[] colonne=0 for i in range(len(tabfus[0])): appla=1 for l in tabfus: (type,numcase)=l[i] if type=='ok': appla=0 if appla==1: applatir.append(colonne) colonne=colonne+1 return applatir val=context.zwo_lib.tab_to_val(conf) tabfus=tabfusion(tab) apl_row=ligne_a_applatir(tabfus) dim_row=[] for a in apl_row: dimlign=[] for (type, case) in tabfus[a]: if not case in dimlign: dimlign.append(case) for b in dimlign: dim_row.append(b) tabfus=tabfusion(tab) apl_col=colonnes_a_applatir(tabfus) dim_col=[] lentab=len(tabfus) for a in apl_col: dimcolo=[] for li in tabfus: (type, case)=li[a] if not case in dimcolo: dimcolo.append(case) for b in dimcolo: dim_col.append(b) dim_all=[] for a in dim_row: dim_all.append(a) for a in dim_col: dim_all.append(a) """ print val['ct'][tab] for ltf in tabfus: print ltf print dim_row print dim_col """ l=conf.tableaux newl=[] for ligne in l: if string.find(ligne,'CT:'+tab+':')<>-1: dec=string.split(ligne,':') listlign=string.split(dec[2],'/') newct='CT:'+tab+':' first=0 for a in listlign: if a<>'': if first==0: first=1 else: newct=newct+'/' newct=newct+a newl.append(newct) elif string.find(ligne,'PC:')<>-1: dec=string.split(ligne,':') if dec[1] in dim_all: prop={} listprop=string.split(dec[2],'/') for a in listprop: elem=string.split(a,'=') prop[elem[0]]=elem[1] if dec[1] in dim_row: for i in range(dim_row.count(dec[1])): prop['rowspan']=str(int(prop['rowspan'])-1) if dec[1] in dim_col: for i in range(dim_col.count(dec[1])): prop['colspan']=str(int(prop['colspan'])-1) newpc='PC:'+dec[1]+':' first=0 for k in prop.keys(): if first==0: first=1 else: newpc=newpc+'/' newpc=newpc+k+'='+prop[k] newl.append(newpc) else: newl.append(ligne) else: newl.append(ligne) l=newl conf.manage_changeProperties(tableaux=l) context.REQUEST.RESPONSE.redirect('./') return qlU Script_magicqmKUwarningsqn)Uerrorsqo)U Python_magicqpU* qqu. j((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Uobjq Ucaseq Uprevq Uobjmemq U _getitem_qU_getitemqU _getattr_qU_getattrqUcontextqUmemqUprqUzwuqUstringqU listrepurlqUidskinqUzwuiqUrepqUconfqUrepurlqUrepuserqU idobjs_tmpqUidobjsqUiU idobjsmem_tmpq U idobjsmemq!Uallidobjq"Urepidsq#Umemidsq$UlUl2q%Uligneq&Udecq'Ucasq(Unewlq)Upremsq*Ulistidsq+Uunidq,Ulfinq-Uplokq.tq/U co_argcountq0KubU_paramsq1Uobj, case, prev="", objmem=""q2Uidq3Uplaceokq4U__ac_local_roles__q5}q6Uxavq7]q8UOwnerq9asU_dav_writelocksq:(U lq;(U Persistenceqtq?QU _bind_namesq@(cShared.DC.Scripts.Bindings NameAssignments qAoqB}qCU_asgnsqD}qE(Uname_containerqFU containerqGU name_subpathqHUtraverse_subpathqIU name_m_selfqJUscriptqKU name_contextqLUcontextqMusbU func_defaultsqN(UUtqOU_codeqPTcsdddZdS(Nsc'<st}t}||tdd} || ddjo dSn||tdd} || d} |td ||td || d | dd } || d d jo#||tdd| Sn || d} | d} |||tdd|} |}||td ||d|| dd d}|| d}|td |d}g}x=|dr0}|djo||d|nqW|td |d}g}x=|dr0}|djo||d|nq.Wg}x>|dr1} ||j o|!|d|nqzW"x>|d"r1}#||j o|$|d|nqW&||d}(d||ddjo")|||dd}n |+|dd,g}0g}1||d}2x`|d2rS}3|td|d d jo|4|d|n6|td |d!}7||d} 8||dd!||dd!}!9d}":|td ||d d }#;xs|#d;rf}$<|$djoP=|$|j o;>|"djo ?d}"nA|!d }!B|!|$}!nnqeW|C|d|!qW|E|d"d|I|d#jo[JxQ|dJrD}|Ktd$|||d||L|d%|gq!WnaNxZ|dNrM}|Otd$||d||||P|dd%|gq|WS|d#jo |d&joTg}%Ud}&Vxt|dVrg}W|td|d |d!d jo|X|%d|nZ|td |d!}[||d} \||dd!||dd!}!^|td ||d d }#_d}"`|djo]axJ|dar=}b|"djo cd}"ne|!d }!f|!|}!qWgd}&nix|#dir}$j|$djok|"djo ld}"nn|!d }!o|!|$}!p||$jo@qx-|dqr }r|!d }!s|!|}!qWtd}&nnqSWu|&djoTvxJ|dvr=}w|"djo xd}"nz|!d }!{|!|}!qWn|}|%d|!q W||d"d|%n|||td'd(d)d*dSdS(+Nszwo_libsmem_datasdroit_edit_dossieris.Vous n'avez pas les droits pour cette action !szwo_bos presentationszwo_urlssplitsurls/isskinsskinss index_htmlis/zwo_images/bo/szwo_infos absolute_urlis user_zw_objs*issappends objectIdssmem_cutsFoldersmanage_addFolderstableauxsfindsCC:s:smanage_changePropertiessmemszwo_cpysmanage_delObjectssnosREQUESTsRESPONSEsredirects./('s _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstrings listrepurlsidskinszwuisrepsconfsrepurlsrepusersobjs idobjs_tmpsidobjssisobjmems idobjsmem_tmps idobjsmemsallidobjsrepidssmemidsslsl2slignesdecscassnewlspremsslistidssunidscaseslfinsploksprev('sobjscasesprevsobjmems _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstrings listrepurlsidskinszwuisrepsconfsrepurlsrepusers idobjs_tmpsidobjssis idobjsmem_tmps idobjsmemsallidobjsrepidssmemidsslsl2slignesdecscassnewlspremsslistidssunidslfinsplok((sScript (Python)splaceoks* ?# $ @   %  &' $  %(   .'$          #(splaceok(splaceok((sScript (Python)ssqQU_bodyqRTb mem=context.zwo_lib.mem_data() if mem['droit_edit_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] listrepurl=string.split(string.split(mem['url'],zwu)[1],'/') if listrepurl[2]=='skin': return context.skins.index_html(mem) else: idskin=listrepurl[3] zwui=zwu+'/zwo_images/bo/' rep=context.zwo_info.skins[idskin] conf=rep repurl=string.split(rep.absolute_url(),zwu[:-5])[1] repuser=mem['user_zw_obj'] idobjs_tmp=string.split(obj,'*') idobjs=[] for i in idobjs_tmp: if i<>'': idobjs.append(i) idobjsmem_tmp=string.split(objmem,'*') idobjsmem=[] for i in idobjsmem_tmp: if i<>'': idobjsmem.append(i) allidobj=[] for i in idobjs: if not i in allidobj: allidobj.append(i) for i in idobjsmem: if not i in allidobj: allidobj.append(i) repids=rep.objectIds() if 'mem_cut' in repuser.objectIds('Folder'): memids=repuser['mem_cut'].objectIds() else: repuser.manage_addFolder('mem_cut') memids=[] #ETAPE 1 : enlever les ids correspondant dans le positionement actuel de conf l=[] l2=conf.tableaux for ligne in l2: if string.find(ligne,'CC:')==-1: l.append(ligne) else: dec=string.split(ligne,':') cas=dec[1] newl=dec[0]+':'+dec[1]+':' prems=0 listids=string.split(dec[2],'/') for unid in listids: if unid<>'': if not unid in idobjs: if prems==0: prems=1 else: newl=newl+'/' newl=newl+unid l.append(newl) conf.manage_changeProperties(tableaux=l) #ETAPE 2 : dplacer les modules ci necessaire... if case=="mem": for i in idobjs: context.zwo_cpy(rep,repuser['mem_cut'],i) rep.manage_delObjects([i]) else: for i in idobjsmem: context.zwo_cpy(repuser['mem_cut'],rep,i) repuser['mem_cut'].manage_delObjects([i]) #ETAPE 3 : enregistrer la nouvelle position... if case<>"mem" and case<>"no": lfin=[] plok=0 for ligne in l: if string.find(ligne,'CC:'+case+':')==-1: lfin.append(ligne) else: dec=string.split(ligne,':') cas=dec[1] newl=dec[0]+':'+dec[1]+':' listids=string.split(dec[2],'/') prems=0 if prev=='': for i in allidobj: if prems==0: prems=1 else: newl=newl+'/' newl=newl+i plok=1 for unid in listids: if unid<>'': if prems==0: prems=1 else: newl=newl+'/' newl=newl+unid if prev==unid: for i in allidobj: newl=newl+'/' newl=newl+i plok=1 if plok==0: for i in allidobj: if prems==0: prems=1 else: newl=newl+'/' newl=newl+i lfin.append(newl) conf.manage_changeProperties(tableaux=lfin) context.REQUEST.RESPONSE.redirect('./') return qSU Script_magicqTKUwarningsqU)UerrorsqV)U Python_magicqWU* qXu. j((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Uidobjsoq Uidobjsnq Uidobjsmq U _getitem_q U_getitemqU _getattr_qU_getattrqUcontextqUmemqUprqUzwuqUstringqUdecqUlenqU listrepurlqUidskinqUzwuiqUrepqUconfqUrepurlqUrepuserqUvidetmpqUidsoq Uidsnq!Uidsmq"Uidso2q#UaUlUl2q$Uligneq%Ucasq&Unewlq'Upremsq(Ulistidsq)Uunidq*tq+U co_argcountq,KubU_paramsq-Uidobjso,idobjsn,idobjsmq.Uidq/U detruireokq0U__ac_local_roles__q1}q2Uxavq3]q4UOwnerq5asU_dav_writelocksq6(U lq7(U Persistenceq8UPersistentMappingq9tq:tq;QU _bind_namesq<(cShared.DC.Scripts.Bindings NameAssignments q=oq>}q?U_asgnsq@}qA(Uname_containerqBU containerqCU name_subpathqDUtraverse_subpathqEU name_m_selfqFUscriptqGU name_contextqHUcontextqIusbU func_defaultsqJNU_codeqKT csdZdS(Nc#+st}t}||tdd}||ddjo dSn||tdd} ||d} |td ||d | } t | djo4|td ||d |td } n |td || dd } ||d djo# ||tdd|Sn ||d}| d}|||tdd|}|}||td ||d|| dd d}||d}d}||td |d}||td |d}||td |d} g}!x)|d!r}|"|d|qnW$t |djo|%|d|n&t |djo|'|d|n(t |djo#||)|dd|n+g},||d}-x`|d-rS}.|td|dd jo|/|d|n1|td |d } 2|| d}3|| dd || dd }4d} 5|td || d d }!6xs|!d6rf}"7|"d!joP8|"|j o;9| djo :d} n<|d }=||"}nnq$W|>|d|qQW|@|d"d||||Atd#d$d%d&CdSdS('Nszwo_libsmem_datasdroit_edit_dossieris.Vous n'avez pas les droits pour cette action !szwo_bos presentationszwo_urlssplitsurlsacl_urls/isskinsskinss index_htmlis/zwo_images/bo/szwo_infos absolute_urlis user_zw_objcs`t}g}x=|dr0}|djo||d|nqW|SdS(Nissappend(s _getattr_s_getattrsnwsoldsel(solds _getattr_s_getattrsnwsel((sScript (Python)svidetmps  s*isappendsmanage_delObjectssmem_cutstableauxsfindsCC:s:ssmanage_changePropertiessREQUESTsRESPONSEsredirects./(#s _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstringsdecslens listrepurlsidskinszwuisrepsconfsrepurlsrepusersvidetmpsidobjsosidsosidobjsnsidsnsidobjsmsidsmsidso2saslsl2slignescassnewlspremsslistidssunid(#sidobjsosidobjsnsidobjsms _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstringsdecslens listrepurlsidskinszwuisrepsconfsrepurlsrepusersvidetmpsidsosidsnsidsmsidso2saslsl2slignescassnewlspremsslistidssunid((sScript (Python)s detruireoksd* $4$# $ @ !!!  &' $  (s detruireok(s detruireok((sScript (Python)ssqLU_bodyqMTmem=context.zwo_lib.mem_data() if mem['droit_edit_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] dec=string.split(mem['url'],zwu) if len(dec)==1: dec=string.split(mem['url'],context.acl_url()) listrepurl=string.split(dec[1],'/') if listrepurl[2]=='skin': return context.skins.index_html(mem) else: idskin=listrepurl[3] zwui=zwu+'/zwo_images/bo/' rep=context.zwo_info.skins[idskin] conf=rep repurl=string.split(rep.absolute_url(),zwu[:-5])[1] repuser=mem['user_zw_obj'] def videtmp(old): nw=[] for el in old: if el<>'': nw.append(el) return nw idso=videtmp(string.split(idobjso,'*')) idsn=videtmp(string.split(idobjsn,'*')) idsm=videtmp(string.split(idobjsm,'*')) idso2=[] for a in idso: idso2.append(a) if len(idso)>0: rep.manage_delObjects(idso) if len(idsn)>0: rep.manage_delObjects(idsn) if len(idsm)>0: repuser['mem_cut'].manage_delObjects(idsm) l=[] l2=conf.tableaux for ligne in l2: if string.find(ligne,'CC:')==-1: l.append(ligne) else: dec=string.split(ligne,':') cas=dec[1] newl=dec[0]+':'+dec[1]+':' prems=0 listids=string.split(dec[2],'/') for unid in listids: if unid<>'': if not unid in idso2: if prems==0: prems=1 else: newl=newl+'/' newl=newl+unid l.append(newl) conf.manage_changeProperties(tableaux=l) context.REQUEST.RESPONSE.redirect('./') return qNU Script_magicqOKUwarningsqP)UerrorsqQ)U Python_magicqRU* qSu. j((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Uidobjsoq Uidobjsnq Uidobjsmq U _getitem_q U_getitemqU _getattr_qU_getattrqUcontextqUmemqUprqUzwuqUstringqU listrepurlqUidskinqUzwuiqUrepqUconfqUrepuserqUheadqUspmqUmidqUspeqUfootq U listiconesq!Uprntq"Utitreq#Uhtmlq$UlUitq%U co_argcountq&KubU_paramsq'Uidobjso,idobjsn,idobjsmq(Uidq)Udupliquer_elementsq*U__ac_local_roles__q+}q,Uxavq-]q.UOwnerq/asU_dav_writelocksq0(U lq1(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 csdZdS(Ncs8t}t}||tdd}||tdd} ||d} |td||td||d| dd } || d d jo#||td d |Sn|| d}  | d} |||tdd | } |} ||d}||tdd|| d d| \}}}}}||||tdddd}|}d|| dd}|||tdd| | d|}||}||}d}|d}|td|d} x|d  r}!|d!jo"|d"}#|||||d#}$|d$}%|d%|d&||||d#d'}&|d(}nqHW(|td|d})x|d )r}*|d!jo+|d"},|||||d#}-|d$}.|d)|d&||||d#d'}/|d(}nq W0|td|d}1x|d 1r}2|d!jo3|d"}4|||||d*|d#}5|d$}6|d+|d&||||d*|d#d'}7|d(}nqW9|d,};|d-|d'}<|d.|d'}=|d/|d'}>|d0}?|d1}B|||tdd2| | d3d4|}C||}D||}F|SdS(5Nszwo_libsmem_dataszwo_bos presentationszwo_urlssplitsurlis/isskinsskinss index_htmlis/zwo_images/bo/szwo_infos user_zw_objsautoursEdition du skin s zwo_imagessiconess logo_elementss objectIdssRETOUR CONTENUsmenusnavs)
s2s*iss3ssseditionselementsDUPLIQUER LES ELEMENTS(s _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstrings listrepurlsidskinszwuisrepsconfsrepusersheadsspmsmidsspesfoots listiconessprntstitreshtmlsidobjsoslsisidobjsnsidobjsm(sidobjsosidobjsnsidobjsms _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstrings listrepurlsidskinszwuisrepsconfsrepusersheadsspmsmidsspesfoots listiconessprntstitreshtmlslsi((sScript (Python)sdupliquer_elementssj*?# $ =0 .     " 2 " 2 + ;   1  (sdupliquer_elements(sdupliquer_elements((sScript (Python)ssqFU_bodyqGT- mem=context.zwo_lib.mem_data() pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] listrepurl=string.split(string.split(mem['url'],zwu)[1],'/') if listrepurl[2]=='skin': return context.skins.index_html(mem) else: idskin=listrepurl[3] zwui=zwu+'/zwo_images/bo/' rep=context.zwo_info.skins[idskin] conf=rep repuser=mem['user_zw_obj'] # AFFICHAGE DU BANDEAU HAUT (head,spm,mid,spe,foot)=context.zwo_bo.autour(mem,pr,'skin','Edition du skin '+idskin) listicones=context.zwo_images.icones.logo_elements.objectIds() prnt=head titre='RETOUR CONTENU' prnt=prnt+context.zwo_bo.menu(zwu,pr,'nav',titre) prnt=prnt+spm prnt=prnt+mid html='
' html=html+'
s title_or_ids@ ss
' l=string.split(idobjso,'*') for i in l: if i<>'': html=html+'' l=string.split(idobjsn,'*') for i in l: if i<>'': html=html+'' l=string.split(idobjsm,'*') for i in l: if i<>'': html=html+'' html=html+'
' html=html+rep[i].title_or_id() html=html+' ' html=html+'' html=html+'
' html=html+rep[i].title_or_id() html=html+' ' html=html+'' html=html+'
' html=html+repuser['mem_cut'][i].title_or_id() html=html+' ' html=html+'' html=html+'
' html=html+'' html=html+'' html=html+'' html=html+'' html=html+'' prnt=prnt+context.zwo_bo.edition(zwu,pr,'element','DUPLIQUER LES ELEMENTS',html) prnt=prnt+spe prnt=prnt+foot return prnt qHU Script_magicqIKUwarningsqJ)UerrorsqK)U Python_magicqLU* qMu. j2((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Utabq Unumq U_write_q U_writeq U _getitem_qU_getitemqU _getattr_qU_getattrqUcontextqUmemqUprqUzwuqUstringqUdecqUlenqU listrepurlqUidskinqUzwuiqUrepqUconfqUvalqUligneqUtableq Uaddcaseq!U tabfusionq"Uvtableq#UlU numcasemaxq$Uvligneq%Ul3q&Uintq'Utabfusq(Unewpcccq)Ustrctq*Udimrowpcq+Ufirstq,Ulineq-UcUrangeq.Ui_cq/Ustrq0U firstligneq1Uilq2Ufaitq3U infoligneq4Uinfocaseq5Utypeq6Ucasq7Unewlq8Upropq9Ulistpropq:UaUelemq;UnewpcqKubU_paramsq?Utab,numq@UidqAU addligneokqBU__ac_local_roles__qC}qDUxavqE]qFUOwnerqGasU_dav_writelocksqH(U lqI(U PersistenceqJUPersistentMappingqKtqLtqMQU _bind_namesqN(cShared.DC.Scripts.Bindings NameAssignments qOoqP}qQU_asgnsqR}qS(Uname_containerqTU containerqUU name_subpathqVUtraverse_subpathqWU name_contextqXUcontextqYU name_m_selfqZUscriptq[usbU func_defaultsq\NU_codeq]TcsdZdS(Nc73s+ t}t}t}||tdd} || ddjo dSn||tdd} || d} |t d || d | } t | djo4|t d || d |td } n |t d || dd } ||d djo# ||tdd| Sn ||d}| d}|||tdd|}|}||tdd||}|}d=d}`||d|}c||d}ed}fx|dfr}g|t d|dd joch|t d |d}it|||ddd}j||jo k|}nnq1Wm||}og} pd|d}!qg}"st|}u|t |jo'wd}#yxy|dyrl}$zd}#{xJ|$d{r=}%||#djo }d}#n|!d}!|!|%}!qNW|!d }!q0Wd}#xt&t ||ddrj}'|d}|| d||#djo d}#n|!d}!|!d t(|}!qWnd})d}*d}+x|dr}$|*|jo|)djo d})n|!d }!d}+|||},d}#x|,dr}-|-\}.}/|.d!jp |.d"jo||"d|/ne|d}|| d||#djo d}#n|!d}!|!d t(|}!qWn|)djo d})n|!d }!d}#xJ|$dr=}%|#djo d}#n|!d}!|!|%}!qW|*d}*qiWg}0x;|dr.}|t d|d|dd jo||0d|!n|t d|d#d jo|t d |d} || d|"jo\h}1|t d || d d }2xS|2drF}3|t d |3d$}4||4d||1||4dg}?d}@x||d|d@r}Ad}Bx|dBr}C|djoDd} FxF| djoGd} Ht ||jorI|||} Jt | |joFK|| |\} } L| djoM|d}Nd} nnnqWPt|||d|d}Qt|||d|d}Rxxt|dRre}SxYt|dSrF}T|djo |djo3U|||||d |fddf}nV|djo |djo3W|||||d |fddf}nX|djo |djo3Y|||||d |fddf}nZ|djo |djo3[|||||d |fddf}nqWqW\|d}nqWW]|d}q9W^|SdS( Nisctsisnospcsrowspanscolspansokscsrscr(s _getitem_s_getitemsretsi_lsvalstabslignesi_cscasesokslensltmpsactuscasasintsr_spsc_spsrangessplsspcsaddcase(stabs _getitem_s_getitemsretsi_lsvalslignesi_cscasesokslensltmpsactuscasasintsr_spsc_spsrangessplsspcsaddcase(svalsaddcase(sScript (Python)s tabfusion=s>   '    **333;sctstableauxisfindsCC:s:sCT:s-sappendsCsrscrsPC:s=srowspanskeyssPC:Csl:hauteur=/largeur=/marge=/cadre=/couleurcadre=/couleurfond=/couleurtexte=/align=/valign=/rowspan=1/colspan=1sCC:Csmanage_changePropertiessREQUESTsRESPONSEsredirects modif_li_co(7s_write_s_writes _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstringsdecslens listrepurlsidskinszwuisrepsconfsvalsnumslignestabstablesaddcases tabfusionsvtablesls numcasemaxsvlignesl3sintstabfussnewpcccsstrctsdimrowpcsfirstslinescsrangesi_csstrs firstlignesilsfaits infolignesinfocasestypescassnewlspropslistpropsaselemsnewpcsk(7stabsnums_write_s_writes _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstringsdecslens listrepurlsidskinszwuisrepsconfsvalslignestablesaddcases tabfusionsvtablesls numcasemaxsvlignesl3sintstabfussnewpcccsstrctsdimrowpcsfirstslinescsrangesi_csstrs firstlignesilsfaits infolignesinfocasestypescassnewlspropslistpropsaselemsnewpcsk((saddcasesvalsScript (Python)s addligneoks0 $4$# $ !   &# #'       *                  .# $), !  %$% (s addligneok(s addligneok((sScript (Python)ssq^U_bodyq_Tamem=context.zwo_lib.mem_data() if mem['droit_edit_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] dec=string.split(mem['url'],zwu) if len(dec)==1: dec=string.split(mem['url'],context.acl_url()) listrepurl=string.split(dec[1],'/') if listrepurl[2]=='skin': return context.skins.index_html(mem) else: idskin=listrepurl[3] zwui=zwu+'/zwo_images/bo/' rep=context.zwo_info.skins[idskin] conf=rep val=context.zwo_lib.tab_to_val(conf) ligne=num table=tab def addcase(tab,ligne,colonne,data,vide): #test si la ligne existe if len(tab)>ligne: #la ligne existe lign=tab[ligne] #test si la collone existe if len(lign)>colonne: #la colonne existe lign[colonne]=data tab[ligne]=lign else: #la colonne n'existe pas #test si l'on doit crer des cellules vides acreer=len(lign)-colonne-1 if acreer>0: for a in range(acreer): lign.append(vide) lign.append(data) tab[ligne]=lign else: # la ligne n'existe pas lign=[] #calcul du nombre de cellule vide a crer if colonne>0: for a in range(colonne): lign.append(vide) lign.append(data) tab.append(lign) return tab def tabfusion(tab): ret=[] i_l=0 for ligne in val['ct'][tab]: i_c=0 for case in ligne: if case<>'': ok=0 while ok==0: ok=1 if len(ret)>i_l: ltmp=ret[i_l] if len(ltmp)>i_c: (actu,casa)=ltmp[i_c] if actu<>'no': i_c=i_c+1 ok=0 r_sp=int(val['pc'][case]['rowspan']) c_sp=int(val['pc'][case]['colspan']) for spl in range(r_sp): for spc in range(c_sp): if spl==0 and spc==0: ret=addcase(ret,i_l+spl,i_c+spc,('ok',case),('no','no')) if spl==0 and spc<>0: ret=addcase(ret,i_l+spl,i_c+spc,('c',case),('no','no')) if spl<>0 and spc==0: ret=addcase(ret,i_l+spl,i_c+spc,('r',case),('no','no')) if spl<>0 and spc<>0: ret=addcase(ret,i_l+spl,i_c+spc,('cr',case),('no','no')) i_c=i_c+1 i_l=i_l+1 return ret vtable=val['ct'][table] l=conf.tableaux numcasemax=0 for vligne in l: if string.find(vligne,'CC:')<>-1: l3=string.split(vligne,':') num=int(l3[1][1:]) if num>numcasemax: numcasemax=num tabfus=tabfusion(table) newpccc=[] strct="CT:"+table+":" dimrowpc=[] ligne=int(ligne) if ligne==len(tabfus): first=0 for line in vtable: first=0 for c in line: if first==0: first=1 else: strct=strct+'-' strct=strct+c strct=strct+'/' first=0 for i_c in range(len(tabfus[0])): numcasemax=numcasemax+1 newpccc.append(numcasemax) if first==0: first=1 else: strct=strct+'-' strct=strct+'C'+str(numcasemax) else: firstligne=0 il=0 fait=0 for line in vtable: if il==ligne: if firstligne==0: firstligne=1 else: strct=strct+'/' fait=1 infoligne=tabfus[ligne] first=0 for infocase in infoligne: (type,cas)=infocase if type=='r' or type=='cr': dimrowpc.append(cas) else: numcasemax=numcasemax+1 newpccc.append(numcasemax) if first==0: first=1 else: strct=strct+'-' strct=strct+'C'+str(numcasemax) if firstligne==0: firstligne=1 else: strct=strct+'/' first=0 for c in line: if first==0: first=1 else: strct=strct+'-' strct=strct+c il=il+1 # Nouveaux PC et CC #newpccc=[] # New CT #strct="CT:"+table+":" # PC a modifier #dimrowpc=[] newl=[] for ligne in l: if string.find(ligne,'CT:'+table+':')<>-1: newl.append(strct) elif string.find(ligne,'PC:')<>-1: dec=string.split(ligne,':') if dec[1] in dimrowpc: prop={} listprop=string.split(dec[2],'/') for a in listprop: elem=string.split(a,'=') prop[elem[0]]=elem[1] prop['rowspan']=str(int(prop['rowspan'])+1) newpc='PC:'+dec[1]+':' first=0 for k in prop.keys(): if first==0: first=1 else: newpc=newpc+'/' newpc=newpc+k+'='+prop[k] newl.append(newpc) else: newl.append(ligne) else: newl.append(ligne) for a in newpccc: newl.append('PC:C'+str(a)+':hauteur=/largeur=/marge=/cadre=/couleurcadre=/couleurfond=/couleurtexte=/align=/valign=/rowspan=1/colspan=1') newl.append('CC:C'+str(a)+':') l=newl conf.manage_changeProperties(tableaux=l) context.REQUEST.RESPONSE.redirect('modif_li_co') return q`U Script_magicqaKUwarningsqb)Uerrorsqc)U Python_magicqdU* qeu. j((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Uhauteurq Ulargeurq Umargeq Ucadreq U couleurcadreqU couleurfondqU couleurtexteqUalignqUdechqUdecvqU couleurpageqUimageqUnewimageqU _getitem_qU_getitemqU _getattr_qU_getattrqUcontextqUmemqUprqUzwuqUstringqU listrepurlq Uidskinq!Uzwuiq"Urepq#Uconfq$Urepurlq%Ulistpropq&U listpropvalq'Uvalq(UlUcaseq)Upropcaseq*Upropq+Unpq,Urangeq-Ulenq.Uidpq/Unewlq0Uligneq1U titre_dataq2Uhasattrq3Ufilenameq4Umaxq5Uproppageq6tq7U co_argcountq8K ubU_paramsq9Uqhauteur,largeur,marge,cadre,couleurcadre,couleurfond,couleurtexte,align,dech,decv,couleurpage,image,newimage=Noneq:Uidq;U modifproptabqUxavq?]q@UOwnerqAasU_dav_writelocksqB(U lqC(U PersistenceqDUPersistentMappingqEtqFtqGQU _bind_namesqH(cShared.DC.Scripts.Bindings NameAssignments qIoqJ}qKU_asgnsqL}qM(Uname_containerqNU containerqOU name_subpathqPUtraverse_subpathqQU name_contextqRUcontextqSU name_m_selfqTUscriptqUusbU func_defaultsqV(NtqWU_codeqXT cstdZdS(Nc .&st}t}||tdd}||ddjo dSn||tdd}||d}|td ||td ||d |dd }||d d jo#||tdd|Sn ||d} |d} |||tdd|}|}||td ||d||dd d}dddddddddg }|||||||ddg }||tdd|}||d }d!} d"}!|||d#| }"d"}#xtt|d$r}&|!|#|||&d%}!d }#|||&djo# |!||"|||&}!n"|!|||&}!qNW$g}'%xX|d$%rK}(&|td&|(d'| d(d jo|'|'d)|(nqW|(|'d)d'| d(|!*|'}|,|d*d |.| o/t|| d+d$jo0d"})1t%| d,oz2|| d,}+3||+t'|td-|+d |4td-|+d.|5td-|+d(dd})n8|)} ||||9tdd/d0d1| | | nn<d2|d3|d4| d5| d6| }-|>|d*d7|-|||Atd8d9d:d;CdSdS(<Nszwo_libsmem_datasdroit_edit_dossieris.Vous n'avez pas les droits pour cette action !szwo_bos presentationszwo_urlssplitsurls/isskinsskinss index_htmlis/zwo_images/bo/szwo_infos absolute_urlishauteurslargeursmargescadres couleurcadres couleurfonds couleurtextesalignsvaligns######s tab_to_valstableauxsT1ssptis=sfindsPT:s:sappendsmanage_changePropertiessreadsfilenamesrfinds\simagessfondssmanage_addImagesalign=s/dech=s/decv=s /couleurpage=s/image=spagesREQUESTsRESPONSEsredirects./(.s _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstrings listrepurlsidskinszwuisrepsconfsrepurlslistpropshauteurslargeursmargescadres couleurcadres couleurfonds couleurtextes listpropvalsvalslscasespropcasespropsnpsrangeslensidpsnewlslignesnewimages titre_datashasattrsfilenamesmaxsimagesalignsdechsdecvs couleurpagesproppage(.shauteurslargeursmargescadres couleurcadres couleurfonds couleurtextesalignsdechsdecvs couleurpagesimagesnewimages _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstrings listrepurlsidskinszwuisrepsconfsrepurlslistprops listpropvalsvalslscasespropcasespropsnpsrangeslensidpsnewlslignes titre_datashasattrsfilenamesmaxsproppage((sScript (Python)s modifproptabs^* ?# $ @$$!   ! # .  " $,30(sNones modifproptab(sNones modifproptab((sScript (Python)ssqYU_bodyqZTmem=context.zwo_lib.mem_data() if mem['droit_edit_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] listrepurl=string.split(string.split(mem['url'],zwu)[1],'/') if listrepurl[2]=='skin': return context.skins.index_html(mem) else: idskin=listrepurl[3] zwui=zwu+'/zwo_images/bo/' rep=context.zwo_info.skins[idskin] conf=rep repurl=string.split(rep.absolute_url(),zwu[:-5])[1] listprop=['hauteur','largeur','marge','cadre','couleurcadre','couleurfond','couleurtexte','align','valign'] listpropval=[hauteur,largeur,marge,cadre,couleurcadre,couleurfond,couleurtexte,'######','######'] val=context.zwo_lib.tab_to_val(conf) l=conf.tableaux case='T1' propcase='' prop=val['pt'][case] np='' for idp in range(len(listprop)): propcase=propcase+np+listprop[idp]+'=' np='/' if listpropval[idp]=="######": propcase=propcase+prop[listprop[idp]] else: propcase=propcase+listpropval[idp] newl=[] for ligne in l: if string.find(ligne,'PT:'+case+':')==-1: newl.append(ligne) newl.append('PT:'+case+':'+propcase) l=newl conf.manage_changeProperties(tableaux=l) if newimage: if len(newimage.read())>0: titre_data='' if hasattr(newimage,'filename'): filename=newimage.filename titre_data=filename[max(string.rfind(filename, '/'), string.rfind(filename, '\\'), string.rfind(filename, ':'), )+1:] image=titre_data context.zwo_info.images.fonds.manage_addImage(image,newimage,image) proppage="align="+align+"/dech="+dech+"/decv="+decv+"/couleurpage="+couleurpage+"/image="+image conf.manage_changeProperties(page=proppage) context.REQUEST.RESPONSE.redirect('./') return q[U Script_magicq\KUwarningsq])Uerrorsq^)U Python_magicq_U* q`u. jW((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Ucase_selq U _getitem_q U_getitemq U _getattr_q U_getattrqUcontextqUmemqUprqUzwuqUstringqU listrepurlqUidskinqUzwuiqUrepqUconfqUvalqUrollqUroll2qU listiconesqUlistobjqUnbelqUobqUobjq Ulist_case_sel_tmpq!U list_case_selq"UaUheadq#Uspmq$Umidq%Uspeq&Ufootq'Uprntq(Utitreq)Uhtmlq*Uhmq+Ustrq,Uintq-Uhm2q.U elem_placedq/Uszq0Uaffichetableauq1U affichecaseq2tq3U co_argcountq4KubU_paramsq5U case_sel=''q6Uidq7U modif_li_coq8U__ac_local_roles__q9}q:Uxavq;]q(U lq?(U Persistenceq@UPersistentMappingqAtqBtqCQU _bind_namesqD(cShared.DC.Scripts.Bindings NameAssignments qEoqF}qGU_asgnsqH}qI(Uname_containerqJU containerqKU name_subpathqLUtraverse_subpathqMU name_contextqNUcontextqOU name_m_selfqPUscriptqQusbU func_defaultsqR(UtqSU_codeqTTa/csddZdS(Nsc*1st}t}||tdd | ddjo dSn||tdd | d}|td ||td | d |dd } || d d jo#||tdd Sn || d}  |d |||tdd|  }||tdd|dd}*||||tdddd+|d,d}-xOd-rB}.||}|/|ddo0|d}nqW2|td |d}3g}4x=|d4r0}5|djo|6|d|nqQW9||tdd  d d!| \}}}}};|}@d"| d#d$} A|||tdd%| d&| }B||}D||}Id'}!P|||tdd(| d)d*|!}Q||}Ud+}!V|!d,}!Y| d-Zt#t$}%\g_|!d.d/}!`|!d0}!b| d1}'c|!d2d3| d4d5|'d6|'d7|'d8|'d9}!g  d: d; |! d<}!|!d=}!|!d>}! ||!} ||}|SdS(?Nszwo_libsmem_datasdroit_edit_dossieris.Vous n'avez pas les droits pour cette action !szwo_bos presentationszwo_urlssplitsurls/isskinsskinss index_htmlis/zwo_images/bo/szwo_infos tab_to_valcsd|d}|d|d|d}|d}|d|d|d}|d}|d|d}|d}|djo|d }n|d |d |d }|SdS( Ns (surlsrettsnomsrolsimg(snomsurlsimgsrolsrett((sScript (Python)srolls   csd} |d|d|d}!|d}"|d|d|d}#|d}$|d|d}%|d}&|d|d|d |d }'|SdS( Ns(srettsnomsrolsimgsaction(snomsactionsimgsrolsrett((sScript (Python)sroll2s    %s zwo_imagessiconess logo_elementss objectIdsis hasPropertyselements*ssappendsautoursEdition du skin sRETOUR SKINsmenusnavsE : ajouter une ligne
: supprimer une ligne
: ajouter colonnes
: supprimer une colonne
seditionsinfos INFORMATIONs?s(s _getitem_s_getitems _getattr_s_getattrsvalscassincasspcassrspscspsspnsprsszslenspreshmshtmlcassaffichetableauselslistobjsrepsel_objs elem_placedstypeimgstypes listiconessmem(scass _getitem_s_getitems _getattr_s_getattrsvalsincasspcassrspscspsspnsprsszslenspreshmshtmlcassaffichetableauselslistobjsrepsel_objs elem_placedstypeimgstypes listiconessmem( s elem_placeds listiconessaffichetableausrepslistobjshmsvalsmemspr(sScript (Python)s affichecasegsD [ [    &)  c( st}t}t}||d|}h} d} d} d} g} x<|dr/}x |dr}|djot| dt| }x|| d|or| d} t| dt| }| d| jo0|| d| | d} d} nqW||d|}n||d }||d }|djo d }n|djo d }nt|}t|}xpt|dr]}xQt|dr>}t| |dt| |}d || |ss s">sajoutcolsaddcolonneok?tab=s&num=scarre_skin_ajout_colonne.gifsr_carre_ajout_colonne.gifss" align="center">sdelcolsdelcolonneok?tab=scarre_detruit_colonne.gifsr_carre_detruit_colonne.gifs s
shauteur_mini_cases/sesepaisseur_tableaus s8
csGgt}t}h||d|}i||d|}j||d}k||d} ld} m|djo |djon| d|d} no| djo | djop| d | d} nr|d } tt |d jou||d }vt |d jow||d d joxd | dd|dd| d| d| d| d|dd}y||}z|d}{|Snnn}d | dd|dd| d| d| d| d|dd}|d}x|d r}|jo||}|d|d}||d}|djo |}n|d}|d|d d!|d"}|d#||d$d%}nqIW|d&}|d'}|SdS((Nsccspcsrowspanscolspanss1s rowspan="s" s colspan="sepaisseur_caseisTss
sappendsinconnuselements.gifsVs
 sNs< s title_or_ids
s
ssepaisseur_cases" valign="top">sMs
sdellisdelligneok?tab=scarre_detruit_ligne.gifsr_carre_detruit_ligne.gifs " colspan="s
((s_write_s_writes _getitem_s_getitems _getattr_s_getattrsvalstabstablesveriftabsisjs nbcolonness lignevideslignescasesstrsidcasespcscolspansrowspansintsrangesiisjjsidcsnblignessprsbgcshmshtmltabszwuisasrollsszsintabslinsliscas affichecase((stabs_write_s_writes _getitem_s_getitems _getattr_s_getattrsvalstablesveriftabsisjs nbcolonness lignevideslignescasesstrsidcasespcscolspansrowspansintsrangesiisjjsidcsnblignessprsbgcshmshtmltabszwuisasrollsszsintabslinsliscas affichecase(s affichecasesrollshmsvalszwuispr(sScript (Python)saffichetableaus         %     ?& 7D &H  7D    &  &D H   . 7D @  sT1s s(*s _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstrings listrepurlsidskinszwuisrepsconfsvalsrollsroll2s listiconesslistobjsnbelsobsobjscase_selslist_case_sel_tmps list_case_selsasheadsspmsmidsspesfootsprntstitreshtmlshmsstrsintshm2s elem_placedsszs affichecasesaffichetableau(*scase_sels _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstrings listrepurlsidskinszwuisrepsconfsvalsrollsroll2s listiconesslistobjsnbelsobsobjslist_case_sel_tmps list_case_selsasheadsspmsmidsspesfootsprntstitreshtmlshmsstrsintshm2s elem_placedsszsaffichetableaus affichecase(( srollslistobjshmszwuis affichecases listiconessreps elem_placedsvalsaffichetableausmemsprsScript (Python)s modif_li_cosh* ?# $ ! 0  = .   1     F'+r    (s modif_li_co(s modif_li_co((sScript (Python)ssqUU_bodyqVT_$mem=context.zwo_lib.mem_data() if mem['droit_edit_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] listrepurl=string.split(string.split(mem['url'],zwu)[1],'/') if listrepurl[2]=='skin': return context.skins.index_html(mem) else: idskin=listrepurl[3] zwui=zwu+'/zwo_images/bo/' rep=context.zwo_info.skins[idskin] conf=rep val=context.zwo_lib.tab_to_val(conf) def roll(nom,url,img,rol): rett='' return rett def roll2(nom,action,img,rol): rett='' return rett listicones=context.zwo_images.icones.logo_elements.objectIds() listobj=rep.objectIds() nbel=0 for ob in listobj: obj=rep[ob] if obj.hasProperty('element'): nbel=nbel+1 list_case_sel_tmp=string.split(case_sel,'*') list_case_sel=[] for a in list_case_sel_tmp: if a<>'': list_case_sel.append(a) # AFFICHAGE DU BANDEAU HAUT (head,spm,mid,spe,foot)=context.zwo_bo.autour(mem,pr,'skin','Edition du skin '+idskin) prnt=head # AFFICHAGE DES CASE DE LA COLONNE (menus) titre='RETOUR SKIN' prnt=prnt+context.zwo_bo.menu(zwu,pr,'nav',titre) prnt=prnt+spm prnt=prnt+mid # AFFICHAGE DES ZONES LARGES (editions) # EDITION INFORMATION html = """ : ajouter une ligne
: supprimer une ligne
: ajouter colonnes
: supprimer une colonne
""" prnt=prnt+context.zwo_bo.edition(zwu,pr,'info','INFORMATION',html) prnt=prnt+spe # EDITION CONTENU html = '' html=html+'' html=html+'
' hm=pr['hauteur_mini_case'] hm2=str(int(hm)) elem_placed=[] #tableau page html = html+'' html = html+'' sz=pr['epaisseur_tableau'] html=html+'' return htmlcas htmlcas='' return htmlcas def affichetableau(tab): table=val['ct'][tab] veriftab={} i=0 j=0 nbcolonnes=0 lignevide=[] for ligne in table: for case in ligne: if case<>'': 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 nblignes nbcolonnes bgc=pr['color_skin_case_sel'] if tab=='T1': bgc=pr['color_fond_edition'] htmltab='
' #tableau contenu def affichecase(cas): incas=val['cc'][cas] pcas=val['pc'][cas] rsp=pcas["rowspan"] csp=pcas["colspan"] spn='' if rsp<>'1' and rsp<>'': spn=spn+'rowspan="'+rsp+'" ' if csp<>'1' and csp<>'': spn=spn+'colspan="'+csp+'" ' sz=pr['epaisseur_case'] if len(incas)>0: pre=incas[0] if len(pre)>0: if pre[0]=="T": htmlcas='' htmlcas=htmlcas+affichetableau(pre) htmlcas=htmlcas+'' htmlcas=htmlcas+'
' for el in incas: if el in listobj: el_obj=rep[el] elem_placed.append(el) typeimg="inconnu" type=el_obj.element if type+'.gif' in listicones: typeimg=type htmlcas=htmlcas+'' htmlcas=htmlcas+'
 ' htmlcas=htmlcas+'' htmlcas=htmlcas+' '+el_obj.title_or_id()+'
' htmlcas=htmlcas+'
' htmltab=htmltab+'' htmltab=htmltab+'' for a in range(nbcolonnes): htmltab=htmltab+'' htmltab=htmltab+'' htmltab=htmltab+'' sz=pr['epaisseur_case'] intab=val['ct'][tab] lin=0 for li in intab: htmltab = htmltab +'' htmltab = htmltab +'' for ca in li: htmltab = htmltab + affichecase(ca) htmltab = htmltab +'' htmltab = htmltab +'' lin=lin+1 htmltab=htmltab+'' htmltab=htmltab+'' htmltab=htmltab+'' htmltab = htmltab +'
' htmltab=htmltab+'' htmltab=htmltab+'' htmltab=htmltab+'' htmltab=htmltab+'' htmltab=htmltab+'
' htmltab=htmltab+roll('ajoutcol'+tab+str(a),'addcolonneok?tab='+tab+'&num='+str(a),zwui+'carre_skin_ajout_colonne.gif',zwui+'r_carre_ajout_colonne.gif') htmltab=htmltab+'' if nbcolonnes<>1: htmltab=htmltab+roll('delcol'+tab+str(a),'delcolonneok?tab='+tab+'&num='+str(a),zwui+'carre_detruit_colonne.gif',zwui+'r_carre_detruit_colonne.gif') else: htmltab=htmltab+'' htmltab=htmltab+'
' htmltab=htmltab+'
' htmltab=htmltab+roll('ajoutcol'+tab+str(nbcolonnes),'addcolonneok?tab='+tab+'&num='+str(nbcolonnes),zwui+'carre_skin_ajout_colonne.gif',zwui+'r_carre_ajout_colonne.gif') htmltab=htmltab+'
' htmltab=htmltab+'' htmltab=htmltab+'' htmltab=htmltab+'' htmltab=htmltab+'' htmltab=htmltab+'
' htmltab=htmltab+roll('ajoutli'+tab+str(lin),'addligneok?tab='+tab+'&num='+str(lin),zwui+'carre_skin_ajout_ligne.gif',zwui+'r_carre_ajout_ligne.gif') htmltab=htmltab+'
' if nblignes<>1: htmltab=htmltab+roll('delli'+tab+str(lin),'delligneok?tab='+tab+'&num='+str(lin),zwui+'carre_detruit_ligne.gif',zwui+'r_carre_detruit_ligne.gif') else: htmltab=htmltab+'' htmltab=htmltab+'
' htmltab=htmltab+'
' htmltab=htmltab+roll('ajoutli'+tab+str(nblignes),'addligneok?tab='+tab+'&num='+str(nblignes),zwui+'carre_skin_ajout_ligne.gif',zwui+'r_carre_ajout_ligne.gif') htmltab=htmltab+'
' return htmltab html=html+affichetableau('T1') html=html+'
' prnt=prnt+html prnt=prnt+foot return prnt qWU Script_magicqXKUwarningsqY)UerrorsqZ)U Python_magicq[U* q\u. j((U OFS.FolderqUFolderqtqNt.}q(UidqUskinsqU__ac_local_roles__q}qUxavq ]q UOwnerq asU_objectsq (}q (U meta_typeqUScript (Python)qhU index_htmlqu}q(U meta_typeqUScript (Python)qUidqU newskinokqu}q(U meta_typeqUScript (Python)qUidqU skins_actionqu}q(U meta_typeqUScript (Python)qUidqU detruireokqu}q (hhhU dupliquerokq!u}q"(hhhU renommerokq#u}q$(hhhUdetruire_skinsq%u}q&(hhhUdupliquer_skinsq'u}q((hhhUrenommer_skinsq)uth(U lq*(U#Products.PythonScripts.PythonScriptq+U PythonScriptq,tq-tq.QU detruireokq/(U lq0(h+U PythonScriptq1tq2tq3Qh(U lq4(h+U PythonScriptq5tq6tq7QU renommerokq8(U lq9(h+U PythonScriptq:tq;tq(h+U PythonScriptq?tq@tqAQU index_htmlqB(U lqC(h+U PythonScriptqDtqEtqFQUtitleqGUUdetruire_skinsqH(U lqI(h+U PythonScriptqJtqKtqLQUdupliquer_skinsqM(U lqN(h+U PythonScriptqOtqPtqQQUrenommer_skinsqR(U lqS(h+U PythonScriptqTtqUtqVQu. jQ((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Uidobjsq Uidobjsmq U _getitem_q U_getitemq U _getattr_qU_getattrqUcontextqUmemqUprqUzwuqUstringqUdecqUlenqU listrepurlqUidskinqUzwuiqUrepqUconfqU listiconesqUlistobjqUnbelqUobqUlobjq Uheadq!Uspmq"Umidq#Uspeq$Ufootq%Uprntq&Utitreq'Uhtmlq(Uhmq)Ustrq*Uintq+Uhm2q,Uvalq-U elem_placedq.Uszq/Uaffichetableauq0U affichecaseq1U listnonplaceq2Uelq3Uel_objq4Utypeimgq5Utypeq6Ulistq7tq8U co_argcountq9KubU_paramsq:Uidobjs,idobjsmq;Uidq}q?Uxavq@]qAUOwnerqBasU_dav_writelocksqC(U lqD(U PersistenceqEUPersistentMappingqFtqGtqHQU _bind_namesqI(cShared.DC.Scripts.Bindings NameAssignments qJoqK}qLU_asgnsqM}qN(Uname_containerqOU containerqPU name_subpathqQUtraverse_subpathqRU name_m_selfqSUscriptqTU name_contextqUUcontextqVusbU func_defaultsqWNU_codeqXTy)csdZdS(Nc.DsRt}t}||tdd ||tdd | d|td| d} t | djo4|td| d|td } n|td|| dd } || d d jo# ||td d Sn || d} d} |||tdd |}||||tdddd|dd}xOdrB}||}||ddo|d}nqW||tdd d d|\}}}}}|}d| dd} |||tdd d|}!||}#||}(d })|||tdd! d"d#|}*||}.| d$/tt}"1||tdd%| 3g6d&d'}7|d(}9| d)}%:|d*d+| d,d-|%d.|%d/|%d0|%d1}? d2  d3 | d4}|d5}g}(xddrW})|)j o@|||)ddo||(d6|)nnqJW|d7d8| d,d-|%d.|%d/|%d0|%d9| d,d:}|d;| d<d=}|d>}|d?}|d@dAdBdC}x|(dr})||)}*dD}+||*d},|,dEjo |,}+n|dF}|dG| ddH|+dI}|dJ||*dKdL}qhW|dM}|dN}|dM}|||tdd! d dO|}||}dP|| dQddRjo+||| dQdPdS}-n g}-d?}|d@dTdBdC}x|-dr}*||*dK})dD}+||*d},|,dE||||tddddjo |,}+n|dF}|dG| ddH|+dI}|dJ||*dKdL}qW|dM}|||tdd! dUdV|}||}|dW|}|SdS(XNszwo_libsmem_dataszwo_bos presentationszwo_urlssplitsurlisacl_urls/isskinsskinss index_htmlis/zwo_images/bo/szwo_infos zwo_imagessiconess logo_elementss objectIdsis hasPropertyselementsautoursEdition du skin sRETOUR CONTENUsmenusnavsA FAIREseditionsinfos INFORMATIONshauteur_mini_cases tab_to_vals/sesepaisseur_tableaus sappendss Deplacementsmem_cuts user_zw_objsFolders objectValuess&case=mem&objmem=smemsMEMOIRE TAMPONs(.s _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstringsdecslens listrepurlsidskinszwuisrepsconfs listiconesslistobjsnbelsobslobjsheadsspmsmidsspesfootsprntstitreshtmlshmsstrsintshm2svals elem_placedsszs affichecasesaffichetableaus listnonplaceselsidobjssidobjsmsel_objstypeimgstypeslist(.sidobjssidobjsms _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstringsdecslens listrepurlsidskinszwuisrepsconfs listiconesslistobjsnbelsobslobjsheadsspmsmidsspesfootsprntstitreshtmlshmsstrsintshm2svals elem_placedsszsaffichetableaus affichecases listnonplaceselsel_objstypeimgstypeslist(( sidobjssidobjsmszwuslistobjshms affichecases listiconessreps elem_placedsvalsaffichetableausmemsprsScript (Python)sdeplacer_elementss*$4$# $ 0 = .   1 !  F0P   W  %   &%   1 (+  % ;  &% 1 (sdeplacer_elements(sdeplacer_elements((sScript (Python)ssqYU_bodyqZT#mem=context.zwo_lib.mem_data() pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] dec=string.split(mem['url'],zwu) if len(dec)==1: dec=string.split(mem['url'],context.acl_url()) listrepurl=string.split(dec[1],'/') if listrepurl[2]=='skin': return context.skins.index_html(mem) else: idskin=listrepurl[3] zwui=zwu+'/zwo_images/bo/' rep=context.zwo_info.skins[idskin] conf=rep listicones=context.zwo_images.icones.logo_elements.objectIds() listobj=rep.objectIds() nbel=0 for ob in listobj: lobj=rep[ob] if lobj.hasProperty('element'): nbel=nbel+1 # AFFICHAGE DU BANDEAU HAUT (head,spm,mid,spe,foot)=context.zwo_bo.autour(mem,pr,'skin','Edition du skin '+idskin) prnt=head # AFFICHAGE DES CASE DE LA COLONNE (menus) titre='RETOUR CONTENU' prnt=prnt+context.zwo_bo.menu(zwu,pr,'nav',titre) prnt=prnt+spm prnt=prnt+mid # AFFICHAGE DES ZONES LARGES (editions) # EDITION INFORMATION html = "A FAIRE" prnt=prnt+context.zwo_bo.edition(zwu,pr,'info','INFORMATION',html) prnt=prnt+spe # EDITION CONTENU hm=pr['hauteur_mini_case'] hm2=str(int(hm)) val=context.zwo_lib.tab_to_val(conf) elem_placed=[] #tableau page html = '
c!s?t}t}@||d|}A||d|}B||d}C||d} Dd} E|djo |djoF| d|d} nG| djo | djoH| d | d} nJ| d } L||d d joMd} Nd | dd| dd| d| d| d| d| dd}O| d} Q| d}Rdd}T| d} U|d}V|d| d|d|d}W|d| d |d!|d"| d#|d$| dd| d| d| d| d| d%}X|d&}Y|d'| d |d!|d}Z|d(| d|d|d}[|d)}\|d*}]|Sn`t|d joa||d }bt|d joc||d d+jodd} ed | dd| d,d| d| d| d| d-}fd.} h| d}idd}k| d} l|d}m|d| d|d|d}n|d| d |d!|d"| d#|d$| d,d| d| d| d| d/}o|||d }p|d'| d |d!|d}q|d(| d|d|d}r|d)}s|d*}t|Snnnvd | dd| d,d| d| d| d| d-}x|d0}y|d1 d2|d3d4d5}zx|d zr}{|jo|||}|~d6|d7}||d8}|d9jo |}n|d:}|d;| d<d=|d>}|d?||d@dA}|d1 d2|dB|d3d4d5}nqsW|d)}|dC}|SdS(DNsccspcsrowspanscolspanss1s rowspan="s" s colspan="sepaisseur_caseis######ssespacement_tableaus sepaisseur_tableaus?ss " width="s">ssTs color_skins.px; background-color: #ffffff;" valign="top" >s#ffffffs px; background-color: #ffffff;">s8
s
sZONE D'EDITION DU CONTENUss
s)sappendsinconnuselements.gifsVs&prev=s
(!s _getitem_s_getitems _getattr_s_getattrsvalscassincasspcassrspscspsspnsprsszsbgcshmshtmlcasssptszwusimslenspresaffichetableausidobjssidobjsmselslistobjsrepsel_objs elem_placedstypeimgstypes listiconessmem(!scass _getitem_s_getitems _getattr_s_getattrsvalsincasspcassrspscspsspnsprsszsbgcshmshtmlcasssptszwusimslenspresaffichetableausidobjssidobjsmselslistobjsrepsel_objs elem_placedstypeimgstypes listiconessmem( szwusidobjsmslistobjshms listiconessreps elem_placedsvalsaffichetableausidobjssmemspr(sScript (Python)s affichecase?s~  [ %n %%    J  %f%%  J -   &!=  c st}dd}|d}||d|}xY|drL} |d}x&| dr} || }quW|d}qSW|d}|SdS( Ns/
 sNs< s title_or_ids
sepaisseur_casesctisss
( s _getitem_s_getitemshmshtmltabsprsszsvalstabsintabsliscas affichecase( stabs _getitem_s_getitemshmshtmltabsprsszsvalsintabsliscas affichecase(shmsvals affichecasespr(sScript (Python)saffichetableaus   sT1s
s$s-ELEMENTS DE LA PAGE NON PLACES :

s2s)sinconnus.gifsVs
 sNs< s title_or_ids
s
' html = html+'' sz=pr['epaisseur_tableau'] html=html+'' return htmlcas if len(incas)>0: pre=incas[0] if len(pre)>0: if pre[0]=="T": bgc='' htmlcas='' return htmlcas htmlcas='' return htmlcas def affichetableau(tab): htmltab = '
' #tableau contenu def affichecase(cas): incas=val['cc'][cas] pcas=val['pc'][cas] rsp=pcas["rowspan"] csp=pcas["colspan"] spn='' if rsp<>'1' and rsp<>'': spn=spn+'rowspan="'+rsp+'" ' if csp<>'1' and csp<>'': spn=spn+'colspan="'+csp+'" ' sz=pr['epaisseur_case'] if incas[0]=="######": bgc='' htmlcas='' bgc=pr['color_edit'] spt=pr['espacement_tableau'] im='' sz=pr['epaisseur_tableau'] htmlcas=htmlcas+'' htmlcas=htmlcas+'' htmlcas=htmlcas+'' htmlcas=htmlcas+'' htmlcas=htmlcas+'
'+im+'
'+im+'' htmlcas=htmlcas+'ZONE D\'EDITION DU CONTENU' htmlcas=htmlcas+''+im+'
'+im+'
' htmlcas=htmlcas+'
' bgc='#ffffff' spt=pr['espacement_tableau'] im='' sz=pr['epaisseur_tableau'] htmlcas=htmlcas+'' htmlcas=htmlcas+'' htmlcas=htmlcas+'' htmlcas=htmlcas+'' htmlcas=htmlcas+'
'+im+'
'+im+'' htmlcas=htmlcas+affichetableau(incas[0]) htmlcas=htmlcas+''+im+'
'+im+'
' htmlcas=htmlcas+'
' htmlcas=htmlcas+'
' htmlcas=htmlcas+'' for el in incas: if el in listobj: el_obj=rep[el] elem_placed.append(el) typeimg="inconnu" type=el_obj.element if type+'.gif' in listicones: typeimg=type htmlcas=htmlcas+'' htmlcas=htmlcas+'' htmlcas=htmlcas+'
 ' htmlcas=htmlcas+'' htmlcas=htmlcas+' '+el_obj.title_or_id()+'
' htmlcas=htmlcas+'
' sz=pr['epaisseur_case'] intab=val['ct'][tab] for li in intab: htmltab = htmltab +'' for ca in li: htmltab = htmltab + affichecase(ca) htmltab = htmltab +'' htmltab = htmltab +'
' return htmltab html=html+affichetableau('T1') html=html+'' listnonplace=[] for el in listobj: if not el in elem_placed: if rep[el].hasProperty('element'): listnonplace.append(el) html=html+' ' html=html+'' html=html+'ELEMENTS DE LA PAGE NON PLACES :

' html=html+'' html=html+'' for el in listnonplace: el_obj=rep[el] typeimg="inconnu" type=el_obj.element if type+'.gif' in listicones: typeimg=type html=html+'' html=html+'
 ' html=html+'' html=html+' '+el_obj.title_or_id()+'
' html=html+'
' html=html+'' prnt=prnt+context.zwo_bo.edition(zwu,pr,'skin','Deplacement',html) prnt=prnt+spe # EDITION MEMOIRE TAMPON if 'mem_cut' in mem['user_zw_obj'].objectIds('Folder'): list=mem['user_zw_obj']['mem_cut'].objectValues() else: list=[] html='' html=html+'' for el_obj in list: el=el_obj.title_or_id() typeimg="inconnu" type=el_obj.element if type+'.gif' in context.zwo_images.icones.logo_elements.objectIds(): typeimg=type html=html+'' html=html+'
 ' html=html+'' html=html+' '+el_obj.title_or_id()+'
' prnt=prnt+context.zwo_bo.edition(zwu,pr,'mem','MEMOIRE TAMPON',html) prnt=prnt+spe prnt=prnt+''+foot return prnt q[U Script_magicq\KUwarningsq])Uerrorsq^)U Python_magicq_U* q`u. k((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Uidobjsoq Uidobjsnq Uidobjsmq U _getitem_q U_getitemqU _getattr_qU_getattrqUcontextqUmemqUprqUzwuqUstringqU listrepurlqUidskinqUzwuiqUrepqUconfqUrepurlqUrepuserqUdicoqU repusercutqUtablqU renameintabq UkUoldq!Unewq"Unewidq#Uttq$U co_argcountq%KubU_paramsq&Uidobjso,idobjsn,idobjsmq'Uidq(U renommerokq)U__ac_local_roles__q*}q+Uxavq,]q-UOwnerq.asU_dav_writelocksq/(U lq0(U Persistenceq1UPersistentMappingq2tq3tq4QU _bind_namesq5(cShared.DC.Scripts.Bindings NameAssignments q6oq7}q8U_asgnsq9}q:(Uname_containerq;U containerqU name_m_selfq?Uscriptq@U name_contextqAUcontextqBusbU func_defaultsqCNU_codeqDT csdZdS(Nc%st}t}||tdd}||ddjo dSn||tdd} ||d} |td ||td ||d | dd } || d d jo#||tdd|Sn || d}  | d} |||tdd| } |}||td ||d|| dd d}||d}||tdd}d||dj o||ddn||d}||d}d}2xA||dd2r(}3||dd djo4||d d}5|||}6||tdd |}|7td!|||||8||d"d#|9||||}:|}n;||dd d$jo<||d d}=|||}>||tdd |}|?td!|||||@||d"d#|nA||dd d%joB||d d}C|||}D||tdd |}|Etd!|||||F||d"d#|nq1W|H|d"d||||Itdd&d'd(KdSdS()Nszwo_libsmem_datasdroit_edit_dossieris.Vous n'avez pas les droits pour cette action !szwo_bos presentationszwo_urlssplitsurls/isskinsskinss index_htmlis/zwo_images/bo/szwo_infos absolute_urlis user_zw_objsREQUESTsformsmem_cuts objectIdssmanage_addFolderstableauxcst}t}g}xl|dr_}|td|dd jo||d|n |td|d} !|| d} "|| dd|| dd} #d} $|td|| dd }%x|d%rr}&|d jo\'| djo (d} n*| d } +||jo,| |} n.| |} nqW|/|d| q$W0|SdS( NisfindsCC:isappendssplits:is/s(s _getitem_s_getitems _getattr_s_getattrsnewtabstablslignesstringsdecscassnewlspremsslistidssunidsoldidsnewid(stablsoldidsnewids _getitem_s_getitems _getattr_s_getattrsnewtabslignesstringsdecscassnewlspremsslistidssunid((sScript (Python)s renameintabs& &' $  skeysiso_s mix_id_zopes zwo_renamesmanage_changePropertiesstitlesn_sm_sRESPONSEsredirects./(s _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstrings listrepurlsidskinszwuisrepsconfsrepurlsrepusersdicos repusercutstabls renameintabsksoldsnewsnewidst(sidobjsosidobjsnsidobjsms _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstrings listrepurlsidskinszwuisrepsconfsrepurlsrepusersdicos repusercutstabls renameintabsksoldsnewsnewidst((sScript (Python)s renommeroksV* ?# $ @  !$ $ $'(s renommerok(s renommerok((sScript (Python)ssqEU_bodyqFTmem=context.zwo_lib.mem_data() if mem['droit_edit_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] listrepurl=string.split(string.split(mem['url'],zwu)[1],'/') if listrepurl[2]=='skin': return context.skins.index_html(mem) else: idskin=listrepurl[3] zwui=zwu+'/zwo_images/bo/' rep=context.zwo_info.skins[idskin] conf=rep repurl=string.split(rep.absolute_url(),zwu[:-5])[1] repuser=mem['user_zw_obj'] dico=context.REQUEST.form if not 'mem_cut' in repuser.objectIds(): repuser.manage_addFolder('mem_cut') repusercut=repuser['mem_cut'] tabl=conf.tableaux def renameintab(tabl,oldid,newid): newtab=[] for ligne in tabl: if string.find(ligne,'CC:')==-1: newtab.append(ligne) else: dec=string.split(ligne,':') cas=dec[1] newl=dec[0]+':'+dec[1]+':' prems=0 listids=string.split(dec[2],'/') for unid in listids: if unid<>'': if prems==0: prems=1 else: newl=newl+'/' if unid==oldid: newl=newl+newid else: newl=newl+unid newtab.append(newl) return newtab for k in dico.keys(): if k[0:2]=='o_': old=k[2:] new=dico[k] newid=context.zwo_lib.mix_id_zope(new) context.zwo_rename(rep,old,newid) rep[newid].manage_changeProperties(title=new) t=renameintab(tabl,old,newid) tabl=t if k[0:2]=='n_': old=k[2:] new=dico[k] newid=context.zwo_lib.mix_id_zope(new) context.zwo_rename(rep,old,newid) rep[newid].manage_changeProperties(title=new) if k[0:2]=='m_': old=k[2:] new=dico[k] newid=context.zwo_lib.mix_id_zope(new) context.zwo_rename(repusercut,old,newid) repusercut[newid].manage_changeProperties(title=new) conf.manage_changeProperties(tableaux=tabl) context.REQUEST.RESPONSE.redirect('./') return qGU Script_magicqHKUwarningsqI)UerrorsqJ)U Python_magicqKU* qLu. k:((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Uidobjsoq Uidobjsnq Uidobjsmq U _getitem_q U_getitemqU _getattr_qU_getattrqUcontextqUmemqUprqUzwuqUstringqUdecqUlenqU listrepurlqUidskinqUzwuiqUrepqUconfqUrepuserqUheadqUspmqUmidq Uspeq!Ufootq"U listiconesq#Uprntq$Utitreq%Uhtmlq&Utitlesq'UlUitq(U co_argcountq)KubU_paramsq*Uidobjso,idobjsn,idobjsmq+Uidq,Udetruire_elementsq-U__ac_local_roles__q.}q/Uxavq0]q1UOwnerq2asU_dav_writelocksq3(U lq4(U Persistenceq5UPersistentMappingq6tq7tq8QU _bind_namesq9(cShared.DC.Scripts.Bindings NameAssignments q:oq;}q(Uname_containerq?U containerq@U name_subpathqAUtraverse_subpathqBU name_m_selfqCUscriptqDU name_contextqEUcontextqFusbU func_defaultsqGNU_codeqHT csdZdS(Nc st}t}||tdd}||tdd} ||d} |td||d| } t | djo4|td||d|td } n|td|| dd }||d d jo# ||td d|Sn ||d} | d} |||tdd |}|}||d}||tdd|| d d|\}}}}}||||tdddd}|}d|| dd}|||tdd| | d|}||}||}d} g}!|td|d}"xR|d "rE}#|d!jo/|$|d"||||d#nqW%|td|d}&xR|d &rE}'|d!jo/|(|d"||||d#nq W)|td|d}*x[|d *rN}+|d!jo8|,|d"||||d$|d#nq}W.x8|d .r+}/|d!jo0||d%}nqW1|d&}2|d'|d(}3|d)|d(}4|d*|d(}5|d+}6|d,}7|d-}9|||tdd.| | d/d0|}:||};||}=|SdS(1Nszwo_libsmem_dataszwo_bos presentationszwo_urlssplitsurlisacl_urls/isskinsskinss index_htmlis/zwo_images/bo/szwo_infos user_zw_objsautoursEdition du skin s zwo_imagessiconess logo_elementss objectIdssRETOUR CONTENUsmenusnavss*issappends title_or_idsmem_cuts
s(
s+s+s
s
seditionselements0! ETES VOUS SUR DE VOULOIR DETRUIRE CES ELEMENTS( s _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstringsdecslens listrepurlsidskinszwuisrepsconfsrepusersheadsspmsmidsspesfoots listiconessprntstitreshtmlstitlessidobjsoslsisidobjsnsidobjsm( sidobjsosidobjsnsidobjsms _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstringsdecslens listrepurlsidskinszwuisrepsconfsrepusersheadsspmsmidsspesfoots listiconessprntstitreshtmlstitlesslsi((sScript (Python)sdetruire_elementss`*$4$# $ =0 .    009    1  (sdetruire_elements(sdetruire_elements((sScript (Python)ssqIU_bodyqJTmem=context.zwo_lib.mem_data() pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] dec=string.split(mem['url'],zwu) if len(dec)==1: dec=string.split(mem['url'],context.acl_url()) listrepurl=string.split(dec[1],'/') if listrepurl[2]=='skin': return context.skins.index_html(mem) else: idskin=listrepurl[3] zwui=zwu+'/zwo_images/bo/' rep=context.zwo_info.skins[idskin] conf=rep repuser=mem['user_zw_obj'] # AFFICHAGE DU BANDEAU HAUT (head,spm,mid,spe,foot)=context.zwo_bo.autour(mem,pr,'skin','Edition du skin '+idskin) listicones=context.zwo_images.icones.logo_elements.objectIds() prnt=head titre='RETOUR CONTENU' prnt=prnt+context.zwo_bo.menu(zwu,pr,'nav',titre) prnt=prnt+spm prnt=prnt+mid html='' titles=[] l=string.split(idobjso,'*') for i in l: if i<>'': titles.append(rep[i].title_or_id()) l=string.split(idobjsn,'*') for i in l: if i<>'': titles.append(rep[i].title_or_id()) l=string.split(idobjsm,'*') for i in l: if i<>'': titles.append(repuser['mem_cut'][i].title_or_id()) for i in titles: if i<>'': html=html+i+'
' html=html+'
' html=html+'' html=html+'' html=html+'' html=html+'' html=html+'
' html=html+'
' prnt=prnt+context.zwo_bo.edition(zwu,pr,'element','! ETES VOUS SUR DE VOULOIR DETRUIRE CES ELEMENTS',html) prnt=prnt+spe prnt=prnt+foot return prnt qKU Script_magicqLKUwarningsqM)UerrorsqN)U Python_magicqOU* qPu. k((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Ucaseq U _getitem_q U_getitemq U _getattr_q U_getattrqUcontextqUmemqUprqUzwuqUstringqUdecqUlenqU listrepurlqUidskinqUzwuiqUrepqUconfqUvalqUtabqUcelssqUcelsqUlUcUrecupqUaUbUch_recupq Upremsq!Ul2q"Uvligneq#Uokq$tq%U co_argcountq&KubU_paramsq'Ucaseq(Uidq)U del_soustabokq*U__ac_local_roles__q+}q,Uxavq-]q.UOwnerq/asU_dav_writelocksq0(U lq1(U Persistenceq2UPersistentMappingq3tq4tq5QU _bind_namesq6(cShared.DC.Scripts.Bindings NameAssignments q7oq8}q9U_asgnsq:}q;(Uname_containerqUtraverse_subpathq?U name_contextq@UcontextqAU name_m_selfqBUscriptqCusbU func_defaultsqDNU_codeqET csdZdS(Nc&st}t}||tdd}||tdd}||d}|td||d|} t | djo4|td||d|td } n|td|| dd } || d d jo# ||td d|Sn || d}  |d} |||tdd | }|}||tdd|}||||d|d}|||d|}g}xB|dr5}x)|dr}||d|qWqWg}xT|drG}x;|||d|dr}||d|qaWq:W d}!d}"x|d"rr}#|djo\$||ddjo?%|djo&d}'||}n)|d |}nnqW,g}-||d}.x |d.r}/d}0|td|dd jok1|td|d}2||d|jo 3d}n4||d|jo 5d}nn6|td|dd joE7|td|d}8||d|jo 9d}nn:|td|dd joE;|td|d}<||d|jo =d}nn>|td|dd joE?|td|d}@||d|jo Ad}nnB|djo|C|d|nqFW|E|dd|d||G|d d||||Itd!d"d#d$KdSdS(%Nszwo_libsmem_dataszwo_bos presentationszwo_urlssplitsurlisacl_urls/isskinsskinss index_htmlis/zwo_images/bo/szwo_infos tab_to_valsccisctsappendssTstableauxsfindsCC:s:sPC:sCT:sPT:smanage_changePropertiessREQUESTsRESPONSEsredirects./(s _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstringsdecslens listrepurlsidskinszwuisrepsconfsvalscasestabscelssscelsslscsrecupsasbsch_recupspremssl2svlignesok(scases _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstringsdecslens listrepurlsidskinszwuisrepsconfsvalstabscelssscelsslscsrecupsasbsch_recupspremssl2svlignesok((sScript (Python)s del_soustaboksx*$4$# $ !$  *     # ###"(s del_soustabok(s del_soustabok((sScript (Python)ssqFU_bodyqGT}mem=context.zwo_lib.mem_data() pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] dec=string.split(mem['url'],zwu) if len(dec)==1: dec=string.split(mem['url'],context.acl_url()) listrepurl=string.split(dec[1],'/') if listrepurl[2]=='skin': return context.skins.index_html(mem) else: idskin=listrepurl[3] zwui=zwu+'/zwo_images/bo/' rep=context.zwo_info.skins[idskin] conf=rep val=context.zwo_lib.tab_to_val(conf) tab=val['cc'][case][0] celss=val['ct'][tab] cels=[] for l in celss: for c in l: cels.append(c) recup=[] for a in cels: for b in val['cc'][a]: recup.append(b) ch_recup='' prems=1 for b in recup: if b<>'': if b[0]<>'T': if prems==1: prems=0 ch_recup=ch_recup+b else: ch_recup=ch_recup+'/'+b l=[] l2=conf.tableaux for vligne in l2: ok=1 if string.find(vligne,'CC:')<>-1: l2=string.split(vligne,':') if l2[1] in cels: ok=0 if l2[1]==case: ok=0 if string.find(vligne,'PC:')<>-1: l2=string.split(vligne,':') if l2[1] in cels: ok=0 if string.find(vligne,'CT:')<>-1: l2=string.split(vligne,':') if l2[1]==tab: ok=0 if string.find(vligne,'PT:')<>-1: l2=string.split(vligne,':') if l2[1]==tab: ok=0 if ok==1: l.append(vligne) l.append('CC:'+case+':'+ch_recup) conf.manage_changeProperties(tableaux=l) context.REQUEST.RESPONSE.redirect('./') return qHU Script_magicqIKUwarningsqJ)UerrorsqK)U Python_magicqLU* qMu. k~((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Utypeq U _getitem_q U_getitemq U _getattr_q U_getattrqUcontextqUmemqUprqUzwuqUstringqUdecqUlenqU listrepurlqUidskinqUzwuiqUrepqUconfqUheadqUspmqUmidqUspeqUfootqU listiconesq Uprntq!Utitreq"Umodq#Uimgtypq$Uhtmlq%tq&U co_argcountq'KubU_paramsq(Utypeq)Uidq*U ajout_elementq+U__ac_local_roles__q,}q-Uxavq.]q/UOwnerq0asU_dav_writelocksq1(U lq2(U Persistenceq3UPersistentMappingq4tq5tq6QU _bind_namesq7(cShared.DC.Scripts.Bindings NameAssignments q8oq9}q:U_asgnsq;}q<(Uname_containerq=U containerq>U name_subpathq?Utraverse_subpathq@U name_contextqAUcontextqBU name_m_selfqCUscriptqDusbU func_defaultsqENU_codeqFT csdZdS(Ncst}t}||tdd}||tdd}||d}|td||d|} t | djo4|td||d|td } n|td|| dd }  || d d jo# ||td d|Sn || d}  |d}|||tdd | }|}||tdd||d d| \}}}}}||||tdddd}|}d||dd}|||tdd||d|}||}d||dd}|||tdd||d|}||} ||}"||td|}$d }%|d!||||tddddjo&&d"||dd#|d$}n'd%|d&||d'})||d(||}+|||tdd)||d*||}-||}/|SdS(+Nszwo_libsmem_dataszwo_bos presentationszwo_urlssplitsurlisacl_urls/isskinsskinss index_htmlis/zwo_images/bo/szwo_infosautoursEdition du skin s zwo_imagessiconess logo_elementss objectIdssRETOUR CONTENUsmenusnavs&RETOUR LISTEs zwo_modulesss.gifs sCREATION D'UN ELEMENT : s s title_or_idsnew_htmlseditionselement(s _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstringsdecslens listrepurlsidskinszwuisrepsconfsheadsspmsmidsspesfoots listiconessprntstitrestypesmodsimgtypshtml(stypes _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstringsdecslens listrepurlsidskinszwuisrepsconfsheadsspmsmidsspesfoots listiconessprntstitresmodsimgtypshtml((sScript (Python)s ajout_elements>*$4$# $ =0 . .   ;&!1 (s ajout_element(s ajout_element((sScript (Python)ssqGU_bodyqHTAmem=context.zwo_lib.mem_data() pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] dec=string.split(mem['url'],zwu) if len(dec)==1: dec=string.split(mem['url'],context.acl_url()) listrepurl=string.split(dec[1],'/') if listrepurl[2]=='skin': return context.skins.index_html(mem) else: idskin=listrepurl[3] zwui=zwu+'/zwo_images/bo/' rep=context.zwo_info.skins[idskin] conf=rep # AFFICHAGE DU BANDEAU HAUT (head,spm,mid,spe,foot)=context.zwo_bo.autour(mem,pr,'skin','Edition du skin '+idskin) listicones=context.zwo_images.icones.logo_elements.objectIds() prnt=head titre='RETOUR CONTENU' prnt=prnt+context.zwo_bo.menu(zwu,pr,'nav',titre) prnt=prnt+spm titre='RETOUR LISTE' prnt=prnt+context.zwo_bo.menu(zwu,pr,'nav',titre) prnt=prnt+spm prnt=prnt+mid mod=context.zwo_modules[type] imgtyp='' if type+'.gif' in context.zwo_images.icones.logo_elements.objectIds(): imgtyp='' titre='CREATION D\'UN ELEMENT : '+imgtyp+' '+mod.title_or_id() html=mod.new_html(mem, rep) prnt=prnt+context.zwo_bo.edition(zwu,pr,'element',titre,html) prnt=prnt+foot return prnt qIU Script_magicqJKUwarningsqK)UtitleqLUUerrorsqM)U Python_magicqNU* qOu. ka((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Ucaseq U _getitem_q U_getitemq U _getattr_q U_getattrqUcontextqUmemqUprqUzwuqUstringqU listrepurlqUidskinqUzwuiqUrepqUconfqUvalqUoldcaseqUcasqUloldelemqUoldelemqUlenqUlUl2qUligneq Unewokq!tq"U co_argcountq#KubU_paramsq$Ucaseq%Uidq&Uplace_zone_editokq'U__ac_local_roles__q(}q)Uxavq*]q+UOwnerq,asU_dav_writelocksq-(U lq.(U Persistenceq/UPersistentMappingq0tq1tq2QU _bind_namesq3(cShared.DC.Scripts.Bindings NameAssignments q4oq5}q6U_asgnsq7}q8(Uname_containerq9U containerq:U name_subpathq;Utraverse_subpathqU name_contextq?Ucontextq@usbU func_defaultsqANU_codeqBTcsdZdS(Nc!st}t}||tdd}||ddjo dSn||tdd}||d}|td ||td ||d |dd } || d d jo#||tdd|Sn || d}  |d}  |||tdd| }  | }||tdd|}d}xZ|||dddr8}|||d|dgjo |}nqW|||d|}d}t|djp||ddjo|td|d }ng}||d}x|dr}|td|d|dd jo&| |dd|ddnh!|td|d|dd jo&|"|dd|d|n|$|d|qeW|&|dd|'||d })|d!jp |d"jo *d#}n|,|dd ||||.td$d%d&d'0dSdS((Nszwo_libsmem_datasdroit_edit_dossieris.Vous n'avez pas les droits pour cette action !szwo_bos presentationszwo_urlssplitsurls/isskinsskinss index_htmlis/zwo_images/bo/szwo_infos tab_to_valssccskeysis######sjoinstableauxsfindsCC:s:sappendsmanage_changePropertiessoks1s2s3sREQUESTsRESPONSEsredirects./(s _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstrings listrepurlsidskinszwuisrepsconfsvalsoldcasescasscasesloldelemsoldelemslenslsl2slignesnewok(scases _getitem_s_getitems _getattr_s_getattrscontextsmemsprszwusstrings listrepurlsidskinszwuisrepsconfsvalsoldcasescassloldelemsoldelemslenslsl2slignesnewok((sScript (Python)splace_zone_editoksF* ?# $ ! *% , .#.&(splace_zone_editok(splace_zone_editok((sScript (Python)ssqCU_bodyqDT3mem=context.zwo_lib.mem_data() if mem['droit_edit_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' pr=context.zwo_bo.presentation() zwu=mem['zwo_url'] listrepurl=string.split(string.split(mem['url'],zwu)[1],'/') if listrepurl[2]=='skin': return context.skins.index_html(mem) else: idskin=listrepurl[3] zwui=zwu+'/zwo_images/bo/' rep=context.zwo_info.skins[idskin] conf=rep val=context.zwo_lib.tab_to_val(conf) oldcase='' for cas in val['cc'].keys(): if val['cc'][cas]==['######']: oldcase=cas loldelem=val['cc'][case] oldelem="" if len(loldelem)>1 or loldelem[0]<>'': oldelem=string.join(loldelem,'/') l=[] l2=conf.tableaux for ligne in l2: if string.find(ligne,'CC:'+case+':')<>-1: l.append('CC:'+case+':'+'######') elif string.find(ligne,'CC:'+oldcase+':')<>-1: l.append('CC:'+oldcase+':'+oldelem) else: l.append(ligne) conf.manage_changeProperties(tableaux=l) newok=conf.ok if newok=="1" or newok=="2" : newok="3" conf.manage_changeProperties(ok=newok) context.REQUEST.RESPONSE.redirect('./') return qEU Script_magicqFKUwarningsqG)UerrorsqH)U Python_magicqIU* qJu. kB((U PersistenceqUPersistentMappingqtqNt.}qU _containerq}qs. kB((U PersistenceqUPersistentMappingqtqNt.}qU _containerq}qs. k/-((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Umemq Uinstanceq U _getitem_q U_getitemq U _getattr_qU_getattrqU_print_qU_printqUrollqUzwuiqUzwuqUroll2qUroll2lqU icon_adminqUregisterqU connectionqU user_nameqU user_avatarqUesp1qUesp2qUesp3qUstringqUfontq Usizeq!Uboldq"Uitalq#Uhexaq$Ustyleq%Ub0q&Ub1q'Ui0q(Ui1q)Uf0q*Uf1q+Uretq,U list_rolesq-Ucontextq.Uzuq/Uurlcq0tq1U co_argcountq2KubU_paramsq3U mem,instanceq4Uidq5U view_htmlq6U__ac_local_roles__q7}q8Uxavq9]q:UOwnerq;asU_dav_writelocksq<(U lq=(U Persistenceq>UPersistentMappingq?tq@tqAQU _bind_namesqB(cShared.DC.Scripts.Bindings NameAssignments qCoqD}qEU_asgnsqF}qG(Uname_containerqHU containerqIU name_subpathqJUtraverse_subpathqKU name_m_selfqLUscriptqMU name_contextqNUcontextqOusbU func_defaultsqPNU_codeqQTcsdZdS(Nc'(srt}t}t}dd} d} ||d} ||d}||d}||d}||d}||d }||d } ||d }!|td |d d}"|td |dd}#|td |dd}$|td |d d}%|td |dd}&|td |dd}'|td |d d}(|td |dd})|td |dd}*||d}+||d},||d}-||d}.||d}/d|d}0||IJ1d}2d}3|djo4d}5d}n6d}7d}8|djo9d}:d}n;d|d |d!} <d"}!>d?d@o#A|d#Bd$nDo(G| djo H|d%IJrd}"s|d&d'joFt|"| d(d)}"u|"| d*d+}"v|"| d,d-}"nx|d.d'joy|"| d/d0}"n{|d1}#|d2|#jo/}|"d3d4d5d6d7}"n~||"IJn|d8d9jo|djo@|d:|d;d<|d8d=IJ||IJn|djo^|| |IJ|d>|d?IJ||d8IJ|d@IJ|||!IJnn0|djo|t$dA}%|| ||IJ|dB}&|td |&|d#d}&|&djo dC}&n|dD|%dE|&dFIJ||||!IJ||IJn|djoL|| ||IJ|dD|d#dGIJ||||!IJnn|SdS(HNcs#d}d}|djod|d}d}nd|d|d}|d|d |d} |d |d} |d|d |d} |d } |d|d} |d }|d jo|d}n|d|d|d}|SdS(Nss poplink('s');s killlink();s (shlptxtshlptxt2shelpsurlsrettsnomsrolsimg(snomsurlsimgsrolshelpshlptxtshlptxt2srett((sScript (Python)srolls      csDd|d|d|dd|d|SdS(Nsrolls/zwo_bo/s f_cercle_s.gifs r_cercle_(srollsnowszwuszwuishelp(snowshelpsrollszwuszwui(szwuisrollszwu(sScript (Python)sroll2scsSt}d||dd|d|dd|d|SdS(Nsrollsrep_urls/zwo_bo/s f_cercle_s.gifs r_cercle_(s _getitem_s_getitemsrollsnowsmemszwuishelp(snowshelps _getitem_s_getitemsrollsmemszwui(szwuisrollsmem(sScript (Python)sroll2ls s icon_adminsregisters connections user_names user_avatarsesp1sesp2sesp3sreplaces*ss-s s+s
sfontssizesboldsitalshexas0sonsssss sszwo_urls/zwo_images/bo/sl sdroit_edit_dossieriseditsEdition du contenusskinsEdition des skinssarbosAdministration des pagessdroit_config_dossiersadminsAdministration du zwooks user_roles_idsManagersrollzopes/managesf_cercle_zope.gifsr_cercle_zope.gifsInterface Zopesuser_idsInconnus s���s s sacl_urlsrep_urls/s[ se connecter ]sP/zwo_modules/login_manager/inscription" class="loginclass">s'inscrire ]('s _getitem_s_getitems _getattr_s_getattrs_print_s_printsrollsroll2sroll2lsinstances icon_adminsregisters connections user_names user_avatarsesp1sesp2sesp3sstringsfontssizesboldsitalshexasstylesb0sb1si0si1sf0sf1szwuszwuismemsrets list_rolesscontextszusurlc('smemsinstances _getitem_s_getitems _getattr_s_getattrs_print_s_printsrollszwuiszwusroll2sroll2ls icon_adminsregisters connections user_names user_avatarsesp1sesp2sesp3sstringsfontssizesboldsitalshexasstylesb0sb1si0si1sf0sf1srets list_rolesscontextszusurlc((smemszwuisrollszwusScript (Python)s view_htmls!               * // ' (s view_html(s view_html((sScript (Python)ssqRU_bodyqSTdef roll(nom,url,img,rol,help): hlptxt='' hlptxt2='' if help<>'': hlptxt=' poplink(\''+help+'\');' hlptxt2='killlink();' rett='' return rett def roll2(now,help): return roll('roll'+now,zwu+'/zwo_bo/'+now,zwui+'f_cercle_'+now+'.gif',zwui+'r_cercle_'+now+'.gif',help) def roll2l(now,help): return roll('roll'+now,mem['rep_url']+'/zwo_bo/'+now,zwui+'f_cercle_'+now+'.gif',zwui+'r_cercle_'+now+'.gif',help) icon_admin=instance.icon_admin register=instance.register connection=instance.connection user_name=instance.user_name user_avatar=instance.user_avatar esp1=instance.esp1 esp2=instance.esp2 esp3=instance.esp3 esp1=string.replace(esp1,'*','') esp1=string.replace(esp1,'-',' ') esp1=string.replace(esp1,'+','
') esp2=string.replace(esp2,'*','') esp2=string.replace(esp2,'-',' ') esp2=string.replace(esp2,'+','
') esp3=string.replace(esp3,'*','') esp3=string.replace(esp3,'-',' ') esp3=string.replace(esp3,'+','
') font=instance.font size=instance.size bold=instance.bold ital=instance.ital hexa=instance.hexa style='' print style b0='' b1='' if bold=='on': b0='' b1='' i0='' i1='' if ital=='on': i0='' i1='' f0='' f1='' zwu='' zwui='' if mem: zwu=mem['zwo_url'] zwui=zwu+'/zwo_images/bo/' if mem: #~~~~~~~~~~~~~~~~~~ affichage des icones admin if icon_admin=='on': print """ """ ret='' if mem['droit_edit_dossier']==1: ret=ret+roll2l("edit",'Edition du contenu') ret=ret+roll2l("skin",'Edition des skins') ret=ret+roll2("arbo",'Administration des pages') if mem['droit_config_dossier']==1: ret=ret+roll2("admin",'Administration du zwook') list_roles=mem['user_roles_id'] if 'Manager' in list_roles: ret=ret+roll('rollzope',zwu+'/manage',zwui+'f_cercle_zope.gif',zwui+'r_cercle_zope.gif','Interface Zope') print ret if mem['user_id']<>'Inconnu': #~~~~~~~~~~~~~~~~ affichage de l'avatar du user if user_avatar=='on': print ''+mem['user_id']+'' print esp3 #~~~~~~~~~~~~~~~~ affichage du nom d'user if user_name=='on': print f0+i0 print '' print mem['user_id'] print '' print i1+f1 #~~~~~~~~~~~~~~~~ affichage du bouton se connecter else: if connection=='on': zu=context.acl_url() print f0+i0+b0 urlc=mem['rep_url'] urlc=string.replace(urlc,mem['zwo_url'],'') if urlc=='': urlc='/' print '[ se connecter ]' print b1+i1+f1 print esp1 #~~~~~~~~~~~~~~~~ affichage du bouton s'inscrire if register=='on': print f0+i0+b0 print '[ s\'inscrire ]' print b1+i1+f1 return printed qTU Script_magicqUKUwarningsqV)UerrorsqW)U Python_magicqXU* qYu. k((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Ufontq Usizeq Uhexaq Utitreq UtypeqUnomqUesp1qUesp2qUesp3qU connectionqUregisterqU user_avatarqU user_nameqU icon_adminqUboldqUitalqU _getitem_qU_getitemqU _getattr_qU_getattrqUcontextqUmemqUidobjq Uskinq!Uobjq"Udossierq#tq$U co_argcountq%KubU_paramsq&Ufont, size, hexa, titre, type,nom, esp1, esp2, esp3, connection='off', register='off', user_avatar='off', user_name='off', icon_admin='off', bold='off', ital='off'q'Uidq(U new_ok_oldq)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_m_selfq9Uscriptq:U name_contextq;Ucontextqh>h>h>h>h>h>tq?U_codeq@T(cs(ddddddddZdS(Nsoffc st}t}||tdd}||tdd|}|djoS|||tdd|}||d|||||}n> ||d}| |d|| |||}d ||d d d d ||d d dd ||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 |||&tdddd|d |(dSdS(!Nszwo_libsmem_datas mix_id_zopesskinszwo_infosskinssmanage_addFoldersrep_objsm print nom print icon_admin print connection print register print user_name print user_avatar return printed smanage_addPropertys type_zwookselementsstrings login_managers icon_admins connectionsregisters user_avatars user_namesesp1sesp2sesp3sfontssizesitalsboldshexasREQUESTsRESPONSEsredirects../../place?nom=s&obj=(s _getitem_s_getitems _getattr_s_getattrscontextsmemstitresidobjstypesnomsskinsobjsdossiers icon_admins connectionsregisters user_avatars user_namesesp1sesp2sesp3sfontssizesitalsboldshexa(sfontssizeshexastitrestypesnomsesp1sesp2sesp3s connectionsregisters user_avatars user_names icon_adminsboldsitals _getitem_s_getitems _getattr_s_getattrscontextsmemsidobjsskinsobjsdossier((sScript (Python)snew_oks4*!' "+(snew_ok(snew_ok((sScript (Python)ssqAU_bodyqBTmem=context.zwo_lib.mem_data() idobj=context.zwo_lib.mix_id_zope(titre) if type=="skin": skin=context.zwo_info.skins[nom] skin.manage_addFolder(idobj,titre) obj=skin[idobj] else: dossier=mem['rep_obj'] dossier.manage_addFolder(idobj,titre) obj=dossier[idobj] """ print nom print icon_admin print connection print register print user_name print user_avatar return printed """ obj.manage_addProperty('type_zwook','element','string') obj.manage_addProperty('element','login_manager','string') obj.manage_addProperty('icon_admin',icon_admin,'string') obj.manage_addProperty('connection',connection,'string') obj.manage_addProperty('register',register,'string') obj.manage_addProperty('user_avatar',user_avatar,'string') obj.manage_addProperty('user_name',user_name,'string') obj.manage_addProperty('esp1',esp1,'string') obj.manage_addProperty('esp2',esp2,'string') obj.manage_addProperty('esp3',esp3,'string') obj.manage_addProperty('font',font,'string') obj.manage_addProperty('size',size,'string') obj.manage_addProperty('ital',ital,'string') obj.manage_addProperty('bold',bold,'string') obj.manage_addProperty('hexa',hexa,'string') context.REQUEST.RESPONSE.redirect('../../place?nom='+nom+'&obj='+idobj) return qCU Script_magicqDKUwarningsqE)UerrorsqF)U Python_magicqGU* qHu. k((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Umemq Udossierq U _getitem_q U_getitemq U _getattr_qU_getattrqUcontextqUexemple_titre_baseqU exemple_titreqUindiceqUstrqUnomqUtitreqUidobjqUskinqUobjqtqU co_argcountqKubU_paramsqU mem,dossierqUidqUnew_htmlqU__ac_local_roles__q }q!Uxavq"]q#UOwnerq$asU_dav_writelocksq%(U lq&(U Persistenceq'UPersistentMappingq(tq)tq*QU _bind_namesq+(cShared.DC.Scripts.Bindings NameAssignments q,oq-}q.U_asgnsq/}q0(Uname_containerq1U containerq2U name_subpathq3Utraverse_subpathq4U name_contextq5Ucontextq6U name_m_selfq7Uscriptq8usbU func_defaultsq9NU_codeq:TcsdZdS(Nc st}t}||tdd}d}|}d} xA|||djo$| d} |t | }qNW ||d}  |}  ||tdd| } |}||d| | ||| }||d d d d ||d d dd ||d d dd ||d ddd ||d ddd ||d ddd ||d ddd ||d ddd ||d ddd ||d ddd ||d ddd ||d ddd ||d ddd | |d ddd |!|d ddd |||#td d!d"d#| d$| dS(%Nszwo_libsmem_datas login_manageris objectIdssgetIds mix_id_zopesmanage_addFoldersmanage_addPropertys type_zwookselementsstrings icon_adminsons connectionsregistersoffs user_avatars user_namesesp1s+sesp2sesp3sfontsarialssizes-1sitalsboldshexas000000sREQUESTsRESPONSEsredirects place?nom=s&obj=(s _getitem_s_getitems _getattr_s_getattrscontextsmemsexemple_titre_bases exemple_titresindicesdossiersstrsnomstitresidobjsskinsobj(smemsdossiers _getitem_s_getitems _getattr_s_getattrscontextsexemple_titre_bases exemple_titresindicesstrsnomstitresidobjsskinsobj((sScript (Python)snew_htmls:   "  ! "(snew_html(snew_html((sScript (Python)ssq;U_bodyq}q?U_asgnsq@}qA(Uname_containerqBU containerqCU name_subpathqDUtraverse_subpathqEU name_contextqFUcontextqGU name_m_selfqHUscriptqIusbU func_defaultsqJ(U010qKhKhKhKhKhKtqLU_codeqMTcs%dddddddZdS(Ns010c(:s8t}t} t} | | tdd} d}| | | | || ddddd}| | | | || ddddd }d d g}x|dr} | t d ||d } | t d ||d } | t d ||d } | t d ||d } | t d ||d }| t d ||d }qW| t d |dd}d }d }|djp |d jod}|d}nd }|djp |d jod}|d}nd }| t d|d}|djp|d jpt|djod} |d}n"d }#|djp |d jo$d}%|d}n&d}'xW| | | || ddddd'r#}(||jo )d}nqW*|djo"+d},|d |d!}n.d }/|djp$|djp|d jp |d jo 0d"}n1||jo 2d"}n3|d"jo4|d#}n6|d jo1|d jo$|d jo|d jo |d joB8| t d$| t d%}9d }:x5t d&d:r"}!;|| t"d'|}qzW<|}#=| | || dd(d)}$| | >|$d*d+||| || ?|$d*|d,d-|d.| || @|$d*|d,d/|d.| || A|$d*|d,d0|d.| || B|$d*|d,d|d.| || C|$d*|d,d1|#d.E| | |$d2d3d4|#}%Fd5|d6}&G|&d7}&H|&|%d6}&I|&d8}&| | Jtd9d:|&d;|d<|d=d>|d?d@Kd}nCPdA}'Q| dBIJR| |IJS| dC|'dDIJT| SW|djo`X| | tdE| IJY| dFIJZ| dGIJ[| | tdH| IJ]| SndS(INszwo_libsmem_dataiszwo_objszwo_infosgenerals general_datasemailssitessreplacess s_s010sv0sInscrire le nom

spn0sInscrire le prnom

sfinds@s-1sem0sInscrire l'email

sl0sInscrire le login

suserss objectIdsisk0sInscrire un autre login : s est dja utilis

sps0s1Inscrire et confirmer le mot de passe

s lowercasesdigitsischoices zwo_moduless login_managersusers_non_activesmanage_addDTMLDocumentsmanage_addPropertyspasswsstringsnomsprenomscles activations absolute_urls?cle=s;Votre email a t utilis pour une inscription sur le site s s:Cliquez sur le lien ci-dessous pour activer votre compte sMerci. A bientot sur le sitesMailHostssendsmtosmfromssubjectsInscription sur le site sencodesquoted-printablesjavascript:history.back()s%


s

ok

sstandard_html_headers[Inscription complte

sMerci de votre inscription.

Vous allez recevoir un mail a l'adresse que vous avez indiqu.

Cliquez sur le lien contenu dans ce mail pour activer votre compte.
sstandard_html_footer((s _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextsmemsaffsfmailsnom_sites interditssinterdisstringsnomsprenomsemailsloginspass1spass2smsgsc_nomsc_prenomsc_emailsemsstrsc_loginsusedsusrsc_passscaractereauthorisepourpasswdspasswdsrangesisrandomsclesadrsadr_actsmessagesretour((snomsloginsprenomsemailspass1spass2s _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextsmemsaffsfmailsnom_sites interditssinterdisstringsmsgsc_nomsc_prenomsc_emailsemsstrsc_loginsusedsusrsc_passscaractereauthorisepourpasswdspasswdsrangesisrandomsclesadrsadr_actsmessagesretour((sScript (Python)sinscription_oks3 66"      0    <  7  D   *%....%& 5       (sinscription_ok(sinscription_ok((sScript (Python)ssqNU_bodyqOTf mem=context.zwo_lib.mem_data() aff=0 fmail=mem['zwo_obj'].zwo_info.general.general_data.email nom_site=mem['zwo_obj'].zwo_info.general.general_data.site #~ controle anti auto-nakeur interdits=['<','>'] for interdi in interdits: nom=string.replace(nom,interdi,'') prenom=string.replace(prenom,interdi,'') email=string.replace(email,interdi,'') login=string.replace(login,interdi,'') pass1=string.replace(pass1,interdi,'') pass2=string.replace(pass2,interdi,'') login=string.replace(login,' ','_') msg='' #~ controle nom c_nom='' if nom=='010' or nom=='': c_nom='v0' msg=msg+'Inscrire le nom

' #~ controle prenom c_prenom='' if prenom=='010' or prenom=='': c_prenom='pn0' msg=msg+'Inscrire le prnom

' #~ controle email c_email='' em=string.find(email,'@') if email=='010' or email=='' or str(em)=='-1': c_email='em0' msg=msg+'Inscrire l\'email

' #~ controle login c_login='' if login=='010' or login=='': c_login='l0' msg=msg+'Inscrire le login

' used=0 for usr in mem['zwo_obj'].zwo_info.users.objectIds(): if login==usr: used=1 if used==1: c_login='k0' msg=msg+'Inscrire un autre login : '+login+' est dja utilis

' #~ controle pass c_pass='' if pass1=='010' or pass2=='010' or pass1=='' or pass2=='': c_pass='ps0' if pass1<>pass2: c_pass='ps0' if c_pass=='ps0': msg=msg+'Inscrire et confirmer le mot de passe

' #~ check des controles if c_nom=='' and c_prenom=='' and c_email=='' and c_pass=='' and c_login=='': #~ on gnre la cl et on enregistre les donnes caractereauthorisepourpasswd=string.lowercase+string.digits passwd="" for i in range (16): passwd=passwd+random.choice(caractereauthorisepourpasswd) cle=passwd adr=mem['zwo_obj'].zwo_modules.login_manager adr.users_non_active.manage_addDTMLDocument(login,login) adr.users_non_active[login].manage_addProperty('passw',pass1,'string') adr.users_non_active[login].manage_addProperty('nom',nom,'string') adr.users_non_active[login].manage_addProperty('prenom',prenom,'string') adr.users_non_active[login].manage_addProperty('email',email,'string') adr.users_non_active[login].manage_addProperty('cle',cle,'string') #~ on envoie l'email avec la cle d'activation adr_act=adr.activation.absolute_url()+'?cle='+cle message='Votre email a t utilis pour une inscription sur le site '+nom_site+'\n\n' message=message+'Cliquez sur le lien ci-dessous pour activer votre compte\n\n' message=message+adr_act+'\n\n' message=message+'Merci.\nA bientot sur le site' context.MailHost.send(message, mto=email, mfrom=fmail, subject='Inscription sur le site '+nom_site, encode='quoted-printable') aff=1 #return "oooooooook" else: #~ on retourne remplir les bonnes cases #retour=context.REQUEST['HTTP_REFERER'] retour='javascript:history.back()' print '


' print msg print '

ok

' return printed if aff==1: print context.standard_html_header(mem) print 'Inscription complte

' print 'Merci de votre inscription.

Vous allez recevoir un mail a l\'adresse que vous avez indiqu.

Cliquez sur le lien contenu dans ce mail pour activer votre compte.
' print context.standard_html_footer(mem) return printed qPU Script_magicqQKUwarningsqR)UerrorsqS)U Python_magicqTU* qUu. k ((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Uhexaq Ufontq Usizeq Uesp1q Uesp2qUesp3qUtype_repqUnom_repqUnom_insqU connectionqUregisterqU user_avatarqU user_nameqU icon_adminqUitalqUboldqU _getitem_qU_getitemqU _getattr_qU_getattrqUcontextqUmemqUskinq Uobjq!Udossierq"tq#U co_argcountq$KubU_paramsq%Uhexa, font, size, esp1, esp2, esp3, type_rep, nom_rep, nom_ins, connection='off', register='off', user_avatar='off', user_name='off', icon_admin='off', ital='off', bold='off'q&Uidq'U config_okq(U__ac_local_roles__q)}q*Uxavq+]q,UOwnerq-asU _bind_namesq.(cShared.DC.Scripts.Bindings NameAssignments q/oq0}q1U_asgnsq2}q3(Uname_containerq4U containerq5U name_subpathq6Utraverse_subpathq7U name_contextq8Ucontextq9U name_m_selfq:Uscriptq;usbU func_defaultsq<(Uoffq=h=h=h=h=h=h=tq>U_codeq?Tcs(ddddddddZdS(Nsoffc st}t}||tdd}|djo:|||tdd|}|||}n%||d}|||}| |dd| | |dd | | |dd | | |dd | ||dd | ||dd |||dd|||dd|||dd|||dd|||dd|||dd|||dd||||tdddd|ddS(Nszwo_libsmem_datasskinszwo_infosskinssrep_objsmanage_changePropertiess user_names user_avatars icon_admins connectionsregistersesp1sesp2sesp3shexasboldsitalssizesfontsREQUESTsRESPONSEsredirects../../index_html?nom=s&popup=1(s _getitem_s_getitems _getattr_s_getattrscontextsmemstype_repsnom_repsskinsnom_inssobjsdossiers user_names user_avatars icon_admins connectionsregistersesp1sesp2sesp3shexasboldsitalssizesfont(shexasfontssizesesp1sesp2sesp3stype_repsnom_repsnom_inss connectionsregisters user_avatars user_names icon_adminsitalsbolds _getitem_s_getitems _getattr_s_getattrscontextsmemsskinsobjsdossier((sScript (Python)s config_oks&*$(s config_ok(s config_ok((sScript (Python)ssq@U_bodyqAT)mem=context.zwo_lib.mem_data() if type_rep=="skin": skin=context.zwo_info.skins[nom_rep] obj=skin[nom_ins] else: dossier=mem['rep_obj'] obj=dossier[nom_ins] obj.manage_changeProperties(user_name=user_name) obj.manage_changeProperties(user_avatar=user_avatar) obj.manage_changeProperties(icon_admin=icon_admin) obj.manage_changeProperties(connection=connection) obj.manage_changeProperties(register=register) obj.manage_changeProperties(esp1=esp1) obj.manage_changeProperties(esp2=esp2) obj.manage_changeProperties(esp3=esp3) obj.manage_changeProperties(hexa=hexa) obj.manage_changeProperties(bold=bold) obj.manage_changeProperties(ital=ital) obj.manage_changeProperties(size=size) obj.manage_changeProperties(font=font) context.REQUEST.RESPONSE.redirect('../../index_html?nom='+nom_rep+'&popup=1') qBU Script_magicqCKUwarningsqD)UerrorsqE)U Python_magicqFU* qGu. k 8 ((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Umemq Udossierq U _getitem_q U_getitemq U _getattr_qU_getattrqU_print_qU_printqUcontextqUexemple_titre_baseqU exemple_titreqUindiceqUstrqUHexaqUelemqUrangeqUrUvUbUrvbqUlnkrvbqU casecolorqUlUliqUctqU co_argcountqKubU_paramsq U mem,dossierq!Uidq"U new_html_oldq#U__ac_local_roles__q$}q%Uxavq&]q'UOwnerq(asU_dav_writelocksq)(U lq*(U Persistenceq+UPersistentMappingq,tq-tq.QU _bind_namesq/(cShared.DC.Scripts.Bindings NameAssignments q0oq1}q2U_asgnsq3}q4(Uname_containerq5U containerq6U name_subpathq7Utraverse_subpathq8U name_m_selfq9Uscriptq:U name_contextq;UcontextqTcsdZdS(Ncst}t}t}||tdd}d} | } d} xA| ||djo$| d} | t | } qWW |dIJ |dIJ |d | d IJ|d IJ|d IJ|d IJ|d||ddIJ|d||ddIJ|d||ddIJ|d||ddIJ|d||ddIJ|dIJ|dIJ|dIJ|d||ddIJ|d||ddIJ|d||ddIJ|d||ddIJ |d ||ddIJ"|d!IJ$|d"||ddIJ%|d#||ddIJ&|d$||ddIJ'|d%||ddIJ(|d&||ddIJ*|d'IJ+|d(IJ-|d)IJ.|d*IJ/|d+IJ0|d,IJ1|d-IJ2|d.IJ3|d/IJ4|d0IJ5|d1IJ6|d2IJ7|d3IJ8|d4IJ9|d5IJ:|d6IJ;|d7IJ<|d8IJ=|d9IJ>|d:IJ?|d;IJ@|d<IJA|d=IJB|d>IJC|d?IJD|d@IJE|dAIJF|dBIJG|dCIJH|dDIJI|dEIJJ|dFIJK|dGIJMdHdIdJdKg} Ng}OxtdLdOr}PxtdLdPr}QxtdLdQrr}R|| ||| ||| |}SdM|dN}TdO|dP|dQ}|U|dR|qWqWqWW|dSIJXxtdLdXrn}Y|dTIJZg}[x?tdLdLd[r(}\||||dLdL|IJqW]|dUIJqW^|dVIJ`|dWIJa|dXIJb|dYIJc|dZIJd|dAIJf||d[d\jog|d]IJni|d^IJj|d_||d`dPIJk|daIJl|dbIJm|SdS(cNszwo_libsmem_datas login_manageris objectIdsisM
(s _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextsmemsexemple_titre_bases exemple_titresindicesdossiersstrsHexaselemsrangesrsvsbsrvbslnkrvbs casecolorslslisc(smemsdossiers _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextsexemple_titre_bases exemple_titresindicesstrsHexaselemsrangesrsvsbsrvbslnkrvbs casecolorslslisc((sScript (Python)s new_html_olds   "                                            ,   &       !  (s new_html_old(s new_html_old((sScript (Python)ssq?U_bodyq@T#choix du nom propos par default mem=context.zwo_lib.mem_data() exemple_titre_base='login_manager' exemple_titre=exemple_titre_base indice=0 while exemple_titre in dossier.objectIds(): indice=indice+1 exemple_titre=exemple_titre_base+str(indice) print '
' print '' print 'Identifiant :

' print 'Vous allez installer un login manager. Le rglage par dfaut installe un login manager avec toutes les options pre-rgles

' print 'Utilisateur anonyme

' print ' Afficher le bouton se connecter si l\'utilisateur est anonyme
' #~~~~~~~~~~~~ esp1 print ' rien ' print ' espace ' print ' double espace' print ' saut de ligne ' print ' double saut de ligne

' #~~~~~~~~~~~~ end esp1 print ' Afficher le bouton s\'inscrire si l\'utilisateur est anonyme

' print 'Utilisateur connect

' print ' Afficher les icnes d\'admin quand l\'utilisateur est connect
' #~~~~~~~~~~~~ esp2 print ' rien ' print ' espace ' print ' double espace' print ' saut de ligne ' print ' double saut de ligne

' #~~~~~~~~~~~~ end esp2 print ' Afficher l\'avatar de l\'utilisateur quand l\'utilisateur est connect

' #~~~~~~~~~~~~ esp3 print ' rien ' print ' espace ' print ' double espace' print ' saut de ligne ' print ' double saut de ligne

' #~~~~~~~~~~~~ end esp3 print ' Afficher le nom de l\'utilisateur quand l\'utilisateur est connect

' print 'Police de caractres

' #~ ----------- font level 1 ------------- print 'Police de caractres des boutons :
' print '' print '' elem.append(casecolor) print '
' print '' print ' ' print 'Taille : ' print ' Gras ' print ' Italique ' print '

' print 'Couleur des caractres : ' print '' #~ ---------------- colortab -------------------- Hexa=['00','55','AA','FF'] elem=[] for r in range(4): for v in range(4): for b in range(4): rvb=Hexa[r]+Hexa[v]+Hexa[b] lnkrvb='   ' casecolor='
'+lnkrvb+'
' for l in range(4): print '' li=[] for c in range(4*4): print elem[l*4*4+c] print '' print '
' #~ ---------------- end colortab -------------------- print '
' print 'Hexa : ' print '
' print '' print '

' if dossier.type_zwook=="skin": print '' else: print '' print '' print '' print '
' return printed qAU Script_magicqBKUwarningsqC)UerrorsqD)U Python_magicqEU* qFu. kG((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Ucleq U _getitem_q U_getitemq U _getattr_q U_getattrqU_print_qU_printqUcontextqUmemqUwbemastqUsiteqUisokqUusrqUloginqUpasswdqUemailqUnomqUprenomqUnomzqUuserfolderzopeqUlisqUnewobjqUDateTimeq U containerq!Ustrq"Umessageq#tq$U co_argcountq%KubU_paramsq&U cle='0002211'q'Uidq(U activationq)U__ac_local_roles__q*}q+Ugregq,]q-UOwnerq.asU_dav_writelocksq/(U lq0(U Persistenceq1UPersistentMappingq2tq3tq4QU _bind_namesq5(cShared.DC.Scripts.Bindings NameAssignments q6oq7}q8U_asgnsq9}q:(Uname_containerq;U containerqU name_m_selfq?Uscriptq@U name_contextqAUcontextqBusbU func_defaultsqC(U0002211qDtqEU_codeqFTX csddZdS(Ns0002211cst}t}t}||tdd}||||||ddddd} ||||||ddddd} ||td |IJ|d IJd }  x||td d d  r}  || d|joj d}  || d}  || d}|| d}|| d}|| d}nqW| djo4||tdd| }||tdd}||tdd}||d||gd||||ddd|| |||}||dddd ||dd!d"d ||dd|d ||dd|d ||dd|d ||dd#td$||dd%||td&d'd |||!td | d(| g#d)|d*|d+| d,tt}||$td-d.|d/| d0| d1d2| d3d4&|d5IJn)|d6IJ*||td7|IJ,|SdS(8Nszwo_libsmem_dataszwo_objszwo_infosgenerals general_datasemailssitesstandard_html_headers[Activation du compte

isusers_non_actives objectValuesscleisgetIdspasswsnomsprenoms mix_id_zopesacl_objs acl_userssuserssuserFolderAddUserssmanage_addProductsOFSPsmanage_addFoldersmanage_addPropertys type_zwooksusersstringsoks1s date_creationsdates IP_creationsREQUESTs REMOTE_ADDRsmanage_delObjectss Le membre s ( s# ) vient de s'inscrire sur le site s sMailHostssendsmtosmfromssubjectsInscription sur sencodesquoted-printablesVotre inscription a t valide.

Vous pouvez maintenant vous connecter en utilisant votre login et mot de passe.sAucun compte a activersstandard_html_footer(s _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextsmemswbemastssitesisoksusrsclesloginspasswdsemailsnomsprenomsnomzsuserfolderzopeslissnewobjsDateTimes containersstrsmessage(scles _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextsmemswbemastssitesisoksusrsloginspasswdsemailsnomsprenomsnomzsuserfolderzopeslissnewobjsDateTimes containersstrsmessage((sScript (Python)s activationsD366  * !%"4"45 (s activation(s activation((sScript (Python)ssqGU_bodyqHTImem=context.zwo_lib.mem_data() wbemast=mem['zwo_obj'].zwo_info.general.general_data.email site=mem['zwo_obj'].zwo_info.general.general_data.site print context.standard_html_header(mem) print 'Activation du compte

' #~ verif si sa cle existe isok=0 for usr in context.users_non_active.objectValues(): if usr.cle==cle: isok=1 login=usr.getId() passwd=usr.passw email=usr.email nom=usr.nom prenom=usr.prenom if isok==1: #~ crer le user nomz=context.zwo_lib.mix_id_zope(login) userfolderzope=context.acl_obj().acl_users lis=context.zwo_info.users userfolderzope.userFolderAddUser(nomz, passwd, [], "") lis.manage_addProduct['OFSP'].manage_addFolder(nomz, login) newobj=lis[nomz] newobj.manage_addProperty('type_zwook','user','string') newobj.manage_addProperty('ok','1','string') newobj.manage_addProperty('email',email,'string') newobj.manage_addProperty('nom',nom,'string') newobj.manage_addProperty('prenom',prenom,'string') newobj.manage_addProperty("date_creation", DateTime(), "date") newobj.manage_addProperty("IP_creation", container.REQUEST['REMOTE_ADDR'], "string") #~ effacer de users_non_active context.users_non_active[login].manage_delObjects([login]) #~ envoyer un message au webmaster message='Le membre '+nomz+' ( '+email+' ) vient de s\'inscrire sur le site '+site+'\n\n'+str(DateTime()) context.MailHost.send(message, mto=wbemast, mfrom=wbemast, subject='Inscription sur '+site, encode='quoted-printable') #~ ok print 'Votre inscription a t valide.

Vous pouvez maintenant vous connecter en utilisant votre login et mot de passe.' else: #~ message erreur print 'Aucun compte a activer' print context.standard_html_footer(mem) return printed qIU Script_magicqJKUwarningsqK)UerrorsqL)U Python_magicqMU* qNu. kH>((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Umemq Urepq Uinstanceq U _getitem_q U_getitemqU _getattr_qU_getattrqU_print_qU_printqUcontextqUfontqUsizeqUhexaqUboldqUitalqUc2qUesp1qUesp2qUesp3qUe1qUe2qUe3qUe4q Ue5q!Uc3q"Uc1q#Uf1q$Uf2q%Uf3q&Uf4q'Uf5q(Uc4q)Ug1q*Ug2q+Ug3q,Ug4q-Ug5q.Uc5q/Uk1q0Uk2q1Uk3q2Us1q3Us2q4Us3q5Us4q6Us5q7Us6q8Us7q9Us8q:Us9q;Us10qUiiq?UHexaq@UelemqAUrangeqBUrUvUbUrvbqCUlnkrvbqDU casecolorqEUlUliqFUctqGU co_argcountqHKubU_paramsqIUmem,rep,instanceqJUidqKU config_htmlqLU__ac_local_roles__qM}qNUxavqO]qPUOwnerqQasU_dav_writelocksqR(U lqS(U PersistenceqTUPersistentMappingqUtqVtqWQU _bind_namesqX(cShared.DC.Scripts.Bindings NameAssignments qYoqZ}q[U_asgnsq\}q](Uname_containerq^U containerq_U name_subpathq`Utraverse_subpathqaU name_m_selfqbUscriptqcU name_contextqdUcontextqeusbU func_defaultsqfNU_codeqgT9%csdZdS(NcB1s t}t}t}||tdd}||d} ||d} ||d} ||d} ||d}|dIJ |d IJ |d IJ |d IJ d }||d djo d}n|d|dIJ||d}||d}||d}d }|djo d}n|d|d||ddIJd }|djo d}n|d|d||ddIJd }|djo d}n |d|d||ddIJ!d }"|d jo #d}n$|d!|d||dd"IJ%d }&|d#jo 'd}n(|d$|d||dd%IJ*d }+||d&djo ,d}n-|d'|d(IJ.|d)IJ/d }0||d*djo 1d}n2|d+|d,IJ4d }5|djo 6d}n7|d-|d||ddIJ8d }9|djo :d}n;|d.|d||ddIJ<d }=|djo >d}n?|d/|d||ddIJ@d }A|d jo Bd}nC|d0|d||dd"IJDd }E|d#jo Fd}nG|d1|d||dd%IJId }J||d2djo Kd}nL|d3|d4IJNd } O|djo Pd} nQ|d5| d||ddIJRd }!S|djo Td}!nU|d6|!d||ddIJVd }"W|djo Xd}"nY|d7|"d||ddIJZd }#[|d jo \d}#n]|d8|#d||dd"IJ^d }$_|d#jo `d}$na|d9|$d||dd%IJcd }%d||d:djo ed}%nf|d;|%d<IJg|d=IJi|d>IJj|d?IJk|d@IJl|dAIJm|dBIJnd }&o| dCjo pdD}&nq|dE|&dFIJrd }'s| dGjo tdD}'nu|dH|'dIIJvd }(w| dJjo xdD}(ny|dK|(dLIJz|dMIJ{|dNIJ|d })}| dOjo ~dD})n|dP|)dQIJd }*| dRjo dD}*n|dS|*dTIJd }+| dUjo dD}+n|dV|+dWIJd },| dXjo dD},n|dY|,dZIJd }-| d[jo dD}-n|d\|-d]IJd }.| d^jo dD}.n|d_|.d`IJd }/| dajo dD}/n|db|/dcIJd }0| ddjo dD}0n|de|0dfIJd }1| dgjo dD}1n|dh|1diIJd }2| djjo dD}2n|dk|2dlIJd }3| dmjo dD}3n|dn|3doIJ|dpIJd }4| djo d}4n|dq|4drIJd }5|djo d}5n|ds|5dtIJ|duIJ|dvIJ|dwIJ|dxIJ|dyIJ|dzIJ|d{IJd|d}d~dg}6g}7xt7ddr}9xt7ddr}:xt7ddrr};||6|9||6|:||6|;}<d|<d}=d|<d|=d}>||7d|>q Wq Wq| W|dIJxt7ddrn}?|dIJg}@x?t7dddr(}A|||7|?dd|AIJq W|dIJqR W|dIJ|dIJ|d| dIJ|dIJ|dIJ|duIJ|d||ddIJ|d||ddIJ|d||ddIJ|dIJ|dIJ|SdS(Nszwo_libsmem_datasfontssizeshexasboldsitals[Modification du Login Manager :

sP
ssZUtilisateur anonyme

ss connectionsons checkeds( Afficher le bouton se connecter si l'utilisateur est anonyme

sesp1sesp2sesp3s*s) rien s-s) espace s--s* double espaces+s) saut de ligne s++s* double saut de ligne

sregisters& Afficher le bouton s'inscrire si l'utilisateur est anonyme

s[Utilisateur connect

s icon_admins( Afficher les icnes d'admin quand l'utilisateur est connect

s) Afficher l'avatar de l'utilisateur quand l'utilisateur est connect

s) Afficher le nom de l'utilisateur quand l'utilisateur est connect

s[Police de caractres

s(Police de caractres des boutons :
s2s"sappends3
ss sTaille : s" Gras s" Italique s

sCouleur des caractres : ss00s55sAAsFFiis#   s
s
sss
s
s6Hexa : s
(Bs _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextsmemsinstancesfontssizeshexasboldsitalsc2sesp1sesp2sesp3se1se2se3se4se5sc3sc1sf1sf2sf3sf4sf5sc4sg1sg2sg3sg4sg5sc5sk1sk2sk3ss1ss2ss3ss4ss5ss6ss7ss8ss9ss10ss11sbbsiisHexaselemsrangesrsvsbsrvbslnkrvbs casecolorslsliscsrep(Bsmemsrepsinstances _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextsfontssizeshexasboldsitalsc2sesp1sesp2sesp3se1se2se3se4se5sc3sc1sf1sf2sf3sf4sf5sc4sg1sg2sg3sg4sg5sc5sk1sk2sk3ss1ss2ss3ss4ss5ss6ss7ss8ss9ss10ss11sbbsiisHexaselemsrangesrsvsbsrvbslnkrvbs casecolorslslisc((sScript (Python)s config_htmls3        &  &  &  &  &       &  &  &  &  &    &  &  &  &  &                                                   ,   &     !!  (s config_html(s config_html((sScript (Python)ssqhU_bodyqiTmem=context.zwo_lib.mem_data() font=instance.font size=instance.size hexa=instance.hexa bold=instance.bold ital=instance.ital print 'Modification du Login Manager :

' print '
' return printed qjU Script_magicqkKUwarningsql)Uerrorsqm)U Python_magicqnU* qou. k 7((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Umeq U _getattr_q U_getattrq U_print_q U_printqUcontextqUmemqUp1qUstringqUp2qUp3qUp4qUp5qtqU co_argcountqKubU_paramsqUme=''qUidqU inscriptionqU__ac_local_roles__q}qUgregq]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_selfq.Uscriptq/usbU func_defaultsq0(Utq1U_codeq2TR csddZdS(Nsc st}t}||tdd}||td|IJ|dIJ|dIJ|dIJ|dIJ|dIJ |d IJ |d IJ |dIJ |d IJ|dIJ|d IJ|d IJ|dIJd}|td|ddjo d}n||IJ|dIJ|d IJ|dIJ|dIJ|dIJ|d IJ|d IJ |dIJ!d} "|td|ddjo #d} n$|| IJ%|dIJ'|d IJ(|dIJ)|dIJ*|dIJ+|d IJ,|d IJ-|dIJ.d} /|td|ddjo 0d} n1|| IJ2|dIJ4|d IJ5|dIJ6|dIJ7|dIJ8|d IJ9|d IJ:|dIJ;d} <|td|ddjo =d } n>|td|d!djo ?d"} n@|| IJA|dIJC|d IJD|dIJE|d#IJF|dIJG|d IJH|d IJI|d$IJJ|dIJL|d IJM|dIJN|d%IJO|dIJP|d IJQ|d IJR|d&IJSd} T|td|d'djo Ud(} nV|| IJW|dIJY|d)IJZ|d IJ[|d*IJ\|dIJ]|d+IJ^||td,|IJ`|SdS(-Nszwo_libsmem_datasstandard_html_headersRInscription

s,
' print '' #print 'Identifiant : '+instance.title+'

' print 'Utilisateur anonyme

' c2='' if instance.connection=='on': c2=' checked' print ' Afficher le bouton se connecter si l\'utilisateur est anonyme

' esp1=instance.esp1 esp2=instance.esp2 esp3=instance.esp3 #~~~~~~~~~~~~ esp1 e1='' if esp1=='*': e1=' checked' print ' rien ' e2='' if esp1=='-': e2=' checked' print ' espace ' e3='' if esp1=='--': e3=' checked' print ' double espace' e4='' if esp1=='+': e4=' checked' print ' saut de ligne ' e5='' if esp1=='++': e5=' checked' print ' double saut de ligne

' #~~~~~~~~~~~~ end esp1 c3='' if instance.register=='on': c3=' checked' print ' Afficher le bouton s\'inscrire si l\'utilisateur est anonyme

' print 'Utilisateur connect

' c1='' if instance.icon_admin=='on': c1=' checked' print ' Afficher les icnes d\'admin quand l\'utilisateur est connect

' #~~~~~~~~~~~~ esp2 f1='' if esp2=='*': f1=' checked' print ' rien ' f2='' if esp2=='-': f2=' checked' print ' espace ' f3='' if esp2=='--': f3=' checked' print ' double espace' f4='' if esp1=='+': f4=' checked' print ' saut de ligne ' f5='' if esp2=='++': f5=' checked' print ' double saut de ligne

' #~~~~~~~~~~~~ end esp2 c4='' if instance.user_avatar=='on': c4=' checked' print ' Afficher l\'avatar de l\'utilisateur quand l\'utilisateur est connect

' #~~~~~~~~~~~~ esp3 g1='' if esp3=='*': g1=' checked' print ' rien ' g2='' if esp3=='-': g2=' checked' print ' espace ' g3='' if esp3=='--': g3=' checked' print ' double espace' g4='' if esp3=='+': g4=' checked' print ' saut de ligne ' g5='' if esp3=='++': g5=' checked' print ' double saut de ligne

' #~~~~~~~~~~~~ end esp1 c5='' if instance.user_name=='on': c5=' checked' print ' Afficher le nom de l\'utilisateur quand l\'utilisateur est connect

' print 'Police de caractres

' #~ ----------- font level 1 ------------- print 'Police de caractres des boutons :
' print '' print '' elem.append(casecolor) print '
' print '' print ' ' print 'Taille : ' bb='' if bold=='on': bb=' checked' print ' Gras ' ii='' if ital=='on': ii=' checked' print ' Italique ' print '

' print 'Couleur des caractres : ' print '' #~ ---------------- colortab -------------------- Hexa=['00','55','AA','FF'] elem=[] for r in range(4): for v in range(4): for b in range(4): rvb=Hexa[r]+Hexa[v]+Hexa[b] lnkrvb='   ' casecolor='
'+lnkrvb+'
' for l in range(4): print '' li=[] for c in range(4*4): print elem[l*4*4+c] print '' print '
' #~ ---------------- end colortab -------------------- print '
' print 'Hexa : ' print '
' print '' print '

' print '' print '' print '' print '' print '
ss?Identifiant :

sVous allez installer un login manager. Le rglage par dfaut installe un login manager avec toutes les options pre-rgles

sZUtilisateur anonyme

su Afficher le bouton se connecter si l'utilisateur est anonyme
s7 rien s7 espace s8 double espaces7 saut de ligne s@ double saut de ligne

sw Afficher le bouton s'inscrire si l'utilisateur est anonyme

s[Utilisateur connect

su Afficher les icnes d'admin quand l'utilisateur est connect
s7 Afficher l'avatar de l'utilisateur quand l'utilisateur est connect

s7 Afficher le nom de l'utilisateur quand l'utilisateur est connect

s[Police de caractres

s(Police de caractres des boutons :
s2s"sappends3
ss sTaille : s1 Gras s- Italique s

sCouleur des caractres : ss00s55sAAsFFis#   s
s
sss
s
s>Hexa : s
ss type_zwooksskins.s1s's
ssPour vous inscrire, notez ci-dessous le login ( votre nom d'utilisateur ) que vous souhaitez ainsi que votre mot de passe.

s
s2s&s!sPrnom :s+spn0s6
Ecrire votre prnomsEmail :s*sem0s5
Ecrire votre emailsLogin :s*sl0s5
Ecrire votre loginsk0sY
Ce login a dja t pris. Merci d'en choisir un autre.sMot de passe :s.sConfirmer le mot de passe :s.sps0sI
Ecrire et confirmer votre mot de passess.
s
sNom :ss(sscountsv0is3
Ecrire votre noms
 
sstandard_html_footer( s _getattr_s_getattrs_print_s_printscontextsmemsp1sstringsmesp2sp3sp4sp5( smes _getattr_s_getattrs_print_s_printscontextsmemsp1sstringsp2sp3sp4sp5((sScript (Python)s inscriptions-              "           "           "           " "                   "        (s inscription(s inscription((sScript (Python)ssq3U_bodyq4T2 mem=context.zwo_lib.mem_data() print context.standard_html_header(mem) print 'Inscription

' print '' print '' print 'Pour vous inscrire, notez ci-dessous le login ( votre nom d\'utilisateur ) que vous souhaitez ainsi que votre mot de passe.

' print '
' print '' #~ """""""""" nom """"""""""" print '' print '' #~ """""""""" prenom """"""""""" print '' print '' #~ """""""""" email """"""""""" print '' print '' #~ """""""""" login """"""""""" print '' print '' #~ """""""""" pass """"""""""" print '' print '' #~ """""""""" pass2 """"""""""" print '' print '' #~ """""""""" envoi """"""""""" print '' print '' print '
' print '' print 'Nom :' print '' print '' print '' p1='' #print me #print str(string.count(me,'v0')) if string.count(me,'v0')<>0: p1='
Ecrire votre nom' print p1 print '
' print '' print 'Prnom :' print '' print '' print '' p2='' if string.count(me,'pn0')<>0: p2='
Ecrire votre prnom' print p2 print '
' print '' print 'Email :' print '' print '' print '' p3='' if string.count(me,'em0')<>0: p3='
Ecrire votre email' print p3 print '
' print '' print 'Login :' print '' print '' print '' p4='' if string.count(me,'l0')<>0: p4='
Ecrire votre login' if string.count(me,'k0')<>0: p4='
Ce login a dja t pris. Merci d\'en choisir un autre.' print p4 print '
' print '' print 'Mot de passe :' print '' print '' print '' print '
' print '' print 'Confirmer le mot de passe :' print '' print '' print '' p5='' if string.count(me,'ps0')<>0: p5='
Ecrire et confirmer votre mot de passe' print p5 print '
 ' print '
' print '
' print context.standard_html_footer(mem) return printed q5U Script_magicq6KUwarningsq7)Uerrorsq8)U Python_magicq9U* q:u. k((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Umemq Uinstanceq U _getitem_q U_getitemq U _getattr_qU_getattrqU_print_qU_printqUzwoqUzwuqUfontqU font_sizeqUsizeqUf1qUusrqUuserqUavqUaeqUstrqtqU co_argcountqKubU_paramsqU mem,instanceq Uidq!U view_htmlq"U__ac_local_roles__q#}q$Uxavq%]q&UOwnerq'asU_dav_writelocksq((U lq)(U Persistenceq*UPersistentMappingq+tq,tq-QU _bind_namesq.(cShared.DC.Scripts.Bindings NameAssignments q/oq0}q1U_asgnsq2}q3(Uname_containerq4U containerq5U name_subpathq6Utraverse_subpathq7U name_m_selfq8Uscriptq9U name_contextq:Ucontextq;usbU func_defaultsq|d*IJ?|d/IJqW@|d0IJB|SdS(1Nszwo_objszwo_urlszwo_infosgenerals general_datasfonts font_sizes0ss size="s"s ss. s#sNomsEmailsDate d'inscription
ssuserss objectValuesisgetIds's0.gifs hasPropertysavatars s���ss#ss is email_publicsoffsemails s
s date_creationsuser_idsG[ Editer ]s s(s _getitem_s_getitems _getattr_s_getattrs_print_s_printsmemszwoszwusfonts font_sizessizesf1susrsusersavsaesstr(smemsinstances _getitem_s_getitems _getattr_s_getattrs_print_s_printszwoszwusfonts font_sizessizesf1susrsusersavsaesstr((sScript (Python)s view_htmlsp'66      3  %                   (s view_html(s view_html((sScript (Python)ssq>U_bodyq?T>zwo=mem['zwo_obj'] zwu=mem['zwo_url'] font=mem['zwo_obj'].zwo_info.general.general_data.font font_size=mem['zwo_obj'].zwo_info.general.general_data.font_size if font_size=='0': size='' else: size=' size="'+font_size+'"' f1='' print '' print '' print '' print '' print '' print '' print '' print '' for usr in zwo.zwo_info.users.objectValues(): user=usr.getId() print '' print '' print '' print '' print '' print '
 '+f1+'Nom'+f1+'Email'+f1+'Date d\'inscription 
' av='0.gif' if usr.hasProperty('avatar'): av=usr.avatar print ''+user+'' print '' print ''+f1+'' print user print '' print '' print ''+f1+'' ae=1 if usr.hasProperty('email_public'): if usr.email_public<>'off': if usr.email<>'': print usr.email else: print ' ' else: print ' ' else: if usr.email<>'': print usr.email else: print ' ' print '' print '' print f1 print str(usr.date_creation) print '' print '' if mem['user_id']==user: print f1 print '[ Editer ]' print '' else: print ' ' print '
' return printed q@U Script_magicqAKUwarningsqB)UerrorsqC)U Python_magicqDU* qEu. k a((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_printqUcontextqUmemqUaffqUnU last_lineqUimgqtqU co_argcountqKubU_paramsqUUidqU edit_avatarqU__ac_local_roles__q}qUgregq]qUOwnerqasU_dav_writelocksq(U lq (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_contextq/Ucontextq0U name_m_selfq1Uscriptq2usbU func_defaultsq3NU_codeq4TcsdZdS(Nc st}t}t}||tdd}||td|IJ|dIJ|d||ddIJ|dIJd } d }  d }  |d } x||||||d d dddd  r}  | | djo|d}n|d}|d}|d|| dd}|d|| ddd}|d}|d}| d} | | djo|d}| } nqW|d }||d!IJ||td"|IJ|SdS(#Nszwo_libsmem_datasstandard_html_headersssuser_idsR : choisir mon avatar : cliquer sur un avatar pour le slctionner

s
sis2szwo_objszwo_infosimagessavatars objectValuesi s s#iss
s,s+ss
ss
s

sstandard_html_footer( s _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextsmemsaffsns last_linesimg( s _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextsmemsaffsns last_linesimg((sScript (Python)s edit_avatars23      E  !%     (s edit_avatar(s edit_avatar((sScript (Python)ssq5U_bodyq6Tmem=context.zwo_lib.mem_data() print context.standard_html_header(mem) print '' print ''+mem['user_id']+' : choisir mon avatar : cliquer sur un avatar pour le slctionner

' print '
' #~boucle affichage des avatars aff='' n=0 last_line=0 aff=aff+'' for img in mem['zwo_obj'].zwo_info.images.avatar.objectValues(): if n>last_line+10: aff=aff+'\n' aff=aff+'' n=n+1 if n>last_line+10: aff=aff+'' last_line=n aff=aff+'
' aff=aff+'
' aff=aff+'' aff=aff+''+'
' aff=aff+'
' aff=aff+'
' print aff+'

' print context.standard_html_footer(mem) return printed q7U Script_magicq8KUwarningsq9)Uerrorsq:)U Python_magicq;U* qssuser_ids0 : diter mes informations perso

s
s,
s2ss"s&
sEmail : s&s's
s s checkeds hasPropertys email_publicsoffss* les autres utilisateurs peuvent voir mon emails Avatar : s  [ Modifier ]s,
s
s
s
s
sFs
s

sstandard_html_footer( s _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextsmemsck( s _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextsmemsck((sScript (Python)s edit_membersf3          '     "                         (s edit_member(s edit_member((sScript (Python)ssq-U_bodyq.T/mem=context.zwo_lib.mem_data() print context.standard_html_header(mem) print '' print ''+mem['user_id']+' : diter mes informations perso

' print '
' print '
' print '' print '' print '' print '' print '' print '' print '' print '
' print '' print 'Email : ' print '' print '' print '' print '
' print ' ' print '' print '' ck=' checked' if mem['user_zw_obj'].hasProperty('email_public'): if mem['user_zw_obj'].email_public=='off': ck='' print ' les autres utilisateurs peuvent voir mon email' print '' print '
' print '' print 'Avatar : ' print '' print '' print '' print ' [ Modifier ]' print '' print '
' print '' print ' ' print '' print '' print '
' print '
' print '
' print '
' print '
' print '' print '
' print '

' print context.standard_html_footer(mem) return printed q/U Script_magicq0KUwarningsq1)Uerrorsq2)U Python_magicq3U* q4u. k((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Utypeq Unomq Utitreq U _getitem_q U_getitemqU _getattr_qU_getattrqU_print_qU_printqUcontextqUmemqUidobjqUlieuqUurl_lieuqUtxtplusqU containerqUurlqUobjqtqU co_argcountqKubU_paramsqUtype, nom, titreqUidq Unew_okq!U__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_subpathq0U name_contextq1Ucontextq2U name_m_selfq3Uscriptq4usbU func_defaultsq5NU_codeq6TWcsdZdS(Ncst}t}t}||tdd} ||tdd|} |djoo|||tdd|} || dd} d |} || d d jo  d SnnV || d }  || dd} d}|| d d jo d Sn| || djo| d|td|}|d|dIJ|d| dIJ|dIJ|dIJ|d|dIJ|dIJ|Sn| | d| |$|| | }|'|ddd d!|(|dd |tdd!|||*td"d#d$d%|d&| ,dSdS('Nszwo_libsmem_datas mix_id_zopesskinszwo_infosskinsszwo_urls/zwo_config/skin/etape3s&nom=sdroit_config_dossieris.Vous n'avez pas les droits pour cette action !srep_objsrep_urls /zwo_adminss objectIdss/ajout_element?type=sgetIds7s.

Cet identifiant s est dja pris
s"Veuillez en choisir un autre
s6Redirection automatique dans 2 secondes.

sGSi la Redirection automatique ne fonctionne pas, cliquez ici : Redirection Manuellessmanage_addFoldersmanage_addPropertys type_zwookselementsstringsREQUESTsRESPONSEsredirects../../place?nom=s&obj=(s _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextsmemstitresidobjstypesnomslieusurl_lieustxtpluss containersurlsobj(stypesnomstitres _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextsmemsidobjslieusurl_lieustxtpluss containersurlsobj((sScript (Python)snew_oks8!$   !   .+(snew_ok(snew_ok((sScript (Python)ssq7U_bodyq8T# RECUPERATION DES PARAMETRES mem=context.zwo_lib.mem_data() idobj=context.zwo_lib.mix_id_zope(titre) if type=="skin": lieu=context.zwo_info.skins[nom] url_lieu=mem['zwo_url']+'/zwo_config/skin/etape3' txtplus='&nom='+nom # Verification des droits if mem['droit_config_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' else: lieu=mem['rep_obj'] url_lieu=mem['rep_url']+'/zwo_admin' txtplus='' # Verification des droits if mem['droit_config_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' # REDIRECTION SI IDENTIFIANT MAL CHOISI if idobj in lieu.objectIds(): url=url_lieu+'/ajout_element?type='+container.getId()+txtplus print '' print '

Cet identifiant '+idobj+' est dja pris
' print 'Veuillez en choisir un autre
' print 'Redirection automatique dans 2 secondes.

' print 'Si la Redirection automatique ne fonctionne pas, cliquez ici : Redirection Manuelle' print '' return printed # CREATION INSTANCE MODULE (dossier, image, DTML Document ou Fichier selon Besoin. Folder conseill en cas de doute) lieu.manage_addFolder(idobj,titre) #lieu.manage_addImage(idobj,data,titre) #lieu.manage_addFile(idobj, file=data, title=titre) #lieu.manage_addDTMLDocument(idobj, titre) obj=lieu[idobj] # AJOUT DES PROPRIETES OBLIGATOIRE DU MODULES obj.manage_addProperty('type_zwook','element','string') obj.manage_addProperty('element',container.getId(),'string') context.REQUEST.RESPONSE.redirect('../../place?nom='+nom+'&obj='+idobj) return q9U Script_magicq:KUwarningsq;)Uerrorsq<)U Python_magicq=U* q>u. k ((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Utypeq Unomq Uidobjq U _getitem_q U_getitemqU _getattr_qU_getattrqUcontextqUmemqUlieuqUurl_lieuqUobjqUnom_repqtqU co_argcountqKubU_paramsqUtype, nom, idobjqUidqU config_okqU__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_m_selfq,Uscriptq-U name_contextq.Ucontextq/usbU func_defaultsq0NU_codeq1TcsdZdS(Nc sFt}t}||tdd}|djob|||tdd|} ||dd} ||dd jo d SnnM ||d }  ||d d }  ||dd jo  d Sn || |} || ddd|||tddddt dS(Nszwo_libsmem_datasskinszwo_infosskinsszwo_urls/zwo_config/skin/etape3sdroit_config_dossieris.Vous n'avez pas les droits pour cette action !srep_objsrep_urls /zwo_adminsdroit_admin_dossiersmanage_changePropertiess proprietesnouvelle valeursREQUESTsRESPONSEsredirects../../index_html?nom=( s _getitem_s_getitems _getattr_s_getattrscontextsmemstypesnomslieusurl_lieusidobjsobjsnom_rep( stypesnomsidobjs _getitem_s_getitems _getattr_s_getattrscontextsmemslieusurl_lieusobjsnom_rep((sScript (Python)s config_oks$ (s config_ok(s config_ok((sScript (Python)ssq2U_bodyq3T# RECUPERATION DES PARAMETRES mem=context.zwo_lib.mem_data() if type=="skin": lieu=context.zwo_info.skins[nom] url_lieu=mem['zwo_url']+'/zwo_config/skin/etape3' if mem['droit_config_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' else: lieu=mem['rep_obj'] url_lieu=mem['rep_url']+'/zwo_admin' if mem['droit_admin_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' obj=lieu[idobj] # EXEMPLE MODIFICATION obj.manage_changeProperties(propriete="nouvelle valeur") # REDIRECTION PAGE ADMIN GENERALE PAGE OU SKIN. context.REQUEST.RESPONSE.redirect('../../index_html?nom='+nom_rep) q4U Script_magicq5KUwarningsq6)Uerrorsq7)U Python_magicq8U* q9u. k((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Uavatariq U _getitem_q U_getitemq U _getattr_q U_getattrqUcontextqUmemqtqU co_argcountqKubU_paramsqUavatariqUidqUedit_avatar_okqU__ac_local_roles__q}qUgregq]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+TcsdZdS(Nc st}t}||tdd}|||dddo&|||ddd|n&|||ddd|d|||td d d d  dSdS( Nszwo_libsmem_datas user_zw_objs hasPropertysavatarsmanage_changePropertiessmanage_addPropertysstringsREQUESTsRESPONSEsredirects edit_member(s _getitem_s_getitems _getattr_s_getattrscontextsmemsavatari(savataris _getitem_s_getitems _getattr_s_getattrscontextsmem((sScript (Python)sedit_avatar_oks 0"&((sedit_avatar_ok(sedit_avatar_ok((sScript (Python)ssq,U_bodyq-T mem=context.zwo_lib.mem_data() if mem['user_zw_obj'].hasProperty('avatar'): mem['user_zw_obj'].manage_changeProperties(avatar=avatari) else: mem['user_zw_obj'].manage_addProperty('avatar',avatari,'string') context.REQUEST.RESPONSE.redirect('edit_member') return q.U Script_magicq/KUwarningsq0)Uerrorsq1)U Python_magicq2U* q3u. k((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Uemailq U email_publicq U _getitem_q U_getitemq U _getattr_qU_getattrqU_print_qU_printqUcontextqUmemqtqU co_argcountqKubU_paramsqUemail, email_public='off'qUidqUedit_member_okqU__ac_local_roles__q}qUgregq]qUOwnerqasU _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-(Uoffq.tq/U_codeq0TcsddZdS(Nsoffc st}t}t}||tdd} ||| ddd|||| dddo&||| ddd|n&||| ddd|d  |d IJ |SdS( Nszwo_libsmem_datas user_zw_objsmanage_changePropertiessemails hasPropertys email_publicsmanage_addPropertysstringsR




OK

( s _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextsmemsemails email_public( semails email_publics _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextsmem((sScript (Python)sedit_member_oks 9""& (sedit_member_ok(sedit_member_ok((sScript (Python)ssq1U_bodyq2Tmem=context.zwo_lib.mem_data() mem['user_zw_obj'].manage_changeProperties(email=email) if mem['user_zw_obj'].hasProperty('email_public'): mem['user_zw_obj'].manage_changeProperties(email_public=email_public) else: mem['user_zw_obj'].manage_addProperty('email_public',email_public,'string') print '




OK

' return printed q3U Script_magicq4KUwarningsq5)Uerrorsq6)U Python_magicq7U* q8u. k v((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Umemq Udossierq U _getattr_q U_getattrq U_print_qU_printqU containerqUtypemodqUexemple_titre_baseqU exemple_titreqUindiceqUstrqtqU co_argcountqKubU_paramsqU mem,dossierqUidqUnew_htmlqU__ac_local_roles__q}qUxavq]qUOwnerq asU_dav_writelocksq!(U lq"(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_subpathq0U name_contextq1Ucontextq2U name_m_selfq3Uscriptq4usbU func_defaultsq5NU_codeq6T/csdZdS(Nc s@t}t}|td}|}|} d}  xA | ||djo$ | d}  |t | } qHW|d|dIJ|dIJ|d| d IJ||d d jo|d IJn|d IJ|d||ddIJ|dIJ |dIJ#|SdS(NsgetIdis objectIdsis(
ss?Identifiant :

s type_zwooksskins.s1s's0s
( s _getattr_s_getattrs_print_s_prints containerstypemodsexemple_titre_bases exemple_titresindicesdossiersstr( smemsdossiers _getattr_s_getattrs_print_s_prints containerstypemodsexemple_titre_bases exemple_titresindicesstr((sScript (Python)snew_htmls"   "   !  (snew_html(snew_html((sScript (Python)ssq7U_bodyq8T)# RECUPERATION DU TYPE DE MODULE CONCERNE :# typemod=container.getId() ############################################ # PROPOSITION DE NOM POUR LE MODULE :####### exemple_titre_base=typemod exemple_titre=exemple_titre_base indice=0 while exemple_titre in dossier.objectIds(): indice=indice+1 exemple_titre=exemple_titre_base+str(indice) ############################################ # SI dernire page de formulaire de module # # Dbut Formulaire Nouvel instance ####### print '
' print '' print 'Identifiant :

' if dossier.type_zwook=="skin": print '' else: print '' print '' ############################################ # Formulaire Spcial pour ce module ####### #print '
EXEMPLE
' ############################################ # Fin Formulaire Nouvel instance ######### print '' print '
' ############################################ return printed q9U Script_magicq:KUwarningsq;)Uerrorsq<)U Python_magicq=U* q>u. k ((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Umemq Urepq Uinstanceq U _getattr_q U_getattrqU_print_qU_printqU containerqUtypemodqUurl_locqU url_paramsqtqU co_argcountqKubU_paramsqUmem, rep, instanceqUidqU config_htmlqU__ac_local_roles__q}qUxavq]qUOwnerqasU_dav_writelocksq (U lq!(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_defaultsq4NU_codeq5TcsdZdS(Nc slt}t}|td}|d|dIJ|d||ddIJ |d||dd IJ |d ||dd IJ |d ||dd IJ |d ||d dIJ|dIJ|dIJd|d} d||dd||dd||d} |d| d| dIJ|SdS(NsgetIds(
sIdentifiant : stitles

s(s's proprietes

s(s


s zwo_modules/s/stype=s&nom=sidobj=s+Script de configuration autre ... CLIQUER ICI( s _getattr_s_getattrs_print_s_prints containerstypemodsinstancesrepsurl_locs url_params( smemsrepsinstances _getattr_s_getattrs_print_s_prints containerstypemodsurl_locs url_params((sScript (Python)s config_htmls!!  >(s config_html(s config_html((sScript (Python)ssq6U_bodyq7T# RECUPERATION DU TYPE DE MODULE CONCERNE :# typemod=container.getId() ############################################ # EXEMPLE DE FORMULAIRE DE MODIFICATION # Formulaire Standart print '
' print 'Identifiant : '+instance.title+'

' print '' print '' print '' # Personalisation Formulaire print 'Proprit :

' # Fin Formulaire print '' print '


' # EXEMPLE DE LIENS VERS UN SCRIPT INTERMDAIRE script_i url_loc="zwo_modules/"+typemod+'/' url_params='type='+rep.type_zwook+'&nom='+rep.getId()+'idobj='+instance.getId() print 'Script de configuration autre ... CLIQUER ICI' return printed q8U Script_magicq9KUwarningsq:)Uerrorsq;)U Python_magicqss?Identifiant :

s0s
( s _getattr_s_getattrs_print_s_prints containerstypemodsnamemodsexemple_titre_bases exemple_titresindicesdossiersstr( smemsdossiers _getattr_s_getattrs_print_s_prints containerstypemodsnamemodsexemple_titre_bases exemple_titresindicesstr((sScript (Python)snew_htmls   "    (snew_html(snew_html((sScript (Python)ssq8U_bodyq9T# typemod est l'id du module et namemod est son title typemod=container.getId() namemod=container.title_or_id() # proposition de nom pour l'element exemple_titre_base=namemod exemple_titre=exemple_titre_base indice=0 while exemple_titre in dossier.objectIds(): indice=indice+1 exemple_titre=exemple_titre_base+str(indice) # debut formulaire HTML simple de cration d'element print '
' print '' print 'Identifiant :

' # suite standart print '' print '
' return printed q:U Script_magicq;KUwarningsq<)Uerrorsq=)U Python_magicq>U* q?u. k((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Umemq UmUaU _getattr_q U_getattrq U_print_q U_printqUDateTimeqUactuqUintqUcontextqtqU co_argcountqKubU_paramsqUmem,m=-1, a=-1qUidqUcalendarqU__ac_local_roles__q}qUxavinskyq]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,(JJtq-U_codeq.Tcsd d dZdS(Nic st}t}|d joFt}t||d}t||d}nt|}t|} ||t d|||IJ |SdS(Nismmsyysaffichage_mois( s _getattr_s_getattrs_print_s_printsasDateTimesactusintsmscontextsmem( smemsmsas _getattr_s_getattrs_print_s_printsDateTimesactusintscontext((sScript (Python)scalendars  "(scalendar(scalendar((sScript (Python)ssq/U_bodyq0Uif a==-1: actu=DateTime() m=int(actu.mm()) a=int(actu.yy()) else: m=int(m) a=int(a) print context.affichage_mois(mem,m,a) return printed q1U Script_magicq2KUwarningsq3)Uerrorsq4)U Python_magicq5U* q6u. k ((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Utitreq U _getitem_q U_getitemq U _getattr_q U_getattrqU_print_qU_printqUcontextqUmemqUlieuqUurl_lieuqUidobjqU containerqUurlqUobjqtqU co_argcountqKubU_paramsqUtitreqUidqUnew_okqU__ac_local_roles__q}q Ugregq!]q"UOwnerq#asU_dav_writelocksq$(U lq%(U Persistenceq&UPersistentMappingq'tq(tq)QU _bind_namesq*(cShared.DC.Scripts.Bindings NameAssignments q+oq,}q-U_asgnsq.}q/(Uname_containerq0U containerq1U name_subpathq2Utraverse_subpathq3U name_m_selfq4Uscriptq5U name_contextq6Ucontextq7usbU func_defaultsq8NU_codeq9TcsdZdS(Ncst}t}t}||tdd}||d} ||d} ||tdd|}  | || djo | d|t d}  |d | d IJ |d | d IJ |d IJ|dIJ|d| dIJ|dIJ|Sn|| d| ||| | }||dddd||dd|t dd|||tddd| d| dSdS(Nszwo_libs mem_mod_datasparents parent_urls mix_id_zopes objectIdssajout_element?type=sgetIds7s.

Cet identifiant s est dja pris
s"Veuillez en choisir un autre
s6Redirection automatique dans 2 secondes.

sGSi la Redirection automatique ne fonctionne pas, cliquez ici : Redirection Manuellessmanage_addFoldersmanage_addPropertys type_zwookselementsstringsREQUESTsRESPONSEsredirects place?obj=(s _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextsmemslieusurl_lieustitresidobjs containersurlsobj(stitres _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextsmemslieusurl_lieusidobjs containersurlsobj((sScript (Python)snew_oks&!   .'(snew_ok(snew_ok((sScript (Python)ssq:U_bodyq;Tl# RECUPERATION DES PARAMETRES mem=context.zwo_lib.mem_mod_data() lieu=mem['parent'] url_lieu=mem['parent_url'] idobj=context.zwo_lib.mix_id_zope(titre) # REDIRECTION SI IDENTIFIANT MAL CHOISI if idobj in lieu.objectIds(): url=url_lieu+'ajout_element?type='+container.getId() print '' print '

Cet identifiant '+idobj+' est dja pris
' print 'Veuillez en choisir un autre
' print 'Redirection automatique dans 2 secondes.

' print 'Si la Redirection automatique ne fonctionne pas, cliquez ici : Redirection Manuelle' print '' return printed # CREATION INSTANCE MODULE (dossier, image, DTML Document ou Fichier selon Besoin. Folder conseill en cas de doute) lieu.manage_addFolder(idobj,titre) obj=lieu[idobj] # AJOUT DES PROPRIETES OBLIGATOIRE DU MODULES obj.manage_addProperty('type_zwook','element','string') obj.manage_addProperty('element',container.getId(),'string') context.REQUEST.RESPONSE.redirect(url_lieu+'place?obj='+idobj) return q)Uerrorsq?)U Python_magicq@U* qAu. k!i((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Umemq Uinstanceq U _getattr_q U_getattrq U_print_qU_printqUcontextqtqU co_argcountqKubU_paramsqU mem,instanceqUidqU view_htmlqU__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+TcsdZdS(Ncs9t}t}||td|IJ|SdS(Nscalendar(s _getattr_s_getattrs_print_s_printscontextsmem(smemsinstances _getattr_s_getattrs_print_s_printscontext((sScript (Python)s view_htmls+(s view_html(s view_html((sScript (Python)ssq,U_bodyq-U+print context.calendar(mem) return printed q.U Script_magicq/KUwarningsq0)Uerrorsq1)U Python_magicq2U* q3u. k"((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Umemq Umoisq Uanneeq U _getitem_q U_getitemqU _getattr_qU_getattrqU_print_qU_printqUruqUintqUamqUmmqUmpqUapqUDateTimeqUactuqUmaqUjaqUm0qUa0qUstrqUstrdateq UdataCalq!UmUjUsU premierlundiq"Udiffq#Udatepremq$Um2q%Udatecaseq&Urangeq'UaUj2q(tq)U co_argcountq*KubU_paramsq+Umem,mois,anneeq,Uidq-Uaffichage_moisq.U__ac_local_roles__q/}q0Uxavinskyq1]q2UOwnerq3asU_dav_writelocksq4(U lq5(U Persistenceq6UPersistentMappingq7tq8tq9QU _bind_namesq:(cShared.DC.Scripts.Bindings NameAssignments q;oq<}q=U_asgnsq>}q?(Uname_containerq@U containerqAU name_subpathqBUtraverse_subpathqCU name_m_selfqDUscriptqEU name_contextqFUcontextqGusbU func_defaultsqHNU_codeqITcsdZdS(Nc#hsnt}t}t}||d} t|} t|d} | djod} | d} nt|d}  t|} | djo d}  |d}nt}t||d}t||d}|djo d }n d }|djo d }n d }|t|d |t|}t|}t||d}t||d}||d } ||d d}"||}#|t|}$|djo%|d}n'|}(|})|dIJ*|dIJ+|dIJ,|d| dIJ-||t|d|t|IJ.|dIJ/|dIJ0|dIJ1|dIJ2|dIJ3|dIJ4|dIJ5|dIJ6|dIJ7|dIJ8|dIJ9|dIJ:x:||jo;|dIJ<xt dd<r}!=t||d}>t||d}"?||jo7@|dIJA||"jo2B||joC|d IJnE|d!IJnG|d!IJH|d"IJI|d#IJJ|d$| d%t|"d&t|d't|IJK||"jo2L||joM|d(IJnO|d)IJnQ|d)IJS|||dIJT|d*IJU|d+IJn4X|d,IJY|||dIJZ|d+IJ[|d-IJ\|d}qjW]|dIJq;W^|d.IJ_|SdS(/Nsrep_urliii i smmsddi s0ss/15/20sdowiisssIssnsososnsnsnsns*s
s3s 20ss
LMaMeJVSDs-s">s ssZs
(#s _getitem_s_getitems _getattr_s_getattrs_print_s_printsmemsrusintsanneesamsmoissmmsmpsapsDateTimesactusmasjasm0sa0sstrsstrdatesdataCalsmsjsss premierlundisdiffsdatepremsm2sdatecasesrangesasj2(#smemsmoissannees _getitem_s_getitems _getattr_s_getattrs_print_s_printsrusintsamsmmsmpsapsDateTimesactusmasjasm0sa0sstrsstrdatesdataCalsmsjsss premierlundisdiffsdatepremsm2sdatecasesrangesasj2((sScript (Python)saffichage_moiss'       %      )                 ;      (saffichage_mois(saffichage_mois((sScript (Python)ssqJU_bodyqKT ru=mem['rep_url'] am=int(annee) mm=int(mois)-1 if mm==0: mm=12 am=am-1 mp=int(mois)+1 ap=int(annee) if mp==13: mp=1 ap=ap+1 actu=DateTime() ma=int(actu.mm()) ja=int(actu.dd()) if mois<10: m0="0" else: m0='' if annee<10: a0="0" else: a0='' strdate=m0+str(mois)+'/15/20'+a0+str(annee) dataCal=DateTime(strdate) m=int(dataCal.mm()) j=int(dataCal.dd()) s=dataCal.dow() premierlundi=(j-s+8)%7 diff=j-premierlundi dateprem=dataCal-int(diff) if premierlundi>1: dateprem=dateprem-7 m2=m datecase=dateprem print '' print '' print '' print '' print '' print '' print '' print '' print '' print '' print '' print '' print '' while m==m2: print '' for a in range(7): m2=int(datecase.mm()) j2=int(datecase.dd()) if m2==m: print '' datecase=datecase+1 print '' print '
' print '' print m0+str(mois)+" 20"+a0+str(annee) print '' print '
LMaMeJVSD
' print '' else: print '">' else: print '">' print datecase.dd() print "" print "" else: print '' print datecase.dd() print "" print '
' return printed qLU Script_magicqMKUwarningsqN)UerrorsqO)U Python_magicqPU* qQu. k$c((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Umemq Urepq Uinstanceq U_print_q U_printqtqU co_argcountqKubU_paramsqUmem, rep, instanceqUidqU config_htmlqU__ac_local_roles__q}qUxavq]qUOwnerqasU_dav_writelocksq(U lq(U PersistenceqUPersistentMappingqtqtqQU _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_codeq/TicsdZdS(Ncs$t}|dIJ|SdS(NsPas d'edition pour ce module.(s_print_s_print(smemsrepsinstances_print_s_print((sScript (Python)s config_htmls(s config_html(s config_html((sScript (Python)ssq0U_bodyq1U6print 'Pas d\'edition pour ce module.' return printed q2U Script_magicq3KUwarningsq4)Uerrorsq5)U Python_magicq6U* q7u. k f((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (UiUparamsq U _getitem_q U_getitemq U _getattr_q U_getattrqU_print_qU_printqU Liste_LiensqU Liste_TitreqUnUstringqUnom_repqUrangeqUlenqUatqU co_argcountqKubU_paramsqUi,paramsqUidqUmenuqU__ac_local_roles__q}qUxavq]q UOwnerq!asU_dav_writelocksq"(U mq#(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_subpathq0Utraverse_subpathq1U name_m_selfq2Uscriptq3U name_contextq4Ucontextq5usbU func_defaultsq6NU_codeq7TcsdZdS(Ncspt}t}t}ddddg}ddddg} d } ||t d ||t d |d d d d }  |dIJ |dIJ xt t |d  r} | d } | |jo;|d|||d|d|| |dIJn8|d|||d|d|| |dIJqW|dIJ|SdS(Nsconf_1sconf_2sconf_3sconf_4sOptions de NavigationsElements GraphiquessNiveaux de navigationsPersonalisation des Dossiersissplits&nom=is&idobjsF
Configuration de la navigation
sEsPsPsaaas s########s$$$$$$$$s objectIdssFolders$#$#$#$#sse1_niv_tjs_touss e1_niv_tjs_nbse1_niv_vue_touss e1_niv_vue_nbsgetId(s _getitem_s_getitems _getattr_s_getattrsaffdefsaffsintsprsniveauslistesrepsnewlistes aff_1elemsnivsrepimagesbros listrepinrepslistpagesisrslensaffiche_element_v(srepslistesniveausprsnivsrepimages _getitem_s_getitems _getattr_s_getattrsaffdefsaffsintsnewlistes aff_1elemsbros listrepinrepslistpagesisrslensaffiche_element_v(saffiche_element_vs listrepinreps aff_1elem(sScript (Python)saffiche_element_vsF  Q " ; ;% * * 2csu*t}t} +d} -d} 0t||ddjo01|t||djo 2d} nn5| djo6| d} 7|}8x|d8r}9|||}:||d| |djo6;t|djo<dg}n >d g}n @d g}B| ||||||} qWC| d } nGd}Ht||d djo|t||d joId }nK|d joL|}N||d|jozOt|djoP||dd}n Rdg}S| ||||d||d|||} nnU| SdS(Nsise1_niv_inv_nulls e1_niv_inv_nbissgetIds$$$$$$$$s$#$#$#$#s########sse1_niv_vue_touss e1_niv_vue_nb(s _getitem_s_getitems _getattr_s_getattrsaffdefsaffsintsprsniveaus listrepinrepsrepslistpagespagesrslisteslensnewlistes aff_1elemsnivsrepimagesbrosaffiche_element_h(srepslistesniveausprsnivsrepimages _getitem_s_getitems _getattr_s_getattrsaffdefsaffsints listrepinrepslistpagespagesrslensnewlistes aff_1elemsbrosaffiche_element_h(s listrepinrepsaffiche_element_hs aff_1elem(sScript (Python)saffiche_element_h*s8   % & ; @sse1_marges0s/
sConfiguration de la navigation' print '' for a in range(len(Liste_Liens)): n=n+1 if n==i: print '' else: print '' print '
'+Liste_Titre[a]+''+Liste_Titre[a]+'
' return printed q:U Script_magicq;KUwarningsq<)Uerrorsq=)U Python_magicq>U* q?u. kr+((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Umemq Uinstanceq U_write_q U_writeq U _getitem_qU_getitemqU _getattr_qU_getattrqUobjqUidiqU affichageqUprqUnivqUrepimageqUlineqUstringqUpartlineqUniveqUsousdicqUposqUlistdepqU urlrel_to_objqUdepartq U liste_posq!U liste_pos_nvq"UaUlenq#Ufe2q$U listrepinrepq%U aff_1elemq&Uaffiche_element_vq'Uaffiche_element_hq(Ucolq)Usouq*Usurq+Udecoq,Ucelspaq-tq.U co_argcountq/KubU_paramsq0U mem,instanceq1Uidq2U view_htmlq3U__ac_local_roles__q4}q5Uxavq6]q7UOwnerq8asU_dav_writelocksq9(U mq:(U Persistenceq;UPersistentMappingqQU _bind_namesq?(cShared.DC.Scripts.Bindings NameAssignments q@oqA}qBU_asgnsqC}qD(Uname_containerqEU containerqFU name_subpathqGUtraverse_subpathqHU name_m_selfqIUscriptqJU name_contextqKUcontextqLusbU func_defaultsqMNU_codeqNT<csdZdS(Nc%8s>t}t}t}}||dd} h} h} h}  x||dd r} ||ddjoS |td||ddd} ||d|| ||djo&| ||d| | | } n=| d?} | ||d| | | } | d@} | dA} | SdS(BNsgetIdssINFOisPssplitis# $ #sNisimageis_shas_keysrep_urlszwo_urlsreplacesaaas/s e1_departc s t}t}!|d}"|td|d}#g} $x=|d$r0} %| djo|&| d| nqQW'xE| d'r8} (| ||djo)||| }nqW*|SdS(Nszwo_objssplits/issappends objectIds( s _getitem_s_getitems _getattr_s_getattrsmemsrepsstringsurls liste_urls liste_url_nvsa( surls _getitem_s_getitems _getattr_s_getattrsmemsrepsstrings liste_urls liste_url_nvsa(smem(sScript (Python)s urlrel_to_obj s sappends$$$$$$$$c s;t}t}<t} |=|dt|oQ||>|t|d|o%?|||t||} nn@| oAt |d|t dt |djob|B|ddoE||C|dd|oD|||d|} nnn_|F|ddoE||G|dd|oH|||d|} nnnI| oJ|||} nK| SdS(Nshas_keyisfloorspairesimpaire( s _getitem_s_getitems _getattr_s_getattrsNonesretsnivsstrsniveaus proprietesfloatsmathspr( s proprietesniveausprsnivs _getitem_s_getitems _getattr_s_getattrsNonesretsstrsfloatsmath((sScript (Python)sfe2;s "") 6*' c sNt}||Q|dddo:R|||dd}S|td|d}n Ug}Wg}Xx~||dddXrb}|Y|dd oCZ||d d jo&|[|d ||d nnqW]g}_xR|d_rE} `| |jo/a| |j o|b|d | nnqWdx>|ddr1} e| |j o|f|d | nqhWh|SdS( Ns zwo_dossiers hasPropertysordressplits&s objectValuessFolderis type_zwooksdossiersappendsgetId( s _getattr_s_getattrsrepsordresstringslordreslistrepsrslistpagesi( sreps _getattr_s_getattrsordresstringslordreslistrepsrslistpagesi((sScript (Python)s listrepinrepNs$  '+ c%Js kt}t} ld} m| td| |d|d} nt | djoo|| d}n qd}s|}t|djo ud}n| v|d|ow| td|||d}yd }z||d d jo*{||d d jo |d}nn|~|d d jp |djo#||d ||djn|dd|dd| dd}| td|dd}|}d| |dd}|d|d|||dd}|d}|d|d|||d d}|d}|d|||dd}|d|||d d|d}d |d!Sn| td|dd"}| |d}d }||d d jo*||d d jo d}nn||d d jp |djo| d#d$|||d%d&|||d'd(|||d)} d*|||}|d+joo| d,d$|||d%d&|||d'd(|||d-|dd.|d/} nd0|||}|d+jo*| d1|dd2|d3} ntd4|||}|d jo=t||}| d1|dd5|d3} nd6|||}|d+jo*| d1|dd2|d3} nd7|||} d8|||}!d}"d}#d9|||d:jo|"d;}"|#d<}#nd=|||d:jo|"d>}"d?|#}#n| d@dA|dB| dC|!d)|"| |dD|#dE} dF|||}|d+jo*| d1|dd2|d3} ntdG|||}|d jo=t||}| d1|ddH|d3} ndI|||}|d+jo*| d1|dd2|d3} ndJ|||}|d+joo| d,d$|||d%d&|||d'd(|||d-|dd.|d/} nn| d#d$|||d%d&|||d'dK|||d)} d*|||}|d+joo| d,d$|||d%d&|||d'd(|||d-|dd.|d/} nd0|||}|d+jo*| d1|dd2|d3} ntd4|||}|d jo=t||}| d1|dd5|d3} nd6|||}|d+jo*| d1|dd2|d3} ndL|||} dM|||}!d}"d}#dN|||d:jo|"d;}"|#d<}#ndO|||d:jo|"d>}"d?|#}#n| dPdA|dB| dC|!d)|"| |dD|#dQ} dF|||}|d+jo*| d1|dd2|d3} ntdG|||}|d jo=t||}| d1|dd5|d3} ndI|||}|d+jo*| d1|dd2|d3} ndJ|||}|d+joo| d,d$|||d%d&|||d'd(|||d-|dd.|d/} n| d!} | SdS(RNsssplits absolute_urlszwo_urlis//shas_keys@ise1_senss verticales$#$#$#$#s$$$$$$$$is/zwo_info/skins/sskin_ids/sgetIds/image/sreplaceszzzzzs
s
ss e2_img_upsnosN
s e2_img_left_1sse2_indent_lefts./zwo_info/images/pixel.gif" height="1" width="s e2_img_left_2se2_txt_sel_fontse2_txt_sel_sizese2_txt_sel_boldsouissse2_txt_sel_italsss (%s _getitem_s_getitems _getattr_s_getattrsaffsstringsrepsmemsp0slensppspp2srepimagesimagesszzzsprslistesinstancesurlimgspp3snomsretspppsurlsfe2sniveausnivsnimgsintsidentsstrsdecsffsfssfd1sfd2sidi(%srepslistesniveausprsnivsrepimages _getitem_s_getitems _getattr_s_getattrsaffsstringsmemsp0slensppspp2simagesszzzsinstancesurlimgspp3snomsretspppsurlsfe2snimgsintsidentsstrsdecsffsfssfd1sfd2sidi(sidisfe2sinstancesmem(sScript (Python)s aff_1elemks 0  $ ##; * * "* #Ro***    F***sRo***    F***o cslt}t} d} d} t||ddjo0|t||djo d} nn| djo| d} ||ddjo8||ddjo"||d| |d d jod g} n  |}  | || ||||}  | d } nd}t||d djp|t||djo d}nJt||ddjo|t||djod }n|d jo|}xp|drc}|||}||d|jot|djo||dd} nB||d| |djodg} n  dg} !| || |d|||} n"||ddjo6#dg} $| || |d|||} nG%|djo6&dg} '| || |d|||} nqWn(| SdS(Nsise1_niv_inv_nulls e1_niv_inv_nbis
se1_senss verticalesss
(%s_write_s_writes _getitem_s_getitems _getattr_s_getattrsinstancesobjsidis affichagesprsnivsrepimageslinesstringspartlinesnivessousdicsmemsposslistdeps urlrel_to_objsdeparts liste_poss liste_pos_nvsaslensfe2s listrepinreps aff_1elemsaffiche_element_vsaffiche_element_hscolssoussursdecoscelspa(%smemsinstances_write_s_writes _getitem_s_getitems _getattr_s_getattrsobjsidis affichagesprsnivsrepimageslinesstringspartlinesnivessousdicsposslistdeps urlrel_to_objsdeparts liste_poss liste_pos_nvsaslensfe2s listrepinreps aff_1elemsaffiche_element_vsaffiche_element_hscolssoussursdecoscelspa((smemsinstancesidisaffiche_element_hsaffiche_element_vs listrepinreps aff_1elemsfe2sScript (Python)s view_htmls    *)*)*0 %6$   --    %  %  %  %  @& "  (s view_html(s view_html((sScript (Python)ssqOU _proxy_rolesqP(UManagerqQtqRU_bodyqST1obj=instance idi=obj.getId() affichage='' pr={} niv={} repimage={} for line in obj.INFO: if line[0]=='P': partline=string.split(line[1:],"# $ #") pr[partline[0]]=partline[1] if line[0]=='N': if line[1:6]=='image': partline=string.split(line[1:],"# $ #") repimage[partline[1]]=partline[2] else: partline=string.split(line[1:],"# $ #") nive=string.split(partline[0],"_")[0] if niv.has_key(nive): sousdic=niv[nive] else: sousdic={} sousdic[partline[1]]=partline[2] niv[nive]=sousdic pos=string.split(mem['rep_url'],mem['zwo_url'])[1] pos=string.replace(pos,'aaa','/') listdep=string.split(pr['e1_depart'],'/') def urlrel_to_obj(url): rep=mem['zwo_obj'] liste_url=string.split(url,'/') liste_url_nv=[] for a in liste_url: if a<>'': liste_url_nv.append(a) for a in liste_url_nv: if a in rep.objectIds(): rep=rep[a] return rep #depart : obj racine nav depart=urlrel_to_obj(pr['e1_depart']) #list_pos : liste des repertoire dploys liste_pos=string.split(pos,'/') liste_pos_nv=[] for a in liste_pos: if a<>'': if not a in listdep: liste_pos_nv.append(a) if len(liste_pos_nv)==0: liste_pos_nv=['$$$$$$$$'] def fe2(propriete,niveau,pr,niv): ret=None if niv.has_key(str(niveau)): if niv[str(niveau)].has_key(propriete): ret=niv[str(niveau)][propriete] if not ret: if float(niveau)/2==math.floor(float(niveau)/2): if niv.has_key("paire"): if niv["paire"].has_key(propriete): ret=niv["paire"][propriete] else: if niv.has_key("impaire"): if niv["impaire"].has_key(propriete): ret=niv["impaire"][propriete] if not ret: ret=pr[propriete] return ret def listrepinrep(rep): if rep.zwo_dossier.hasProperty('ordre'): ordre=rep.zwo_dossier.ordre lordre=string.split(ordre,'&') else: lordre=[] listrep=[] for r in rep.objectValues('Folder'): if r.hasProperty('type_zwook'): if r.type_zwook=="dossier": listrep.append(r.getId()) listpage=[] for i in lordre: if i in listrep: if not i in listpage: listpage.append(i) for i in listrep: if not i in listpage: listpage.append(i) return listpage def aff_1elem(rep,liste,niveau,pr,niv,repimage): aff="" p0=string.split(rep.absolute_url(),mem['zwo_url']) if len(p0)>1: pp=p0[1] else: pp="" pp2=pp if pp=="": pp2="//" if repimage.has_key(pp2): images=string.split(repimage[pp2],'@') zzz=0 if pr['e1_sens']<>'verticale': if liste[0]=="$#$#$#$#": zzz=1 if liste[0]=="$$$$$$$$" or zzz==1: images[0]==images[2] urlimg=mem['zwo_url']+'/zwo_info/skins/'+mem['skin_id']+'/'+instance.getId()+'/image/' pp3=string.replace(pp2,"/",'zzzzz') nom=pp3 ret= '' return ''+ret+'' ppp=string.replace(pp,'/','aaa') url=rep.absolute_url() zzz=0 if pr['e1_sens']<>'verticale': if liste[0]=="$#$#$#$#": zzz=1 if liste[0]=="$$$$$$$$" or zzz==1: aff=aff+'' nimg=fe2("e2_img_up",niveau,pr,niv) if nimg<>'no' : aff=aff+'
' nimg=fe2("e2_img_left_1",niveau,pr,niv) if nimg<>'no' : aff=aff+'' ident=int(fe2("e2_indent_left",niveau,pr,niv)) if ident<>0 : dec=str(ident*niveau) aff=aff+'' nimg=fe2("e2_img_left_2",niveau,pr,niv) if nimg<>'no' : aff=aff+'' ff=fe2("e2_txt_sel_font",niveau,pr,niv) fs=fe2("e2_txt_sel_size",niveau,pr,niv) fd1='' fd2='' if fe2("e2_txt_sel_bold",niveau,pr,niv)=="oui": fd1=fd1+'' fd2=fd2+'' if fe2("e2_txt_sel_ital",niveau,pr,niv)=="oui": fd1=fd1+'' fd2=''+fd2 aff=aff+''+fd1+rep.title+fd2+'' nimg=fe2("e2_img_right_2",niveau,pr,niv) if nimg<>'no' : aff=aff+'' ident=int(fe2("e2_indent_right",niveau,pr,niv)) if ident<>0 : dec=str(ident*niveau) aff=aff+'' nimg=fe2("e2_img_right_1",niveau,pr,niv) if nimg<>'no' : aff=aff+'' nimg=fe2("e2_img_down",niveau,pr,niv) if nimg<>'no' : aff=aff+'
' else: aff=aff+'' nimg=fe2("e2_img_up",niveau,pr,niv) if nimg<>'no' : aff=aff+'
' nimg=fe2("e2_img_left_1",niveau,pr,niv) if nimg<>'no' : aff=aff+'' ident=int(fe2("e2_indent_left",niveau,pr,niv)) if ident<>0 : dec=str(ident*niveau) aff=aff+'' nimg=fe2("e2_img_left_2",niveau,pr,niv) if nimg<>'no' : aff=aff+'' ff=fe2("e2_txt_norm_font",niveau,pr,niv) fs=fe2("e2_txt_norm_size",niveau,pr,niv) fd1='' fd2='' if fe2("e2_txt_norm_bold",niveau,pr,niv)=="oui": fd1=fd1+'' fd2=fd2+'' if fe2("e2_txt_norm_ital",niveau,pr,niv)=="oui": fd1=fd1+'' fd2=''+fd2 aff=aff+''+fd1+rep.title+fd2+'' nimg=fe2("e2_img_right_2",niveau,pr,niv) if nimg<>'no' : aff=aff+'' ident=int(fe2("e2_indent_right",niveau,pr,niv)) if ident<>0 : dec=str(ident*niveau) aff=aff+'' nimg=fe2("e2_img_right_1",niveau,pr,niv) if nimg<>'no' : aff=aff+'' nimg=fe2("e2_img_down",niveau,pr,niv) if nimg<>'no' : aff=aff+'
' aff=aff+ '' return aff # #elif liste[0]=="$#$#$#$#": # print '$'+rep.getId()+'' def affiche_element_v(rep,liste,niveau,pr,niv,repimage): affdef='' #aff : affichage de l'lmnt aff=1 if int(pr['e1_niv_inv_null'])<>1: if niveau<=int(pr['e1_niv_inv_nb']): aff=0 if aff==1: affdef=affdef+'' if liste[0]<>'########' and liste[0]<>"$$$$$$$$" and liste[0] in rep.objectIds('Folder'): newliste=["$#$#$#$#"] else: newliste=liste affdef=affdef+aff_1elem(rep,newliste,niveau,pr,niv,repimage) affdef=affdef+'' #bro : browsing de l'lmnt : (1)forc (0)possible (-1)impossible bro=0 if int(pr['e1_niv_tjs_tous'])==1 or niveau1 and niveau>=int(pr['e1_niv_vue_nb']): bro=-1 if bro<>-1: listpage=listrepinrep(rep) for i in listpage: r=rep[i] if liste[0] in listpage: if len(liste)>1: newliste=liste[1:] else: if liste[0]==r.getId(): newliste=['$$$$$$$$'] else: newliste=['########'] affdef=affdef+affiche_element_v(r,newliste,niveau+1,pr,niv,repimage) elif liste[0]=='$$$$$$$$': newliste=['########'] affdef=affdef+affiche_element_v(r,newliste,niveau+1,pr,niv,repimage) elif bro==1: newliste=['########'] affdef=affdef+affiche_element_v(r,newliste,niveau+1,pr,niv,repimage) return affdef def affiche_element_h(rep,liste,niveau,pr,niv,repimage): affdef='' #aff : affichage de l'lmnt aff=1 if int(pr['e1_niv_inv_null'])<>1: if niveau<=int(pr['e1_niv_inv_nb']): aff=0 if aff==1: affdef=affdef+'' listpage=listrepinrep(rep) for page in listpage: r=rep[page] if liste[0]==r.getId(): if len(liste)==1: newliste=['$$$$$$$$'] else: newliste=['$#$#$#$#'] else: newliste=['########'] affdef=affdef+aff_1elem(r,newliste,niveau,pr,niv,repimage) affdef=affdef+'' #bro : browsing de l'lmnt : (1)forc (0)possible (-1)impossible bro=0 if int(pr['e1_niv_vue_tous'])<>1 and niveau>=int(pr['e1_niv_vue_nb']): bro=-1 if bro<>-1: listpage=listrepinrep(rep) if liste[0] in listpage: if len(liste)>1: newliste=liste[1:] else: newliste=['$$$$$$$$'] affdef=affdef+affiche_element_h(rep[liste[0]],newliste,niveau+1,pr,niv,repimage) return affdef affichage=affichage+'' celspa='' if pr['e1_marge']=='': pr['e1_marge']='0' affichage=''+affichage if pr['e1_sens']<>'verticale': affichage=affichage+affiche_element_h(depart,liste_pos_nv,0,pr,niv,repimage) else: affichage=affichage+'' affichage=affichage+affiche_element_v(depart,liste_pos_nv,0,pr,niv,repimage) affichage=affichage+'' affichage=affichage+'
' return affichage qTU Script_magicqUKUwarningsqV)UerrorsqW)U Python_magicqXU* qYu. k%((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Utypeq Unomq Uidobjq Utype_nivq UniveauqU type_optionqUhauteurqU align_elem_1qU align_elem_2qU align_elem_3qUimg_upqU img_left_1qU indent_leftqU img_left_2qU img_right_2qU indent_rightqU img_right_1qUimg_downqU txt_norm_fontqU txt_norm_sizeqU txt_norm_boldqU txt_norm_italqUnorm_color_fondq Unorm_txt_colorq!U norm_txt_sousq"U norm_txt_surq#Unorm_roll_colorq$Unorm_roll_sousq%U norm_roll_surq&U txt_sel_fontq'U txt_sel_sizeq(U txt_sel_boldq)U txt_sel_italq*Usel_color_fondq+U sel_txt_colorq,U sel_txt_sousq-U sel_txt_surq.Usel_roll_colorq/U sel_roll_sousq0U sel_roll_surq1U _getitem_q2U_getitemq3U _getattr_q4U_getattrq5Ucontextq6Umemq7Ulieuq8Utxtplusq9Ustrq:Uintq;Uidnqtq?U co_argcountq@K(ubU_paramsqATotype, nom, idobj,type_niv,niveau,type_option,hauteur="",align_elem_1="",align_elem_2="",align_elem_3="",img_up="",img_left_1="",indent_left="",img_left_2="",img_right_2="",indent_right="",img_right_1="",img_down="",txt_norm_font="",txt_norm_size="",txt_norm_bold="non",txt_norm_ital="non",norm_color_fond="",norm_txt_color="",norm_txt_sous="non",norm_txt_sur="non",norm_roll_color="",norm_roll_sous="non",norm_roll_sur="non",txt_sel_font="",txt_sel_size="",txt_sel_bold="non",txt_sel_ital="non",sel_color_fond="",sel_txt_color="",sel_txt_sous="non",sel_txt_sur="non",sel_roll_color="",sel_roll_sous="non",sel_roll_sur="non"qBUidqCU conf_3_validqDU__ac_local_roles__qE}qFUxavqG]qHUOwnerqIasU_dav_writelocksqJ(U m%qK(U PersistenceqLUPersistentMappingqMtqNtqOQU _bind_namesqP(cShared.DC.Scripts.Bindings NameAssignments qQoqR}qSU_asgnsqT}qU(Uname_containerqVU containerqWU name_subpathqXUtraverse_subpathqYU name_m_selfqZUscriptq[U name_contextq\Ucontextq]usbU func_defaultsq^(UUUUUUUUUUUUUUUnonq_h_UUh_h_Uh_h_UUh_h_UUh_h_Uh_h_tq`U_codeqaTc#syddddddddddddddddddddddddddddddddddd"ZdS(Nssnonc(5st})t}+|+|+tdd}-|djoY|)|+|+tdd|}.d|}/|)|-ddjo d Snn@ |)|-d }. d }/ |)|-d djo d Sn|d jot t |}2n'|djo d}2n d}2|djo|2d}2nd|djo|2d}2nC|djo|2d}2n"|djo|2d}2n |)|)|.||2}3"|djoh|+#|3dd||+$|3dd||+%|3dd||+&|3dd| n+'|djo|+(|3dd| |+)|3dd| |+*|3dd| |++|3dd | |+,|3dd!||+-|3dd"||+.|3dd#||+/|3dd$|nO0|djo|+1|3dd%||+2|3dd&||+3|3dd'||+4|3dd(||+5|3dd)||+6|3dd*||+7|3dd+||+8|3dd,||+9|3dd-||+:|3dd.||+;|3dd/|n(<|djo|+=|3dd0||+>|3dd1||+?|3dd2||+@|3dd3| |+A|3dd4|!|+B|3dd5|"|+C|3dd6|#|+D|3dd7|$|+E|3dd8|%|+F|3dd9|&|+G|3dd:|'n|+Itd;|-|)|.|Ld<|d|d=|}4|+|+|+Mtd>d?d@|4dS(ANszwo_libsmem_datasskinszwo_infosskinss&nom=sdroit_config_dossieris.Vous n'avez pas les droits pour cette action !srep_objssdroit_admin_dossiersnumspairesimpairesopt1s_1sopt2s_2sopt3s_3sopt4s_4smanage_changePropertiess e2_hauteurse2_align_elem_1se2_align_elem_2se2_align_elem_3s e2_img_ups e2_img_left_1se2_indent_lefts e2_img_left_2se2_img_right_2se2_indent_rightse2_img_right_1s e2_img_downse2_txt_norm_fontse2_txt_norm_sizese2_txt_norm_boldse2_txt_norm_italse2_norm_color_fondse2_norm_txt_colorse2_norm_txt_sousse2_norm_txt_surse2_norm_roll_colorse2_norm_roll_sousse2_norm_roll_surse2_txt_sel_fontse2_txt_sel_sizese2_txt_sel_boldse2_txt_sel_italse2_sel_color_fondse2_sel_txt_colorse2_sel_txt_sousse2_sel_txt_surse2_sel_roll_colorse2_sel_roll_sousse2_sel_roll_sursMIX_INFOs conf_3?type=s&idobj=sREQUESTsRESPONSEsredirect(5s _getitem_s_getitems _getattr_s_getattrscontextsmemstypesnomslieustxtplusstype_nivsstrsintsniveausidns type_optionsidobjsobjshauteurs align_elem_1s align_elem_2s align_elem_3simg_ups img_left_1s indent_lefts img_left_2s img_right_2s indent_rights img_right_1simg_downs txt_norm_fonts txt_norm_sizes txt_norm_bolds txt_norm_italsnorm_color_fondsnorm_txt_colors norm_txt_souss norm_txt_sursnorm_roll_colorsnorm_roll_souss norm_roll_surs txt_sel_fonts txt_sel_sizes txt_sel_bolds txt_sel_italssel_color_fonds sel_txt_colors sel_txt_souss sel_txt_surssel_roll_colors sel_roll_souss sel_roll_sursurl(5stypesnomsidobjstype_nivsniveaus type_optionshauteurs align_elem_1s align_elem_2s align_elem_3simg_ups img_left_1s indent_lefts img_left_2s img_right_2s indent_rights img_right_1simg_downs txt_norm_fonts txt_norm_sizes txt_norm_bolds txt_norm_italsnorm_color_fondsnorm_txt_colors norm_txt_souss norm_txt_sursnorm_roll_colorsnorm_roll_souss norm_roll_surs txt_sel_fonts txt_sel_sizes txt_sel_bolds txt_sel_italssel_color_fonds sel_txt_colors sel_txt_souss sel_txt_surssel_roll_colors sel_roll_souss sel_roll_surs _getitem_s_getitems _getattr_s_getattrscontextsmemslieustxtplussstrsintsidnsobjsurl((sScript (Python)s conf_3_valids$     &(s conf_3_valid(s conf_3_valid((sScript (Python)ssqbU_bodyqcT # RECUPERATION DES PARAMETRES mem=context.zwo_lib.mem_data() if type=="skin": lieu=context.zwo_info.skins[nom] txtplus='&nom='+nom # Verification des droits if mem['droit_config_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' else: lieu=mem['rep_obj'] txtplus='' # Verification des droits if mem['droit_admin_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' if type_niv=="num": idn=str(int(niveau)) elif type_niv=="paire": idn='paire' else: idn='impaire' if type_option=="opt1": idn=idn+"_1" elif type_option=="opt2": idn=idn+"_2" elif type_option=="opt3": idn=idn+"_3" elif type_option=="opt4": idn=idn+"_4" obj=lieu[idobj][idn] if type_option=="opt1": obj.manage_changeProperties(e2_hauteur=hauteur) obj.manage_changeProperties(e2_align_elem_1=align_elem_1) obj.manage_changeProperties(e2_align_elem_2=align_elem_2) obj.manage_changeProperties(e2_align_elem_3=align_elem_3) elif type_option=="opt2": obj.manage_changeProperties(e2_img_up=img_up) obj.manage_changeProperties(e2_img_left_1=img_left_1) obj.manage_changeProperties(e2_indent_left=indent_left) obj.manage_changeProperties(e2_img_left_2=img_left_2) obj.manage_changeProperties(e2_img_right_2=img_right_2) obj.manage_changeProperties(e2_indent_right=indent_right) obj.manage_changeProperties(e2_img_right_1=img_right_1) obj.manage_changeProperties(e2_img_down=img_down) elif type_option=="opt3": obj.manage_changeProperties(e2_txt_norm_font=txt_norm_font) obj.manage_changeProperties(e2_txt_norm_size=txt_norm_size) obj.manage_changeProperties(e2_txt_norm_bold=txt_norm_bold) obj.manage_changeProperties(e2_txt_norm_ital=txt_norm_ital) obj.manage_changeProperties(e2_norm_color_fond=norm_color_fond) obj.manage_changeProperties(e2_norm_txt_color=norm_txt_color) obj.manage_changeProperties(e2_norm_txt_sous=norm_txt_sous) obj.manage_changeProperties(e2_norm_txt_sur=norm_txt_sur) obj.manage_changeProperties(e2_norm_roll_color=norm_roll_color) obj.manage_changeProperties(e2_norm_roll_sous=norm_roll_sous) obj.manage_changeProperties(e2_norm_roll_sur=norm_roll_sur) elif type_option=="opt4": obj.manage_changeProperties(e2_txt_sel_font=txt_sel_font) obj.manage_changeProperties(e2_txt_sel_size=txt_sel_size) obj.manage_changeProperties(e2_txt_sel_bold=txt_sel_bold) obj.manage_changeProperties(e2_txt_sel_ital=txt_sel_ital) obj.manage_changeProperties(e2_sel_color_fond=sel_color_fond) obj.manage_changeProperties(e2_sel_txt_color=sel_txt_color) obj.manage_changeProperties(e2_sel_txt_sous=sel_txt_sous) obj.manage_changeProperties(e2_sel_txt_sur=sel_txt_sur) obj.manage_changeProperties(e2_sel_roll_color=sel_roll_color) obj.manage_changeProperties(e2_sel_roll_sous=sel_roll_sous) obj.manage_changeProperties(e2_sel_roll_sur=sel_roll_sur) context.MIX_INFO(mem,lieu[idobj]) # REDIRECTION PAGE ADMIN GENERALE PAGE OU SKIN. url='conf_3?type='+type+'&nom='+nom+'&idobj='+idobj context.REQUEST.RESPONSE.redirect(url) qdU Script_magicqeKUwarningsqf)Uerrorsqg)U Python_magicqhU* qiu. k((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Utypeq Unomq Uidobjq Utxtq U _getitem_qU_getitemqU _getattr_qU_getattrqU_print_qU_printqU containerqUtypemodqUcontextqUmemqUparamsqtqU co_argcountqKubU_paramsqUtype,nom,idobj,txt=NoneqUidqU conf_menuqU__ac_local_roles__q}q Uxavq!]q"UOwnerq#asU_dav_writelocksq$(U mq%(U Persistenceq&UPersistentMappingq'tq(tq)QU _bind_namesq*(cShared.DC.Scripts.Bindings NameAssignments q+oq,}q-U_asgnsq.}q/(Uname_containerq0U containerq1U name_subpathq2Utraverse_subpathq3U name_contextq4Ucontextq5U name_m_selfq6Uscriptq7usbU func_defaultsq8(Ntq9U_codeq:TcstdZdS(Ncs}t}t}t} |td} ||tdd} |djo(|| ddjo  dSnn% || ddjo  dSnd |d |d |}| |td d |IJd|o+| dIJ| dIJ| dIJn| dIJ| dIJ| dIJ| dIJ| dIJ|td| | SdS(NsgetIdszwo_libsmem_datasskinsdroit_config_dossieris.Vous n'avez pas les droits pour cette action !sdroit_admin_dossierstype=s&nom=s&idobj=smenuis
sFModification EffectueswOptions de Navigation : point de dpart de la navigation, orientation graphique, niveaux a afficher

sqElements Graphiques : Couleur et police, icones et image de contours des elements par default

srNiveaux de navigation : Personnaliser un niveau de navigation par d'autres lments graphisme.

sdPersonalisation des Dossiers : Remplacer les texts automatique par des rollovers.

stotal(s _getitem_s_getitems _getattr_s_getattrs_print_s_prints containerstypemodscontextsmemstypesnomsidobjsparamsstxt(stypesnomsidobjstxts _getitem_s_getitems _getattr_s_getattrs_print_s_prints containerstypemodscontextsmemsparams((sScript (Python)s conf_menus& #        (sNones conf_menu(sNones conf_menu((sScript (Python)ssq;U_bodyq1: return 'Vous n\'avez pas les droits pour cette action !' else: # Verification des droits if mem['droit_admin_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' params='type='+type+'&nom='+nom+'&idobj='+idobj print context.menu(0,params); if txt: print '
' print 'Modification Effectue' print '
' print '
' print 'Options de Navigation : point de dpart de la navigation, orientation graphique, niveaux a afficher

' print 'Elements Graphiques : Couleur et police, icones et image de contours des elements par default

' print 'Niveaux de navigation : Personnaliser un niveau de navigation par d\'autres lments graphisme.

' print 'Personalisation des Dossiers : Remplacer les texts automatique par des rollovers.

' return context.total(mem,printed) q=U Script_magicq>KUwarningsq?)Uerrorsq@)U Python_magicqAU* qBu. kc((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Utypeq Unomq Uidobjq Uurlq U _getitem_qU_getitemqU _getattr_qU_getattrqU_print_qU_printqU containerqUtypemodqUcontextqUmemqUlieuqUobjqUparamsqUrepqUstringqUurl2qUchaineqUimagesqUidimageq tq!U co_argcountq"KubU_paramsq#Utype,nom,idobj, urlq$Uidq%Urep_delete_imagesq&U__ac_local_roles__q'}q(Uxavq)]q*UOwnerq+asU_dav_writelocksq,(U mq-(U Persistenceq.UPersistentMappingq/tq0tq1QU _bind_namesq2(cShared.DC.Scripts.Bindings NameAssignments q3oq4}q5U_asgnsq6}q7(Uname_containerq8U containerq9U name_subpathq:Utraverse_subpathq;U name_contextqUscriptq?usbU func_defaultsq@NU_codeqATcsdZdS(Ncs(t}t}t} |td} ||tdd} |djoL |||tdd|} || ddjo  d Snn7|| d }|| d djo d Sn|||}d |d |d|}||d}|td|dd}|||}|td|d}x,|dr}||d|gquW| |d|g|"td| |||$| dIJ%| d|d |d|dIJ'|td| | SdS(NsgetIdszwo_libsmem_datasskinszwo_infosskinssdroit_config_dossieris.Vous n'avez pas les droits pour cette action !srep_objsdroit_admin_dossierstype=s&nom=s&idobj=simagesreplaces*s/ssplits@ismanage_delObjectssmanage_delPropertiessMIX_INFOs*

Images Detruite :)

s[Retour a la config de la navigation]stotal(s _getitem_s_getitems _getattr_s_getattrs_print_s_prints containerstypemodscontextsmemstypesnomslieusidobjsobjsparamssrepsstringsurlsurl2schainesimagessidimage(stypesnomsidobjsurls _getitem_s_getitems _getattr_s_getattrs_print_s_prints containerstypemodscontextsmemslieusobjsparamssrepsstringsurl2schainesimagessidimage((sScript (Python)srep_delete_imagess,$  %(srep_delete_images(srep_delete_images((sScript (Python)ssqBU_bodyqCT# RECUPERATION DU TYPE DE MODULE CONCERNE :# typemod=container.getId() ############################################ # RECUPERATION DES PARAMETRES mem=context.zwo_lib.mem_data() if type=="skin": lieu=context.zwo_info.skins[nom] # Verification des droits if mem['droit_config_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' else: lieu=mem['rep_obj'] # Verification des droits if mem['droit_admin_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' obj=lieu[idobj] params='type='+type+'&nom='+nom+'&idobj='+idobj rep=obj['image'] url2=string.replace(url,'*','/') chaine=rep[url2] images=string.split(chaine,'@') for idimage in images: rep.manage_delObjects([idimage]) rep.manage_delProperties([url2]) context.MIX_INFO(mem,lieu[idobj]) print '

Images Detruite :)

' print '[Retour a la config de la navigation]' return context.total(mem,printed) qDU Script_magicqEKUwarningsqF)UerrorsqG)U Python_magicqHU* qIu. k((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Utypeq Unomq Uidobjq Usensq UlargeurqU align_menuqUmargeqU niv_tjs_tousqU niv_tjs_nbqU niv_vue_tousqU niv_vue_nbqU niv_inv_nullqU niv_inv_nbqUdepartqUdepart_affichageqU _getitem_qU_getitemqU _getattr_qU_getattrqUcontextqUmemqUlieuqUtxtplusq Uobjq!Uintq"Uurlq#tq$U co_argcountq%KubU_paramsq&Utype, nom, idobj,sens,largeur,align_menu,marge,niv_tjs_tous,niv_tjs_nb,niv_vue_tous,niv_vue_nb,niv_inv_null,niv_inv_nb,depart,depart_affichage=''q'Uidq(U conf_1_validq)U__ac_local_roles__q*}q+Uxavq,]q-UOwnerq.asU_dav_writelocksq/(U m!q0(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(UtqDU_codeqET;csddZdS(Nsc st}t}||tdd}|djoY|||tdd|}d|}||ddjo d Snn@ ||d } d } ||d djo d Sn|||}||d d|||d d|||d d|||d d|||d dt|||d dt|||d dt| ||d dt| ||d dt| ||d dt| ||d d| ||d d||td||!d|d|d|d}|||"tddd |dS(!Nszwo_libsmem_datasskinszwo_infosskinss&nom=sdroit_config_dossieris.Vous n'avez pas les droits pour cette action !srep_objssdroit_admin_dossiersmanage_changePropertiesse1_senss e1_largeurs e1_align_menuse1_margese1_niv_tjs_touss e1_niv_tjs_nbse1_niv_vue_touss e1_niv_vue_nbse1_niv_inv_nulls e1_niv_inv_nbs e1_departse1_depart_affichagesMIX_INFOsconf_menu?type=s&idobj=s&txt=1sREQUESTsRESPONSEsredirect(s _getitem_s_getitems _getattr_s_getattrscontextsmemstypesnomslieustxtplussidobjsobjssensslargeurs align_menusmargesints niv_tjs_touss niv_tjs_nbs niv_vue_touss niv_vue_nbs niv_inv_nulls niv_inv_nbsdepartsdepart_affichagesurl(stypesnomsidobjssensslargeurs align_menusmarges niv_tjs_touss niv_tjs_nbs niv_vue_touss niv_vue_nbs niv_inv_nulls niv_inv_nbsdepartsdepart_affichages _getitem_s_getitems _getattr_s_getattrscontextsmemslieustxtplussobjsintsurl((sScript (Python)s conf_1_valids4$   *(s conf_1_valid(s conf_1_valid((sScript (Python)ssqFU_bodyqGT # RECUPERATION DES PARAMETRES mem=context.zwo_lib.mem_data() if type=="skin": lieu=context.zwo_info.skins[nom] txtplus='&nom='+nom # Verification des droits if mem['droit_config_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' else: lieu=mem['rep_obj'] txtplus='' # Verification des droits if mem['droit_admin_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' obj=lieu[idobj] obj.manage_changeProperties(e1_sens=sens) obj.manage_changeProperties(e1_largeur=largeur) obj.manage_changeProperties(e1_align_menu=align_menu) obj.manage_changeProperties(e1_marge=marge) obj.manage_changeProperties(e1_niv_tjs_tous=int(niv_tjs_tous)) obj.manage_changeProperties(e1_niv_tjs_nb=int(niv_tjs_nb)) obj.manage_changeProperties(e1_niv_vue_tous=int(niv_vue_tous)) obj.manage_changeProperties(e1_niv_vue_nb=int(niv_vue_nb)) obj.manage_changeProperties(e1_niv_inv_null=int(niv_inv_null)) obj.manage_changeProperties(e1_niv_inv_nb=int(niv_inv_nb)) obj.manage_changeProperties(e1_depart=depart) obj.manage_changeProperties(e1_depart_affichage=depart_affichage) context.MIX_INFO(mem,obj) # REDIRECTION PAGE ADMIN GENERALE PAGE OU SKIN. url='conf_menu?type='+type+'&nom='+nom+'&idobj='+idobj+'&txt=1' context.REQUEST.RESPONSE.redirect(url) qHU Script_magicqIKUwarningsqJ)UerrorsqK)U Python_magicqLU* qMu. kI((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Utypeq Unomq Uidobjq Uurlq U _getitem_qU_getitemqU _getattr_qU_getattrqU_print_qU_printqU containerqUtypemodqUcontextqUmemqUlieuqUobjqUparamsqUstringqUurl2qUurl3qUurl4qUaUobj2qUobjtmpq tq!U co_argcountq"KubU_paramsq#Utype,nom,idobj, urlq$Uidq%Urep_ajouter_imagesq&U__ac_local_roles__q'}q(Uxavq)]q*UOwnerq+asU_dav_writelocksq,(U m#q-(U Persistenceq.UPersistentMappingq/tq0tq1QU _bind_namesq2(cShared.DC.Scripts.Bindings NameAssignments q3oq4}q5U_asgnsq6}q7(Uname_containerq8U containerq9U name_subpathq:Utraverse_subpathq;U name_contextqUscriptq?usbU func_defaultsq@NU_codeqAT csdZdS(Nc;st}t}t} |td} ||tdd} |djoL |||tdd|} || ddjo  d Snn7|| d }|| d djo d Sn|||}d |d |d|}| |tdd|IJ|td|dd}|td|d}g}x=|dr0}|djo||d|nqyW!|| d}"|djo8#x.|d#r!}$|||}%|}qWn'| d|dIJ)| dIJ*| dIJ+| dIJ,| dIJ-| d IJ.| d!IJ/| d"IJ0| d#|d$IJ1| d%|d$IJ2| d&|d$IJ3| d'|d$IJ5| d(IJ9|td)| | SdS(*NsgetIdszwo_libsmem_datasskinszwo_infosskinssdroit_config_dossieris.Vous n'avez pas les droits pour cette action !srep_objsdroit_admin_dossierstype=s&nom=s&idobj=smenuisreplaces*s/ssplitissappendszwo_objs//s)Importer des images pour gerer la page : s
sT
sImage de base : s(
sImage effet souris : s(
sImage si selectionn : s(
s(s'
stotal(s _getitem_s_getitems _getattr_s_getattrs_print_s_prints containerstypemodscontextsmemstypesnomslieusidobjsobjsparamssstringsurlsurl2surl3surl4sasobj2sobjtmp(stypesnomsidobjsurls _getitem_s_getitems _getattr_s_getattrs_print_s_prints containerstypemodscontextsmemslieusobjsparamssstringsurl2surl3surl4sasobj2sobjtmp((sScript (Python)srep_ajouter_imagessJ$          (srep_ajouter_images(srep_ajouter_images((sScript (Python)ssqBU_bodyqCT# RECUPERATION DU TYPE DE MODULE CONCERNE :# typemod=container.getId() ############################################ # RECUPERATION DES PARAMETRES mem=context.zwo_lib.mem_data() if type=="skin": lieu=context.zwo_info.skins[nom] # Verification des droits if mem['droit_config_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' else: lieu=mem['rep_obj'] # Verification des droits if mem['droit_admin_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' obj=lieu[idobj] params='type='+type+'&nom='+nom+'&idobj='+idobj print context.menu(4,params) url2=string.replace(url,'*','/') url3=string.split(url2,'/') url4=[] for a in url3 : if a<>'': url4.append(a) obj2=mem['zwo_obj'] if url2<>'//': for a in url4: objtmp=obj2[a] obj2=objtmp print 'Importer des images pour gerer la page : '+url2+'
' print '
' print "Image de base : " print '
' print "Image effet souris : " print '
' print "Image si selectionn : " print '
' print '' print '' print '' print '' print '
' #context.MIX_INFO(mem,lieu[idobj]) return context.total(mem,printed) qDU Script_magicqEKUwarningsqF)UerrorsqG)U Python_magicqHU* qIu. k# ((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Utypeq Unomq Utitreq U _getitem_q U_getitemqU _getattr_qU_getattrqU_print_qU_printqUcontextqUmemqUlieuqUurl_lieuqUidobjqU containerqUurlqUobjqtqU co_argcountqKubU_paramsqUtype, nom, titreqUidqUnew_okq U__ac_local_roles__q!}q"Ugregq#]q$UOwnerq%asU_dav_writelocksq&(U m"q'(U Persistenceq(UPersistentMappingq)tq*tq+QU _bind_namesq,(cShared.DC.Scripts.Bindings NameAssignments q-oq.}q/U_asgnsq0}q1(Uname_containerq2U containerq3U name_subpathq4Utraverse_subpathq5U name_contextq6Ucontextq7U name_m_selfq8Uscriptq9usbU func_defaultsq:NU_codeq;TcsdZdS(Ncst}t}t}||tdd} || d} || d} ||tdd|}  | || djo | d|t d} |d |d IJ |d | d IJ |d IJ|dIJ|d|dIJ|dIJ|Sn|| d| ||| | }||dddd||dd|t dd||dddgd||dddd||dddd| |dddd|!|dd d!d|"|dd"d#d$|#|dd%d&d$|$|dd'd&d$|%|dd(d)d$|&|dd*d&d$|'|dd+d&d$|(|dd,d-d|)|dd.d/d|+|dd0d1d|,|dd2d3d|-|dd4d5d|.|dd6d7d|/|dd8d9d|0|dd:d9d|1|dd;d<d$|2|dd=d>d|3|dd?d9d|4|dd@d#d$|5|ddAd9d|6|ddBd9d|8|ddCdDd|9|ddEdFd|:|ddGdHd|;|ddIdHd|<|ddJdKd|=|ddLdMd|>|ddNdHd|?|ddOdHd|@|ddPdQd|A|ddRdSd|B|ddTdHd|D|ddUdDd|E|ddVdFd|F|ddWdHd|G|ddXdHd|H|ddYdZd|I|dd[dMd|J|dd\dHd|K|dd]dHd|L|dd^dQd|M|dd_dSd|N|dd`dHd|Qtda| ||||Stdbdcddde|df| TdSdS(gNszwo_libs mem_mod_datasparents parent_urls mix_id_zopes objectIdssajout_element?type=sgetIds7s.

Cet identifiant s est dja pris
s"Veuillez en choisir un autre
s6Redirection automatique dans 2 secondes.

sGSi la Redirection automatique ne fonctionne pas, cliquez ici : Redirection Manuellessmanage_addFoldersmanage_addPropertys type_zwookselementsstringsINFOsslinesse1_senss verticales e1_largeurs100%se1_marges3s e1_align_menuscenterse1_niv_tjs_tousisints e1_niv_tjs_nbise1_niv_vue_touss e1_niv_vue_nbise1_niv_inv_nulls e1_niv_inv_nbs e1_departs/se1_depart_affichagesoui1s e2_hauteurs14se2_align_elem_1sleftse2_align_elem_2smiddlese2_align_elem_3s compresses e2_img_upsnos e2_img_left_1se2_indent_leftis e2_img_left_2s default.gifse2_img_right_2se2_indent_rightse2_img_right_1s e2_img_downse2_txt_norm_fontsArialse2_txt_norm_sizes-1se2_txt_norm_boldsnonse2_txt_norm_italse2_norm_color_fonds#FFFFFFse2_norm_txt_colors#000000se2_norm_txt_sousse2_norm_txt_surse2_norm_roll_colors#880000se2_norm_roll_soussouise2_norm_roll_surse2_txt_sel_fontse2_txt_sel_sizese2_txt_sel_boldse2_txt_sel_italse2_sel_color_fonds#DDDDDDse2_sel_txt_colorse2_sel_txt_sousse2_sel_txt_surse2_sel_roll_colorse2_sel_roll_sousse2_sel_roll_sursMIX_INFOsREQUESTsRESPONSEsredirects../../place?nom=s&obj=(s _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextsmemslieusurl_lieustitresidobjs containersurlsobjsnom(stypesnomstitres _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextsmemslieusurl_lieusidobjs containersurlsobj((sScript (Python)snew_oks!   (+(snew_ok(snew_ok((sScript (Python)ssq' print '

Cet identifiant '+idobj+' est dja pris
' print 'Veuillez en choisir un autre
' print 'Redirection automatique dans 2 secondes.

' print 'Si la Redirection automatique ne fonctionne pas, cliquez ici : Redirection Manuelle' print '' return printed # CREATION INSTANCE MODULE (dossier, image, DTML Document ou Fichier selon Besoin. Folder conseill en cas de doute) lieu.manage_addFolder(idobj,titre) obj=lieu[idobj] # AJOUT DES PROPRIETES OBLIGATOIRE DU MODULES obj.manage_addProperty('type_zwook','element','string') obj.manage_addProperty('element',container.getId(),'string') # AJOUT D'AUTRES PROPRIETE obj.manage_addProperty('INFO',[''],'lines') obj.manage_addProperty('e1_sens','verticale','string') obj.manage_addProperty('e1_largeur','100%','string') obj.manage_addProperty('e1_marge','3','string') obj.manage_addProperty('e1_align_menu','center','string') obj.manage_addProperty('e1_niv_tjs_tous',0,'int') obj.manage_addProperty('e1_niv_tjs_nb',1,'int') obj.manage_addProperty('e1_niv_vue_tous',1,'int') obj.manage_addProperty('e1_niv_vue_nb',3,'int') obj.manage_addProperty('e1_niv_inv_null',1,'int') obj.manage_addProperty('e1_niv_inv_nb',1,'int') obj.manage_addProperty('e1_depart','/','string') obj.manage_addProperty('e1_depart_affichage','oui1','string') obj.manage_addProperty('e2_hauteur','14','string') obj.manage_addProperty('e2_align_elem_1','left','string') obj.manage_addProperty('e2_align_elem_2','middle','string') obj.manage_addProperty('e2_align_elem_3','compresse','string') obj.manage_addProperty('e2_img_up','no','string') obj.manage_addProperty('e2_img_left_1','no','string') obj.manage_addProperty('e2_indent_left',6,'int') obj.manage_addProperty('e2_img_left_2','default.gif','string') obj.manage_addProperty('e2_img_right_2','no','string') obj.manage_addProperty('e2_indent_right',0,'int') obj.manage_addProperty('e2_img_right_1','no','string') obj.manage_addProperty('e2_img_down','no','string') obj.manage_addProperty('e2_txt_norm_font','Arial','string') obj.manage_addProperty('e2_txt_norm_size','-1','string') obj.manage_addProperty('e2_txt_norm_bold','non','string') obj.manage_addProperty('e2_txt_norm_ital','non','string') obj.manage_addProperty('e2_norm_color_fond','#FFFFFF','string') obj.manage_addProperty('e2_norm_txt_color','#000000','string') obj.manage_addProperty('e2_norm_txt_sous','non','string') obj.manage_addProperty('e2_norm_txt_sur','non','string') obj.manage_addProperty('e2_norm_roll_color','#880000','string') obj.manage_addProperty('e2_norm_roll_sous','oui','string') obj.manage_addProperty('e2_norm_roll_sur','non','string') obj.manage_addProperty('e2_txt_sel_font','Arial','string') obj.manage_addProperty('e2_txt_sel_size','-1','string') obj.manage_addProperty('e2_txt_sel_bold','non','string') obj.manage_addProperty('e2_txt_sel_ital','non','string') obj.manage_addProperty('e2_sel_color_fond','#DDDDDD','string') obj.manage_addProperty('e2_sel_txt_color','#000000','string') obj.manage_addProperty('e2_sel_txt_sous','non','string') obj.manage_addProperty('e2_sel_txt_sur','non','string') obj.manage_addProperty('e2_sel_roll_color','#880000','string') obj.manage_addProperty('e2_sel_roll_sous','oui','string') obj.manage_addProperty('e2_sel_roll_sur','non','string') context.MIX_INFO(mem,obj) context.REQUEST.RESPONSE.redirect('../../place?nom='+nom+'&obj='+idobj) return q>U Script_magicq?KUwarningsq@)UerrorsqA)U Python_magicqBU* qCu. k{((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Utypeq Unomq Uidobjq U align_elem_1q U align_elem_2qUimg_upqU img_left_1qU indent_leftqU img_left_2qU img_right_2qU indent_rightqU img_right_1qUimg_downqU txt_norm_fontqU txt_norm_sizeqU txt_norm_boldqU txt_norm_italqUnorm_color_fondqUnorm_txt_colorqU norm_txt_sousqU norm_txt_surqUnorm_roll_colorqUnorm_roll_sousq U norm_roll_surq!U txt_sel_fontq"U txt_sel_sizeq#U txt_sel_boldq$U txt_sel_italq%Usel_color_fondq&U sel_txt_colorq'U sel_txt_sousq(U sel_txt_surq)Usel_roll_colorq*U sel_roll_sousq+U sel_roll_surq,Uhauteurq-U _getitem_q.U_getitemq/U _getattr_q0U_getattrq1Ucontextq2Umemq3Ulieuq4Utxtplusq5Uobjq6Uurlq7tq8U co_argcountq9K$ubU_paramsq:Ttype, nom, idobj,align_elem_1,align_elem_2,img_up,img_left_1,indent_left,img_left_2,img_right_2,indent_right,img_right_1,img_down,txt_norm_font,txt_norm_size,txt_norm_bold="non",txt_norm_ital="non",norm_color_fond,norm_txt_color,norm_txt_sous="non",norm_txt_sur="non",norm_roll_color,norm_roll_sous="non",norm_roll_sur="non",txt_sel_font,txt_sel_size,txt_sel_bold="non",txt_sel_ital="non",sel_color_fond,sel_txt_color,sel_txt_sous="non",sel_txt_sur="non",sel_roll_color,sel_roll_sous="non",sel_roll_sur="non",hauteur=''q;Uidq}q?Uxavq@]qAUOwnerqBasU_dav_writelocksqC(U m$qD(U PersistenceqEUPersistentMappingqFtqGtqHQU _bind_namesqI(cShared.DC.Scripts.Bindings NameAssignments qJoqK}qLU_asgnsqM}qN(Uname_containerqOU containerqPU name_subpathqQUtraverse_subpathqRU name_contextqSUcontextqTU name_m_selfqUUscriptqVusbU func_defaultsqW(UnonqXhXNNhXhXNhXhXNNhXhXNNhXhXNhXhXUtqYU_codeqZTGcsRddddddddddddddddddddddZdS(Nsnonsc$. s"t}%t}'|'|'tdd})|djoY|%|'|'tdd|}*d|}+|%|)ddjo d Snn@ |%|)d }* d }+ |%|)d djo d Sn|%|*|},|'|,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(||'1|,d d)| |'2|,d d*|!|'5td+|)|,8d,|d|d-|d.}-|'|'|'9td/d0d1|-dS(2Nszwo_libsmem_datasskinszwo_infosskinss&nom=sdroit_config_dossieris.Vous n'avez pas les droits pour cette action !srep_objssdroit_admin_dossiersmanage_changePropertiess e2_hauteurse2_align_elem_1se2_align_elem_2s e2_img_ups e2_img_left_1se2_indent_lefts e2_img_left_2se2_img_right_2se2_indent_rightse2_img_right_1s e2_img_downse2_txt_norm_fontse2_txt_norm_sizese2_txt_norm_boldse2_txt_norm_italse2_norm_color_fondse2_norm_txt_colorse2_norm_txt_sousse2_norm_roll_colorse2_norm_roll_sousse2_txt_sel_fontse2_txt_sel_sizese2_txt_sel_boldse2_txt_sel_italse2_sel_color_fondse2_sel_txt_colorse2_sel_txt_sousse2_sel_roll_colorse2_sel_roll_soussMIX_INFOsconf_menu?type=s&idobj=s&txt=2sREQUESTsRESPONSEsredirect(*s _getitem_s_getitems _getattr_s_getattrscontextsmemstypesnomslieustxtplussidobjsobjshauteurs align_elem_1s align_elem_2simg_ups img_left_1s indent_lefts img_left_2s img_right_2s indent_rights img_right_1simg_downs txt_norm_fonts txt_norm_sizes txt_norm_bolds txt_norm_italsnorm_color_fondsnorm_txt_colors norm_txt_soussnorm_roll_colorsnorm_roll_souss txt_sel_fonts txt_sel_sizes txt_sel_bolds txt_sel_italssel_color_fonds sel_txt_colors sel_txt_sousssel_roll_colors sel_roll_soussurl(.stypesnomsidobjs align_elem_1s align_elem_2simg_ups img_left_1s indent_lefts img_left_2s img_right_2s indent_rights img_right_1simg_downs txt_norm_fonts txt_norm_sizes txt_norm_bolds txt_norm_italsnorm_color_fondsnorm_txt_colors norm_txt_souss norm_txt_sursnorm_roll_colorsnorm_roll_souss norm_roll_surs txt_sel_fonts txt_sel_sizes txt_sel_bolds txt_sel_italssel_color_fonds sel_txt_colors sel_txt_souss sel_txt_surssel_roll_colors sel_roll_souss sel_roll_surshauteurs _getitem_s_getitems _getattr_s_getattrscontextsmemslieustxtplussobjsurl((sScript (Python)s conf_2_validsV$   *(s conf_2_valid(s conf_2_valid((sScript (Python)ssq[U_bodyq\T # RECUPERATION DES PARAMETRES mem=context.zwo_lib.mem_data() if type=="skin": lieu=context.zwo_info.skins[nom] txtplus='&nom='+nom # Verification des droits if mem['droit_config_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' else: lieu=mem['rep_obj'] txtplus='' # Verification des droits if mem['droit_admin_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' obj=lieu[idobj] obj.manage_changeProperties(e2_hauteur=hauteur) obj.manage_changeProperties(e2_align_elem_1=align_elem_1) obj.manage_changeProperties(e2_align_elem_2=align_elem_2) obj.manage_changeProperties(e2_img_up=img_up) obj.manage_changeProperties(e2_img_left_1=img_left_1) obj.manage_changeProperties(e2_indent_left=indent_left) obj.manage_changeProperties(e2_img_left_2=img_left_2) obj.manage_changeProperties(e2_img_right_2=img_right_2) obj.manage_changeProperties(e2_indent_right=indent_right) obj.manage_changeProperties(e2_img_right_1=img_right_1) obj.manage_changeProperties(e2_img_down=img_down) obj.manage_changeProperties(e2_txt_norm_font=txt_norm_font) obj.manage_changeProperties(e2_txt_norm_size=txt_norm_size) obj.manage_changeProperties(e2_txt_norm_bold=txt_norm_bold) obj.manage_changeProperties(e2_txt_norm_ital=txt_norm_ital) obj.manage_changeProperties(e2_norm_color_fond=norm_color_fond) obj.manage_changeProperties(e2_norm_txt_color=norm_txt_color) obj.manage_changeProperties(e2_norm_txt_sous=norm_txt_sous) #obj.manage_changeProperties(e2_norm_txt_sur=norm_txt_sur) obj.manage_changeProperties(e2_norm_roll_color=norm_roll_color) obj.manage_changeProperties(e2_norm_roll_sous=norm_roll_sous) #obj.manage_changeProperties(e2_norm_roll_sur=norm_roll_sur) obj.manage_changeProperties(e2_txt_sel_font=txt_sel_font) obj.manage_changeProperties(e2_txt_sel_size=txt_sel_size) obj.manage_changeProperties(e2_txt_sel_bold=txt_sel_bold) obj.manage_changeProperties(e2_txt_sel_ital=txt_sel_ital) obj.manage_changeProperties(e2_sel_color_fond=sel_color_fond) obj.manage_changeProperties(e2_sel_txt_color=sel_txt_color) obj.manage_changeProperties(e2_sel_txt_sous=sel_txt_sous) #obj.manage_changeProperties(e2_sel_txt_sur=sel_txt_sur) obj.manage_changeProperties(e2_sel_roll_color=sel_roll_color) obj.manage_changeProperties(e2_sel_roll_sous=sel_roll_sous) #obj.manage_changeProperties(e2_sel_roll_sur=sel_roll_sur) context.MIX_INFO(mem,obj) # REDIRECTION PAGE ADMIN GENERALE PAGE OU SKIN. url='conf_menu?type='+type+'&nom='+nom+'&idobj='+idobj+'&txt=2' context.REQUEST.RESPONSE.redirect(url) q]U Script_magicq^KUwarningsq_)Uerrorsq`)U Python_magicqaU* qbu. k((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Umemq Uobjq U _getattr_q U_getattrq UlistqUexclusqUnomqUvalueqUstrqUchaineqUrepqUstringqtqU co_argcountqKubU_paramsqUmem,objqUidqUMIX_INFOqU__ac_local_roles__q}qUxavq]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_codeq0TcsdZdS(Nc st}g}ddddg}xk||ddrR\}}||j o5d|dt|} ||d | nq<W x||d d d r}  |t d || d dd jo x|| dd rf\}} ||j oI d|| d d|dt|} ||d | nqWnqW||dd|dS(Nstitles type_zwookselementsINFOs propertyItemsisPs# $ #sappends objectValuessFoldersfindsgetIdsrepisNsmanage_changeProperties( s _getattr_s_getattrslistsexclussobjsnomsvaluesstrschainesrepsstring( smemsobjs _getattr_s_getattrslistsexclussnomsvaluesstrschainesrepsstring((sScript (Python)sMIX_INFOs'$/'2&(sMIX_INFO(sMIX_INFO((sScript (Python)ssq1U_bodyq2Tlist=[] exclus=['title','type_zwook','element','INFO'] for (nom,value) in obj.propertyItems(): if not nom in exclus: chaine='P'+nom+'# $ #'+str(value) list.append(chaine) for rep in obj.objectValues('Folder'): if string.find(rep.getId(),'rep')==-1: for (nom,value) in rep.propertyItems(): if not nom in exclus: chaine='N'+rep.getId()+'# $ #'+nom+'# $ #'+str(value) list.append(chaine) obj.manage_changeProperties(INFO=list) q3U Script_magicq4KUwarningsq5)Uerrorsq6)U Python_magicq7U* q8u. k((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Utypeq Unomq Uidobjq Uactionq U _getitem_qU_getitemqU _getattr_qU_getattrqU_print_qU_printqUcontextqUmemqUlieuqtqU co_argcountqKubU_paramsqUtype,nom,idobj,actionqUidqU add_imageqU__ac_local_roles__q}qUxavq]q UOwnerq!asU_dav_writelocksq"(U m 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_subpathq0Utraverse_subpathq1U name_contextq2Ucontextq3U name_m_selfq4Uscriptq5usbU func_defaultsq6NU_codeq7TwcsdZdS(Nc 1st}t}t} ||tdd} |djoL|||tdd|} || ddjo  dSnn7 || d }  || d djo dSn| d IJ| d IJ| d |dIJ| d|dIJ| d|dIJ| d|dIJ| dIJ| dIJ| dIJ| dIJ| dIJ| dIJ| dIJ|td| | SdS(Nszwo_libsmem_datasskinszwo_infosskinssdroit_config_dossieris.Vous n'avez pas les droits pour cette action !srep_objsdroit_admin_dossiers

Ajout d'une image

sK
s(s'prend le nom du fichier image par default
sType de l'image : s; Ligne - sF Icone
sBChoisir une image a uploader
s4
sstotal( s _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextsmemstypesnomslieusidobjsaction( stypesnomsidobjsactions _getitem_s_getitems _getattr_s_getattrs_print_s_printscontextsmemslieu((sScript (Python)s add_images,$          (s add_image(s add_image((sScript (Python)ssq8U_bodyq9T# RECUPERATION DU TYPE DE MODULE CONCERNE :# ############################################ # RECUPERATION DES PARAMETRES mem=context.zwo_lib.mem_data() if type=="skin": lieu=context.zwo_info.skins[nom] # Verification des droits if mem['droit_config_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' else: lieu=mem['rep_obj'] # Verification des droits if mem['droit_admin_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' # PROPOSITION DE NOM POUR LE MODULE :####### print '

Ajout d\'une image

' print '
' print '' print '' print '' print '' print 'Identifiant de l\'image (optionnel) prend le nom du fichier image par default
' print 'Type de l\'image : ' print ' Ligne - ' print ' Icone
' print 'Choisir une image a uploader
' print '
' print '' return context.total(mem,printed) q:U Script_magicq;KUwarningsq<)Uerrorsq=)U Python_magicq>U* q?u. k((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Utypeq Unomq Uidobjq Uurlq Uimage_nqUimage_rqUimage_aqU _getitem_qU_getitemqU _getattr_qU_getattrqU_print_qU_printqU containerqUtypemodqUcontextqUmemqUlieuqUobjqUKOqUMOqUlenqUlnq Ulrq!Ulaq"Utitleq#Urepq$Utnq%Utrq&Utaq'Unamesq(Ustringq)Uurl2q*tq+U co_argcountq,KubU_paramsq-U,type,nom,idobj, url, image_n,image_r,image_aq.Uidq/Urep_ajouter_images_validq0U__ac_local_roles__q1}q2Uxavq3]q4UOwnerq5asU_dav_writelocksq6(U m&q7(U Persistenceq8UPersistentMappingq9tq:tq;QU _bind_namesq<(cShared.DC.Scripts.Bindings NameAssignments q=oq>}q?U_asgnsq@}qA(Uname_containerqBU containerqCU name_subpathqDUtraverse_subpathqEU name_contextqFUcontextqGU name_m_selfqHUscriptqIusbU func_defaultsqJNU_codeqKT} csdZdS(Nc!s=t}t} t} | td}| | tdd}|djoL|| | tdd|} ||ddjo  d Snn7 ||d }||d djo d Sn|||}d }d d }t| |d }t| |d }t| |d }|d|jo dSn|d|jo dSn |d|jo !dSn$d}/|||| | tdd||d}1||}2||}3||}5|d|d|}| 7|d|d|d|| 8|d|d|d|| 9|d|d|d|;| td|dd} | <|d| |d| >td||||A| dIJB| d|d|d |d!IJD| SdS("NsgetIdszwo_libsmem_datasskinszwo_infosskinssdroit_config_dossieris.Vous n'avez pas les droits pour cette action !srep_objsdroit_admin_dossierisreadsfichier n trop volumineux...sfichier r trop volumineux...sfichier a trop volumineux...c s$t}t}%d}&t|doz'||d}(||t|t d|d|)t d|d|*t d|ddd}n,|} -| SdS(Nssfilenamesrfinds/s\s:i( s _getitem_s_getitems _getattr_s_getattrsidshasattrsfilesfilenamesmaxsstringsname( sfiles _getitem_s_getitems _getattr_s_getattrsidshasattrsfilenamesmaxsstringsname((sScript (Python)stitle$s $, simages@smanage_addImagesfilestitlesreplaces*s/smanage_addPropertysstringsMIX_INFOs*

Images Ajoutes :)

s[Retour a la config de la navigation](!s _getitem_s_getitems _getattr_s_getattrs_print_s_prints containerstypemodscontextsmemstypesnomslieusidobjsobjsKOsMOslensimage_nslnsimage_rslrsimage_aslastitlesrepstnstrstasnamessstringsurlsurl2(!stypesnomsidobjsurlsimage_nsimage_rsimage_as _getitem_s_getitems _getattr_s_getattrs_print_s_prints containerstypemodscontextsmemslieusobjsKOsMOslenslnslrslastitlesrepstnstrstasnamessstringsurl2((sScript (Python)srep_ajouter_images_validsH$       6""! %(srep_ajouter_images_valid(srep_ajouter_images_valid((sScript (Python)ssqLU_bodyqMT# RECUPERATION DU TYPE DE MODULE CONCERNE :# typemod=container.getId() ############################################ # RECUPERATION DES PARAMETRES mem=context.zwo_lib.mem_data() if type=="skin": lieu=context.zwo_info.skins[nom] # Verification des droits if mem['droit_config_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' else: lieu=mem['rep_obj'] # Verification des droits if mem['droit_admin_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' obj=lieu[idobj] KO=1024 MO=1024*1024 ln=len(image_n.read()) lr=len(image_r.read()) la=len(image_a.read()) ## exemple de test de longueur sur le ficher de 5MO if ln>1*MO: return 'fichier n trop volumineux...' if lr>1*MO: return 'fichier r trop volumineux...' if la>1*MO: return 'fichier a trop volumineux...' def title(file): id='' if hasattr(file,'filename'): filename=file.filename id=filename[max(string.rfind(filename, '/'), string.rfind(filename, '\\'), string.rfind(filename, ':'), )+1:] name=id return name rep=context.zwo_info.skins[nom][idobj]['image'] tn=title(image_n) tr=title(image_r) ta=title(image_a) names=tn+'@'+tr+'@'+ta rep.manage_addImage(tn, file=image_n, title=tn) rep.manage_addImage(tr, file=image_r, title=tr) rep.manage_addImage(ta, file=image_a, title=ta) url2=string.replace(url,'*','/') rep.manage_addProperty(url2,names,'string') context.MIX_INFO(mem,lieu[idobj]) print '

Images Ajoutes :)

' print '[Retour a la config de la navigation]' return printed qNU Script_magicqOKUwarningsqP)UerrorsqQ)U Python_magicqRU* qSu. k]((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Utypeq Unomq Uidobjq U _getitem_q U_getitemqU _getattr_qU_getattrqU_print_qU_printqU containerqUtypemodqUcontextqUmemqUlieuqUobjqUparamsqUs1qUs2qUs3qUvalqUsUidimgqUstrqUs4q Us5q!Us6q"Us7q#Us8q$Us9q%Us10q&Us11q'tq(U co_argcountq)KubU_paramsq*Utype,nom,idobjq+Uidq,Uconf_2q-U__ac_local_roles__q.}q/Uxavq0]q1UOwnerq2asU_dav_writelocksq3(U m'q4(U Persistenceq5UPersistentMappingq6tq7tq8QU _bind_namesq9(cShared.DC.Scripts.Bindings NameAssignments q:oq;}q(Uname_containerq?U containerq@U name_subpathqAUtraverse_subpathqBU name_contextqCUcontextqDU name_m_selfqEUscriptqFusbU func_defaultsqGNU_codeqHT70csdZdS(Nc,s&t}t}t}|td} ||tdd} |djoL|||tdd|}  || ddjo  d Snn7 || d } || d djo d Sn|| |}d |d |d|}||tdd|IJ|dIJ|d|dIJ|d|dIJ|d|dIJ|dIJ|d|d |d|dIJ |dIJ!|dIJ"d}#d}$d}%||ddjo &d}n'||ddjo (d}n)||dd jo *d}n+|d!|d"IJ,|d#|d$IJ-|d%|d&IJ.|d'IJ1|d(IJ2d}3d}4d}5||d)d*jo 6d}n7||d)d+jo 8d}n9||d)d,jo :d}n;|d-|d.IJ<|d/|d$IJ=|d0|d1IJ>|d'IJ@|d2IJA|d2IJC|d3IJE|d4IJF|d5IJG||d6}Hd}I|d7jo Jd}nK|d8|d9IJMx|||||tdd:d;d<d=d>d?MrQ}Nd}O||jo Pd}nQ|d@|dA|dB|dCIJqOWS|d'IJU|dDIJX|dEIJY|dFIJ[||dG}\d}]|d7jo ^d}n`|dHIJax|||||tdd:d;dId=d>d?arQ}bd}c||jo dd}ne|d@|dA|dB|dCIJq_Wf|d'IJh|dJIJj|dKt||dLdMIJl|dJIJn|dNIJo|dOIJp||dP}qd}r|d7jo sd}nt|dHIJux|||||tdd:d;dId=d>d?urQ}vd}w||jo xd}ny|d@|dA|dB|dCIJqWz|d'IJ||dJIJ~|dQIJ|dJIJ|dRIJ|dSIJ||dT}d}|d7jo d}n|dHIJx|||||tdd:d;dId=d>d?rQ}d}||jo d}n|d@|dA|dB|dCIJqW|d'IJ|dJIJ|dUt||dVdMIJ|dJIJ|dWIJ|dXIJ||dY}d}|d7jo d}n|dHIJx|||||tdd:d;dId=d>d?rQ}d}||jo d}n|d@|dA|dB|dCIJq W|d'IJ|dZIJ|d[IJ|d\IJ||d]}d}|d7jo d}n|d8|d9IJx|||||tdd:d;d<d=d>d?rQ}d}||jo d}n|d@|dA|dB|dCIJq# W|d'IJ|d^IJ|d2IJ|d_IJ|d`IJd}d}d}||dadbjo d}n||dadcjo d}n||daddjo d}n|de|dfIJ|dg|dhIJ|di|djIJ|d'IJ|dkIJd}d}d}d}d}d}d}d}d}d}d}||dldmjo d}n||dldnjo d}n||dldojo d}n||dldpjo d}n||dldqjo d}n||dldrjo d}n||dldsjo d}n||dldtjo d}n||dldujo d}n||dldvjo d}n||dldwjo d}n|dx|dyIJ|dz|d{IJ|d||d}IJ|d~|dIJ|d|dIJ|d|dIJ|d|dIJ|d|dIJ|d|dIJ|d|dIJ|d|dIJ|d'IJd}||ddjo d}n|d|dIJd}||ddjo d}n|d|dIJ|d||ddIJ|d2IJ|d||ddIJd}||ddjo d}n|d|dIJ d |d2IJ|d||ddIJd}||ddjo d}n|d|dIJd|d2IJ|d2IJ|dIJ|dIJ d}!d}"d}#||ddbjo $d}n%||ddcjo &d}n'||dddjo (d}n)|de|dfIJ*|dg|dhIJ+|di|djIJ,|d'IJ-|dIJ.d}/d}0d}1d}2d}3d}4d}5d}6d}7d}8d}9||ddmjo :d}n;||ddnjo <d}n=||ddojo >d}n?||ddpjo @d}nA||ddqjo Bd}nC||ddrjo Dd}nE||ddsjo Fd}nG||ddtjo Hd}nI||ddujo Jd}nK||ddvjo Ld}nM||ddwjo Nd}nO|dx|dyIJP|dz|d{IJQ|d||d}IJR|d~|dIJS|d|dIJT|d|dIJU|d|dIJV|d|dIJW|d|dIJX|d|dIJY|d|dIJZ|d'IJ[d}\||ddjo ]d}n^|d|dIJ_d}`||ddjo ad}nb|d|dIJc|d||ddIJd|d2IJe|d||ddIJfd}g||ddjo hd}ni|d|dIJodp|d2IJq|d||ddIJrd}s||ddjo td}nu|d|dIJ}d|d2IJ|d2IJ|dIJ|dIJ|td| |SdS(NsgetIdszwo_libsmem_datasskinszwo_infosskinssdroit_config_dossieris.Vous n'avez pas les droits pour cette action !srep_objsdroit_admin_dossierstype=s&nom=s&idobj=smenuis*
s(s'
s[Ajouter une image de prsentation pour la navigation]

sAlignement element :sss e2_img_upsnossimagess navigationsligness objectIdssImageiss1sImage a gauche 1 : s
sImage a gauche 2 : sse2_img_right_2s?px
se2_img_right_1s=s#Image au dessous de l'element
sse2_txt_norm_fontsArialsTimessCourierssss Gras se2_txt_norm_itals7 Italique sHCouleurs fond se2_norm_txt_souss7 Soulignement s s="" if obj.e2_norm_txt_sur=="oui": s=" checked" print ' Surlignement' sRtext rollover : couleur Surlignement' sElement selectionn
sse2_txt_sel_sizese2_txt_sel_bolds6 Surlignement' sQtext rollover : couleur Surlignement' sQ
s
stotal(s _getitem_s_getitems _getattr_s_getattrs_print_s_prints containerstypemodscontextsmemstypesnomslieusidobjsobjsparamsss1ss2ss3svalsssidimgsstrss4ss5ss6ss7ss8ss9ss10ss11(stypesnomsidobjs _getitem_s_getitems _getattr_s_getattrs_print_s_prints containerstypemodscontextsmemslieusobjsparamsss1ss2ss3svalsssidimgsstrss4ss5ss6ss7ss8ss9ss10ss11((sScript (Python)sconf_2sx$   %                        H  )       H  )  $      H  )         H  )  $      H  )      H  )                                                                                               (sconf_2(sconf_2((sScript (Python)ssqIU_bodyqJT9*# RECUPERATION DU TYPE DE MODULE CONCERNE :# typemod=container.getId() ############################################ # RECUPERATION DES PARAMETRES mem=context.zwo_lib.mem_data() if type=="skin": lieu=context.zwo_info.skins[nom] # Verification des droits if mem['droit_config_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' else: lieu=mem['rep_obj'] # Verification des droits if mem['droit_admin_dossier']<>1: return 'Vous n\'avez pas les droits pour cette action !' obj=lieu[idobj] params='type='+type+'&nom='+nom+'&idobj='+idobj print context.menu(2,params) print '
' print '' print '' print '' print '
' print '[Ajouter une image de prsentation pour la navigation]

' #print 'Hauteur d\'un lment de navigation
' print 'Alignement element :' print '' print '' print '
' print '
' print '
' print 'Image au dessus de l\'element
' print '' print '
' print 'Image a gauche 1 : ' print '' print '' print 'px

' print '