Class: I2CE TemplateMeister (Development)

From IHRIS Wiki


This article describes the class I2CE_TemplateMeister .

The I2CE_Template class that all display pages use.

Variables

$doc

The top level DOM document that all methods work with.

$xpath

The XPath object used for search for DOM nodes in the document.

$user

The user who is accessing this template

$working_dir

The working directory for the document. Used for validation and document creation.

$loadOptions

the load options used when loading XML templates

$headers

@var protected array $header of string. The header strings.

$verboseErrors

the verbosity of errors for validation

Methods

__construct()

I2CE_Template constructor method. This constructor sets up the basic variables for all I2CE_Template objects.

_loadFile()

Helper method. Load a file into the spectified document as XML

_loadText()

Helper method. Load text into the spectified document as XML @param string $contentfile the file to load

  • Defined in i2ce/lib/I2CE_TemplateMeister.php on line 600
  • Signature: protected function _loadText($doc,$text,$setEncoding)
  • Parameters:
    • DOMDocument $doc
    • $text
    • string $setEncoding
      Defaults to true. If true, set the encoding to be that of the docuemnt. Only useful as false for loading root template files
      • Default Value: true
  • Returns: boolean
    False on failure,

addAnchorIdByName()

  • Defined in i2ce/lib/I2CE_TemplateMeister.php on line 1068
  • Signature: public function addAnchorIdByName($name,$id,$node)
  • Parameters:
    • $name
    • $id
    • $node
      • Default Value: null

addFile()

Load and add the template file to the document

  • Defined in i2ce/lib/I2CE_TemplateMeister.php on line 696
  • Signature: public function addFile($contentfile,$tag,$relative_node)
  • Parameters:
    • string $contentfile
    • string $tag
      • Default Value: "div"
    • DOMNode $relative_node
      if non null gets the element relative to that node. Defaults to null
      • Default Value: null
  • Returns: DOMNode
    the node just created @see loadFile @see replaceNode

addHeader()

Add a header for this tempalte. If not set we user 'Content-type: text/xml; charset=utf-8'

addText()

Add a string of text to the document and replace the node with the same id attribute.

  • Defined in i2ce/lib/I2CE_TemplateMeister.php on line 936
  • Signature: public function addText($text,$tag,$relative_node)
  • Parameters:
    • string $text
    • string $tag
      Defaults to "div."
      • Default Value: "div"
    • DOMNode $relative_node
      if non null gets the element relative to that node. Defaults to null
      • Default Value: null
  • Returns: DOMNode
    the node created

addTextNode()

Add a string of text to the node with the given id attribute.

  • Defined in i2ce/lib/I2CE_TemplateMeister.php on line 796
  • Signature: public function addTextNode($id,$text,$node)
  • Parameters:
    • mixed $id
      string an id, or a DOMNode
    • string $text @param $node if non null gets the element relative to that node. Defaults to null
    • $node
      • Default Value: null
  • Returns: DOMNode
    the node just created

appendElementById()

Create and append an element to the given node by id. @param DOMNode $parent

  • Defined in i2ce/lib/I2CE_TemplateMeister.php on line 770
  • Signature: public function appendElementById($parent_id,$tag,$attr,$value,$node)
  • Parameters:
    • $parent_id
    • string $tag
    • array $attr
      • Default Value: array()
    • string $value @param $node if non null gets the element relative to that node. Defaults to null
      • Default Value: ""
    • $node
      • Default Value: null
  • Returns: DOMNode

appendElementByNode()

Create and append an element to the given node by id.

appendFileById()

This will load the given template and append it to the node with the given id attribute.

  • Defined in i2ce/lib/I2CE_TemplateMeister.php on line 716
  • Signature: public function appendFileById($contentfile,$tag,$parent_id,$before,$node)
  • Parameters:
    • string $contentfile
    • string $tag
    • string $parent_id
    • boolean $before
      If set the file will be appended as the first child instead of the last. @param $node if non null gets the element relative to that node. Defaults to null @see loadFile @see appendNodeById
      • Default Value: false
    • $node
      • Default Value: null
  • Returns: DOMNode

appendFileByName()

