m ѩ,Fc@sBdklZdkZdkZdkZdefdYZdS((sSystemNtSitecBstZdZdZdZdddZdZdddZd Zd Z d Z d Z dgd Z dZ dZdZdZdZdZdZdZddZdZdZddZdZddZdZdZdddZdZdd Z d!Z!d"d#Z"d$Z#d%Z$d&Z%d'Z&d(d)dd*Z'd+Z(d,Z)d-Z*d.Z+ddd/Z,d0Z-d1Z.d2Z/d3Z0d4Z1RS(5NcCsti|y|iddd|iddd|iddd|iddd|iddd|idd d|idd d|idd d|idd d|id |id dddd|id dddd|id dddd|id dddd|id dddd|id dddd|id dddd|id dddd|id dddd|id|idd ddd|iddddd|iddddd|iddddd|idd ddd|idd!ddd|id"|id"d ddd|id"dddd|id"dddd|id"d!ddd|id#|id#d ddd|id#dddd|id#dddd|id#dddd|id#dddd|id#d d$d%d|id#d#ddd|id#dddd|id&|id&d ddd|id&dddd|id&dddd|id&dddd|id&dddd|id&dddd|id&d d$d%d|id&d#ddd|id&dddd|iiWn tj o|ii nXdS('Nttobjects object::idt0s object::names object::sizet480s object::valuesobject::value::idsobject::value::namesobject::value::typesobject::value::sizetdocumenttparenttINTEGERs-1tBTREEttypetTEXTtnamettitlettemplatetlinktmenutBOOLEANtfalset parametertsorttstatetlanguagetownertdatetremarkthistoryttextt TIMESTAMPt00010101tcontent( tSystemtinittselftaddentrytaddtabletaddfieldt connectiontcommitt Exceptiontrollback(R ((t</data/zmath/mirror/zope/Products/zauthors/zsite/site/site.pyRsp      cCs|id|S(NR(R tgetdatatid(R R*((R(t getdocumentBscCs|id||dS(NR(R tsetdataR*R(R R*R((R(t setdocumentFsiRcCsag}|od|}n|ii}|id|i||f|i}|i |S(Ns AND (%s)s^SELECT * FROM %s_document WHERE parent=%d %s ( tlistt expressionR R$tcursortexecuteR Rt dictfetchalltclose(R RR/R0R.((R(t listdocumentsKs  cCs[|ii}x;|D]3}|id|i||f|id}qW|i|S(NsSELECT id FROM %s_document WHERE parent=%d AND name='%s' OR id=0 ORDER BY id DESC LIMIT 1 i( R R$R0R.R R1R*tfetchoneR3(R R*R.R0R ((R(t getdocumentidXs cCsmg}|od|}n|ii}|id|i||ft|i |i }|i |S(Ns AND (%s)s_SELECT id FROM %s_document WHERE parent=%d %s ( R.R/R R$R0R1R RtmaptheadtfetchallR3(R RR/R.R0((R(tlistdocumentidsfs cCsv|g}|ii}xC|o;|id|i|f|id}|i|qW|i |i |S(NsdSELECT parent FROM %s_document WHERE id=%d i( R*R.R R$R0R1R R5tappendR3treverse(R R*R0R.((R(t listparentsss   cCsUg}|ii}|id|i|ft|i|i }|i |S(NsSELECT id,sort FROM %s_document WHERE parent=%d AND menu ORDER BY sort ( R.R R$R0R1R R*R7R8R9R3(R R*R0R.((R(tlistmenus  cCs|id|S(NR(R R)R*(R R*((R(tgetstatescCs|id||dS(NR(R R,R*R(R R*R((R(tsetstatescCs\g}|ii}|id|i||t|dd!f|i }|i |S(NsSELECT * FROM %s_state WHERE document=%d AND language='%s' AND state in (%s) ii( R.R R$R0R1R RRtstrtstatesR2R3(R RRRBR0R.((R(t liststatess -  cCs|ii}|id|i|||f|i}|o|dd}nd}|i |pK|i d}|i d|hd|<d|<d|<|in|id|S(NsSELECT id FROM %s_state WHERE document=%d AND language='%s' AND owner='%s' iRRRR(R R$R0R1R RRRR9tdataR*R3tnewdataR,R%R)(R RRRR0RDR*((R(tgetstateofdocuments   .cCs-|i|||d}|i||dS(NR*(R RFRRRR*R@R(R RRRRR*((R(tsetstateofdocumentscCs|id|S(NR(R R)R*(R R*((R(t gethistoryscCs|id||dS(NR(R R,R*R(R R*R((R(t sethistoryscCsLg}|ii}|id|i||f|i}|i |S(NsSELECT * FROM %s_history WHERE document=%d AND language='%s' ( R.R R$R0R1R RRR2R3(R RRR0R.((R(t listhistoriess   cCs|ii}|id|i||f|i}|o|dd}nd}|i |pB|i d}|i d|hd|<d|<|i n|id|S(NsSELECT id FROM %s_history WHERE document=%d AND language='%s' ORDER BY time DESC iRRR(R R$R0R1R RRR9RDR*R3RER,R%R)(R RRR0RDR*((R(tgethistoryofdocuments  %cCs*|i||d}|i||dS(NR*(R RKRRR*RIR(R RRRR*((R(tsethistoryofdocumentscCsV|pdSnx1|i|||D]}|id|dq%WxI|i||dD]2}|id}||d<|i d||qYWx1|i |||D]}|id|dqWh}x|i ||dD]o}|id}||d<|ddjo|i |dd|dR?R@RCRFRGRHRIRJRKRLRQRRRSRTRMRURWRXRYRVRORZR[RfRkRnRpRsRuRyRzR{R|R~RRRRRR(((R(Rs^ ;                              (tsystemRRRRcR(RcRRRR((R(t?s