API16:JDocument/getInstance
From Joomla! Documentation
Description
Returns the global JDocument object, only creating it if it doesn't already exist.
<! removed transcluded page call, red link never existed >
Syntax
static getInstance($type= 'html', $attributes=array())
| Parameter Name | Default Value | Description |
|---|---|---|
| $type | 'html' | $type The document type to instantiate |
| $attributes | array() |
Returns
object The document object.
Defined in
libraries/joomla/document/document.php
Importing
jimport( 'joomla.document.document' );
Source Body
public static 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 transcluded page call, red link never existed >
Examples
Code Examples