def edit_ok(self): if not check_edit(self.datas,self.socket): return baseurl=self.datas.url_base if self.path!='/': baseurl+=self.path url=self.socket.input_text_value('urlgalerie') titre=self.socket.input_text_value('titre') textnav=self.socket.input_text_value('textnav') description=self.socket.input_text_value('description') name=name_from_path(self.path) if self.id!=0: redirecturl=baseurl if url!=name: self.path='/'.join(baseurl.split('/')[:-1])+'/'+url redirecturl=self.path self.rename({"all":name}) self.set_propriete("titre",titre) self.set_propriete("textnav",textnav) self.set_propriete("description",description) self.socket.redirection_http(redirecturl, "Action Ok")
def action_element_edit_form(self): _=self.datas._ if not check_edit(self.datas,self.socket): self.socket.send_datas(_('connectez vous...')) return self.datas.old_textes={} for code in self.config.langues: txt=self.get_text_lang(code) if not txt: txt='' self.datas.old_textes[code]=txt f=add_Text_Form(self.datas,self.config) % tpl_placement(self.datas) j=get_js_prepare_submit() template=""" <form action="%s/edit/ok" id="panneauform" method="POST"> %s <div id="div_valid" class="invisible"> <input type="button" value="%s" onClick="%s;document.forms.panneauform.submit();"> </div> </form> """ % (self.path,f, _('Modifier ce texte'),j) self.socket.send_datas(template)
def ajoute_galerie(self): if not check_edit(self.datas,self.socket): return url=self.socket.input_text_value('urlgalerie') url=check_char_url(url) titre=self.socket.input_text_value('titregalerie','') textnav=self.socket.input_text_value('textnav','') description=self.socket.input_text_value('description','') titre=titre.replace("'", "'") titre=titre.replace('"', '"') textnav=textnav.replace("'", "'") textnav=textnav.replace('"', '"') description=description.replace("'", "'") description=description.replace('"', '"') placement=self.socket.input_text_value('placement') lang=get_langue(self.datas,self.config) pere_id=self.datas.objet_actu.id pere_path=self.datas.objet_actu.path new_Galerie(self.glob,self.database,self.datas,self.socket,pere_id,pere_path, name=url,titre=titre,textnav=textnav,description=description, placement_wiki=placement,lang=lang)
def get_palette(datas, socket, t): palette = None if check_admin(datas, socket, alerte=False): palette = palette_admin(datas, socket, t) elif check_edit(datas, socket, alerte=False): palette = palette_editor(datas, socket, t) return palette
def new_Galerie(glob,database,datas,socket,pere_id,pere_path, name=None,titre='Galerie',textnav='Galerie',description='', placement_wiki=None,lang='all'): if not check_edit(datas,socket): return pathgalerie=config.path['files']+pere_path+'/'+name os.system('mkdir -p "%s"' % pathgalerie) os.system('mkdir -p "%s/mini"' % pathgalerie) os.system('mkdir -p "%s/normal"' % pathgalerie) os.system('mkdir -p "%s/info"' % pathgalerie) os.system('mkdir -p "%s/download"' % pathgalerie) proprietes={ 'titre' : titre.strip(), 'textnav' : textnav.strip(), 'description' : description.strip(), } obj_id=create_element(glob,database,4,pere_id,{'all':name,},proprietes) if placement_wiki: dispo_add_elem(glob,database,pere_id,obj_id, placement_wiki) redirect_ok(socket,datas)
def palette(self): if not check_edit(self.datas, self.socket, False): return _ = self.datas._ param = self.datas.action_params[0] pal = get_palette(self.datas, self.socket, param) self.socket.send_datas("""<div class="icones_palette">""") for l in pal: for (m2_name, m2_id, m2_aff, m2_subs) in l: if m2_aff != 0: self.socket.send_datas( """<a href="#" onclick="javascript:pal_click(event,'%s');"><img class="img_pal_base" src="/includes/images/interface/iconsmenu/%s.png"><img class="img_pal_hover" src="/includes/images/interface/iconsmenu/%s_r.png"></a>""" % (m2_id, m2_id, m2_id) ) self.socket.send_datas("""<br />""") self.socket.send_datas("""</div>""") self.socket.send_datas("""<div class="pal_modes">""") mpal = get_palette_modes(self.datas, param) for (m2_name, m2_id, m2_aff, m2_subs) in mpal: if m2_aff != 0: self.socket.send_datas( """<a href="#" onclick="javascript:pal_click(event,'%s');"><img class="img_pal_base" src="/includes/images/interface/iconsmenu/%s.png"><img class="img_pal_hover" src="/includes/images/interface/iconsmenu/%s_r.png"></a>""" % (m2_id, m2_id, m2_id) ) # self.socket.send_datas("""</div>""")
def get_menu(datas, socket): menu = None if check_admin(datas, socket, alerte=False): menu = menu_admin(datas, socket) elif check_edit(datas, socket, alerte=False): menu = menu_editor(datas, socket) return menu
def new_Page(self,init_datas): _=self.datas._ if not check_edit(self.datas,self.socket): return pid=self.id lang=get_langue(self.datas,self.config) names={} proprietes={} linkdest=None nameslistactu=[] for code in self.config.langues: url=init_datas[code]['url'] url=check_char_url(url) pathpage=self.glob.objets[self.id]['path'][self.glob.langues[0]] name=url if name=="": if nameslistactu==[]: self.socket.send_datas(_("Erreur : Pas de nom d'url")) return else: name=nameslistactu[0] if not name in nameslistactu: pathfile=pathpage+'/'+name while (self.fs_svn.exist(pathfile)): (pathfile,name)=new_name_file(pathfile) nameslistactu.append(name) if not linkdest: self.fs_svn.add_folder(pathfile) linkdest=pathfile else: self.fs_svn.add_link(linkdest,pathfile) names[code]=name for code in self.config.langues: textnav=init_datas[code]['textnav'] if textnav=="": textnav=nameslistactu[0] titre=init_datas[code]['titre'] titre=titre.replace("'", "'") titre=titre.replace('"', '"') textnav=textnav.replace("'", "'") textnav=textnav.replace('"', '"') titre=titre.strip() textnav=textnav.strip() proprietes['titre_%s' % code]=titre proprietes['textnav_%s' % code]=textnav obj_id=create_element(self.glob,self.database,2,pid,names,proprietes) return obj_id
def enleve_element(self): # BUG lors de enleve element Page au niveau de la racine !!!! if not check_edit(self.datas,self.socket): return i=int(self.socket.args["id"]) if i==0: return url_ret=self.path if self.id==i: url_ret=path_pere(url_ret) self.datas.my_session.set_new_url(url_ret) if i!=0: detruire_element(self.interfaces,i) redirect_ok(self.socket,self.datas)
def includes(self): if check_edit(self.datas,self.socket, False): return [('js','base.js'), ('js','config.js'), ('js','editeurtext.js'), ('js','events.js'), ('js','colors.js'), ('js','iefix.js'), ('js','interraction.js'), ('js','editskindispo.js'), ('js','selectorcolor.js'), ('css','editeurtext'), ('css','selectorcolor'),] else: return [('js','base.js'), ('js','config.js'),]
def move_page(self): if not check_edit(self.datas,self.socket): return chemin=format_path_list(self.socket.args["pere"].split('__')[1:-1]) idpere=int(self.socket.args["pere"].split('__')[-1]) pos=int(self.socket.args["pos"]) my_obj=self.glob.objets[self.id] oldpere=my_obj['pere'] oldpere_obj=self.glob.objets[oldpere] newpere_obj=self.glob.objets[idpere] if (oldpere!=idpere): self.se_deplacer(idpere) self.datas.my_session.set_new_url(oldpere_obj['path'][self.glob.langues[0]]) else: self.datas.my_session.set_new_url(self.path) # reordoner les sous pages pages=newpere_obj['proprietes']['ordre_sous_pages'] newordre=[] j=0 posok=False for (idpage) in pages: if j==pos: newordre.append(self.id) j+=1 posok=True if idpage!=self.id: newordre.append(idpage) j+=1 if not posok: newordre.append(self.id) newordrestr='/'.join(map(str,newordre)) set_propriete(self.glob,self.database,idpere,'ordre_sous_pages',newordrestr) newpere_obj['proprietes']['ordre_sous_pages']=newordre for lang in self.glob.langues: self.glob.get_infos_sous_pages(lang,idpere) redirect_ok(self.socket,self.datas)
def ajoute_page(self): _=self.datas._ if not check_edit(self.datas,self.socket): return init_datas={} for code in self.config.langues: init_datas[code]={} init_datas[code]['url']=check_char_idpage(self.socket.input_text_value('urlpage_%s' % code)) init_datas[code]['textnav']=self.socket.input_text_value('textnav_%s' % code) init_datas[code]['titre']=self.socket.input_text_value('titrepage_%s' % code) new_Page(self,init_datas) self.datas.my_session.set_new_url(self.path) redirect_ok(self.socket,self.datas)
def edit_page_form(self): _=self.datas._ if not check_edit(self.datas,self.socket): return inputslang=u'' name=name_from_path(self.path) urllangdefault=name for code in self.config.langues: l=tablangtrad[code][self.datas.my_session.langue] inputslang+=u"<br /><br />%s %s : <br />" % (_('Information en '),l) if self.id!=0: try: urllang=self.glob.objets[self.id]['names'][code] except: urllang='' inputslang+=u"""<div class="label">%s</div> : <input type="text" name="urlpage_%s" value="%s"/> <br />""" % (_('Identifiant pour url '), code, urllang ) textnav=self.get_propriete('textnav_%s' % code,'') if type(textnav)==type(''): textnav=stou(textnav) inputslang+=u"""<div class="label">%s</div> : <input type="text" name="textnav_%s" value="%s"/> <br />""" % (_('Text Navigation'),code,textnav ) titre=stou(self.get_propriete('titre_%s' % code,'')) inputslang+=u""" <div class="label">%s</div> : <input type="text" name="titrepage_%s" value="%s"/><br /> """ % ( _('Titre'),code,titre) template=u""" %s : <form action="%s/edit_page" method="POST" id="panneauform" > %s <div id="div_valid" class="invisible"> <input type="button" value="%s" onClick="document.forms.panneauform.submit();"> </div> </form> """ % (_('Editer les proprietes de la page'), self.path,inputslang,_('Valider')) self.socket.send_datas(template)
def edit_ok(self): _=self.datas._ if not check_edit(self.datas,self.socket): self.socket.send_datas(_('connectez vous...')) return text_modif={} for code in self.config.langues: namefile = self.path+'.%s.txt' % code text=self.socket.input_text_value('text_%s' % code) oldtext=self.get_text_lang(code) if text!=oldtext: text_modif[code]=text change_Text(self.glob,self.fs_svn,self.id,text_modif) urlparent='/'.join(self.path.split('/')[:-1]) self.datas.my_session.set_new_url(urlparent) redirect_ok(self.socket,self.datas)
def ajoute_text_form(self): _=self.datas._ if not check_edit(self.datas,self.socket): self.socket.send_datas(_('connectez vous...')) return baseurl=self.datas.url_base+self.path f=add_Text_Form(self.datas,self.config) % tpl_placement(self.datas) j=get_js_prepare_submit() template=""" <form action="%s/ajoute_text" id="panneauform" method="POST"> %s <div id="div_valid" class="invisible"> <input type="button" value="%s" onClick="%s;document.forms.panneauform.submit();"> </div> </form> """ % (baseurl,f, _('Ajouter ce texte'),j) self.socket.send_datas(template)
def ajoute_galerie_element(self): if not check_edit(self.datas,self.socket): return pere_id=self.datas.objet_actu.id pere_path=self.datas.objet_actu.path titre = self.socket.input_text_value('titre','') description = self.socket.input_text_value('description','') fileitem_image = self.socket.input_file_item('image') fileitem_mini = self.socket.input_file_item('mini') fileitem_download = self.socket.input_file_item('download') if fileitem_image == None: self.socket.send_error(" Pas d'image ") new_ElementGalerie(self.fs_svn,self.socket,pere_id,pere_path, titre=titre,description=description,fileitem_image=fileitem_image, fileitem_mini=fileitem_mini,fileitem_download=fileitem_download)
def ajoute_text(self): _=self.datas._ if not check_edit(self.datas,self.socket): self.socket.send_datas(_('connectez vous...')) return pere_id=self.datas.objet_actu.id pere_path=self.datas.objet_actu.path text={} placement=self.socket.input_text_value('placement') for code in self.config.langues: try: text[code]=self.socket.input_text_value('text_%s' % code) except: text[code]='' new_Text(self.glob,self.database,self.fs_svn,self.socket,self.config,pere_id,pere_path, text=text,placement_wiki=placement) self.datas.my_session.set_new_url(self.path) redirect_ok(self.socket,self.datas)
def edit_page(self): if not check_edit(self.datas,self.socket): return if self.id!=0: pereurl=path_pere(self.path)+'/%s' firstname="" oldnames=self.glob.objets[self.id]['names'] newnames={} i=0 for code in self.glob.langues: newnames[code]=check_char_idpage(self.socket.input_text_value('urlpage_%s' % code,'').strip()) if i==0: if newnames[code]=='': self.socket.send_datas('necessite url pour la page !!!') return else: namebase=newnames[code] else: if newnames[code]=='': newnames[code]=namebase names=[] flagmodifbase=False for code in self.config.langues: pathpageold=pereurl % oldnames[code] pathpagenew=pereurl % newnames[code] if len(names)==0: if oldnames[code]!=newnames[code]: flagmodifbase=True if newnames[code] in oldnames.values(): for c in oldnames: if oldnames[c]==newnames[code]: oldnames[c]=None pass #self.fs_svn.trash(pathpagenew) else: while (self.fs_svn.exist(pathpagenew)): (pathpagenew,newnames[code])=new_name_file(pathpagenew) pass #self.fs_svn.move(pathpageold,pathpagenew) else: if flagmodifbase or oldnames[code]!=newnames[code]: if pathpageold!=None and not oldnames[code] in names: pass #self.fs_svn.trash(pathpageold) if not newnames[code] in names: newlink=pereurl % names[0] while (self.fs_svn.exist(pathpagenew)): (pathpagenew,newnames[code])=new_name_file(pathpagenew) pass #self.fs_svn.add_link(newlink,pathpagenew) names.append(newnames[code]) self.rename(newnames) newlink=pereurl % names[0] self.datas.my_session.set_new_url(newlink) else: self.datas.my_session.set_new_url('') for code in self.config.langues: if self.id!=0: textnav=self.socket.input_text_value('textnav_%s' % code,'').strip() if textnav=='': textnav=newnames[code] self.set_propriete('textnav_%s' % code,textnav) titre=self.socket.input_text_value('titrepage_%s' % code,'').strip() self.set_propriete('titre_%s' % code,titre) self.glob.reinit(self.database,self.id) redirect_ok(self.socket,self.datas)
def includes(self): if check_edit(self.datas, self.socket, False): return [("js", "palette.js"), ("css", "palette")] else: return []
def includes(self): if check_edit(self.datas,self.socket,False): return [('js','editeurtext.js'), ('css','editeurtext')] else: return []