Class: I2CE TemplateMeister: Difference between revisions

From IHRIS Wiki
No edit summary
 
(21 intermediate revisions by the same user not shown)
Line 1: Line 1:
This article desrcibes the class ''I2CE_TemplateMeister''.
#REDIRECT [[Class: I2CE_TemplateMeister (4.1.7)]]
*Extends the class: [[Class: I2CE_Fuzzy | I2CE_Fuzzy]].
*Location: Part of the module [[iHRIS Module List#I2CE|I2CE]] in the package [https://launchpad.net/i2ce I2CE]
*Source: Defined in the file [http://bazaar.launchpad.net/~intrahealth+informatics/i2ce/4.0.0-release/annotate/head:/lib/I2CE_TemplateMeister.php lib/I2CE_TemplateMeister.php]
The I2CE_Template class that all display pages use.
==Variables==
===$doc===
The top level DOM document that all methods work with.
*Type: public [http://www.php.net/manual/en/class.domdocument.php DOMDocument ] $doc
 
===$xpath===
The XPath object used for search for DOM nodes in the document.
*Type: protected [http://www.php.net/manual/en/class.domxpath.php DOMXPath ] $xpath
 
===$user===
The user who is accessing this template
*Type: protected [[Class: I2CE_User | 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)
*Parameters:
** [http://www.php.net/manual/en/class.domdocument.php DOMDocument ] $doc
** [http://www.php.net/manual/en/language.types.string.php string ] $contentfile <br/>the file to load
*Returns: [http://www.php.net/manual/en/language.types.boolean.php boolean ]<br/>False on failure,
===_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)
*Parameters:
** [http://www.php.net/manual/en/class.domdocument.php DOMDocument ] $doc
*$text
** [http://www.php.net/manual/en/language.types.string.php string ] $setEncoding <br/>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: [http://www.php.net/manual/en/language.types.boolean.php boolean ]<br/>False on failure,
===addFile()===
Load and add the  template file to the document
*Signature: public function addFile($contentfile,$tag,$relative_node)
*Parameters:
** [http://www.php.net/manual/en/language.types.string.php string ] $contentfile
** [http://www.php.net/manual/en/language.types.string.php string ] $tag
***Default Value: "div"
** [http://www.php.net/manual/en/class.domnode.php DOMNode ] $relative_node <br/>if non null gets the element relative to that node.  Defaults to null
***Default Value: null
*Returns: [http://www.php.net/manual/en/class.domnode.php DOMNode ]<br/>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'
*Signature: public function addHeader($header)
*Parameters:
** [http://www.php.net/manual/en/language.types.string.php string ] $header
===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)
*Parameters:
** [http://www.php.net/manual/en/language.types.string.php string ] $text
** [http://www.php.net/manual/en/language.types.string.php string ] $tag <br/>Defaults to "div."
***Default Value: "div"
** [http://www.php.net/manual/en/class.domnode.php DOMNode ] $relative_node <br/>if non null gets the element relative to that node.  Defaults to null
***Default Value: null
*Returns: [http://www.php.net/manual/en/class.domnode.php DOMNode ]<br/>the node created
===addTextNode()===
Add a string of text to the node with the given id attribute.
*Signature: public function addTextNode($id,$text,$node)
*Parameters:
** [http://www.php.net/manual/en/language.pseudo-types.php mixed ] $id <br/>string an id, or a DOMNode
** [http://www.php.net/manual/en/language.types.string.php string ] $text @param $node if non null gets the element relative to that node.  Defaults to null
*$node
***Default Value: null
*Returns: [http://www.php.net/manual/en/class.domnode.php DOMNode ]<br/>the node just created
===appendElementById()===
Create and append an element to the given node by id. @param DOMNode $parent
*Signature: public function appendElementById($parent_id,$tag,$attr,$value,$node)
*Parameters:
*$parent_id
** [http://www.php.net/manual/en/language.types.string.php string ] $tag
** [http://www.php.net/manual/en/language.types.array.php array ] $attr
***Default Value: array()
** [http://www.php.net/manual/en/language.types.string.php string ] $value @param $node if non null gets the element relative to that node.  Defaults to null
***Default Value: ""
*$node
***Default Value: null
*Returns: [http://www.php.net/manual/en/class.domnode.php DOMNode ]
===appendElementByNode()===
Create and append an element to the given node by id.
*Signature: public function appendElementByNode($parent,$tag,$attr,$value,$before)
*Parameters:
** [http://www.php.net/manual/en/class.domnode.php DOMNode ] $parent
** [http://www.php.net/manual/en/language.types.string.php string ] $tag
** [http://www.php.net/manual/en/language.types.array.php array ] $attr
***Default Value: array()
** [http://www.php.net/manual/en/language.types.string.php string ] $value
***Default Value: ""
** [http://www.php.net/manual/en/language.types.boolean.php boolean ] $before <br/>defaults to false
***Default Value: false
*Returns: [http://www.php.net/manual/en/class.domnode.php DOMNode ]
===appendFileById()===
This will load the given template and append it to the node with the given id attribute.
*Signature: public function appendFileById($contentfile,$tag,$parent_id,$before,$node)
*Parameters:
** [http://www.php.net/manual/en/language.types.string.php string ] $contentfile
** [http://www.php.net/manual/en/language.types.string.php string ] $tag
** [http://www.php.net/manual/en/language.types.string.php string ] $parent_id
** [http://www.php.net/manual/en/language.types.boolean.php boolean ] $before <br/>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: [http://www.php.net/manual/en/class.domnode.php DOMNode ]
===appendFileByName()===
This will load the given  template and append it to the node with the given name attribute at the given occurrence.
*Signature: public function appendFileByName($contentfile,$tag,$parent_name,$occurrence,$node)
*Parameters:
** [http://www.php.net/manual/en/language.types.string.php string ] $contentfile
** [http://www.php.net/manual/en/language.types.string.php string ] $tag
** [http://www.php.net/manual/en/language.types.string.php 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
*Returns: [http://www.php.net/manual/en/class.domnode.php DOMNode ]@see loadFile @see appendNodeByName
===appendFileByNode()===
This will load the given  Template and append it to the given node.
*Signature: public function appendFileByNode($contentfile,$tag,$parent)
*Parameters:
** [http://www.php.net/manual/en/language.types.string.php string ] $contentfile
** [http://www.php.net/manual/en/language.types.string.php string ] $tag <br/>The tagname we of the top-level imported node we wish to append.  if null, we import all nodes
** [http://www.php.net/manual/en/class.domnode.php DOMNode ] $parent
*Returns: [http://www.php.net/manual/en/class.domnode.php DOMNode ]<br/>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.
*Signature: public function appendNode($node,$parent,$before)
*Parameters:
** [http://www.php.net/manual/en/class.domnode.php DOMNode ] $node
** [http://www.php.net/manual/en/class.domnode.php DOMNode ] $parent
** [http://www.php.net/manual/en/language.types.boolean.php boolean ] $before <br/>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:
** [http://www.php.net/manual/en/class.domnode.php DOMNode ] $node
** [http://www.php.net/manual/en/language.types.string.php string ] $id
** [http://www.php.net/manual/en/language.types.boolean.php boolean ] $before <br/>If set then the node will be appended as the first child instead of the last.
***Default Value: false
** [http://www.php.net/manual/en/class.domnode.php DOMNode ] $relative_node <br/>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.
*Signature: public function appendNodeByName($node,$name,$occurrence,$relative_node)
*Parameters:
** [http://www.php.net/manual/en/class.domnode.php DOMNode ] $node
** [http://www.php.net/manual/en/language.types.string.php 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
===appendNodesByName()===
Append a node to the give occurrence of the node with the given name attribute.
*Signature: public function appendNodesByName($nodes,$name,$occurrence,$before,$node)
*Parameters:
** [http://www.php.net/manual/en/language.pseudo-types.php mixed ] $nodes <br/>array of DOMNode or a DOMNodeList
** [http://www.php.net/manual/en/language.types.string.php string ] $name
** integer $occurrence <br/>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.
** [http://www.php.net/manual/en/language.types.boolean.php boolean ] $before <br/>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.
*Signature: public function appendTextById($text,$tag,$parent_id,$node)
*Parameters:
** [http://www.php.net/manual/en/language.types.string.php string ] $text
** [http://www.php.net/manual/en/language.types.string.php string ] $tag
** [http://www.php.net/manual/en/language.types.string.php string ] $parent_id @param $node if non null gets the element relative to that node.  Defaults to null
*$node
***Default Value: null
*Returns: [http://www.php.net/manual/en/class.domnode.php DOMNode ]<br/>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.
*Signature: public function appendTextByName($text,$tag,$parent_name,$occurrence,$node)
*Parameters:
** [http://www.php.net/manual/en/language.types.string.php string ] $text
** [http://www.php.net/manual/en/language.types.string.php string ] $tag
** [http://www.php.net/manual/en/language.types.string.php 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: [http://www.php.net/manual/en/class.domnode.php DOMNode ]<br/>the node just created
===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:
** [http://www.php.net/manual/en/language.types.string.php string ] $element_name
** [http://www.php.net/manual/en/language.types.array.php array ] $attributes
***Default Value: array()
*$value
***Default Value: ""
===createTextNode()===
Create a text node
*Signature: public function createTextNode($text)
*Parameters:
** [http://www.php.net/manual/en/language.types.string.php string ] $text <br/>the value of the text node
===evaluate()===
evaluates an Xpath expression on the document
*Signature: public function evaluate($qry,$node)
*Parameters:
** [http://www.php.net/manual/en/language.types.string.php string ] $qry <br/>an xpath query
** [http://www.php.net/manual/en/class.domnode.php DOMNode ] $node <br/>If non null, the node at wich we we start the query
***Default Value: null
*Returns: [http://www.php.net/manual/en/language.pseudo-types.php mixed ]
===findAndRemoveNodes()===
Find and remove nodes. Search the document xpath for any matching nodes and remove them from the document.
*Signature: public function findAndRemoveNodes($xpath,$node)
*Parameters:
** [http://www.php.net/manual/en/language.types.string.php 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.
*Signature: public function findTemplate($template,$raise_error)
*Parameters:
** [http://www.php.net/manual/en/language.types.string.php string ] $template <br/>The name of the template file.
** [http://www.php.net/manual/en/language.types.boolean.php boolean ] $raise_error <br/>Defaults to true.  Raise error if template is not found
***Default Value: true
*Returns: [http://www.php.net/manual/en/language.pseudo-types.php mixed ]
===getDisplay()===
Returns the displayed page as a (tidy!) string
*Signature: public function getDisplay()
*Returns: [http://www.php.net/manual/en/language.types.string.php string ]
===getDoc()===
Get the DOM for the template
*Signature: public function getDoc()
*Returns: [http://www.php.net/manual/en/class.domdocument.php DOMDocument ]
===getElementById()===
Searches the DOM XPath for the given id. returns the first match found.
*Signature: public function getElementById($id,$node)
*Parameters:
** [http://www.php.net/manual/en/language.types.string.php string ] $id @param $node if non null gets the element relative to that node.  Defaults to null
*$node
***Default Value: null
*Returns: [http://www.php.net/manual/en/class.domnode.php 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
*Signature: public function getElementByName($name,$occurrence,$node)
*Parameters:
** [http://www.php.net/manual/en/language.types.string.php string ] $name
** integer $occurrence @param $node if non null gets the element relative to that node.  Defaults to null
*$node
***Default Value: null
*Returns: [http://www.php.net/manual/en/class.domnode.php 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
*Signature: public function getElementByTagName($tagname,$occurrence,$node)
*Parameters:
** [http://www.php.net/manual/en/language.types.string.php string ] $tagname
** integer $occurrence @param $node if non null gets the element relative to that node.  Defaults to null
*$node
***Default Value: null
*Returns: [http://www.php.net/manual/en/class.domnode.php DOMNode ]
===getHeaders()===
Get the headers for this page.
*Signature: public function getHeaders()
*Returns: [http://www.php.net/manual/en/language.types.array.php array ]<br/>of string
===getUser()===
Get the user for this template
*Signature: public function getUser()
*Returns: [[Class: I2CE_User | I2CE_User]]<br/>$user or false if non has been set
===importText()===
Add a string of text to the document.
*Signature: public function importText($text,$tag)
*Parameters:
** [http://www.php.net/manual/en/language.types.string.php string ] $text
** [http://www.php.net/manual/en/language.types.string.php string ] $tag <br/>Defaults to "div."  If null, all top-level nodes are returned in an array
***Default Value: "div"
*Returns: [http://www.php.net/manual/en/class.domnode.php DOMNode ]<br/>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.
*Signature: public function loadFile($contentfile,$tag)
*Parameters:
** [http://www.php.net/manual/en/language.types.string.php string ] $contentfile
** [http://www.php.net/manual/en/language.types.string.php string ] $tag <br/>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: [http://www.php.net/manual/en/language.pseudo-types.php mixed ]<br/>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.
*Signature: public function loadRootFile($root_file)
*Parameters:
** [http://www.php.net/manual/en/language.types.string.php string ] $root_file
*Returns: [http://www.php.net/manual/en/language.types.boolean.php boolean ]<br/>false on failure
===loadRootText()===
Creates a new document and loads the input text
*Signature: public function loadRootText($text)
*Parameters:
** [http://www.php.net/manual/en/language.types.string.php string ] $text <br/>;
*Returns: boolean.<br/>false on failure
===prepareDisplay()===
Called to prepare the display.
*Signature: public function prepareDisplay()
===processArgs()===
Process any arguments sent to the page
*Signature: public function processArgs($args)
*Parameters:
*$args
*Returns: [http://www.php.net/manual/en/language.types.boolean.php boolean ]<br/>true on sucess. false on failure
===query()===
Run an Xpath query on the document
*Signature: public function query($qry,$node)
*Parameters:
** [http://www.php.net/manual/en/language.types.string.php string ] $qry <br/>an xpath query
** [http://www.php.net/manual/en/class.domnode.php DOMNode ] $node <br/>If non null, the node at wich we we start the query
***Default Value: null
*Returns: [http://www.php.net/manual/en/class.domnodelist.php DOMNodeList ]
===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.
*Signature: protected function raiseError($message,$type,$redirect)
*Parameters:
*$message
** integer $type <br/>The error type.
***Default Value: E_USER_NOTICE
** [http://www.php.net/manual/en/language.types.string.php string ] $redirect <br/>The page to redirect to for critical errors. @global array
***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:
** [http://www.php.net/manual/en/class.domnode.php DOMNode ] $node
===removeNodeById()===
Remove a node with the given id attribute.
*Signature: public function removeNodeById($id,$node)
*Parameters:
** [http://www.php.net/manual/en/language.types.string.php string ] $id @param $node if non null gets the element relative to that node.  Defaults to null
*$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:
** [http://www.php.net/manual/en/class.domnode.php DOMNode ] $node
** [http://www.php.net/manual/en/class.domnode.php DOMNode ] $relative_node <br/>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.
*Signature: public function setAttribute($attr,$value,$id,$xpath,$node)
*Parameters:
** [http://www.php.net/manual/en/language.types.string.php string ] $attr
** [http://www.php.net/manual/en/language.types.string.php string ] $value
** [http://www.php.net/manual/en/language.types.string.php string ] $id <br/>If non-null we perform our xpath query relative to the node with this id
** [http://www.php.net/manual/en/language.types.string.php string ] $xpath <br/>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 if non null gets the element by id relative to that node.  Defaults to null
***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:
** [http://www.php.net/manual/en/language.types.string.php string ] $attr
** [http://www.php.net/manual/en/language.types.string.php string ] $value
** [http://www.php.net/manual/en/class.domnode.php DOMNode ] $node
===setUser()===
Set the user for this template
*Signature: public function setUser($user)
*Parameters:
** [[Class: I2CE_User | I2CE_User]] $user
***Default Value: false
===setVerboseErrors()===
Set the verbosity of errors for validation
*Signature: public function setVerboseErrors($verbose)
*Parameters:
** [http://www.php.net/manual/en/language.types.boolean.php boolean ] $verbose
===setWorkingDir()===
Set the working directory for the document.  Used for validation and document creation.
*Signature: public function setWorkingDir($working_dir)
*Parameters:
** [http://www.php.net/manual/en/language.types.string.php string ] $working_dir
===validate()===
Validates the XML of this template.
*Signature: public function validate()
*Returns: [http://www.php.net/manual/en/language.types.boolean.php boolean ]<br/>true on sucess
===xmlError()===
Prints an XML error nicely.  Based on http://us3.php.net/manual/en/function.libxml-get-errors.php
*Signature: public function xmlError($error,$ret_string)
*Parameters:
** LIBXmlError $error <br/>or array or LIBXMLError
** [http://www.php.net/manual/en/language.pseudo-types.php mixed ] $ret_string <br/>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: [http://www.php.net/manual/en/language.types.string.php string ]
==Inherited Fuzzy Methods==
===userMessage()===
This method is inherited from [[Class: I2CE_Fuzzy#userMessage() | I2CE_Fuzzy->userMessage()]]
 
 
[[Category:Class Documentation]]

Latest revision as of 09:52, 23 August 2013