Qore WebUtil Module Reference  1.0
 All Classes Namespaces Functions Variables Groups Pages
WebUtil::TextTemplateBase Class Reference

this is the base class for all template Program container classes More...

Inheritance diagram for WebUtil::TextTemplateBase:

Public Member Functions

 constructor (int po=DefaultProgramOptions)
 sets up the object
 

Static Public Member Functions

static string add (Program p, string fn, string name, string src)
 adds a template function to a template Program object More...
 
static string getContentType (string name)
 returns the content type from the file name, ignores any leading "q" in the extensions, assuming a template
 

Public Attributes

const DefaultProgramOptions = PO_REQUIRE_OUR|PO_NO_TOP_LEVEL_STATEMENTS|PO_NO_INHERIT_USER_FUNC_VARIANTS|PO_NO_INHERIT_GLOBAL_VARS|PO_NO_USER_CLASSES|PO_NO_TERMINAL_IO
 default parse options for template Programs
 

Static Private Member Functions

static bool doBlock (string end, reference src, string type, reference i, reference l)
 a helper method used in parsing
 

Private Attributes

Program p
 Holds the template generation function.
 

Detailed Description

this is the base class for all template Program container classes

Member Function Documentation

static string WebUtil::TextTemplateBase::add ( Program  p,
string  fn,
string  name,
string  src 
)
static

adds a template function to a template Program object

Example:
my string $qhtml = "<form id=\"upload_form\" enctype=\"multipart/form-data\" method=\"post\" action=\"{{ $URL_PREFIX }}upload-file">
<fieldset class=\"workflow_list\">
<legend>Step 1: Select Workflow</legend>
<select class=\"worfklows\" name=\"workflow\" id=\"workflow\">
{% foreach my hash $h ($ctx.workflows.pairIterator()) { %}
<option value="{{ $h.key }}">{{ $h.value.label }}</option>
{% } %}
</select>
</fieldset>
</form>";
TextTemplateBase::add($p, "/html/index.qhtml", $qhtml, "t0");
Parameters
pthe Program object to add the template function to
fnthe name of the template function
namethe name of the template
srcthe source of the template; Qore source code is delimited as follows:
  • expressions: Qore expressions are delimited by double curly brackets: {{ }}; such expressions are expected to return a string value that will be inserted directly into the text generated by the template
  • statements: Qore statements are delimited by a curly bracket and percent sign: {% %}; these statements can be any Qore code legal for the template Program object; for example loop constructs are often used (see the example above)

The $ctx hash variable is always present in the template code; this is the call context variable, and is set to the same value as the cx argument in HttpServer::AbstractHttpRequestHandler::handleRequest() plus any context added by the actual handler handing the request. In the example above, a "workflows" key assigned to a hash has been added to the call context variable.

Returns
the source code of the generated template (without Program overhead)