Annotation of OSAS/OSA_system/OSAS_add.py, revision 1.21
1.18 dwinter 1: #Neue Version Begin 5.4.2004
1.1 dwinter 2:
3:
4: """Methoden zum hinzufügen von Dokumenten ins Archiv"""
1.13 dwinter 5: from OSAS_helpers import readArchimedesXML
1.17 dwinter 6: try:
7: import archive
8: except:
9: print "archive not imported"
10:
1.1 dwinter 11: import os
1.21 ! dwinter 12:
1.1 dwinter 13: from Products.PageTemplates.PageTemplateFile import PageTemplateFile
14: from Products.PageTemplates.PageTemplate import PageTemplate
15: import string
16: import urllib
17: import xml.dom.minidom
1.12 dwinter 18: from time import localtime,strftime
1.18 dwinter 19: from Globals import package_home
1.1 dwinter 20:
21: import re
1.20 dwinter 22: def showHelp(helptext):
23: """show helptext"""
24: return """<html>
25: <body>
26: %
27: </body>
28: </html>"""%helptext
1.1 dwinter 29: def add(self, no_upload=0):
30: """ Add metadata or metadata and documents to the repository
31: no_upload=0 kein upload sonst upload von documententen"""
32:
1.18 dwinter 33: #self.referencetypes=self.ZopeFind(self,obj_metatypes=['OSAS_MetadataMapping'])
34: self.referencetypes=self.ZopeFind(self)
35:
1.12 dwinter 36: newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_add_new').__of__(self)
1.1 dwinter 37: self.REQUEST.SESSION['path']=self.REQUEST['path']
38: if no_upload==0:
39: self.REQUEST.SESSION['no_upload']='yes'
40: else:
41: if self.REQUEST.SESSION.has_key('no_upload'):
42: del self.REQUEST.SESSION['no_upload']
43:
44: return newtemplate()
45:
46:
47:
48: def getISO():
1.10 dwinter 49: """ISO"""
1.9 dwinter 50: try:
1.18 dwinter 51: f=file(os.path.join(package_home(globals()),'iso639-1.inc'),'r').readlines()
52:
1.9 dwinter 53: ret={}
54: for lineraw in f:
55: line=lineraw.encode('ascii','replace')
56: value=string.split(line,'\t')[0].encode('ascii','replace')
57: key=string.split(line,'\t')[1].encode('ascii','replace')
1.10 dwinter 58: ret[key]=value
1.9 dwinter 59: except:
60: ret={}
1.21 ! dwinter 61: return ret
1.1 dwinter 62:
1.20 dwinter 63:
1.1 dwinter 64: def add2(self):
65: self.reftype=self.REQUEST['Reference Type']
1.18 dwinter 66: self.REQUEST.SESSION['reftype']=self.reftype
67: self.bibdata={}
68: for referenceType in self.referencetypes:
1.20 dwinter 69: #print referenceType
1.18 dwinter 70: self.bibdata[referenceType[1].title]=referenceType[1].fields
1.20 dwinter 71: self.bibdata['data']=referenceType[1]
1.1 dwinter 72: self.fields=self.bibdata[self.reftype]
1.21 ! dwinter 73:
1.1 dwinter 74: self.isolist=getISO()
1.10 dwinter 75: tmp=getISO().keys()
76: tmp.sort()
77: self.isokeys=tmp
1.1 dwinter 78: #listed=[ x for x in self.isolist.keys()]
79: #print listed
80: #sorted=listed.sort()
81: #print sorted
82:
1.12 dwinter 83: newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_add_bibdata').__of__(self)
1.1 dwinter 84: return newtemplate()
85: #return self.fields
86:
87:
88: def parse_query_string(str):
89: queries={}
90: key=""
91: value=""
92: tmp=""
93: toggle="key"
94: str=urllib.unquote(str)
95: for i in str:
96: if i=="=":
97: key=tmp
98: toggle="value"
99: tmp=""
100: elif i=="&":
101: queries[key]=tmp
102: tmp=""
103: toggle="key"
104: else:
105: if toggle=="key":
106: if i=="+" : i="-"
107: else:
108: if i=="+" : i=" "
109: tmp=tmp+i
110: queries[key]=tmp
111: return queries
112:
113: def add3(self):
114: """Foldername"""
115: metadata=parse_query_string(self.REQUEST['QUERY_STRING'])
116: self.REQUEST.SESSION['metadata']=metadata
1.18 dwinter 117: vorschlag=[]
118: if metadata.has_key('author'):
119: vorschlag.append(metadata['author'][:5])
120: if metadata.has_key('title'):
121: vorschlag.append(metadata['title'][:5])
122: if metadata.has_key('year'):
123: vorschlag.append(metadata['year'])
124:
125:
126: vorschlag_naming=string.join(vorschlag,"_")
127:
128:
1.17 dwinter 129: self.vorschlag_naming=unicode(vorschlag_naming,'ascii','ignore')
1.1 dwinter 130: if self.REQUEST.SESSION.has_key('no_upload'):
131: self.REQUEST.SESSION['folder_name']=self.REQUEST.SESSION['path']
132: return add5(self)
133: else:
1.12 dwinter 134: newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_add_naming').__of__(self)
1.1 dwinter 135: return newtemplate()
136:
137:
138: def add4(self):
139: self.path=re.search(r"/mpiwg(.*)",self.REQUEST.SESSION['path']).group(1)
140:
141: self.folder_name=self.REQUEST['folder_name']
1.18 dwinter 142: # next has to be changed -> error if back button is used!!
1.1 dwinter 143: self.REQUEST.SESSION['folder_name']=self.folder_name
1.21 ! dwinter 144: if self.REQUEST['submit']=="upload images":
! 145: self.REQUEST.SESSION['path']=os.path.join(self.REQUEST.SESSION['path'],self.REQUEST['folder_name'])
! 146: self.image_folder_name="pageimg"
! 147: newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_upload').__of__(self)
! 148: return newtemplate()
! 149: else:
! 150: os.mkdir(os.path.join(self.REQUEST.SESSION['path'],self.REQUEST['folder_name']))
! 151: return addText(self,os.path.join(self.REQUEST.SESSION['path'],self.REQUEST['folder_name']))
! 152:
1.1 dwinter 153:
154: def add5(self):
155: """ADD INDEX.META"""
1.12 dwinter 156: newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_add_metadata').__of__(self)
1.1 dwinter 157: return newtemplate()
158:
159: def add6(self):
160: metadata=parse_query_string(self.REQUEST['QUERY_STRING'])
161: metadata['archive-path']=os.path.split(self.REQUEST.SESSION['path'])[0]
162: #metadata['folder_name']=self.REQUEST.SESSION['folder_name']
163: metadata['folder_name']=os.path.split(self.REQUEST.SESSION['path'])[1]
164: metadata['content-type']="scanned document"
165: self.reftype=self.REQUEST.SESSION['reftype']
166: self.REQUEST.SESSION['add_metadata']=metadata
167: self.add_metadata=metadata
168: self.metadata=self.REQUEST.SESSION['metadata']
169: self.metadataprint=""
170: for tag in self.metadata.keys():
171: self.metadataprint=self.metadataprint+"<"+tag+">"+self.metadata[tag]+"</"+tag+">\n"
172:
1.12 dwinter 173: newtemplate=PageTemplateFile('Products/OSA_system/zpt/index_meta').__of__(self)
1.1 dwinter 174: newtemplate.content_type="text/plain"
175: renderxml = newtemplate()
176: if self.REQUEST.SESSION.has_key('no_upload'):
177: metapath=self.REQUEST.SESSION['path']+"/index.meta"
178: else:
179: metapath=self.add_metadata['archive-path']+"/"+self.add_metadata['folder_name']+"/index.meta"
180:
181: f=open(metapath,'w')
182: f.writelines(renderxml)
183: f.close()
1.10 dwinter 184: os.chmod(metapath,0664)
185: os.popen('chmod -R 0775 %s'%self.add_metadata['archive-path']+"/"+self.add_metadata['folder_name'])
1.1 dwinter 186: if self.REQUEST.SESSION.has_key('no_upload'):
187:
188: #newtemplate2=PageTemplateFile('/usr/local/mpiwg/Zope/Extensions/done',"text/html").__of__(self)
189: return self.REQUEST.response.redirect(self.REQUEST['URL2']+"?path="+self.REQUEST.SESSION['path'])
190: else:
191: #print self.add_metadata['archive-path']
1.21 ! dwinter 192: self.viewpath=re.search(r"/mpiwg/online/(.*)",self.add_metadata['archive-path']).group(1)
! 193: if not (self.REQUEST.SESSION['no_upload']=="text"):
! 194: newtemplate2=PageTemplateFile('Products/OSA_system/zpt/OSAS_saved').__of__(self)
! 195: newtemplate2.content_type="text/html"
! 196: self.REQUEST.response.setHeader('Content-Type','text/html')
! 197: return newtemplate2()
! 198: else:
! 199: """text upload"""
! 200: return 1
1.1 dwinter 201:
1.12 dwinter 202:
1.1 dwinter 203:
204: def date(self):
205: return strftime("%d.%m.%Y",localtime())
206:
207:
208: def addPresentation(self,path):
209: """add presentation to the path"""
210:
211: dom=xml.dom.minidom.parse(path+"/index.meta")
1.3 dwinter 212:
213:
1.1 dwinter 214: try:
215: author=archive.getText(dom.getElementsByTagName('author')[0].childNodes)
216: except:
1.9 dwinter 217: try:
218: author=archive.getText(dom.getElementsByTagName('Author')[0].childNodes)
219: except:
1.21 ! dwinter 220: try:
! 221: author=archive.getText(dom.getElementsByTagName('Editor')[0].childNodes)
! 222: except:
! 223: author=""
! 224: try:
! 225: title=archive.getText(dom.getElementsByTagName('title')[0].childNodes)
! 226: except:
! 227: title=""
! 228:
1.1 dwinter 229: try:
230: date=archive.getText(dom.getElementsByTagName('year')[0].childNodes)
231: except:
232: try:
233: date=archive.getText(dom.getElementsByTagName('Year')[0].childNodes)
234: except:
1.21 ! dwinter 235: try:
! 236: date=archive.getText(dom.getElementsByTagName('date')[0].childNodes)
! 237: except:
! 238: date=""
1.1 dwinter 239: i=1
240: while os.path.exists("%02d-presentation"%i):
241: i+=1
242: self.REQUEST.SESSION['presentationname']="%02d-presentation"%i
243: self.REQUEST.SESSION['path']=path
244: self.REQUEST.SESSION['xmlvorschlag']="""<info>
245: <author>%s</author>
246: <title>%s</title>
247: <date>%s</date>
248: <display>yes</display>
249: </info>"""%(author,title,date)
250:
1.12 dwinter 251: newtemplate=PageTemplateFile('Products/OSA_system/zpt/addPresentation').__of__(self)
1.1 dwinter 252: return newtemplate()
253:
254: def addPresentation2(self):
255: """add presentation """
1.2 dwinter 256: folder_name=self.REQUEST['folder_name']
1.1 dwinter 257: #print self.REQUEST['folder_name']
1.2 dwinter 258: content_description=self.REQUEST['content_description']
1.1 dwinter 259:
1.2 dwinter 260: path=self.REQUEST.SESSION['path']
1.1 dwinter 261:
262: if not self.REQUEST.has_key('fileupload'):
1.2 dwinter 263: xmlinfo=self.REQUEST['xmltext']
1.1 dwinter 264: file_name="info.xml"
265:
266: else:
267: file_name=self.REQUEST['fileupload'].filename
1.2 dwinter 268: xmlinfo=self.REQUEST.form['fileupload'].read()
269: # hack Multipart auswertung funktioniert nicht ausser bei mozilla
1.1 dwinter 270: file_name="info.xml"
1.2 dwinter 271: xmlinfo=self.REQUEST['xmltext']
1.1 dwinter 272: try:
1.2 dwinter 273: os.mkdir(path+"/"+folder_name)
1.1 dwinter 274: except:
275: """nothing"""
1.5 dwinter 276: #print "NAME:",file_name
1.2 dwinter 277: f=open(path+"/"+folder_name+"/"+file_name,"w")
278: f.write(xmlinfo)
1.1 dwinter 279: f.close()
1.19 dwinter 280: try:
281: os.chmod(path+"/"+folder_name,0755)
282: except:
283: """NO"""
284:
1.2 dwinter 285: os.chmod(path+"/"+folder_name+"/"+file_name,0644)
286: addDirsToIndexMeta(path,folder_name,content_description,'presentation')
1.1 dwinter 287:
1.2 dwinter 288: return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL2']+'?path='+path)
1.1 dwinter 289:
1.21 ! dwinter 290: def addText(self,path,folder=None):
1.1 dwinter 291: """add fulltext to the path"""
292: self.REQUEST.SESSION['existing_names']=['pageimg'] # to be done generate list of existing text files
293: self.REQUEST.SESSION['path']=path
1.12 dwinter 294: newtemplate=PageTemplateFile('Products/OSA_system/zpt/addText').__of__(self)
1.1 dwinter 295: return newtemplate()
296:
297: def addText2(self):
1.2 dwinter 298: folder_name=self.REQUEST['folder_name']
1.1 dwinter 299: #print self.REQUEST['folder_name']
1.2 dwinter 300: content_description=self.REQUEST['content_description']
301: path=self.REQUEST.SESSION['path']
302: file_name=self.REQUEST['fileupload'].filename
303: filedata=self.REQUEST.form['fileupload'].read()
304: os.mkdir(path+"/"+folder_name)
305: f=open(path+"/"+folder_name+"/"+file_name,"w")
306: f.write(filedata)
1.1 dwinter 307: f.close()
1.2 dwinter 308: os.chmod(path+"/"+folder_name,0755)
309: os.chmod(path+"/"+folder_name+"/"+file_name,0644)
310: addDirsToIndexMeta(path,folder_name,content_description,'fulltext')
1.1 dwinter 311:
1.2 dwinter 312: return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL2']+'?path='+path)
1.1 dwinter 313:
314: def addTextExternal(self,path,texturl,version):
315: """hinzufügen eines externen textes"""
316: try: #neue text version einlesen
317: texttemp=urllib.urlopen(texturl).readlines()
318: text=""
319: for line in texttemp:
320: text=text+line
321: except: #fehler beim lesen des textes
322: return "ERROR: cannot read: %s"%texturl
323: if TextExternalError(text): #kein xml header
324: return "ERROR: cannot read: %s"%texturl, "received:",text
325: textpath=getNewTextPath(path) #erzeuge neuen Ornder für den Text
326: splitted=string.split(texturl,"/")
327: name=splitted[len(splitted)-1] #Name des XML-files
328: try:
329: writefile=file(path+"/"+textpath+"/"+name,"w")
330: except:
331: return"ERROR: cannot write: %s"%path+"/"+textpath+"/"+name
332: writefile.write(text)
333: writefile.close()
334: os.chmod(path+"/"+textpath+"/"+name,0644)
335:
336: #add new file to XML
337: dom=xml.dom.minidom.parse(path+"/index.meta")
338: node=dom.getElementsByTagName('resource')[0] #getNode
339:
340: subnode=dom.createElement('dir')
341:
342: namenode=dom.createElement('name')
343: namenodetext=dom.createTextNode(textpath)
344: namenode.appendChild(namenodetext)
345: subnode.appendChild(namenode)
346:
347: descriptionnode=dom.createElement('description')
348: descriptionnodetext=dom.createTextNode('archimedes text:'+version)
349: descriptionnode.appendChild(descriptionnodetext)
350: subnode.appendChild(descriptionnode)
351:
352: contentnode=dom.createElement('content-type')
353: contentnodetext=dom.createTextNode('fulltext')
354: contentnode.appendChild(contentnodetext)
355: subnode.appendChild(contentnode)
356:
357: node.appendChild(subnode)
358:
359: writefile=file(path+"/index.meta","w")
360: writefile.write(dom.toxml().encode('utf-8'))
361: writefile.close()
362:
363: #change texttool tag
364: dom=xml.dom.minidom.parse(path+"/index.meta")
365: node=dom.getElementsByTagName('meta')[0] #getNode
366:
367: try: #texttool existiert schon
368: subnode=node.getElementsByTagName('texttool')[0]
369: except: #wenn nicht Fehler ausgeben
370: return "ERROR:no presentation configured yet, user Web Front End to do so!"
371:
372:
373: try:
374: texttoolnodelist=subnode.getElementsByTagName('text')
375:
376: if not len(texttoolnodelist)==0: #texttool tag existiert schon, dann löschen
377: subsubnode=subnode.removeChild(texttoolnodelist[0])
378: subsubnode.unlink()
379: except:
380: """nothing"""
381: # text neu anlegen
382: textfoldernode=dom.createElement('text')
383: textfoldernodetext=dom.createTextNode(textpath+"/"+name)
384: textfoldernode.appendChild(textfoldernodetext)
385: subnode.appendChild(textfoldernode)
386:
387: #index.meta ausgeben
388: writefile=file(path+"/index.meta","w")
389: writefile.write(dom.toxml().encode('utf-8'))
390: writefile.close()
391:
392: #registrieren
1.6 dwinter 393: return urllib.urlopen("http://nausikaa2.rz-berlin.mpg.de:86/cgi-bin/toc/admin/reg.cgi?path=%s"%path).readlines()
394:
1.1 dwinter 395:
396:
397: def TextExternalError(text):
398: firsts=text[0:10]
1.5 dwinter 399: #print firsts
1.1 dwinter 400: try:
401: match=re.search(r".*<?xml.*",firsts)
402: except:
403: return 1
404: return 0
405:
406: def getNewTextPath(path):
407: i=1
408: while os.path.exists(path+"/fulltext%i"%i):
409: i+=1
410: os.mkdir(path+"/fulltext%i"%i)
411: os.chmod(path+"/fulltext%i"%i,0755)
412: return "fulltext%i"%i
413:
414: def addImages(self,path):
415: """Imagesfolder to the path"""
416: self.REQUEST.SESSION['existing_names']=['pageimg'] # to be done generate list of existing pageimages files
417: self.REQUEST.SESSION['path']=path
1.12 dwinter 418: newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_addImages').__of__(self)
1.1 dwinter 419: return newtemplate()
420:
421: def addImages2(self):
1.2 dwinter 422:
1.1 dwinter 423: self.image_folder_name=self.REQUEST['folder_name']
424: #print self.REQUEST['folder_name']
425: self.content_description=self.REQUEST['content_description']
426: #self.path=self.REQUEST.SESSION['path']
427:
428:
429: self.content_type='images'
430: addDirsToIndexMeta(self.REQUEST.SESSION['path'],self.image_folder_name,self.content_description,self.content_type)
431: self.REQUEST.SESSION['path']=re.search(r"/mpiwg(.*)",self.REQUEST.SESSION['path']).group(1)
1.12 dwinter 432: newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_upload2').__of__(self)
1.1 dwinter 433: return newtemplate()
1.2 dwinter 434:
1.1 dwinter 435:
436:
437: def addDirsToIndexMeta(path,folder_name,content_description,content_type):
438: #f=file(path+"/index.meta",r)
439: dom=xml.dom.minidom.parse(path+"/index.meta")
440: node=dom.getElementsByTagName('resource')[0] #getNode
441:
442: subnode=dom.createElement('dir')
443:
444: namenode=dom.createElement('name')
445: namenodetext=dom.createTextNode(folder_name)
446: namenode.appendChild(namenodetext)
447: subnode.appendChild(namenode)
448:
449: descriptionnode=dom.createElement('description')
450: descriptionnodetext=dom.createTextNode(content_description)
451: descriptionnode.appendChild(descriptionnodetext)
452: subnode.appendChild(descriptionnode)
453:
454: contentnode=dom.createElement('content-type')
455: contentnodetext=dom.createTextNode(content_type)
456: contentnode.appendChild(contentnodetext)
457: subnode.appendChild(contentnode)
458:
459: node.appendChild(subnode)
460:
461: writefile=file(path+"/index.meta","w")
462: writefile.write(dom.toxml().encode('utf-8'))
463: writefile.close()
464:
1.5 dwinter 465: def readArchimedesXML(folder):
466: """gib URL aus """
467: XML=urllib.urlopen("http://archimedes.mpiwg-berlin.mpg.de/cgi-bin/toc/toc.cgi?step=xmlcorpusmanifest").read()
468: #print XML
469: dom=xml.dom.minidom.parseString(XML)
470: items=dom.getElementsByTagName('item')
471: dict={}
472:
473: for item in items:
474: #print item.attributes['dir'].value
475: try:
1.6 dwinter 476: dict[item.attributes['dir'].value]=item.attributes['xml'].value
1.5 dwinter 477: #print item.attributes['dir'].value,item.attributes['text'].value
478: except:
479: """nothing"""
480:
481: if dict.has_key(folder):
482: return dict[folder]
483: else:
484: return ""
1.12 dwinter 485:
1.5 dwinter 486:
1.1 dwinter 487:
488:
489: def combineTextImage2(self,path):
490: """erstellt bzw. ändert texttool meta tag"""
491: dom=xml.dom.minidom.parse(path+"/index.meta")
492: node=dom.getElementsByTagName('meta')[0] #getNode
493:
494:
495: subnodelist=node.getElementsByTagName('texttool')
496: if not len(subnodelist)==0: #texttool tag existiert schon, dann löschen
497: subnode=node.removeChild(subnodelist[0])
498: subnode.unlink()
499:
500: subnode=dom.createElement('texttool') #neu erzeugen
501:
502:
503: presentfile=os.listdir(path+"/"+self.REQUEST['presentation'])[0]
504:
505:
506: displaynode=dom.createElement('display')
507: displaynodetext=dom.createTextNode('yes')
508: displaynode.appendChild(displaynodetext)
509: subnode.appendChild(displaynode)
510:
511: if self.REQUEST.has_key('image'):
512: namenode=dom.createElement('image')
513: namenodetext=dom.createTextNode(self.REQUEST['image'])
514: namenode.appendChild(namenodetext)
515: subnode.appendChild(namenode)
516:
517: if self.REQUEST.has_key('text'):
518: textfile=os.listdir(path+"/"+self.REQUEST['text'])[0]
519: textfoldernode=dom.createElement('text')
1.6 dwinter 520: textfoldernodetext=dom.createTextNode(path+"/"+self.REQUEST['text']+"/"+textfile)
1.1 dwinter 521: textfoldernode.appendChild(textfoldernodetext)
522: subnode.appendChild(textfoldernode)
523:
1.5 dwinter 524: if self.REQUEST.has_key('external'):#USE CVS instead of local text
525: textfoldernode=dom.createElement('text')
526: textfoldernodetext=dom.createTextNode(self.REQUEST.SESSION['externxml'])
527: textfoldernode.appendChild(textfoldernodetext)
528: subnode.appendChild(textfoldernode)
529:
1.1 dwinter 530: if self.REQUEST.has_key('pagebreak'):
531: pagebreaknode=dom.createElement('pagebreak')
532: pagebreaknodetext=dom.createTextNode(self.REQUEST['pagebreak'])
533: pagebreaknode.appendChild(pagebreaknodetext)
534: subnode.appendChild(pagebreaknode)
535:
536: if self.REQUEST.has_key('presentation'):
537: presentationnode=dom.createElement('presentation')
538: presentationnodetext=dom.createTextNode(self.REQUEST['presentation']+"/"+presentfile)
539: presentationnode.appendChild(presentationnodetext)
540: subnode.appendChild(presentationnode)
541:
1.8 dwinter 542:
543: if self.REQUEST.has_key('xslt'):
544: if not self.REQUEST['xslt']=="":
545: xsltnode=dom.createElement('xslt')
546: xsltnodetext=dom.createTextNode(self.REQUEST['xslt'])
547: xsltnode.appendChild(xsltnodetext)
548: subnode.appendChild(xsltnode)
549:
1.13 dwinter 550:
1.11 dwinter 551: if self.REQUEST.has_key('thumbtemplate'):
552: if not self.REQUEST['thumbtemplate']=="":
553: xsltnode=dom.createElement('thumbtemplate')
554: xsltnodetext=dom.createTextNode(self.REQUEST['thumbtemplate'])
555: xsltnode.appendChild(xsltnodetext)
556: subnode.appendChild(xsltnode)
557:
558: if self.REQUEST.has_key('topbar'):
559: if not self.REQUEST['topbar']=="":
1.13 dwinter 560: xsltnode=dom.createElement('toptemplate')
1.11 dwinter 561: xsltnodetext=dom.createTextNode(self.REQUEST['topbar'])
562: xsltnode.appendChild(xsltnodetext)
563: subnode.appendChild(xsltnode)
564:
1.13 dwinter 565: if self.REQUEST.has_key('startpage'):
566: if not self.REQUEST['startpage']=="":
567: xsltnode=dom.createElement('startpage')
568: xsltnodetext=dom.createTextNode(self.REQUEST['startpage'])
569: xsltnode.appendChild(xsltnodetext)
570: subnode.appendChild(xsltnode)
571:
572: if self.REQUEST.has_key('project'):
573: if not self.REQUEST['project']=="":
574: xsltnode=dom.createElement('project')
575: xsltnodetext=dom.createTextNode(self.REQUEST['project'])
1.14 dwinter 576: xsltnode.appendChild(xsltnodetext)
577: subnode.appendChild(xsltnode)
1.11 dwinter 578:
1.1 dwinter 579: node.appendChild(subnode)
1.6 dwinter 580:
1.5 dwinter 581: try:
1.6 dwinter 582: node2=node.getElementsByTagName('bib')[0]
583: subs=node2.getElementsByTagName('lang')
584: for sub in subs:
585: node2.removeChild(sub)
1.5 dwinter 586: except:
587: """nothing"""
588: try:
589: main=dom.getElementsByTagName('bib')[0]
590: node=dom.createElement('lang')
591: textnode=dom.createTextNode(self.REQUEST['lang'])
592: node.appendChild(textnode)
593: main.appendChild(node)
594: except:
1.6 dwinter 595: try:
596: subs=dom.getElementsByTagName('lang')
597: main=dom.getElementsByTagName('resource')[0]
598: for sub in subs:
599: main.removeChild(sub)
600: except:
601: """nothing"""
602:
603: try:
604: main=dom.getElementsByTagName('resource')[0]
605: node=dom.createElement('lang')
606: textnode=dom.createTextNode(self.REQUEST['lang'])
607: #print "LANG:",self.REQUEST['lang']
608: node.appendChild(textnode)
609: main.appendChild(node)
610: except:
611: """nothing"""
612:
1.1 dwinter 613: writefile=file(path+"/index.meta","w")
614: writefile.write(dom.toxml().encode('utf-8'))
615: writefile.close()
616:
617:
618:
1.2 dwinter 619: urllib.urlopen("http://nausikaa2.rz-berlin.mpg.de:86/cgi-bin/toc/admin/reg.cgi?path=%s"%path).readlines()
1.1 dwinter 620: #return urllib.quote("http://nausikaa2.rz-berlin.mpg.de:86/cgi-bin/toc/admin/reg.cgi?path=%s"%path)
1.7 dwinter 621: os.popen("ssh nausikaa2.rz-berlin.mpg.de /usr/local/mpiwg/scripts/scaleomat.pl %s /mpiwg/temp/online/scaled/thumb 90 >> /tmp/sc.out &"% re.sub('/mpiwg/online/','',self.REQUEST['path']+"/"+self.REQUEST['image']))
1.3 dwinter 622:
623: #return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL2']+'?path='+self.REQUEST['path'])
1.1 dwinter 624:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>