joomla-platform / libraries / joomla / html / toolbar / button / popup.php

<?php
/**
 * @package     Joomla.Platform
 * @subpackage  HTML
 *
 * @copyright   Copyright (C) 2005 - 2011 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */

defined('JPATH_PLATFORM') or die;

/**
 * Renders a popup window button
 *
 * @package     Joomla.Platform
 * @subpackage      HTML
 * @since       11.1
 */
class JButtonPopup extends JButton
{
    /**
     * Button type
     *
     * @var     string
     */
    protected $_name = 'Popup';

    public function fetchButton($type='Popup', $name = '', $text = '', $url = '', $width=640, $height=480, $top=0, $left=0, $onClose = '')
    {
        JHtml::_('behavior.modal');

        $text   = JText::_($text);
        $class  = $this->fetchIconClass($name);
        $doTask = $this->_getCommand($name, $url, $width, $height, $top, $left);

        $html   = "<a class=\"modal\" href=\"$doTask\" rel=\"{handler: 'iframe', size: {x: $width, y: $height}, onClose: function() {".$onClose."}}\">\n";
        $html .= "<span class=\"$class\">\n";
        $html .= "</span>\n";
        $html   .= "$text\n";
        $html   .= "</a>\n";

        return $html;
    }

    /**
     * Get the button id
     *
     * Redefined from JButton class
     *
     * @param       string  $name   Button name
     * @return      string  Button CSS Id
     * @since       11.1
     */
    public function fetchId($type, $name)
    {
        return $this->_parent->getName().'-'."popup-$name";
    }

    /**
     * Get the JavaScript command for the button
     *
     * @param   object  $definition Button definition
     * @return  string  JavaScript command string
     * @since   11.1
     */
    protected function _getCommand($name, $url, $width, $height, $top, $left)
    {
        if (substr($url, 0, 4) !== 'http') {
            $url = JURI::base().$url;
        }

        return $url;
    }
}
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.