This will load the given template and append it to the node with the given name attribute at the given occurrence.

  • Defined in i2ce/lib/I2CE_TemplateMeister.php on line 733
  • Signature: public function appendFileByName($contentfile,$tag,$parent_name,$occurrence,$node,$before)
  • Parameters:
    • string $contentfile
    • string $tag
    • string $parent_name
    • integer $occurrence @param $node if non null gets the element relative to that node. Defaults to null
      • Default Value: 0
    • $node
      • Default Value: null
    • boolean $before
      If set then the node will be appended as the first child instead of the last.
      • Default Value: false
  • Returns: DOMNode @see loadFile @see appendNodeByName

appendFileByNode()

This will load the given Template and append it to the given node.

  • Defined in i2ce/lib/I2CE_TemplateMeister.php on line 744
  • Signature: public function appendFileByNode($contentfile,$tag,$parent)
  • Parameters:
    • string $contentfile
    • string $tag
      The tagname we of the top-level imported node we wish to append. if null, we import all nodes
    • DOMNode $parent
  • Returns: DOMNode
    if $tag is non-null, then it is the appended node, otherwise it is the parent node

appendNode()

Append a node to the given parent node if it exists.

appendNodeById()

Append a node to the node with the given id attribute.

  • Defined in i2ce/lib/I2CE_TemplateMeister.php on line 453
  • Signature: public function appendNodeById($node,$id,$before,$relative_node)
  • Parameters:
    • DOMNode $node
    • string $id
    • boolean $before
      If set then the node will be appended as the first child instead of the last.
      • Default Value: false
    • DOMNode $relative_node
      if non null gets the element relative to that node. Defaults to null
      • Default Value: null

appendNodeByName()

Append a node to the give occurrence of the node with the given name attribute.

  • Defined in i2ce/lib/I2CE_TemplateMeister.php on line 467
  • Signature: public function appendNodeByName($node,$name,$occurrence,$relative_node,$before)
  • Parameters:
    • DOMNode $node
    • string $name
    • integer $occurrence @param $relative_node if non null gets the element relative to that node. Defaults to null
    • $relative_node
      • Default Value: null
    • boolean $before
      If set then the node will be appended as the first child instead of the last.
      • Default Value: false

appendNodesByName()

Append a node to the give occurrence of the node with the given name attribute.

  • Defined in i2ce/lib/I2CE_TemplateMeister.php on line 484
  • Signature: public function appendNodesByName($nodes,$name,$occurrence,$before,$node)
  • Parameters:
    • mixed $nodes
      array of DOMNode or a DOMNodeList
    • string $name
    • integer $occurrence
      which occurence of $name to use. If $occurrence is negative then it will return the occurence offset from the end. Example: -1 returns the last occurence.
    • boolean $before
      If set then the node will be appended as the first child instead of the last. @param $node if non null gets the element relative to that node. Defaults to null
      • Default Value: false
    • $node
      • Default Value: null

appendTextById()

Add a string of text to the document and append it to the node with the given id attribute.

  • Defined in i2ce/lib/I2CE_TemplateMeister.php on line 948
  • Signature: public function appendTextById($text,$tag,$parent_id,$node)
  • Parameters:
    • string $text
    • string $tag
    • string $parent_id @param $node if non null gets the element relative to that node. Defaults to null
    • $node
      • Default Value: null
  • Returns: DOMNode
    the node just created

appendTextByName()

Add a string of text to the document and append it to the node with the given name attribute of the given occurrence.

  • Defined in i2ce/lib/I2CE_TemplateMeister.php on line 962
  • Signature: public function appendTextByName($text,$tag,$parent_name,$occurrence,$node)
  • Parameters:
    • string $text
    • string $tag
    • string $parent_name
    • integer $occurrence @param $node if non null gets the element relative to that node. Defaults to null
    • $node
      • Default Value: null
  • Returns: DOMNode
    the node just created

changeAttributesOnNodes()

  • Defined in i2ce/lib/I2CE_TemplateMeister.php on line 1080
  • Signature: public function changeAttributesOnNodes($old,$new,$node)
  • Parameters:
    • $old
    • $new
    • $node
      • Default Value: null

clearHeaders()

Clear all headers currently set for this template.

