JDocument/getInstance
From Joomla! Documentation
< API15:JDocument
The "API15" namespace is an archived namespace. This page contains information for a Joomla! version which is no longer supported. It exists only as a historical reference, it will not be improved and its content may be incomplete and/or contain broken links.
Description[edit]
Returns a reference to the global JDocument object, only creating it if it doesn't already exist.
[<! removed edit link to red link >]
<! removed transcluded page call, red link never existed >
Syntax[edit]
& getInstance($type= 'html', $attributes=array())
Parameter Name | Default Value | Description |
---|---|---|
$type | 'html' | $type The document type to instantiate |
$attributes | array() |
Returns[edit]
object The document object.
Defined in[edit]
libraries/joomla/document/document.php
Importing[edit]
jimport( 'joomla.document.document' );
Source Body[edit]
function &getInstance($type = 'html', $attributes = array())
{
static $instances;
if (!isset( $instances )) {
$instances = array();
}
$signature = serialize(array($type, $attributes));
if (empty($instances[$signature]))
{
$type = preg_replace('/[^A-Z0-9_\.-]/i', '', $type);
$path = dirname(__FILE__).DS.$type.DS.$type.'.php';
$ntype = null;
// Check if the document type exists
if ( ! file_exists($path))
{
// Default to the raw format
$ntype = $type;
$type = 'raw';
}
// Determine the path and class
$class = 'JDocument'.$type;
if(!class_exists($class))
{
$path = dirname(__FILE__).DS.$type.DS.$type.'.php';
if (file_exists($path)) {
require_once($path);
} else {
JError::raiseError(500,JText::_('Unable to load document class'));
}
}
$instance = new $class($attributes);
$instances[$signature] =& $instance;
if ( !is_null($ntype) )
{
// Set the type to the Document type originally requested
$instance->setType($ntype);
}
}
return $instances[$signature];
}
[<! removed edit link to red link >] <! removed transcluded page call, red link never existed >
Examples[edit]
Code Examples[edit]