Class: I2CE TemplateMeister
This article desrcibes the class I2CE_TemplateMeister.
- 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.
Variables
$doc
The top level DOM document that all methods work with.
- Type: public DOMDocument $doc
$xpath
The XPath object used for search for DOM nodes in the document.
- Type: protected DOMXPath $xpath
$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:
- DOMDocument $doc
- string $contentfile
the file to load
_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:
- 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)
- 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:
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:
- DOMNode $parent
- string $tag
- array $attr
- Default Value: array()
- string $value
- Default Value: ""
- boolean $before
defaults to false- Default Value: false
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:
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:
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:
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:
- string $root_file
loadRootText()
Creates a new document and loads the input text
- Signature: public function loadRootText($text)
- Returns: boolean. false on failure
Parameters:
- string $text
;
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:
- DOMNode $node
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:
- boolean $verbose
setWorkingDir()
Set the working directory for the document. Used for validation and document creation.
- Signature: public function setWorkingDir($working_dir)
Parameters:
- string $working_dir
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()