createElement()

Create an element to be added to this page. Create a new element in the document with the given attributes and return the node to be added where needed.

  • Defined in i2ce/lib/I2CE_TemplateMeister.php on line 367
  • Signature: public function createElement($element_name,$attributes,$value)
  • Parameters:
    • string $element_name
    • array $attributes
      • Default Value: array()
    • $value
      • Default Value: ""

createTextNode()

Create a text node

evaluate()

evaluates an Xpath expression on the document

findAndRemoveNodes()

Find and remove nodes. Search the document xpath for any matching nodes and remove them from the document.

  • Defined in i2ce/lib/I2CE_TemplateMeister.php on line 555
  • Signature: public function findAndRemoveNodes($xpath,$node)
  • Parameters:
    • string $xpath @param $node if non null gets the element relative to that node. Defaults to null
    • $node
      • Default Value: null

findTemplate()

This method finds the location of a template file.If the file is not an absolute file path, it searches the class path 'XML' This method searches the template directory path from the global configuration array for the given template. If it exists it returns the full path to the file and if not it returns false. It seaches the path backwards so that later directories can override package versions of files.

  • Defined in i2ce/lib/I2CE_TemplateMeister.php on line 85
  • Signature: public function findTemplate($template,$raise_error)
  • Parameters:
    • string $template
      The name of the template file.
    • boolean $raise_error
      Defaults to true. Raise error if template is not found
      • Default Value: true
  • Returns: mixed

getDisplay()

Returns the displayed page as a (tidy!) string

getDoc()

Get the DOM for the template

getElementById()

Searches the DOM XPath for the given id. returns the first match found.

  • Defined in i2ce/lib/I2CE_TemplateMeister.php on line 268
  • Signature: public function getElementById($id,$node)
  • Parameters:
    • string $id @param $node if non null gets the element relative to that node. Defaults to null
    • $node
      • Default Value: null
  • Returns: DOMNode

getElementByName()

Searches the DOM XPath for the given name attribute. This searches the document for the given name attribute. It returns whatever occurrence is requested. If $occurrence is negative then it will return the occurence offset from the end. Example: -1 returns the last occurence. If $occurence is null it returns a DOMNodeList

  • Defined in i2ce/lib/I2CE_TemplateMeister.php on line 295
  • Signature: public function getElementByName($name,$occurrence,$node)
  • Parameters:
    • string $name
    • integer $occurrence @param $node if non null gets the element relative to that node. Defaults to null
    • $node
      • Default Value: null
  • Returns: DOMNode

getElementByTagName()

Searches the DOM XPath for the given tag name This searches the document for the given tagname . It returns whatever occurrence is requested. If $occurrence is negative then it will return the occurence offset from the end. Example: -1 returns the last occurence. If $occurence is null it returns a DOMNodeList

  • Defined in i2ce/lib/I2CE_TemplateMeister.php on line 330
  • Signature: public function getElementByTagName($tagname,$occurrence,$node)
  • Parameters:
    • string $tagname
    • integer $occurrence @param $node if non null gets the element relative to that node. Defaults to null
    • $node
      • Default Value: null
  • Returns: DOMNode

getHeaders()

Get the headers for this page.

getUser()

Get the user for this template

importText()

Add a string of text to the document.

  • Defined in i2ce/lib/I2CE_TemplateMeister.php on line 811
  • Signature: public function importText($text,$tag)
  • Parameters:
    • string $text
    • string $tag
      Defaults to "div." If null, all top-level nodes are returned in an array
      • Default Value: "div"
  • Returns: DOMNode
    or array od DOMNodes null on failure

loadFile()

Load a template file into the current document. This will load the given template file into the current document. It will only load based on the surrounding tag name given. It doesn't place the given node into the document yet, just makes it available for use.

  • Defined in i2ce/lib/I2CE_TemplateMeister.php on line 647
  • Signature: public function loadFile($contentfile,$tag)
  • Parameters:
    • string $contentfile
    • string $tag
      If non-null it is the tagname of a toplevel node we wish to import. if null, we import all nodes.
      • Default Value: "div"
  • Returns: mixed
    DOMNode -- the node just created if $tag was non-nill. array if $tag was null consisting of the imported nodes.

