File:  [Repository] / OSAS / OSA_system / OSAS_addfiles.py
Revision 1.42: download - view: text, annotated - select for diffs - revision graph
Mon Nov 28 14:09:16 2005 UTC (18 years, 7 months ago) by dwinter
Branches: MAIN
CVS tags: HEAD
deleted all files, made metadata server conifigurable add add_context_Data

    1: # Methoden und Classen zum Hinzufuegen von Dokumenten
    2: 
    3: 
    4: from OSAS_helpers import readArchimedesXML, getText
    5: import os
    6: import xml.dom.minidom
    7: import re
    8: import urllib
    9: import OSAS_add
   10: import OSAS_show
   11: import string
   12: from OFS.Folder import Folder
   13: from AccessControl import ClassSecurityInfo
   14: from Globals import InitializeClass
   15: from Products.PageTemplates.PageTemplateFile import PageTemplateFile
   16: from Products.PageTemplates.PageTemplate import PageTemplate
   17: import archive # check if this is necessary
   18: from Globals import package_home
   19: 
   20: from xml.sax import make_parser
   21: from xml.sax.handler import ContentHandler
   22: 
   23: def spaces(depth):
   24:     """needed in XMLtoTree"""
   25:     tmp=""
   26:     k=0
   27:     while k<2*depth:
   28:         k+=1
   29:         tmp=tmp+"&nbsp;"+"&nbsp;"
   30:     return tmp
   31: 
   32: 
   33: class OSAS_add_Document(Folder):
   34:     """Hinzufuegen eines Dokumentes zum Storage"""
   35:     security=ClassSecurityInfo()
   36: 
   37:     def __init__(self,id):
   38:         """initialize a new instance"""
   39:         self.id = id
   40:         
   41:         
   42:     meta_type='OSAS_add_Document'    
   43:     manage_options = Folder.manage_options+(
   44:             {'label':'Main Config','action':'add_Document_config'},
   45:             )
   46:         
   47:      
   48:         
   49:     security.declarePublic('add_Document_config')
   50:     def add_Document_config(self):
   51:         """Main configuration"""
   52:         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ChangeOSAS_addDocument.zpt')).__of__(self)
   53:         return pt()
   54:     
   55:     security.declarePublic('change_OSAS_add_Document')
   56:     def change_OSAS_add_Document(self,RESPONSE=None):
   57:         """Change"""
   58: #        self.RootFolderName=RootFolderName
   59:         if RESPONSE is not None:
   60:             RESPONSE.redirect('manage_main')
   61: 
   62:     security.declarePublic('index_html')
   63:     def index_html(self):
   64:         """stantard aufruf"""
   65:         return OSAS_add.add(self.standardMD,no_upload=1)
   66: 
   67: 
   68:     security.declarePublic('add2')
   69:     def add2(self):
   70:         """ anlegen naechster schritt"""
   71:         return OSAS_add.add2(self.standardMD)
   72: 
   73:     def add3(self):
   74:         """Foldername"""
   75:         return OSAS_add.add3(self)
   76: 
   77:     def add4(self):
   78:         """Applet"""
   79:         
   80:         return OSAS_add.add4(self)
   81: 
   82:     def add5(self):
   83:         """Foldername"""
   84:         return OSAS_add.add5(self)
   85: 
   86:     def add6(self):
   87:         """write new index.meta file"""
   88:         return OSAS_add.add6(self)
   89: 
   90:     def addText2(self):
   91:         """add only a text"""
   92:         metadata=OSAS_add.parse_query_string(self.REQUEST['QUERY_STRING'])
   93:         metadata['archive-creation-date']=OSAS_add.date(self)
   94:         metadata['creator']=self.REQUEST['creator']
   95:         metadata['description']=self.REQUEST['content_description']
   96:         metadata['archive-path']=os.path.split(self.REQUEST.SESSION['pathnew'])[0]
   97:         #metadata['folder_name']=self.REQUEST.SESSION['folder_name']
   98:         metadata['folder_name']=os.path.split(self.REQUEST.SESSION['pathnew'])[1]
   99:         metadata['content-type']="fulltext document"
  100:         self.reftype=self.REQUEST.SESSION['reftype']
  101:         self.REQUEST.SESSION['add_metadata']=metadata   
  102:         self.add_metadata=metadata
  103:         self.metadata=self.REQUEST.SESSION['metadata']
  104:         self.metadataprint=""
  105:         for tag in self.metadata.keys():
  106:             
  107:             #print str(self.metadata[tag]).decode('utf-8').encode('utf-8')
  108:             self.metadataprint=self.metadataprint+"<"+tag+">"+self.metadata[tag]+"</"+tag+">\n"
  109: 
  110:         newtemplate=PageTemplateFile(os.path.join(package_home(globals()),'zpt','index_meta')).__of__(self)
  111:         newtemplate.content_type="text/plain"
  112:         renderxml = newtemplate(encoding='utf-8')
  113:         #return renderxml
  114:         metapath=self.REQUEST.SESSION['pathnew']+"/index.meta"
  115:         
  116:         f=open(metapath,'w')
  117: 
  118:         f.write(renderxml)
  119:         f.close()
  120:         os.chmod(metapath,0664)
  121:         os.popen('chmod -R 0775 %s'%self.add_metadata['archive-path']+"/"+self.add_metadata['folder_name']) 
  122:         
  123:         return OSAS_add.addText2(self)
  124: 
  125:     def addPdf2(self):
  126:         """add only a pdf"""
  127:         metadata=OSAS_add.parse_query_string(self.REQUEST['QUERY_STRING'])
  128:         metadata['archive-creation-date']=OSAS_add.date(self)
  129:         metadata['creator']=self.REQUEST['creator']
  130:         metadata['description']=self.REQUEST['content_description']
  131:         metadata['archive-path']=os.path.split(self.REQUEST.SESSION['pathnew'])[0]
  132:         #metadata['folder_name']=self.REQUEST.SESSION['folder_name']
  133:         metadata['folder_name']=os.path.split(self.REQUEST.SESSION['pathnew'])[1]
  134:         metadata['content-type']="fulltext document"
  135:         self.reftype=self.REQUEST.SESSION['reftype']
  136:         self.REQUEST.SESSION['add_metadata']=metadata   
  137:         self.add_metadata=metadata
  138:         self.metadata=self.REQUEST.SESSION['metadata']
  139:         self.metadataprint=""
  140:         for tag in self.metadata.keys():
  141:                 self.metadataprint=self.metadataprint+"<"+tag+">"+self.metadata[tag]+"</"+tag+">\n"
  142: 
  143:         newtemplate=PageTemplateFile(os.path.join(package_home(globals()),'zpt','index_meta')).__of__(self)
  144:         newtemplate.content_type="text/plain"
  145:         renderxml = newtemplate(encoding='utf-8')
  146:         metapath=self.REQUEST.SESSION['pathnew']+"/index.meta"
  147:         
  148:         
  149:         f=open(metapath,'w')
  150:         f.write(renderxml)
  151:         f.close()
  152:         os.chmod(metapath,0664)
  153:         os.popen('chmod -R 0775 %s'%self.add_metadata['archive-path']+"/"+self.add_metadata['folder_name']) 
  154:         
  155:         return OSAS_add.addPdf2(self)
  156: 
  157:     def addImages(self,path):
  158:         """Hinzufügen eines neuen Imagesfolders"""
  159:         return OSAS_add.addImages(self,path)
  160: 
  161:     def addImages2(self):
  162:         """Upload des neuen Imagefolders"""
  163:         return OSAS_add.addImages2(self)
  164: 
  165:     
  166: def manage_AddOSAS_add_DocumentForm(self):
  167:     """interface for adding the OSAS_add_Metadata"""
  168:     pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddOSAS_document.zpt')).__of__(self)
  169:     return pt()
  170: 
  171: def manage_AddOSAS_add_Document(self,id,RESPONSE=None):
  172:     """add the OSAS_root"""
  173:     newObj=OSAS_add_Document(id)
  174:     self.Destination()._setObject(id,newObj)
  175:     if RESPONSE is not None:
  176:         RESPONSE.redirect('manage_main')
  177: 
  178:             
  179: InitializeClass(OSAS_add_Document)
  180: 
  181: 
  182: class OSAS_add_Text(Folder):
  183:     """Hinzufuegen eines Text-Dokumentes zum Storage"""
  184:     security=ClassSecurityInfo()
  185: 
  186:     def __init__(self,id):
  187:         """initialize a new instance"""
  188:         self.id = id
  189:         
  190:         
  191:     meta_type='OSAS_add_Text'    
  192:     manage_options = Folder.manage_options+(
  193:             {'label':'Main Config','action':'add_Text_config'},
  194:             )
  195:         
  196:      
  197:         
  198:     security.declarePublic('add_Text_config')
  199:     def add_Text_config(self):
  200:         """Main configuration"""
  201:         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ChangeOSAS_addText.zpt')).__of__(self)
  202:         return pt()
  203:     
  204:     security.declarePublic('change_OSAS_add_Text')
  205:     def change_OSAS_add_Text(self,RESPONSE=None):
  206:         """Change"""
  207: #        self.RootFolderName=RootFolderName
  208:         if RESPONSE is not None:
  209:             RESPONSE.redirect('manage_main')
  210: 
  211:     def addPdf(self,path):
  212:         """Add a pdf"""
  213:         return OSAS_add.addPdf(self,path)
  214: 
  215:     def addPdf2(self):
  216:         """Read the file and store it"""
  217:         return OSAS_add.addPdf2(self)
  218:     
  219:     def addText(self,path):
  220:         """Add a fulltext"""
  221:         return OSAS_add.addText(self,path)
  222: 
  223:     def addText2(self):
  224:         """Read the file and store it"""
  225:         return OSAS_add.addText2(self)
  226:     
  227: def manage_AddOSAS_add_TextForm(self):
  228:     """interface for adding the OSAS_add_Metadata"""
  229:     pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddOSAS_text.zpt')).__of__(self)
  230:     return pt()
  231: 
  232: def manage_AddOSAS_add_Text(self,id,RESPONSE=None):
  233:     """add the OSAS_root"""
  234:     newObj=OSAS_add_Text(id)
  235:     self.Destination()._setObject(id,newObj)
  236:     if RESPONSE is not None:
  237:         RESPONSE.redirect('manage_main')
  238: 
  239:             
  240: InitializeClass(OSAS_add_Text)
  241: 
  242: 
  243: class OSAS_add_contextData(Folder):
  244:     """Einfuegen eines Documentes in eine Collection"""
  245:     
  246:     security=ClassSecurityInfo()
  247: 
  248:             
  249:     meta_type='OSAS_add_contextData'    
  250: 
  251:     def XmlToTree(self,URL,pwstr=None):
  252:         """Collection XML to Tree"""
  253:         
  254:         class requestHandler(ContentHandler):
  255:             def __init__(self):
  256:                 self.depth=0
  257:                 self.retStr=""
  258:                 
  259:             def startElement(self,name,attrs):
  260:                 if name=="element":
  261:                     self.depth+=1
  262:                     begin=""
  263:                     end=""
  264:                     if self.depth==1:
  265:                         begin="<b>"
  266:                         end="</b>"
  267:                         
  268:                     self.retStr+=spaces(self.depth)+"<input type='radio' name='collection' value='%s'>%s</input>"%(attrs.get('url'),begin+urllib.unquote(attrs.get('name'))+end)+"<br>\n"
  269: 
  270: 
  271:                     
  272:             def endElement(self,name):
  273:                 if name=="element":
  274:                     self.depth-=1
  275: 
  276:         if pwstr=="":
  277:             pwstr=None
  278:             
  279:         try:
  280:             if pwstr:
  281:                 URL+="/getCollectionTreeXML?pwstr=%s"%pwstr    
  282:             else:
  283:                 URL+="/getCollectionTreeXML"
  284:             parser=make_parser()
  285:             curHandler=requestHandler()
  286:             parser.setContentHandler(curHandler)
  287: 
  288:             parser.parse(urllib.urlopen(URL))
  289:             return curHandler.retStr
  290: 
  291:         except:
  292:             return URL
  293:             return urllib.urlopen(URL).read()
  294:             
  295:       
  296:     def __init__(self,id,collection):
  297:         self.id=id
  298:         self.collection=collection
  299: 
  300:   
  301:    
  302: 
  303:     def getPartners(self,URL):
  304:         """Zeige Partnerliste"""
  305:         class requestHandler(ContentHandler):
  306:             def __init__(self):
  307:                 self.ret=[]
  308:                 
  309:             def startElement(self,name,attrs):
  310:                 if name=="partner":
  311:                     self.ret.append((attrs.get('id'),attrs.get('title').encode('utf-8')))
  312: 
  313: 
  314:         URL+="/getPartnersXML"
  315:         parser=make_parser()    
  316:         curHandler=requestHandler()
  317:         parser.setContentHandler(curHandler)
  318:         parser.parse(urllib.urlopen(URL))               
  319:         try:    
  320:                   
  321:                 return curHandler.ret
  322:         except:
  323:                 return [("",URL)]
  324:             
  325:     
  326:     def addContextData(self,path):
  327:         """Hinzufuegen zu einer Sammlung"""
  328:         
  329:         server=getattr(self,'serverUrl',self.REQUEST['SERVER_URL'])
  330:         
  331:         try:
  332:             urllib.urlopen(server+"/"+path+"/index.meta")
  333:             
  334:         except:
  335:             return self.REQUEST['SERVER_URL']+path+"/index.meta file has to exist!"
  336: 
  337:         links=[(path,'standard storage')]
  338:         
  339:         links+=OSAS_show.readContexts(path) # auslesen von contexten fuer den link
  340:         #print "LINK",links
  341:         #return links
  342:         self.REQUEST.SESSION['links']=links
  343:         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','contextDataMain.zpt')).__of__(self)
  344:         return pt()
  345:     
  346:    
  347:     def addContextData2(self,path,collection,link,label,description,content_type,responsible,weight,credits=None):
  348:         """Hinzufuegen der Resource"""
  349:         splitted=path.split("/")
  350:         #print "BLU"
  351:         id=splitted[len(splitted)-1]
  352:         title=splitted[len(splitted)-1]
  353:         server=getattr(self,'serverUrl',self.REQUEST['SERVER_URL'])
  354:         
  355:         metalink=server+"/"+path+"/index.meta"
  356:         
  357:         #link=TOBEDONE"
  358:         """Hinzufuegen der Ressource"""
  359: 
  360:         params=urllib.urlencode({'id':id,'title':title,'link':link,'label':label,'description':description,'contentType':content_type,'responsible':responsible,'weight':weight,'credits':credits,'metalink':metalink})
  361: 
  362: 
  363:         try:
  364:             retStr=urllib.urlopen(collection+"/addResource",params).read()
  365:         except:
  366:             return "An Error occured adding the resource\n", collection,params
  367:         
  368:         #print "added"
  369:         if not retStr:
  370:             return "An Error occured adding the resource\n", collection,params
  371:         
  372:         #print collection+"/"+id+"/copyIndex_meta2echo_resource"
  373: 
  374:         urllib.urlopen(collection+"/"+id+"/copyIndex_meta2echo_resource").read()
  375:         #print "copy2res"
  376:         urllib.urlopen(collection+"/"+id+"/generate_label").read()
  377:         #print "label"
  378:         urllib.urlopen(collection+"/"+id+"/generate_title").read()
  379:         #print "title"
  380:         return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL2']+'?path='+path)
  381:         
  382:     manage_options = Folder.manage_options+(
  383:             {'label':'Main Config','action':'add_contextData_config'},
  384:             )
  385:         
  386:      
  387:     def add_contextData_config(self):
  388:         """Main configuration"""
  389:         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ChangeOSAS_add_contextData.zpt')).__of__(self)
  390:         return pt()
  391:     
  392:     
  393:     def change_OSAS_add_contextData(self,collection,serverUrl,pwstr=None,RESPONSE=None):
  394:         """Change"""
  395:         self.pwstr=pwstr
  396:         self.collection=collection
  397:         self.serverUrl=serverUrl
  398:         if RESPONSE is not None:
  399:             RESPONSE.redirect('manage_main')
  400:             
  401: def manage_AddOSAS_add_contextDataForm(self):
  402:     """interface for adding the OSAS_add_Metadata"""
  403:     pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddOSAS_contextData.zpt')).__of__(self)
  404:     return pt()
  405: 
  406: def manage_AddOSAS_add_contextData(self,id,collection,RESPONSE=None):
  407:     """add the OSAS_root"""
  408:     newObj=OSAS_add_contextData(id,collection)
  409:     self.Destination()._setObject(id,newObj)
  410:     if RESPONSE is not None:
  411:         RESPONSE.redirect('manage_main')
  412: 
  413:             
  414: InitializeClass(OSAS_add_contextData)
  415: 
  416: class OSAS_add_Presentation(Folder):
  417:     """Hinzufügen der Presentationsinformationen"""
  418:     security=ClassSecurityInfo()
  419: 
  420:     def __init__(self,id):
  421:         """initialize a new instance"""
  422:         self.id = id
  423:         
  424:         
  425:     meta_type='OSAS_add_Presentation'    
  426:     manage_options = Folder.manage_options+(
  427:             {'label':'Main Config','action':'add_Presentation_config'},
  428:             )
  429:         
  430:      
  431:         
  432:     security.declarePublic('add_Presentation_config')
  433:     def add_Presentation_config(self):
  434:         """Main configuration"""
  435:         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ChangeOSAS_addPresentation.zpt')).__of__(self)
  436:         return pt()
  437:     
  438:     security.declarePublic('change_OSAS_add_Presentation')
  439:     def change_OSAS_add_Presentation(self,RESPONSE=None):
  440:         """Change"""
  441: #        self.RootFolderName=RootFolderName
  442:         if RESPONSE is not None:
  443:             RESPONSE.redirect('manage_main')
  444: 
  445:     def addPresentation(self,path):
  446:         """Hinzufügen der Presenationsinformation"""
  447:         return OSAS_add.addPresentation(self,path)
  448: 
  449:     def addPresentation2(self):
  450:         """Eingabe von Metadateninformationen"""
  451:         return OSAS_add.addPresentation2(self)
  452:     
  453: def manage_AddOSAS_add_PresentationForm(self):
  454:     """interface for adding the OSAS_add_Metadata"""
  455:     pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddOSAS_presentation.zpt')).__of__(self)
  456:     return pt()
  457: 
  458: def manage_AddOSAS_add_Presentation(self,id,RESPONSE=None):
  459:     """add the OSAS_root"""
  460:     newObj=OSAS_add_Presentation(id)
  461:     self.Destination()._setObject(id,newObj)
  462:     if RESPONSE is not None:
  463:         RESPONSE.redirect('manage_main')
  464: 
  465:             
  466: InitializeClass(OSAS_add_Presentation)
  467: 
  468: class OSAS_combineTextImage(Folder):
  469:     """Hinzufüge der Combine Text und Image"""
  470:     security=ClassSecurityInfo()
  471: 
  472:     def __init__(self,id):
  473:         """initialize a new instance"""
  474:         self.id = id
  475:         
  476:         
  477:     meta_type='OSAS_combineTextImage'    
  478:     manage_options = Folder.manage_options+(
  479:             {'label':'Main Config','action':'combineTextImage_config'},
  480:             )
  481:         
  482: 
  483:         
  484:     security.declarePublic('combineTextImage_config')
  485:     def combineTextImage_config(self):
  486:         """Main configuration"""
  487:         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ChangeOSAS_combineTextImage.zpt')).__of__(self)
  488:         return pt()
  489:     
  490:     security.declarePublic('change_OSAS_combineTextImage')
  491:     def change_OSAS_combineTextImage(self,RESPONSE=None):
  492:         """Change"""
  493: #        self.RootFolderName=RootFolderName
  494:         if RESPONSE is not None:
  495:             RESPONSE.redirect('manage_main')
  496:             
  497:     security.declarePublic('combineTextImage')
  498:     def combineTextImage(self,path):
  499:         """Hinzufügen der Presenationsinformation"""
  500:         """gibt input formular zur erstellung des texttools meta tag aus"""
  501:         files = os.listdir(path)
  502:         
  503:         texts=[]
  504:         imagefolders=[]
  505:         presentationfolders=[]
  506: 
  507:         splitted=path.split("/")
  508:         externxml=readArchimedesXML(splitted[len(splitted)-1])
  509:         
  510:         for filename in files:
  511:                 #print "FN",filename
  512:                 if archive.isdigilib2(path+"/"+filename):
  513:                         imagefolders.append(filename)
  514:                         
  515:                 if archive.isFullText(path,filename):
  516:                         #print "HI"
  517:                         texts.append(filename)
  518:                 if archive.isPresentation(path,filename):
  519:                         presentationfolders.append(filename)
  520:         
  521:         dom=xml.dom.minidom.parse(path+"/index.meta")
  522:         try:
  523:                 filelanguage=archive.getText(dom.getElementsByTagName('lang')[0].childNodes)
  524:         except:
  525:                 filelanguage=""
  526:                 
  527:         self.REQUEST.SESSION['isolist']=OSAS_add.getISO()
  528:         
  529:         tmp=self.REQUEST.SESSION['isolist'].keys()
  530:         tmp.sort()
  531:         self.REQUEST.SESSION['isolistsort']=tmp
  532:         self.REQUEST.SESSION['path']=path
  533:         self.REQUEST.SESSION['texts']=texts
  534:         self.REQUEST.SESSION['imagefolders']=imagefolders
  535:         self.REQUEST.SESSION['presentationfolders']=presentationfolders
  536:         self.REQUEST.SESSION['filelanguage']=filelanguage
  537:         self.REQUEST.SESSION['externxml']=externxml
  538: 
  539:         newtemplate=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ImageandText')).__of__(self)
  540:         return newtemplate()
  541:         
  542:     def getViewerTemplateSets(self,obj_ids=None):
  543:         """Get the ViewerTemplateSet title for configuration"""
  544:         ret=[]
  545:         viewerTemplateSets=self.ZopeFind(self.viewerTemplateSets,obj_metatypes=['OSAS_viewerTemplateSet'],obj_ids=obj_ids)#assumes viewerTemplateSets folder somewhere in the hierarchie.
  546: 
  547:         try:
  548:             viewerTemplateSets=self.ZopeFind(self.viewerTemplateSets,obj_metatypes=['OSAS_viewerTemplateSet'],obj_ids=obj_ids)#assumes viewerTemplateSets folder somewhere in the hierarchie.
  549:             
  550:             for viewerTemplateSet in viewerTemplateSets:
  551:                 ret.append((viewerTemplateSet[1].title,viewerTemplateSet[0],viewerTemplateSet[1]))
  552:             
  553:             return ret
  554:         
  555:         except:
  556:             return [('no ViewerTemplateSetfolders','')]
  557: 
  558:     def getTextToolsField(self,path,name,default=''):
  559:         """Lese Textoolsfelder aus index.meta im path aus"""
  560:         
  561:         try:
  562:             dom=xml.dom.minidom.parse(path+"/index.meta")
  563:             node=dom.getElementsByTagName('texttool')[0] #getNode
  564:             subnode=node.getElementsByTagName(name)[0]
  565: 
  566:             # bei text wird nur der Folder gebraucht
  567:             if name=="text":
  568:                 splitted=getText(subnode.childNodes).split("/")
  569:                 return splitted[len(splitted)-2]
  570:             else:
  571:                 return getText(subnode.childNodes)
  572:         except:
  573:             return default
  574:    
  575: 
  576:     def combineTextImage2(self,path):
  577:         """Eingabe von Metadateninformationen"""
  578:         
  579:         # correct path
  580:         path=re.sub("//","/",path)
  581:         OSAS_add.combineTextImage2(self,path) # Add images
  582:         splitted=path.split("/")
  583:         linkPath=splitted[len(splitted)-1]
  584:         linkViewerEnvironmentImages="http://nausikaa2.mpiwg-berlin.mpg.de/cgi-bin/toc/toc.x.cgi?dir=%s&step=thumb" % linkPath
  585:         linkViewerEnvironmentOnlyText="http://nausikaa2.mpiwg-berlin.mpg.de/cgi-bin/toc/toc.x.cgi?dir=%s&step=textonly" % linkPath
  586: 
  587:         if self.REQUEST.has_key('image'): # bilder vorhanden
  588:             linkViewerEnvironment=linkViewerEnvironmentImages
  589:         else:
  590:             linkViewerEnvironment=linkViewerEnvironmentOnlyText
  591:             
  592:         self.REQUEST.SESSION['linkViewerEnvironment']=linkViewerEnvironment
  593:         
  594:         writeToContext(path,linkViewerEnvironment,"ECHO standard environment",unique="yes")
  595:         
  596:         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddOSAS_combineTextImageFinal.zpt')).__of__(self)
  597: 
  598:         return pt()
  599: 
  600:     def isSelectedViewerTemplateSet(self,obj,id):
  601:         """is ausgewählt"""
  602:         
  603:         if self.REQUEST['viewerTemplateSet']==id:
  604:             return 1
  605:         else:
  606:             return None
  607: 
  608: def writeToContext(path,link,description,unique="no"):
  609:     """Created an additional entry to the index.meta file of path"""
  610:     dom=xml.dom.minidom.parse(path+"/index.meta")
  611:     node=dom.getElementsByTagName('resource')[0]
  612: 
  613:     if unique=="yes":
  614:         
  615:         contexts=node.getElementsByTagName('context')
  616:         for context in contexts:
  617:             nameTag=getText(context.getElementsByTagName('name')[0].childNodes)
  618:             linkTag=getText(context.getElementsByTagName('link')[0].childNodes)
  619:             
  620:             
  621:             linkTag=re.sub("\:86","",linkTag) # alter port 86 gleich ohne port nummer (hack)
  622:             if (nameTag==description) and (linkTag==link):
  623:                 node.removeChild(context).unlink()
  624:                     
  625:     subnode=dom.createElement('context')
  626: 
  627:     linknode=dom.createElement('link')
  628:     namelinknode=dom.createTextNode(link)
  629:     linknode.appendChild(namelinknode)
  630:     subnode.appendChild(linknode)
  631: 
  632:     linknode=dom.createElement('name')
  633:     namelinknode=dom.createTextNode(description)
  634:     linknode.appendChild(namelinknode)
  635:     subnode.appendChild(linknode)
  636: 
  637:     node.appendChild(subnode)
  638:     
  639:     writefile=file(path+"/index.meta","w")
  640:     #print path+"/index.meta"
  641:     writefile.write(dom.toxml(encoding="UTF-8"))
  642:     writefile.close()
  643: 
  644: def manage_AddOSAS_combineTextImageForm(self):
  645:     """interface for adding the OSAS_add_Metadata"""
  646:     pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddOSAS_combineTextImage.zpt')).__of__(self)
  647:     return pt()
  648: 
  649: def manage_AddOSAS_combineTextImage(self,id,RESPONSE=None):
  650:     """add the OSAS_root"""
  651:     newObj=OSAS_combineTextImage(id)
  652:     self.Destination()._setObject(id,newObj)
  653:     if RESPONSE is not None:
  654:         RESPONSE.redirect('manage_main')
  655: 
  656:             
  657: InitializeClass(OSAS_combineTextImage)

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>