joomla-platform / libraries / joomla / html / toolbar / button.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;

/**
 * Button base class
 *
 * The JButton is the base class for all JButton types
 *
 * @abstract
 * @package     Joomla.Platform
 * @subpackage      HTML
 * @since       11.1
 */
abstract class JButton extends JObject
{
    /**
     * element name
     *
     * This has to be set in the final renderer classes.
     *
     * @var     string
     */
    protected $_name = null;

    /**
     * reference to the object that instantiated the element
     *
     * @var     object
     */
    protected $_parent = null;

    /**
     * Constructor
     *
     * @access protected
     */
    public function __construct($parent = null)
    {
        $this->_parent = $parent;
    }

    /**
     * Get the element name
     *
     * @return  string  type of the parameter
     */
    public function getName()
    {
        return $this->_name;
    }

    public function render(&$definition)
    {
        /*
         * Initialise some variables
         */
        $html   = null;
        $id     = call_user_func_array(array(&$this, 'fetchId'), $definition);
        $action = call_user_func_array(array(&$this, 'fetchButton'), $definition);

        // Build id attribute
        if ($id) {
            $id = "id=\"$id\"";
        }

        // Build the HTML Button
        $html   .= "<li class=\"button\" $id>\n";
        $html   .= $action;
        $html   .= "</li>\n";

        return $html;
    }

    /**
     * Method to get the CSS class name for an icon identifier
     *
     * Can be redefined in the final class
     *
     * @param   string  $identifier Icon identification string
     * @return  string  CSS class name
     * @since   11.1
     */
    public function fetchIconClass($identifier)
    {
        return "icon-32-$identifier";
    }

    /**
     * Get the button id
     *
     * Can be redefined in the final button class
     *
     * @since       11.1
     */
    public function fetchId()
    {
        return;
    }

    /**
     * Get the button
     *
     * Defined in the final button class
     *
     * @since       11.1
     */
    abstract public function fetchButton();
}
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.