loadRootFile()

Creates a new document and loads the root file used for this template.

loadRootText()

Creates a new document and loads the input text

prepareDisplay()

Called to prepare the display.

processArgs()

Process any arguments sent to the page

query()

Run an Xpath query on the document

raiseError()

A raise error method for template that behaves like I2CE::raiseError, except it also displays what is calling the I2CE_Template methods. Raises an error and redirect the user for any critical errors. The default redirect will go to the home page for the site. @param string/mixed $message The error message.

  • Defined in i2ce/lib/I2CE_TemplateMeister.php on line 1028
  • Signature: protected function raiseError($message,$type,$redirect)
  • Parameters:
    • $message
    • integer $type
      The error type.
      • Default Value: E_USER_NOTICE
    • string $redirect
      The page to redirect to for critical errors. @global array
      • Default Value: ""

reIdNodes()

  • Defined in i2ce/lib/I2CE_TemplateMeister.php on line 1064
  • Signature: public function reIdNodes($old_name,$new_name,$node)
  • Parameters:
    • $old_name
    • $new_name
    • $node
      • Default Value: null

removeNode()

Remove the given node from the document.

removeNodeById()

Remove a node with the given id attribute.

  • Defined in i2ce/lib/I2CE_TemplateMeister.php on line 533
  • Signature: public function removeNodeById($id,$node)
  • Parameters:
    • string $id @param $node if non null gets the element relative to that node. Defaults to null
    • $node
      • Default Value: null

renameNodes()

  • Defined in i2ce/lib/I2CE_TemplateMeister.php on line 1060
  • Signature: public function renameNodes($old_name,$new_name,$node)
  • Parameters:
    • $old_name
    • $new_name
    • $node
      • Default Value: null

replaceNode()

Replace a node based on the id attribute. Finds a node with the same id attribute as the one in the node passed to this method and replaces it.

  • Defined in i2ce/lib/I2CE_TemplateMeister.php on line 437
  • Signature: public function replaceNode($node,$relative_node)
  • Parameters:
    • DOMNode $node
    • DOMNode $relative_node
      if non null gets the element relative to that node. Defaults to null
      • Default Value: null

setAttribute()

Sets an attribute on the given node ID and xpath. Finds a given node by ID and then searches the given xpath and then adds or replaces the given attribute.

  • Defined in i2ce/lib/I2CE_TemplateMeister.php on line 396
  • Signature: public function setAttribute($attr,$value,$id,$xpath,$node)
  • Parameters:
    • string $attr
    • string $value
    • string $id
      If non-null we perform our xpath query relative to the node with this id
    • string $xpath
      Defaults to null, in which case we set the attribute of the node by id. If non-null, we change the attribute of every node found by the xpath query which is searched relative to the the node with the given id. @param $node Defaults to null. if non null gets the element by id relative to that node if id is not null. If id is null, tand xpath is not null, then we get query with respect to that node
      • Default Value: null
    • $node
      • Default Value: null

setLoadOptions()

Set the load options used when loading XML templates. If not called, we use the load options = LIBXML_DTDVALID & & LIBXML_DTDATTR @param integer options.

setNodeAttribute()

Sets an attribute on the given node.

setUser()

Set the user for this template

setVerboseErrors()

Set the verbosity of errors for validation

setWorkingDir()

Set the working directory for the document. Used for validation and document creation.

validate()

Validates the XML of this template.

xmlError()

Prints an XML error nicely. Based on http://us3.php.net/manual/en/function.libxml-get-errors.php

  • Defined in i2ce/lib/I2CE_TemplateMeister.php on line 886
  • Signature: public function xmlError($error,$ret_string)
  • Parameters:
    • LIBXmlError $error
      or array or LIBXMLError
    • mixed $ret_string
      Defaults to false in which it raises an error for the errors . If true, we return a string. if a string, it returns a string with the this value at the begining.
      • Default Value: false
  • Returns: string

Inherited Methods

_hasMethod()

This public method is inherited from I2CE_Fuzzy->_hasMethod()

Inherited Fuzzy Methods

userMessage()

This method is inherited from I2CE_Fuzzy->userMessage()