def execute(self, item, context):
            if isPage:
                from porcupine.core.session import SessionManager
                from porcupine.filters.output import JSMerge

                script_name = context.request.serverVariables["SCRIPT_NAME"]
                cookies_required = SessionManager._sm.requires_cookies
                no_cookies_url = '%s/{%s}%s%s' % (
                    script_name,
                    context.session.sessionid,
                    context.request.serverVariables['PATH_INFO'],
                    context.request.get_query_string())

                # get revision of quix core files
                quix_core_reg = (
                    pubdirs.dirs['__quix'].get_registration('core.js'))
                quix_core_files = (
                    quix_core_reg.get_filter_by_type(JSMerge)[1]['files'].
                    split(','))
                core_revision = JSMerge.get_revision(quix_core_files)

                vars = (bgcolor, title, script_name, script_name,
                        core_revision, str(cookies_required).lower(),
                        no_cookies_url)
                context.response.content_type = 'text/html'
                context.response.write(('''
<!DOCTYPE html>
<html style="background-color:%s">
    <head>
        <title>%s</title>
        <script type="text/javascript" defer="defer"
            src="%s/__quix/lib/extensions.js">
        </script>
        <script type="text/javascript" defer="defer"
            src="%s/__quix/core.js?r=%d">
        </script>
        <script type="text/javascript">
            (function() {
                document.cookiesEnabled = false;
                document.cookiesRequired = %s;
                var session_id = (
                    new RegExp("/\(?:{|%%7b)(.*?)\(?:}|%%7d)", "i"))
                    .exec(document.location.href);
                if (session_id)
                    session_id = session_id[1];
                if (typeof document.cookie == "string" &&
                        document.cookie.length != 0)
                    document.cookiesEnabled = true;
                if (!session_id && !document.cookiesEnabled)
                    document.location.href = '%s';
                })();
        </script>
    </head>
    <body onload="QuiX.__init__('quix')">
        <textarea id="quix" style="display:none">''' % vars).strip())

            WebMethodDescriptor.execute(self, item, context)

            if isPage:
                context.response.write('</textarea></body></html>')
        def execute(self, item, context):
            if isPage:
                script_name = context.request.serverVariables["SCRIPT_NAME"]
                no_cookies_url = '%s/{%s}%s%s' % (
                    script_name,
                    context.session.sessionid,
                    context.request.serverVariables['PATH_INFO'],
                    context.request.getQueryString()
                )
                vars = (script_name, no_cookies_url)
                
                context.response.content_type = 'text/html'
                context.response.write(('''
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html>
    <head>
        <script type="text/javascript" defer="defer" src="%s/__quix/quix.js"></script>
        <script type="text/javascript" defer="defer">
            var cookiesEnabled = false;
            var session_id = (new RegExp("/\(?:{|%%7b)([0-9a-f]{32})\(?:}|%%7d)", "i")).exec(document.location.href);
            if (session_id)
                session_id = session_id[1];
            if (typeof document.cookie == "string" && document.cookie.length != 0)
                cookiesEnabled = true;
            if (!session_id && !cookiesEnabled)
                document.location.href = '%s';
        </script>
    </head>
    <body onload="QuiX.__init__()">
        <xml id="quix" style="display:none">''' % vars).strip())
            WebMethodDescriptor.execute(self, item, context)
            if isPage:
                context.response.write('</xml></body></html>')
Пример #3
0
        def execute(self, item, context):
            if isPage:
                from porcupine.core.session import SessionManager

                script_name = context.request.serverVariables["SCRIPT_NAME"]
                cookies_required = SessionManager._sm.requires_cookies
                no_cookies_url = '%s/{%s}%s%s' % (
                    script_name,
                    context.session.sessionid,
                    context.request.serverVariables['PATH_INFO'],
                    context.request.get_query_string())

                # get revision of quix core files
                core_revision = misc.get_revision('quix', 'core.js')

                vars = (bgcolor,
                        title,
                        script_name,
                        core_revision,
                        context.request.get_lang(),
                        str(cookies_required).lower(),
                        no_cookies_url)

                context.response.content_type = 'text/html'
                context.response.write(('''
<!DOCTYPE html>
<html style="background-color:%s">
    <head>
        <title>%s</title>
        <script type="text/javascript" defer="defer"
            src="%s/quix/core.js?r=%d">
        </script>
        <script type="text/javascript">
            (function() {
                navigator.locale = '%s';
                document.cookiesEnabled = false;
                document.cookiesRequired = %s;
                var session_id = (
                    new RegExp("/\(?:{|%%7b)(.*?)\(?:}|%%7d)", "i"))
                    .exec(document.location.href);
                if (session_id) {
                    session_id = session_id[1];
                }
                if (typeof document.cookie == "string" &&
                        document.cookie.length != 0) {
                    document.cookiesEnabled = true;
                }
                if (!session_id && !document.cookiesEnabled) {
                    document.location.href = '%s';
                }
            })();
        </script>
        <script id="quix" type="application/xml">''' % vars).strip())

            WebMethodDescriptor.execute(self, item, context)

            if isPage:
                context.response.write('''</script>
    </head>
    <body onload="QuiX.__init__('quix')">''')
                context.response.write(body)
                context.response.write('</body></html>')