API16

JDocument/getInstance

From Joomla! Documentation

< API16:JDocument
Revision as of 22:05, 12 May 2013 by JoomlaWikiBot (talk | contribs) (removing red link to edit, no existant pages)

The "API16" 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 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]

static 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]

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 edit link to red link >] <! removed transcluded page call, red link never existed >

Examples[edit]

<CodeExamplesForm />