Annotation of ECHO_content/VLPExtension.py, revision 1.2

1.1       dwinter     1: from ECHO_collection import *
                      2: from Products.PageTemplates.PageTemplateFile import PageTemplateFile
                      3: from Products.PageTemplates.PageTemplate import PageTemplate
                      4: from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate
1.2     ! dwinter     5: 
1.1       dwinter     6: from Products.zogiLib import zogiLib
                      7: 
                      8: def getText(nodelist):
                      9: 
                     10:     rc = ""
                     11:     for node in nodelist:
                     12:        if node.nodeType == node.TEXT_NODE:
                     13:            rc = rc + node.data
                     14:     return rc
                     15: 
1.2     ! dwinter    16: class VLP_collection(ECHO_collection):
        !            17:     """VLP spezifische Erweiterung der Collection"""
        !            18: 
        !            19: 
        !            20: def manage_addVLP_collectionForm(self):
        !            21:         """Form for adding a ressource"""
        !            22:         pt=PageTemplateFile('Products/ECHO_content/vlp/AddVLP_collectionForm.zpt').__of__(self)
        !            23:         return pt()
        !            24: 
        !            25: 
        !            26: 
        !            27: def manage_addVLP_collection(self,id,title,label,description,contentType,responsible,weight,sortfield,coords="",secondaryLinkTitle="",secondaryLink="",credits=None,RESPONSE=None,imageTag="",bgcolour=""):
        !            28:     """add a echo collection"""
        !            29:     
        !            30: 
        !            31:     newObj=VLP_collection(id,title,label,description,contentType,responsible,credits,weight,sortfield,coords,secondaryLinkTitle=secondaryLinkTitle,secondaryLink=secondaryLink,imageTag=imageTag,bgcolour="")
        !            32: 
        !            33:     self._setObject(id,newObj)
        !            34: 
        !            35:     if RESPONSE is not None:
        !            36:         RESPONSE.redirect('manage_main')
        !            37: 
        !            38: 
1.1       dwinter    39: 
                     40: class VLP_resource(ECHO_resource):
                     41:     """VLP spezifische Erweiterung"""
                     42: 
                     43:     meta_type="VLP_resource"
                     44: 
                     45:     vlp_basis="/mpiwg/online/permanent/vlp"
                     46: 
                     47:     
                     48:     referencetypes=[]
                     49: 
                     50:     manage_options=ECHO_resource.manage_options+(
                     51:         {'label':'Update Index','action':'createIndexFile'},
                     52:         {'label':'Reset MetaLink','action':'resetMetaLink'},
                     53:         {'label':'Generate Title','action':'generate_title'},
                     54:         )
                     55: 
                     56: 
1.2     ! dwinter    57:     def printDict(self):
        !            58:         """dict"""
        !            59:         return self.__dict__
        !            60:     
        !            61:     ## def __init__(self,id,link,metalink,resourceID,title,label,description,contentType,renderingType,responsible,credits,weight,coords):
        !            62: ##         """angepasstes init"""
        !            63:         
1.1       dwinter    64:             
1.2     ! dwinter    65: ##         return ECHO_resource(id,link,metalink,resourceID,title,label,description,contentType,renderingType,responsible,credits,weight,coords)
        !            66: 
1.1       dwinter    67:         
                     68:     def resetMetaLink(self,all="no",RESPONSE=None):
                     69:         """resets metalink to standard resp. in case of server change it sets to the new server url"""
                     70:         if all=="yes":
                     71:             self.metalink=self.absolute_url()+"/index_meta"
                     72:         else:
                     73:             splitted=self.metalink.split("/")
                     74:             if (len(splitted)>1) and (splitted[len(splitted)-1]=="index_meta") and (splitted[len(splitted)-2]==self.getId()): # heuristic nur generische Metadatafiles andern
                     75:                 self.metalink=self.absolute_url()+"/index_meta"
                     76: 
                     77:         if RESPONSE:
                     78:             return "done"
                     79:             
                     80:     def show(self):
                     81:         """show the rendered file"""
                     82:         pt=PageTemplateFile('Products/ECHO_content/vlp/library_template.zpt').__of__(self)
                     83:         pt.content_type="text/html"
                     84:         return pt()
                     85:     
                     86:     
                     87:     def index_meta(self):
                     88:         """index_meta"""
                     89:         pt=PageTemplateFile('Products/ECHO_content/vlp/index_meta.zpt').__of__(self)
                     90:         pt.content_type="text/html"
                     91:         return pt()
                     92:     
                     93: 
                     94:     def dir2index(self):
                     95:         """dir to index"""
                     96: 
                     97:         def calculateName(str):
                     98:             ret="%s: %s"%(str[0],str[1:5])
                     99:             return ret
1.2     ! dwinter   100: 
        !           101:         try:
        !           102:             ret=os.listdir(os.path.join(self.vlp_basis,self.resourceID,'pageimg'))
        !           103:             self.imagePath='pageimg'
        !           104:         except:
        !           105:             ret=os.listdir(os.path.join(self.vlp_basis,self.resourceID,'pagesHi'))
        !           106:             self.imagePath='pagesHi'
