Class: I2CE TemplateMeister

From IHRIS Wiki
Revision as of 16:02, 16 October 2009 by Litlfred (talk | contribs) (Created page with 'This article desrcibes the class '''I2CE_TemplateMeister'''which extends the class I2CE_Fuzzy It is contained in the module [[iHRIS Module List#I2CE|I2CE]…')
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This article desrcibes the class I2CE_TemplateMeisterwhich extends the class I2CE_Fuzzy It is contained in the module I2CE in the package I2CE The class is defined in the file: lib/I2CE_TemplateMeister.php The I2CE_Template class that all display pages use.

@package I2CE

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

  • Type: protected I2CE_User $user

$working_dir

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

  • Type: protected ng $working_dir

$loadOptions

the load options used when loading XML templates

  • Type: protected nteger $loadOptions

$headers

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

  • Type: protected $headers

$verboseErrors

the verbosity of errors for validation

  • Type: protected n $verboseErrors

Methods

__construct()

I2CE_Template constructor method.

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

  • Signature: public function __construct()

_loadFile()

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

  • Signature: protected function _loadFile($doc,$contentfile)
  • Returns: boolean False on failure,

Parameters:

_loadText()

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

  • Signature: protected function _loadText($doc,$text,$setEncoding)
  • Returns: boolean False on failure,

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

addFile()

Load and add the template file to the document

  • Signature: public function addFile($contentfile,$tag,$relative_node)
  • Returns: DOMNode -- the node just created

@see loadFile @see replaceNode 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

addHeader()

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

  • Signature: public function addHeader($header)

Parameters:

addText()

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

  • Signature: public function addText($text,$tag,$relative_node)
  • Returns: DOMNode -- the node created

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

addTextNode()

Add a string of text to the node with the given id attribute. @param $node if non null gets the element relative to that node. Defaults to null

  • Signature: public function addTextNode($id,$text,$node)
  • Returns: DOMNode -- the node just created

Parameters:

  • mixed $id
    string an id, or a DOMNode
  • string $text
  • $node
    • Default Value: null

appendElementById()

Create and append an element to the given node by id. @param DOMNode $parent @param $node if non null gets the element relative to that node. Defaults to null

  • Signature: public function appendElementById($parent_id,$tag,$attr,$value,$node)
  • Returns: DOMNode

Parameters:

  • $parent_id
  • string $tag
  • array $attr
    • Default Value: array()
  • string $value
    • Default Value: ""
  • $node
    • Default Value: null

appendElementByNode()

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

  • Signature: public function appendElementByNode($parent,$tag,$attr,$value,$before)
  • Returns: DOMNode

Parameters:

appendFileById()

This will load the given template and append it to the node with the given id attribute. @param $node if non null gets the element relative to that node. Defaults to null @see loadFile @see appendNodeById

  • Signature: public function appendFileById($contentfile,$tag,$parent_id,$before,$node)
  • Returns: DOMNode

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.
    • Default Value: false
  • $node
    • Default Value: null

appendFileByName()

This will load the given template and append it to the node with the given name attribute at the given occurrence. @param $node if non null gets the element relative to that node. Defaults to null

  • Signature: public function appendFileByName($contentfile,$tag,$parent_name,$occurrence,$node)
  • Returns: DOMNode

@see loadFile @see appendNodeByName Parameters:

  • string $contentfile
  • string $tag
  • string $parent_name
  • integer $occurrence
    • Default Value: 0
  • $node
    • Default Value: null

appendFileByNode()

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

  • Signature: public function appendFileByNode($contentfile,$tag,$parent)
  • Returns: DOMNode if $tag is non-null, then it is the appended node, otherwise it is the parent node

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

appendNode()

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

  • Signature: public function appendNode($node,$parent,$before)

Parameters:

  • domnode $node
  • domnode $parent
  • boolean $before
    If set then the node will be appended as the first child instead of the last.
    • Default Value: false

appendNodeById()

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

  • 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. @param $relative_node if non null gets the element relative to that node. Defaults to null

  • Signature: public function appendNodeByName($node,$name,$occurrence,$relative_node)

Parameters:

  • domnode $node
  • string $name
  • integer $occurrence
  • $relative_node
    • Default Value: null

appendNodesByName()

Append a node to the give occurrence of the node with the given name attribute. If $occurrence is negative then it will return the occurence offset from the end. Example: -1 returns the last occurence. @param $node if non null gets the element relative to that node. Defaults to null

  • 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.
  • boolean $before
    If set then the node will be appended as the first child instead of the last.
    • 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. @param $node if non null gets the element relative to that node. Defaults to null

  • Signature: public function appendTextById($text,$tag,$parent_id,$node)
  • Returns: DOMNode -- the node just created

Parameters:

appendTextByName()

Add a string of text to the document and append it to the node with the given name attribute of the given occurrence. @param $node if non null gets the element relative to that node. Defaults to null

  • Signature: public function appendTextByName($text,$tag,$parent_name,$occurrence,$node)
  • Returns: DOMNode -- the node just created

Parameters:

  • string $text
  • string $tag
  • string $parent_name
  • integer $occurrence
  • $node
    • Default Value: null

changeAttributesOnNodes()

  • Signature: public function changeAttributesOnNodes($old,$new,$node)

Parameters:

  • $old
  • $new
  • $node
    • Default Value: null

clearHeaders()

Clear all headers currently set for this template.

  • Signature: public function clearHeaders()

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.

  • 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

  • Signature: public function createTextNode($text)

Parameters:

  • string $text
    the value of the text node

evaluate()

evaluates an Xpath expression on the document

  • Signature: public function evaluate($qry,$node)
  • Returns: mixed

Parameters:

  • string $qry
    an xpath query
  • domnode $node
    If non null, the node at wich we we start the query
    • Default Value: null

findAndRemoveNodes()

Find and remove nodes.

Search the document xpath for any matching nodes and remove them from the document. @param $node if non null gets the element relative to that node. Defaults to null

  • Signature: public function findAndRemoveNodes($xpath,$node)

Parameters:

  • string $xpath
  • $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.

  • Signature: public function findTemplate($template,$raise_error)
  • Returns: mixed

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

getDisplay()

Returns the displayed page as a (tidy!) string

  • Signature: public function getDisplay()
  • Returns: string

getDoc()

Get the DOM for the template

  • Signature: public function getDoc()
  • Returns: DOMDocument

getElementById()

Searches the DOM XPath for the given id.

returns the first match found. @param $node if non null gets the element relative to that node. Defaults to null

  • Signature: public function getElementById($id,$node)
  • Returns: DOMNode

Parameters:

  • string $id
  • $node
    • Default Value: null

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 @param $node if non null gets the element relative to that node. Defaults to null

  • Signature: public function getElementByName($name,$occurrence,$node)
  • Returns: DOMNode

Parameters:

  • string $name
  • integer $occurrence
  • $node
    • Default Value: null

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 @param $node if non null gets the element relative to that node. Defaults to null

  • Signature: public function getElementByTagName($tagname,$occurrence,$node)
  • Returns: DOMNode

Parameters:

  • string $tagname
  • integer $occurrence
  • $node
    • Default Value: null

getHeaders()

Get the headers for this page.

  • Signature: public function getHeaders()
  • Returns: array of string

getUser()

Get the user for this template

  • Signature: public function getUser()
  • Returns: I2CE_User $user or false if non has been set

importText()

Add a string of text to the document.

  • Signature: public function importText($text,$tag)
  • Returns: DOMNode or array od DOMNodes null on failure

Parameters:

  • string $text
  • string $tag
    Defaults to "div." If null, all top-level nodes are returned in an array
    • Default Value: "div"

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.

  • Signature: public function loadFile($contentfile,$tag)
  • Returns: mixed DOMNode -- the node just created if $tag was non-nill. array if $tag was null consisting of the imported nodes.

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"

loadRootFile()

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

  • Signature: public function loadRootFile($root_file)
  • Returns: boolean false on failure

Parameters:

loadRootText()

Creates a new document and loads the input text

  • Signature: public function loadRootText($text)
  • Returns: boolean. false on failure

Parameters:

prepareDisplay()

Called to prepare the display.

  • Signature: public function prepareDisplay()

processArgs()

Process any arguments sent to the page

  • Signature: public function processArgs($args)
  • Returns: boolean true on sucess. false on failure

Parameters:

  • $args

query()

Run an Xpath query on the document

  • Signature: public function query($qry,$node)
  • Returns: DOMNodeList

Parameters:

  • string $qry
    an xpath query
  • domnode $node
    If non null, the node at wich we we start the query
    • Default Value: null

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. @global array

  • 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.
    • Default Value: ""

reIdNodes()

  • 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.

  • Signature: public function removeNode($node)

Parameters:

removeNodeById()

Remove a node with the given id attribute. @param $node if non null gets the element relative to that node. Defaults to null

  • Signature: public function removeNodeById($id,$node)

Parameters:

  • string $id
  • $node
    • Default Value: null

renameNodes()

  • 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.

  • 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. 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 if non null gets the element by id relative to that node. Defaults to null

  • 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.
    • 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.

  • Signature: public function setLoadOptions($options)

Parameters:

  • $options

setNodeAttribute()

Sets an attribute on the given node.

  • Signature: public function setNodeAttribute($attr,$value,$node)

Parameters:

setUser()

Set the user for this template

  • Signature: public function setUser($user)

Parameters:

  • I2CE_User $user
    • Default Value: false

setVerboseErrors()

Set the verbosity of errors for validation

  • Signature: public function setVerboseErrors($verbose)

Parameters:

setWorkingDir()

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

  • Signature: public function setWorkingDir($working_dir)

Parameters:

validate()

Validates the XML of this template.

  • Signature: public function validate()
  • Returns: boolean true on sucess

xmlError()

Prints an XML error nicely. Based on http://us3.php.net/manual/en/function.libxml-get-errors.php if a string, it returns a string with the this value at the begining.

  • Signature: public function xmlError($error,$ret_string)
  • Returns: 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.
    • Default Value: false

Inherited Fuzzy Methods

userMessage()

This method is inherited from I2CE_Fuzzy->userMessage()