summaryrefslogtreecommitdiffstats
path: root/cobbler/Cheetah/Tools/CGITemplate.py
diff options
context:
space:
mode:
Diffstat (limited to 'cobbler/Cheetah/Tools/CGITemplate.py')
-rw-r--r--cobbler/Cheetah/Tools/CGITemplate.py78
1 files changed, 78 insertions, 0 deletions
diff --git a/cobbler/Cheetah/Tools/CGITemplate.py b/cobbler/Cheetah/Tools/CGITemplate.py
new file mode 100644
index 0000000..b72e62b
--- /dev/null
+++ b/cobbler/Cheetah/Tools/CGITemplate.py
@@ -0,0 +1,78 @@
+#!/usr/bin/env python
+# $Id: CGITemplate.py,v 1.6 2006/01/29 02:09:59 tavis_rudd Exp $
+"""A subclass of Cheetah.Template for use in CGI scripts.
+
+Usage in a template:
+ #extends Cheetah.Tools.CGITemplate
+ #implements respond
+ $cgiHeaders#slurp
+
+Usage in a template inheriting a Python class:
+1. The template
+ #extends MyPythonClass
+ #implements respond
+ $cgiHeaders#slurp
+
+2. The Python class
+ from Cheetah.Tools import CGITemplate
+ class MyPythonClass(CGITemplate):
+ def cgiHeadersHook(self):
+ return "Content-Type: text/html; charset=koi8-r\n\n"
+
+To read GET/POST variables, use the .webInput method defined in
+Cheetah.Utils.WebInputMixin (available in all templates without importing
+anything), use Python's 'cgi' module, or make your own arrangements.
+
+This class inherits from Cheetah.Template to make it usable in Cheetah's
+single-inheritance model.
+
+
+Meta-Data
+================================================================================
+Author: Mike Orr <iron@mso.oz.net>
+License: This software is released for unlimited distribution under the
+ terms of the MIT license. See the LICENSE file.
+Version: $Revision: 1.6 $
+Start Date: 2001/10/03
+Last Revision Date: $Date: 2006/01/29 02:09:59 $
+"""
+__author__ = "Mike Orr <iron@mso.oz.net>"
+__revision__ = "$Revision: 1.6 $"[11:-2]
+
+import os
+from Cheetah.Template import Template
+
+class CGITemplate(Template):
+ """Methods useful in CGI scripts.
+
+ Any class that inherits this mixin must also inherit Cheetah.Servlet.
+ """
+
+
+ def cgiHeaders(self):
+ """Outputs the CGI headers if this is a CGI script.
+
+ Usage: $cgiHeaders#slurp
+ Override .cgiHeadersHook() if you want to customize the headers.
+ """
+ if self.isCgi():
+ return self.cgiHeadersHook()
+
+
+
+ def cgiHeadersHook(self):
+ """Override if you want to customize the CGI headers.
+ """
+ return "Content-type: text/html\n\n"
+
+
+ def isCgi(self):
+ """Is this a CGI script?
+ """
+ env = os.environ.has_key('REQUEST_METHOD')
+ wk = self._CHEETAH__isControlledByWebKit
+ return env and not wk
+
+
+
+# vim: shiftwidth=4 tabstop=4 expandtab