File:  [Repository] / ECHO_content / ECHO_xslt.py
Revision 1.1: download - view: text, annotated - select for diffs - revision graph
Thu Apr 7 21:01:10 2005 UTC (19 years, 1 month ago) by dwinter
Branches: MAIN
CVS tags: HEAD
echo_xslt aded

### XSLT Class ###
### setzt 4 suite vorraus ###

from Products.PageTemplates.PageTemplateFile import PageTemplateFile
from Globals import DTMLFile
from ECHO_Nav import ECHO_pageTemplate

from Globals import package_home

import os.path

import urllib

try:
    from Ft.Xml.Xslt.Processor import Processor
    from Ft.Xml import InputSource
    
except:
    print "4suite has to be installed"


class ECHO_xslt(ECHO_pageTemplate):
    """ECHO_xslt classe"""

    meta_type="ECHO_xslt"

    def xslt(self):
        """standard ausgabe"""

        self.cgiUrl="http://nausikaa2.mpiwg-berlin.mpg.de/cgi-bin/search/q1"

        qs="%s?%s"%(self.cgiUrl,self.REQUEST['QUERY_STRING'])

        #urlH=urllib.urlopen(qs)
        #xml=urlH.read()
        #urlH.close()
        #print xml
        #return xml
    
        xsltproc=Processor()
        document = InputSource.DefaultFactory.fromUri(qs)
        stylesheet = InputSource.DefaultFactory.fromUri(self.absolute_url())
        xsltproc.appendStylesheet(stylesheet)

        html=xsltproc.run(document)
                    
        return html


def manage_addECHO_xsltForm(self):
    """Form for adding"""
    pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddECHO_xslt.zpt')).__of__(self)
    return pt()

from urllib import quote


def manage_addECHO_xslt(self, id, label, weight= 0,contentType=0,title=None, text=None,
                           REQUEST=None, submit=None):
    "Add a Page Template with optional file content."

    
    id = str(id)
    if REQUEST is None:
        self._setObject(id, ECHO_xslt(id, text))
        ob = getattr(self, id)
        setattr(ob,'weight',weight)
        setattr(ob,'label',label)
        setattr(ob,'contentType',contentType)
        if title:
            ob.pt_setTitle(title)
        return ob
    else:
        file = REQUEST.form.get('file')
        headers = getattr(file, 'headers', None)
        if headers is None or not file.filename:
            zpt = ECHO_xslt(id)
        else:
            zpt = ECHO_xslt(id, file, headers.get('contentType'))

        self._setObject(id, zpt)
        ob = getattr(self, id)
        setattr(ob,'weight',weight)
        setattr(ob,'label',label)
        if title:
            ob.pt_setTitle(title)
        
        try:
            u = self.DestinationURL()
        except AttributeError:
            u = REQUEST['URL1']

        if submit == " Add and Edit ":
            u = "%s/%s" % (u, quote(id))
        REQUEST.RESPONSE.redirect(u+'/manage_main')
    return ''


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