Annotation of ECHO_content/ECHO_xslt.py, revision 1.1

1.1     ! dwinter     1: ### XSLT Class ###
        !             2: ### setzt 4 suite vorraus ###
        !             3: 
        !             4: from Products.PageTemplates.PageTemplateFile import PageTemplateFile
        !             5: from Globals import DTMLFile
        !             6: from ECHO_Nav import ECHO_pageTemplate
        !             7: 
        !             8: from Globals import package_home
        !             9: 
        !            10: import os.path
        !            11: 
        !            12: import urllib
        !            13: 
        !            14: try:
        !            15:     from Ft.Xml.Xslt.Processor import Processor
        !            16:     from Ft.Xml import InputSource
        !            17:     
        !            18: except:
        !            19:     print "4suite has to be installed"
        !            20: 
        !            21: 
        !            22: class ECHO_xslt(ECHO_pageTemplate):
        !            23:     """ECHO_xslt classe"""
        !            24: 
        !            25:     meta_type="ECHO_xslt"
        !            26: 
        !            27:     def xslt(self):
        !            28:         """standard ausgabe"""
        !            29: 
        !            30:         self.cgiUrl="http://nausikaa2.mpiwg-berlin.mpg.de/cgi-bin/search/q1"
        !            31: 
        !            32:         qs="%s?%s"%(self.cgiUrl,self.REQUEST['QUERY_STRING'])
        !            33: 
        !            34:         #urlH=urllib.urlopen(qs)
        !            35:         #xml=urlH.read()
        !            36:         #urlH.close()
        !            37:         #print xml
        !            38:         #return xml
        !            39:     
        !            40:         xsltproc=Processor()
        !            41:         document = InputSource.DefaultFactory.fromUri(qs)
        !            42:         stylesheet = InputSource.DefaultFactory.fromUri(self.absolute_url())
        !            43:         xsltproc.appendStylesheet(stylesheet)
        !            44: 
        !            45:         html=xsltproc.run(document)
        !            46:                     
        !            47:         return html
        !            48: 
        !            49: 
        !            50: def manage_addECHO_xsltForm(self):
        !            51:     """Form for adding"""
        !            52:     pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddECHO_xslt.zpt')).__of__(self)
        !            53:     return pt()
        !            54: 
        !            55: from urllib import quote
        !            56: 
        !            57: 
        !            58: def manage_addECHO_xslt(self, id, label, weight= 0,contentType=0,title=None, text=None,
        !            59:                            REQUEST=None, submit=None):
        !            60:     "Add a Page Template with optional file content."
        !            61: 
        !            62:     
        !            63:     id = str(id)
        !            64:     if REQUEST is None:
        !            65:         self._setObject(id, ECHO_xslt(id, text))
        !            66:         ob = getattr(self, id)
        !            67:         setattr(ob,'weight',weight)
        !            68:         setattr(ob,'label',label)
        !            69:         setattr(ob,'contentType',contentType)
        !            70:         if title:
        !            71:             ob.pt_setTitle(title)
        !            72:         return ob
        !            73:     else:
        !            74:         file = REQUEST.form.get('file')
        !            75:         headers = getattr(file, 'headers', None)
        !            76:         if headers is None or not file.filename:
        !            77:             zpt = ECHO_xslt(id)
        !            78:         else:
        !            79:             zpt = ECHO_xslt(id, file, headers.get('contentType'))
        !            80: 
        !            81:         self._setObject(id, zpt)
        !            82:         ob = getattr(self, id)
        !            83:         setattr(ob,'weight',weight)
        !            84:         setattr(ob,'label',label)
        !            85:         if title:
        !            86:             ob.pt_setTitle(title)
        !            87:         
        !            88:         try:
        !            89:             u = self.DestinationURL()
        !            90:         except AttributeError:
        !            91:             u = REQUEST['URL1']
        !            92: 
        !            93:         if submit == " Add and Edit ":
        !            94:             u = "%s/%s" % (u, quote(id))
        !            95:         REQUEST.RESPONSE.redirect(u+'/manage_main')
        !            96:     return ''
        !            97: 

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