Qore WebUtil Module Reference: WebUtil::TextTemplateBase Class Reference

Qore WebUtil Module Reference 1.1

- Main Page
- Related Pages
- Namespaces
- Classes

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Functions Variables Groups Pages
Public Member Functions | Static Public Member Functions | Public Attributes | Static Private Member Functions | Private Attributes | List of all members
WebUtil::TextTemplateBase Class Reference

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

Inheritance diagram for WebUtil::TextTemplateBase:
[legend]

## 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

  p | the Program object to add the template function to
  fn | the name of the template function
  name | the name of the template
  src | the 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)