1.1       dwinter   107:         temp=[]
                    108:         for x in ret:
                    109:             if not (x[0]=="."):
                    110:                 
                    111:                 temp.append(calculateName(x))
                    112:         return temp
                    113: 
                    114:     def firstPage(self,url=None):
                    115:         """showlink to the first image"""
                    116:         if self.REQUEST.get('pn')=="1": #erste seinte dann kein a tag
                    117:             return """<img src="../../images/first.gif" alt="first" width="14" height="14" border="0"><br>first"""
                    118: 
                    119:         else:
                    120:             return """<a href=%s>
                    121:                          <img src="../../images/first.gif" alt="first" width="14" height="14" border="0"><br>first
                    122:                          </a>
                    123:                          """%(self.REQUEST['URL']+"?pn=1")
                    124: 
                    125:     def lastPage(self,url=None):
                    126:         """showlink to the first image"""
                    127:         pages=self.readIndexFile(url)
                    128:         if pages:
                    129:             ln=len(pages)
                    130:         
                    131:         if self.REQUEST.get('pn')==str(ln): #letzte seite dann kein a tag
                    132:             return """<img src="../../images/last.gif" alt="last" width="14" height="14" border="0"><br>last"""
                    133: 
                    134:         else:
                    135:             return """<a href=%s>
                    136:                          <img src="../../images/last.gif" alt="last" width="14" height="14" border="0"><br>last
                    137:                          </a>
                    138:                          """%(self.REQUEST['URL']+"?pn="+str(ln))
                    139:             
                    140:     def prevPage(self,url=None):
                    141:         """showlink to the first image"""
                    142:         
                    143: 
                    144:         nn = int(self.REQUEST.get('pn','1'))-1
                    145:         if nn < 1: #letzte  seite dann kein a tag
                    146:             return """<img src="../../images/prev.gif" alt="prev" width="14" height="14" border="0"><br>prev"""
                    147: 
                    148:         else:
                    149:             return """<a href=%s>
                    150:                          <img src="../../images/prev.gif" alt="prev" width="14" height="14" border="0"><br>prev
                    151:                          </a>
                    152:                          """%(self.REQUEST['URL']+"?pn="+str(nn))
                    153: 
                    154:     def nextPage(self,url=None):
                    155:         """showlink to the first image"""
                    156:         pages=self.readIndexFile(url)
                    157:         if pages:
                    158:             ln=len(pages)
                    159: 
                    160:         nn = int(self.REQUEST.get('pn','1'))+1
                    161:         if nn>int(ln): #letzte  seite dann kein a tag
                    162:             return """<img src="../../images/next.gif" alt="next" width="14" height="14" border="0"><br>next"""
                    163: 
                    164:         else:
                    165:             return """<a href=%s>
                    166:                          <img src="../../images/next.gif" alt="next" width="14" height="14" border="0"><br>next
                    167:                          </a>
                    168:                          """%(self.REQUEST['URL']+"?pn="+str(nn))
                    169:         
                    170:     
                    171:     def readIndexFile(self,url=None):
                    172:         """reads the indexfile. presently url not None isn't implemented. In the future url can be defined."""
                    173:         pagelist=[]
                    174:         if not url:
                    175:             url=self.absolute_url()+"/index.xml"
                    176: 
                    177:         fh=urllib.urlopen(url)
                    178:         dom=xml.dom.minidom.parse(fh)
                    179:         
                    180:         
                    181:         for page in dom.getElementsByTagName('page'):
                    182:             text=getText(page.childNodes)
                    183:             pageNum=page.getAttribute('nr')
                    184:             pagelist.append((pageNum,text))
                    185: 
                    186:         return pagelist
                    187:     
                    188:     def createIndexFile(self,RESPONSE=None):
                    189:         """create index file"""
                    190: 
                    191:         
                    192:         pt=PageTemplateFile('Products/ECHO_content/vlp/index_template.zpt').__of__(self)()
                    193: 
                    194: 
                    195:         
                    196:         if not hasattr(self,'index.xml'):
                    197:             zt=ZopePageTemplate('index.xml')
                    198:             self._setObject('index.xml',zt)
                    199:         else:
                    200:             zt=getattr(self,'index.xml')
                    201:             
                    202:             
                    203:         zt.pt_edit(pt, 'text/xml')
                    204: 
                    205:         if RESPONSE is not None:
                    206:             RESPONSE.redirect('manage_main')
                    207: 
                    208:         
                    209: def manage_addVLP_resourceForm(self):
                    210:         """Form for adding a ressource"""
                    211:         pt=PageTemplateFile('Products/ECHO_content/vlp/AddVLP_resourceForm.zpt').__of__(self)
                    212:         return pt()
                    213: 
                    214: 
                    215: 
                    216: def manage_addVLP_resource(self,id,title,label,description,responsible,link,metalink,weight,resourceID=None,contentType=None,renderingType=None,credits=None,coords=None,RESPONSE=None):
                    217:     """addaresource"""
                    218: 
                    219:     
1.2     ! dwinter   220:     if metalink=='':
        !           221:         metalink=self.absolute_url()+"/"+id+"/index_meta"
        !           222:             
1.1       dwinter   223:     newObj=VLP_resource(id,link,metalink,resourceID,title,label,description,contentType,renderingType,responsible,credits,weight,coords)
                    224: 
                    225:     self._setObject(id,newObj)
                    226: 
                    227:     if RESPONSE is not None:
                    228:         RESPONSE.redirect('manage_main')
                    229:  

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