API15

JHTMLBehavior/modal

From Joomla! Documentation

< API15:JHTMLBehavior
Revision as of 17:21, 22 March 2010 by Doxiki (talk | contribs) (New page: <span class="editsection" style="font-size:76%;"> <nowiki>[</nowiki>Edit Descripton<nowiki>]</nowiki> </span> {{Description:JHTMLBehavior/modal}...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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.

[Edit Descripton]

Template:Description:JHTMLBehavior/modal

Syntax[edit]

modal($selector='a.modal', $params=array())
Parameter Name Default Value Description
$selector 'a.modal'
$params array()

Defined in[edit]

libraries/joomla/html/html/behavior.php

Importing[edit]

jimport( 'joomla.html.html.behavior' );

Source Body[edit]

function modal($selector='a.modal', $params = array())
{
        static $modals;
        static $included;

        $document =& JFactory::getDocument();

        // Load the necessary files if they haven't yet been loaded
        if (!isset($included)) {

                // Load the javascript and css
                JHTML::script('modal.js');
                JHTML::stylesheet('modal.css');

                $included = true;
        }

        if (!isset($modals)) {
                $modals = array();
        }

        $sig = md5(serialize(array($selector,$params)));
        if (isset($modals[$sig]) && ($modals[$sig])) {
                return;
        }

        // Setup options object
        $opt['ajaxOptions']     = (isset($params['ajaxOptions']) && (is_array($params['ajaxOptions']))) ? $params['ajaxOptions'] : null;
        $opt['size']            = (isset($params['size']) && (is_array($params['size']))) ? $params['size'] : null;
        $opt['onOpen']          = (isset($params['onOpen'])) ? $params['onOpen'] : null;
        $opt['onClose']         = (isset($params['onClose'])) ? $params['onClose'] : null;
        $opt['onUpdate']        = (isset($params['onUpdate'])) ? $params['onUpdate'] : null;
        $opt['onResize']        = (isset($params['onResize'])) ? $params['onResize'] : null;
        $opt['onMove']          = (isset($params['onMove'])) ? $params['onMove'] : null;
        $opt['onShow']          = (isset($params['onShow'])) ? $params['onShow'] : null;
        $opt['onHide']          = (isset($params['onHide'])) ? $params['onHide'] : null;

        $options = JHTMLBehavior::_getJSObject($opt);

        // Attach modal behavior to document
        $document->addScriptDeclaration("
        window.addEvent('domready', function() {

                SqueezeBox.initialize(".$options.");

                $$('".$selector."').each(function(el) {
                        el.addEvent('click', function(e) {
                                new Event(e).stop();
                                SqueezeBox.fromElement(el);
                        });
                });
        });");

        // Set static array
        $modals[$sig] = true;
        return;
}

[Edit See Also] Template:SeeAlso:JHTMLBehavior/modal

Examples[edit]

<CodeExamplesForm />