Spade
Mini Shell
| Directory:~$ /home/lmsyaran/public_html/joomla4/ |
| [Home] [System Details] [Kill Me] |
PK��[(�4ZffButton/ConfirmButton.phpnu�[���<?php
/**
* Joomla! Content Management System
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
namespace Joomla\CMS\Toolbar\Button;
defined('JPATH_PLATFORM') or die;
use Joomla\CMS\Layout\FileLayout;
use Joomla\CMS\Toolbar\ToolbarButton;
/**
* Renders a standard button with a confirm dialog
*
* @since 3.0
*/
class ConfirmButton extends ToolbarButton
{
/**
* Button type
*
* @var string
*/
protected $_name = 'Confirm';
/**
* Fetch the HTML for the button
*
* @param string $type Unused string.
* @param string $msg Message to render
* @param string $name Name to be used as apart of the id
* @param string $text Button text
* @param string $task The task associated with the button
* @param boolean $list True to allow use of lists
* @param boolean $hideMenu True to hide the menu on click
*
* @return string HTML string for the button
*
* @since 3.0
*/
public function fetchButton($type = 'Confirm', $msg =
'', $name = '', $text = '', $task =
'', $list = true, $hideMenu = false)
{
// Store all data to the options array for use with JLayout
$options = array();
$options['text'] = \JText::_($text);
$options['msg'] = \JText::_($msg, true);
$options['class'] = $this->fetchIconClass($name);
$options['doTask'] =
$this->_getCommand($options['msg'], $name, $task, $list);
// Instantiate a new JLayoutFile instance and render the layout
$layout = new FileLayout('joomla.toolbar.confirm');
return $layout->render($options);
}
/**
* Get the button CSS Id
*
* @param string $type Button type
* @param string $msg Message to display
* @param string $name Name to be used as apart of the id
* @param string $text Button text
* @param string $task The task associated with the button
* @param boolean $list True to allow use of lists
* @param boolean $hideMenu True to hide the menu on click
*
* @return string Button CSS Id
*
* @since 3.0
*/
public function fetchId($type = 'Confirm', $msg = '',
$name = '', $text = '', $task = '', $list =
true, $hideMenu = false)
{
return $this->_parent->getName() . '-' . $name;
}
/**
* Get the JavaScript command for the button
*
* @param object $msg The message to display.
* @param string $name Not used.
* @param string $task The task used by the application
* @param boolean $list True is requires a list confirmation.
*
* @return string JavaScript command string
*
* @since 3.0
*/
protected function _getCommand($msg, $name, $task, $list)
{
\JText::script('JLIB_HTML_PLEASE_MAKE_A_SELECTION_FROM_THE_LIST');
$cmd = "if (confirm('" . $msg . "')) {
Joomla.submitbutton('" . $task . "'); }";
if ($list)
{
$alert =
"alert(Joomla.JText._('JLIB_HTML_PLEASE_MAKE_A_SELECTION_FROM_THE_LIST'));";
$cmd = "if (document.adminForm.boxchecked.value == 0) { " .
$alert . " } else { " . $cmd . " }";
}
return $cmd;
}
}
PK��[%��]��Button/CustomButton.phpnu�[���<?php
/**
* Joomla! Content Management System
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
namespace Joomla\CMS\Toolbar\Button;
defined('JPATH_PLATFORM') or die;
use Joomla\CMS\Toolbar\ToolbarButton;
/**
* Renders a custom button
*
* @since 3.0
*/
class CustomButton extends ToolbarButton
{
/**
* Button type
*
* @var string
*/
protected $_name = 'Custom';
/**
* Fetch the HTML for the button
*
* @param string $type Button type, unused string.
* @param string $html HTML string for the button
* @param string $id CSS id for the button
*
* @return string HTML string for the button
*
* @since 3.0
*/
public function fetchButton($type = 'Custom', $html =
'', $id = 'custom')
{
return $html;
}
/**
* Get the button CSS Id
*
* @param string $type Not used.
* @param string $html Not used.
* @param string $id The id prefix for the button.
*
* @return string Button CSS Id
*
* @since 3.0
*/
public function fetchId($type = 'Custom', $html = '',
$id = 'custom')
{
return $this->_parent->getName() . '-' . $id;
}
}
PK��[�ܩE� � Button/HelpButton.phpnu�[���<?php
/**
* Joomla! Content Management System
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
namespace Joomla\CMS\Toolbar\Button;
defined('JPATH_PLATFORM') or die;
use Joomla\CMS\Help\Help;
use Joomla\CMS\Layout\FileLayout;
use Joomla\CMS\Toolbar\ToolbarButton;
/**
* Renders a help popup window button
*
* @since 3.0
*/
class HelpButton extends ToolbarButton
{
/**
* @var string Button type
*/
protected $_name = 'Help';
/**
* Fetches the button HTML code.
*
* @param string $type Unused string.
* @param string $ref The name of the help screen (its key
reference).
* @param boolean $com Use the help file in the component
directory.
* @param string $override Use this URL instead of any other.
* @param string $component Name of component to get Help (null for
current component)
*
* @return string
*
* @since 3.0
*/
public function fetchButton($type = 'Help', $ref = '',
$com = false, $override = null, $component = null)
{
// Store all data to the options array for use with JLayout
$options = array();
$options['text'] = \JText::_('JTOOLBAR_HELP');
$options['doTask'] = $this->_getCommand($ref, $com,
$override, $component);
// Instantiate a new JLayoutFile instance and render the layout
$layout = new FileLayout('joomla.toolbar.help');
return $layout->render($options);
}
/**
* Get the button id
*
* Redefined from JButton class
*
* @return string Button CSS Id
*
* @since 3.0
*/
public function fetchId()
{
return $this->_parent->getName() . '-help';
}
/**
* Get the JavaScript command for the button
*
* @param string $ref The name of the help screen (its key
reference).
* @param boolean $com Use the help file in the component
directory.
* @param string $override Use this URL instead of any other.
* @param string $component Name of component to get Help (null for
current component)
*
* @return string JavaScript command string
*
* @since 3.0
*/
protected function _getCommand($ref, $com, $override, $component)
{
// Get Help URL
$url = Help::createUrl($ref, $com, $override, $component);
$url = json_encode(htmlspecialchars($url, ENT_QUOTES), JSON_HEX_APOS);
$url = substr($url, 1, -1);
$cmd = "Joomla.popupWindow('$url', '" .
\JText::_('JHELP', true) . "', 700, 500, 1)";
return $cmd;
}
}
PK��[g��]BBButton/LinkButton.phpnu�[���<?php
/**
* Joomla! Content Management System
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
namespace Joomla\CMS\Toolbar\Button;
defined('JPATH_PLATFORM') or die;
use Joomla\CMS\Layout\FileLayout;
use Joomla\CMS\Toolbar\ToolbarButton;
/**
* Renders a link button
*
* @since 3.0
*/
class LinkButton extends ToolbarButton
{
/**
* Button type
* @var string
*/
protected $_name = 'Link';
/**
* Fetch the HTML for the button
*
* @param string $type Unused string.
* @param string $name Name to be used as apart of the id
* @param string $text Button text
* @param string $url The link url
*
* @return string HTML string for the button
*
* @since 3.0
*/
public function fetchButton($type = 'Link', $name =
'back', $text = '', $url = null)
{
// Store all data to the options array for use with JLayout
$options = array();
$options['text'] = \JText::_($text);
$options['class'] = $this->fetchIconClass($name);
$options['doTask'] = $this->_getCommand($url);
// Instantiate a new JLayoutFile instance and render the layout
$layout = new FileLayout('joomla.toolbar.link');
return $layout->render($options);
}
/**
* Get the button CSS Id
*
* @param string $type The button type.
* @param string $name The name of the button.
*
* @return string Button CSS Id
*
* @since 3.0
*/
public function fetchId($type = 'Link', $name = '')
{
return $this->_parent->getName() . '-' . $name;
}
/**
* Get the JavaScript command for the button
*
* @param object $url Button definition
*
* @return string JavaScript command string
*
* @since 3.0
*/
protected function _getCommand($url)
{
return $url;
}
}
PK��[}�d
d
Button/PopupButton.phpnu�[���<?php
/**
* Joomla! Content Management System
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
namespace Joomla\CMS\Toolbar\Button;
defined('JPATH_PLATFORM') or die;
use Joomla\CMS\Layout\FileLayout;
use Joomla\CMS\Toolbar\ToolbarButton;
/**
* Renders a modal window button
*
* @since 3.0
*/
class PopupButton extends ToolbarButton
{
/**
* Button type
*
* @var string
*/
protected $_name = 'Popup';
/**
* Fetch the HTML for the button
*
* @param string $type Unused string, formerly button type.
* @param string $name Modal name, used to generate element ID
* @param string $text The link text
* @param string $url URL for popup
* @param integer $width Width of popup
* @param integer $height Height of popup
* @param integer $top Top attribute. [@deprecated Unused, will
be removed in 4.0]
* @param integer $left Left attribute. [@deprecated Unused, will
be removed in 4.0]
* @param string $onClose JavaScript for the onClose event.
* @param string $title The title text
* @param string $footer The footer html
*
* @return string HTML string for the button
*
* @since 3.0
*/
public function fetchButton($type = 'Modal', $name =
'', $text = '', $url = '', $width = 640,
$height = 480, $top = 0, $left = 0,
$onClose = '', $title = '', $footer = null)
{
// If no $title is set, use the $text element
if ($title === '')
{
$title = $text;
}
// Store all data to the options array for use with JLayout
$options = array();
$options['name'] = $name;
$options['text'] = \JText::_($text);
$options['title'] = \JText::_($title);
$options['class'] = $this->fetchIconClass($name);
$options['doTask'] = $this->_getCommand($url);
// Instantiate a new JLayoutFile instance and render the layout
$layout = new FileLayout('joomla.toolbar.popup');
$html = array();
$html[] = $layout->render($options);
// Place modal div and scripts in a new div
$html[] = '<div class="btn-group" style="width: 0;
margin: 0">';
// Build the options array for the modal
$params = array();
$params['title'] = $options['title'];
$params['url'] = $options['doTask'];
$params['height'] = $height;
$params['width'] = $width;
if (isset($footer))
{
$params['footer'] = $footer;
}
$html[] = \JHtml::_('bootstrap.renderModal', 'modal-'
. $name, $params);
// If an $onClose event is passed, add it to the modal JS object
if ($onClose !== '')
{
$html[] = '<script>'
. 'jQuery(\'#modal-' . $name .
'\').on(\'hide\', function () {' . $onClose .
';});'
. '</script>';
}
$html[] = '</div>';
return implode("\n", $html);
}
/**
* Get the button id
*
* @param string $type Button type
* @param string $name Button name
*
* @return string Button CSS Id
*
* @since 3.0
*/
public function fetchId($type, $name)
{
return $this->_parent->getName() . '-popup-' . $name;
}
/**
* Get the JavaScript command for the button
*
* @param string $url URL for popup
*
* @return string JavaScript command string
*
* @since 3.0
*/
private function _getCommand($url)
{
if (strpos($url, 'http') !== 0)
{
$url = \JUri::base() . $url;
}
return $url;
}
}
PK��[#�h��Button/SeparatorButton.phpnu�[���<?php
/**
* Joomla! Content Management System
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
namespace Joomla\CMS\Toolbar\Button;
defined('JPATH_PLATFORM') or die;
use Joomla\CMS\Layout\FileLayout;
use Joomla\CMS\Toolbar\ToolbarButton;
/**
* Renders a button separator
*
* @since 3.0
*/
class SeparatorButton extends ToolbarButton
{
/**
* Button type
*
* @var string
*/
protected $_name = 'Separator';
/**
* Get the HTML for a separator in the toolbar
*
* @param array &$definition Class name and custom width
*
* @return string The HTML for the separator
*
* @see ToolbarButton::render()
* @since 3.0
*/
public function render(&$definition)
{
// Store all data to the options array for use with JLayout
$options = array();
// Separator class name
$options['class'] = empty($definition[1]) ? '' :
$definition[1];
// Custom width
$options['style'] = empty($definition[2]) ? '' :
' style="width:' . (int) $definition[2] .
'px;"';
// Instantiate a new JLayoutFile instance and render the layout
$layout = new FileLayout('joomla.toolbar.separator');
return $layout->render($options);
}
/**
* Empty implementation (not required for separator)
*
* @return void
*
* @since 3.0
*/
public function fetchButton()
{
}
}
PK��[��� � Button/SliderButton.phpnu�[���<?php
/**
* Joomla! Content Management System
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
namespace Joomla\CMS\Toolbar\Button;
defined('JPATH_PLATFORM') or die;
use Joomla\CMS\Layout\FileLayout;
use Joomla\CMS\Toolbar\ToolbarButton;
/**
* Renders a button to render an HTML element in a slider container
*
* @since 3.0
*/
class SliderButton extends ToolbarButton
{
/**
* Button type
*
* @var string
*/
protected $_name = 'Slider';
/**
* Fetch the HTML for the button
*
* @param string $type Unused string, formerly button type.
* @param string $name Button name
* @param string $text The link text
* @param string $url URL for popup
* @param integer $width Width of popup
* @param integer $height Height of popup
* @param string $onClose JavaScript for the onClose event.
*
* @return string HTML string for the button
*
* @since 3.0
*/
public function fetchButton($type = 'Slider', $name =
'', $text = '', $url = '', $width = 640,
$height = 480, $onClose = '')
{
\JHtml::_('script', 'jui/cms.js',
array('version' => 'auto', 'relative'
=> true));
// Store all data to the options array for use with JLayout
$options = array();
$options['text'] = \JText::_($text);
$options['name'] = $name;
$options['class'] = $this->fetchIconClass($name);
$options['onClose'] = '';
$doTask = $this->_getCommand($url);
$options['doTask'] = 'Joomla.setcollapse(\'' .
$doTask . '\', \'' . $name . '\',
\'' . $height . '\');';
if ($onClose)
{
$options['onClose'] = ' rel="{onClose: function()
{' . $onClose . '}}"';
}
// Instantiate a new JLayoutFile instance and render the layout
$layout = new FileLayout('joomla.toolbar.slider');
return $layout->render($options);
}
/**
* Get the button id
*
* @param string $type Button type
* @param string $name Button name
*
* @return string Button CSS Id
*
* @since 3.0
*/
public function fetchId($type, $name)
{
return $this->_parent->getName() . '-slider-' . $name;
}
/**
* Get the JavaScript command for the button
*
* @param string $url URL for popup
*
* @return string JavaScript command string
*
* @since 3.0
*/
private function _getCommand($url)
{
if (strpos($url, 'http') !== 0)
{
$url = \JUri::base() . $url;
}
return $url;
}
}
PK��[�����Button/StandardButton.phpnu�[���<?php
/**
* Joomla! Content Management System
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
namespace Joomla\CMS\Toolbar\Button;
defined('JPATH_PLATFORM') or die;
use Joomla\CMS\Layout\FileLayout;
use Joomla\CMS\Toolbar\ToolbarButton;
/**
* Renders a standard button
*
* @since 3.0
*/
class StandardButton extends ToolbarButton
{
/**
* Button type
*
* @var string
*/
protected $_name = 'Standard';
/**
* Fetch the HTML for the button
*
* @param string $type Unused string.
* @param string $name The name of the button icon class.
* @param string $text Button text.
* @param string $task Task associated with the button.
* @param boolean $list True to allow lists
*
* @return string HTML string for the button
*
* @since 3.0
*/
public function fetchButton($type = 'Standard', $name =
'', $text = '', $task = '', $list = true)
{
// Store all data to the options array for use with JLayout
$options = array();
$options['text'] = \JText::_($text);
$options['class'] = $this->fetchIconClass($name);
$options['doTask'] =
$this->_getCommand($options['text'], $task, $list);
$options['btnClass'] = 'btn btn-small button-' .
$name;
if ($name === 'apply' || $name === 'new')
{
$options['btnClass'] .= ' btn-success';
$options['class'] .= ' icon-white';
}
// Instantiate a new JLayoutFile instance and render the layout
$layout = new FileLayout('joomla.toolbar.standard');
return $layout->render($options);
}
/**
* Get the button CSS Id
*
* @param string $type Unused string.
* @param string $name Name to be used as apart of the id
* @param string $text Button text
* @param string $task The task associated with the button
* @param boolean $list True to allow use of lists
* @param boolean $hideMenu True to hide the menu on click
*
* @return string Button CSS Id
*
* @since 3.0
*/
public function fetchId($type = 'Standard', $name =
'', $text = '', $task = '', $list = true,
$hideMenu = false)
{
return $this->_parent->getName() . '-' . $name;
}
/**
* Get the JavaScript command for the button
*
* @param string $name The task name as seen by the user
* @param string $task The task used by the application
* @param boolean $list True is requires a list confirmation.
*
* @return string JavaScript command string
*
* @since 3.0
*/
protected function _getCommand($name, $task, $list)
{
\JText::script('JLIB_HTML_PLEASE_MAKE_A_SELECTION_FROM_THE_LIST');
$cmd = "Joomla.submitbutton('" . $task .
"');";
if ($list)
{
$alert =
"alert(Joomla.JText._('JLIB_HTML_PLEASE_MAKE_A_SELECTION_FROM_THE_LIST'));";
$cmd = "if (document.adminForm.boxchecked.value == 0) { " .
$alert . " } else { " . $cmd . " }";
}
return $cmd;
}
}
PK��[F�CVVToolbar.phpnu�[���<?php
/**
* Joomla! Content Management System
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
namespace Joomla\CMS\Toolbar;
defined('JPATH_PLATFORM') or die;
use Joomla\CMS\Layout\FileLayout;
/**
* ToolBar handler
*
* @since 1.5
*/
class Toolbar
{
/**
* Toolbar name
*
* @var string
*/
protected $_name = array();
/**
* Toolbar array
*
* @var array
*/
protected $_bar = array();
/**
* Loaded buttons
*
* @var array
*/
protected $_buttons = array();
/**
* Directories, where button types can be stored.
*
* @var array
*/
protected $_buttonPath = array();
/**
* Stores the singleton instances of various toolbar.
*
* @var Toolbar
* @since 2.5
*/
protected static $instances = array();
/**
* Constructor
*
* @param string $name The toolbar name.
*
* @since 1.5
*/
public function __construct($name = 'toolbar')
{
$this->_name = $name;
// Set base path to find buttons.
$this->_buttonPath[] = __DIR__ . '/button';
}
/**
* Returns the global Toolbar object, only creating it if it
* doesn't already exist.
*
* @param string $name The name of the toolbar.
*
* @return \JToolbar The JToolbar object.
*
* @since 1.5
*/
public static function getInstance($name = 'toolbar')
{
if (empty(self::$instances[$name]))
{
self::$instances[$name] = new Toolbar($name);
}
return self::$instances[$name];
}
/**
* Set a value
*
* @return string The set value.
*
* @since 1.5
*/
public function appendButton()
{
// Push button onto the end of the toolbar array.
$btn = func_get_args();
$this->_bar[] = $btn;
return true;
}
/**
* Get the list of toolbar links.
*
* @return array
*
* @since 1.6
*/
public function getItems()
{
return $this->_bar;
}
/**
* Get the name of the toolbar.
*
* @return string
*
* @since 1.6
*/
public function getName()
{
return $this->_name;
}
/**
* Get a value.
*
* @return string
*
* @since 1.5
*/
public function prependButton()
{
// Insert button into the front of the toolbar array.
$btn = func_get_args();
array_unshift($this->_bar, $btn);
return true;
}
/**
* Render a toolbar.
*
* @return string HTML for the toolbar.
*
* @since 1.5
*/
public function render()
{
$html = array();
// Start toolbar div.
$layout = new FileLayout('joomla.toolbar.containeropen');
$html[] = $layout->render(array('id' =>
$this->_name));
// Render each button in the toolbar.
foreach ($this->_bar as $button)
{
$html[] = $this->renderButton($button);
}
// End toolbar div.
$layout = new FileLayout('joomla.toolbar.containerclose');
$html[] = $layout->render(array());
return implode('', $html);
}
/**
* Render a button.
*
* @param object &$node A toolbar node.
*
* @return string
*
* @since 1.5
*/
public function renderButton(&$node)
{
// Get the button type.
$type = $node[0];
$button = $this->loadButtonType($type);
// Check for error.
if ($button === false)
{
return \JText::sprintf('JLIB_HTML_BUTTON_NOT_DEFINED', $type);
}
return $button->render($node);
}
/**
* Loads a button type.
*
* @param string $type Button Type
* @param boolean $new False by default
*
* @return boolean
*
* @since 1.5
*/
public function loadButtonType($type, $new = false)
{
$signature = md5($type);
if ($new === false && isset($this->_buttons[$signature]))
{
return $this->_buttons[$signature];
}
if (!class_exists('Joomla\\CMS\\Toolbar\\ToolbarButton'))
{
\JLog::add(\JText::_('JLIB_HTML_BUTTON_BASE_CLASS'),
\JLog::WARNING, 'jerror');
return false;
}
$buttonClass = $this->loadButtonClass($type);
if (!$buttonClass)
{
if (isset($this->_buttonPath))
{
$dirs = $this->_buttonPath;
}
else
{
$dirs = array();
}
$file =
\JFilterInput::getInstance()->clean(str_replace('_',
DIRECTORY_SEPARATOR, strtolower($type)) . '.php',
'path');
\JLoader::import('joomla.filesystem.path');
if ($buttonFile = \JPath::find($dirs, $file))
{
include_once $buttonFile;
}
else
{
\JLog::add(\JText::sprintf('JLIB_HTML_BUTTON_NO_LOAD',
$buttonClass, $buttonFile), \JLog::WARNING, 'jerror');
return false;
}
$buttonClass = $this->loadButtonClass($type);
if (!$buttonClass)
{
return false;
}
}
$this->_buttons[$signature] = new $buttonClass($this);
return $this->_buttons[$signature];
}
/**
* Load the button class including the deprecated ones.
*
* @param string $type Button Type
*
* @return string|null
*
* @since 3.8.0
*/
private function loadButtonClass($type)
{
$buttonClasses = array(
'Joomla\\CMS\\Toolbar\\Button\\' . ucfirst($type) .
'Button',
// @deprecated 3.8.0
'JToolbarButton' . ucfirst($type),
// @deprecated 3.1.4 Remove the acceptance of legacy classes starting
with JButton.
'JButton' . ucfirst($type)
);
foreach ($buttonClasses as $buttonClass)
{
if (!class_exists($buttonClass))
{
continue;
}
return $buttonClass;
}
return null;
}
/**
* Add a directory where Toolbar should search for button types in LIFO
order.
*
* You may either pass a string or an array of directories.
*
* Toolbar will be searching for an element type in the same order you
* added them. If the parameter type cannot be found in the custom
folders,
* it will look in libraries/joomla/html/toolbar/button.
*
* @param mixed $path Directory or directories to search.
*
* @return void
*
* @since 1.5
*/
public function addButtonPath($path)
{
// Loop through the path directories.
foreach ((array) $path as $dir)
{
// No surrounding spaces allowed!
$dir = trim($dir);
// Add trailing separators as needed.
if (substr($dir, -1) !== DIRECTORY_SEPARATOR)
{
// Directory
$dir .= DIRECTORY_SEPARATOR;
}
// Add to the top of the search dirs.
array_unshift($this->_buttonPath, $dir);
}
}
}
PK��[��% % ToolbarButton.phpnu�[���<?php
/**
* Joomla! Content Management System
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
namespace Joomla\CMS\Toolbar;
defined('JPATH_PLATFORM') or die;
use Joomla\CMS\Layout\FileLayout;
/**
* Button base class
*
* The JButton is the base class for all JButton types
*
* @since 3.0
*/
abstract class ToolbarButton
{
/**
* 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 \JButton
*/
protected $_parent = null;
/**
* Constructor
*
* @param object $parent The parent
*/
public function __construct($parent = null)
{
$this->_parent = $parent;
}
/**
* Get the element name
*
* @return string type of the parameter
*
* @since 3.0
*/
public function getName()
{
return $this->_name;
}
/**
* Get the HTML to render the button
*
* @param array &$definition Parameters to be passed
*
* @return string
*
* @since 3.0
*/
public function render(&$definition)
{
/*
* Initialise some variables
*/
$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
$options = array();
$options['id'] = $id;
$options['action'] = $action;
$layout = new FileLayout('joomla.toolbar.base');
return $layout->render($options);
}
/**
* 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 3.0
*/
public function fetchIconClass($identifier)
{
// It's an ugly hack, but this allows templates to define the icon
classes for the toolbar
$layout = new FileLayout('joomla.toolbar.iconclass');
return $layout->render(array('icon' => $identifier));
}
/**
* Get the button
*
* Defined in the final button class
*
* @return string
*
* @since 3.0
*/
abstract public function fetchButton();
}
PK��[�A[HGHGToolbarHelper.phpnu�[���<?php
/**
* Joomla! Content Management System
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
namespace Joomla\CMS\Toolbar;
defined('_JEXEC') or die;
use Joomla\CMS\Layout\FileLayout;
use Joomla\CMS\Table\Table;
use Joomla\CMS\Factory;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Uri\Uri;
/**
* Utility class for the button bar.
*
* @since 1.5
*/
abstract class ToolbarHelper
{
/**
* Title cell.
* For the title and toolbar to be rendered correctly,
* this title function must be called before the starttable function and
the toolbars icons
* this is due to the nature of how the css has been used to position the
title in respect to the toolbar.
*
* @param string $title The title.
* @param string $icon The space-separated names of the image.
*
* @return void
*
* @since 1.5
*/
public static function title($title, $icon = 'generic.png')
{
$layout = new FileLayout('joomla.toolbar.title');
$html = $layout->render(array('title' => $title,
'icon' => $icon));
$app = Factory::getApplication();
$app->JComponentTitle = $html;
Factory::getDocument()->setTitle(strip_tags($title) . ' - '
. $app->get('sitename') . ' - ' .
Text::_('JADMINISTRATION'));
}
/**
* Writes a spacer cell.
*
* @param string $width The width for the cell
*
* @return void
*
* @since 1.5
*/
public static function spacer($width = '')
{
$bar = Toolbar::getInstance('toolbar');
// Add a spacer.
$bar->appendButton('Separator', 'spacer', $width);
}
/**
* Writes a divider between menu buttons
*
* @return void
*
* @since 1.5
*/
public static function divider()
{
$bar = Toolbar::getInstance('toolbar');
// Add a divider.
$bar->appendButton('Separator', 'divider');
}
/**
* Writes a custom option and task button for the button bar.
*
* @param string $task The task to perform (picked up by the
switch($task) blocks).
* @param string $icon The image to display.
* @param string $iconOver The image to display when moused over.
* @param string $alt The alt text for the icon image.
* @param bool $listSelect True if required to check that a standard
list item is checked.
*
* @return void
*
* @since 1.5
*/
public static function custom($task = '', $icon = '',
$iconOver = '', $alt = '', $listSelect = true)
{
$bar = Toolbar::getInstance('toolbar');
// Strip extension.
$icon = preg_replace('#\.[^.]*$#', '', $icon);
// Add a standard button.
$bar->appendButton('Standard', $icon, $alt, $task,
$listSelect);
}
/**
* Writes a preview button for a given option (opens a popup window).
*
* @param string $url The name of the popup file (excluding
the file extension)
* @param bool $updateEditors Unused
*
* @return void
*
* @since 1.5
*/
public static function preview($url = '', $updateEditors =
false)
{
$bar = Toolbar::getInstance('toolbar');
// Add a preview button.
$bar->appendButton('Popup', 'preview',
'Preview', $url . '&task=preview');
}
/**
* Writes a preview button for a given option (opens a popup window).
*
* @param string $ref The name of the popup file (excluding the
file extension for an xml file).
* @param bool $com Use the help file in the component
directory.
* @param string $override Use this URL instead of any other
* @param string $component Name of component to get Help (null for
current component)
*
* @return void
*
* @since 1.5
*/
public static function help($ref, $com = false, $override = null,
$component = null)
{
$bar = Toolbar::getInstance('toolbar');
// Add a help button.
$bar->appendButton('Help', $ref, $com, $override,
$component);
}
/**
* Writes a cancel button that will go back to the previous page without
doing
* any other operation.
*
* @param string $alt Alternative text.
* @param string $href URL of the href attribute.
*
* @return void
*
* @since 1.5
*/
public static function back($alt = 'JTOOLBAR_BACK', $href =
'javascript:history.back();')
{
$bar = Toolbar::getInstance('toolbar');
// Add a back button.
$bar->appendButton('Link', 'back', $alt, $href);
}
/**
* Creates a button to redirect to a link
*
* @param string $url The link url
* @param string $text Button text
* @param string $name Name to be used as apart of the id
*
* @return void
*
* @since 3.5
*/
public static function link($url, $text, $name = 'link')
{
$bar = Toolbar::getInstance('toolbar');
$bar->appendButton('Link', $name, $text, $url);
}
/**
* Writes a media_manager button.
*
* @param string $directory The subdirectory to upload the media to.
* @param string $alt An override for the alt text.
*
* @return void
*
* @since 1.5
*/
public static function media_manager($directory = '', $alt =
'JTOOLBAR_UPLOAD')
{
$bar = Toolbar::getInstance('toolbar');
// Add an upload button.
$bar->appendButton('Popup', 'upload', $alt,
'index.php?option=com_media&tmpl=component&task=popupUpload&folder='
. $directory, 800, 520);
}
/**
* Writes a common 'default' button for a record.
*
* @param string $task An override for the task.
* @param string $alt An override for the alt text.
*
* @return void
*
* @since 1.5
*/
public static function makeDefault($task = 'default', $alt =
'JTOOLBAR_DEFAULT')
{
$bar = Toolbar::getInstance('toolbar');
// Add a default button.
$bar->appendButton('Standard', 'default', $alt,
$task, true);
}
/**
* Writes a common 'assign' button for a record.
*
* @param string $task An override for the task.
* @param string $alt An override for the alt text.
*
* @return void
*
* @since 1.5
*/
public static function assign($task = 'assign', $alt =
'JTOOLBAR_ASSIGN')
{
$bar = Toolbar::getInstance('toolbar');
// Add an assign button.
$bar->appendButton('Standard', 'assign', $alt,
$task, true);
}
/**
* Writes the common 'new' icon for the button bar.
*
* @param string $task An override for the task.
* @param string $alt An override for the alt text.
* @param boolean $check True if required to check that a standard
list item is checked.
*
* @return void
*
* @since 1.5
*/
public static function addNew($task = 'add', $alt =
'JTOOLBAR_NEW', $check = false)
{
$bar = Toolbar::getInstance('toolbar');
// Add a new button.
$bar->appendButton('Standard', 'new', $alt, $task,
$check);
}
/**
* Writes a common 'publish' button.
*
* @param string $task An override for the task.
* @param string $alt An override for the alt text.
* @param boolean $check True if required to check that a standard
list item is checked.
*
* @return void
*
* @since 1.5
*/
public static function publish($task = 'publish', $alt =
'JTOOLBAR_PUBLISH', $check = false)
{
$bar = Toolbar::getInstance('toolbar');
// Add a publish button.
$bar->appendButton('Standard', 'publish', $alt,
$task, $check);
}
/**
* Writes a common 'publish' button for a list of records.
*
* @param string $task An override for the task.
* @param string $alt An override for the alt text.
*
* @return void
*
* @since 1.5
*/
public static function publishList($task = 'publish', $alt =
'JTOOLBAR_PUBLISH')
{
$bar = Toolbar::getInstance('toolbar');
// Add a publish button (list).
$bar->appendButton('Standard', 'publish', $alt,
$task, true);
}
/**
* Writes a common 'unpublish' button.
*
* @param string $task An override for the task.
* @param string $alt An override for the alt text.
* @param boolean $check True if required to check that a standard
list item is checked.
*
* @return void
*
* @since 1.5
*/
public static function unpublish($task = 'unpublish', $alt =
'JTOOLBAR_UNPUBLISH', $check = false)
{
$bar = Toolbar::getInstance('toolbar');
// Add an unpublish button
$bar->appendButton('Standard', 'unpublish', $alt,
$task, $check);
}
/**
* Writes a common 'unpublish' button for a list of records.
*
* @param string $task An override for the task.
* @param string $alt An override for the alt text.
*
* @return void
*
* @since 1.5
*/
public static function unpublishList($task = 'unpublish', $alt =
'JTOOLBAR_UNPUBLISH')
{
$bar = Toolbar::getInstance('toolbar');
// Add an unpublish button (list).
$bar->appendButton('Standard', 'unpublish', $alt,
$task, true);
}
/**
* Writes a common 'archive' button for a list of records.
*
* @param string $task An override for the task.
* @param string $alt An override for the alt text.
*
* @return void
*
* @since 1.5
*/
public static function archiveList($task = 'archive', $alt =
'JTOOLBAR_ARCHIVE')
{
$bar = Toolbar::getInstance('toolbar');
// Add an archive button.
$bar->appendButton('Standard', 'archive', $alt,
$task, true);
}
/**
* Writes an unarchive button for a list of records.
*
* @param string $task An override for the task.
* @param string $alt An override for the alt text.
*
* @return void
*
* @since 1.5
*/
public static function unarchiveList($task = 'unarchive', $alt =
'JTOOLBAR_UNARCHIVE')
{
$bar = Toolbar::getInstance('toolbar');
// Add an unarchive button (list).
$bar->appendButton('Standard', 'unarchive', $alt,
$task, true);
}
/**
* Writes a common 'edit' button for a list of records.
*
* @param string $task An override for the task.
* @param string $alt An override for the alt text.
*
* @return void
*
* @since 1.5
*/
public static function editList($task = 'edit', $alt =
'JTOOLBAR_EDIT')
{
$bar = Toolbar::getInstance('toolbar');
// Add an edit button.
$bar->appendButton('Standard', 'edit', $alt,
$task, true);
}
/**
* Writes a common 'edit' button for a template html.
*
* @param string $task An override for the task.
* @param string $alt An override for the alt text.
*
* @return void
*
* @since 1.5
*/
public static function editHtml($task = 'edit_source', $alt =
'JTOOLBAR_EDIT_HTML')
{
$bar = Toolbar::getInstance('toolbar');
// Add an edit html button.
$bar->appendButton('Standard', 'edithtml', $alt,
$task, true);
}
/**
* Writes a common 'edit' button for a template css.
*
* @param string $task An override for the task.
* @param string $alt An override for the alt text.
*
* @return void
*
* @since 1.5
*/
public static function editCss($task = 'edit_css', $alt =
'JTOOLBAR_EDIT_CSS')
{
$bar = Toolbar::getInstance('toolbar');
// Add an edit css button (hide).
$bar->appendButton('Standard', 'editcss', $alt,
$task, true);
}
/**
* Writes a common 'delete' button for a list of records.
*
* @param string $msg Postscript for the 'are you sure'
message.
* @param string $task An override for the task.
* @param string $alt An override for the alt text.
*
* @return void
*
* @since 1.5
*/
public static function deleteList($msg = '', $task =
'remove', $alt = 'JTOOLBAR_DELETE')
{
$bar = Toolbar::getInstance('toolbar');
// Add a delete button.
if ($msg)
{
$bar->appendButton('Confirm', $msg, 'delete',
$alt, $task, true);
}
else
{
$bar->appendButton('Standard', 'delete', $alt,
$task, true);
}
}
/**
* Writes a common 'trash' button for a list of records.
*
* @param string $task An override for the task.
* @param string $alt An override for the alt text.
* @param bool $check True to allow lists.
*
* @return void
*
* @since 1.5
*/
public static function trash($task = 'remove', $alt =
'JTOOLBAR_TRASH', $check = true)
{
$bar = Toolbar::getInstance('toolbar');
// Add a trash button.
$bar->appendButton('Standard', 'trash', $alt,
$task, $check, false);
}
/**
* Writes a save button for a given option.
* Apply operation leads to a save action only (does not leave edit mode).
*
* @param string $task An override for the task.
* @param string $alt An override for the alt text.
*
* @return void
*
* @since 1.5
*/
public static function apply($task = 'apply', $alt =
'JTOOLBAR_APPLY')
{
$bar = Toolbar::getInstance('toolbar');
// Add an apply button
$bar->appendButton('Standard', 'apply', $alt,
$task, false);
}
/**
* Writes a save button for a given option.
* Save operation leads to a save and then close action.
*
* @param string $task An override for the task.
* @param string $alt An override for the alt text.
*
* @return void
*
* @since 1.5
*/
public static function save($task = 'save', $alt =
'JTOOLBAR_SAVE')
{
$bar = Toolbar::getInstance('toolbar');
// Add a save button.
$bar->appendButton('Standard', 'save', $alt,
$task, false);
}
/**
* Writes a save and create new button for a given option.
* Save and create operation leads to a save and then add action.
*
* @param string $task An override for the task.
* @param string $alt An override for the alt text.
*
* @return void
*
* @since 1.6
*/
public static function save2new($task = 'save2new', $alt =
'JTOOLBAR_SAVE_AND_NEW')
{
$bar = Toolbar::getInstance('toolbar');
// Add a save and create new button.
$bar->appendButton('Standard', 'save-new', $alt,
$task, false);
}
/**
* Writes a save as copy button for a given option.
* Save as copy operation leads to a save after clearing the key,
* then returns user to edit mode with new key.
*
* @param string $task An override for the task.
* @param string $alt An override for the alt text.
*
* @return void
*
* @since 1.6
*/
public static function save2copy($task = 'save2copy', $alt =
'JTOOLBAR_SAVE_AS_COPY')
{
$bar = Toolbar::getInstance('toolbar');
// Add a save and create new button.
$bar->appendButton('Standard', 'save-copy', $alt,
$task, false);
}
/**
* Writes a checkin button for a given option.
*
* @param string $task An override for the task.
* @param string $alt An override for the alt text.
* @param boolean $check True if required to check that a standard
list item is checked.
*
* @return void
*
* @since 1.7
*/
public static function checkin($task = 'checkin', $alt =
'JTOOLBAR_CHECKIN', $check = true)
{
$bar = Toolbar::getInstance('toolbar');
// Add a save and create new button.
$bar->appendButton('Standard', 'checkin', $alt,
$task, $check);
}
/**
* Writes a cancel button and invokes a cancel operation (eg a checkin).
*
* @param string $task An override for the task.
* @param string $alt An override for the alt text.
*
* @return void
*
* @since 1.5
*/
public static function cancel($task = 'cancel', $alt =
'JTOOLBAR_CANCEL')
{
$bar = Toolbar::getInstance('toolbar');
// Add a cancel button.
$bar->appendButton('Standard', 'cancel', $alt,
$task, false);
}
/**
* Writes a configuration button and invokes a cancel operation (eg a
checkin).
*
* @param string $component The name of the component, eg,
com_content.
* @param integer $height The height of the popup. [UNUSED]
* @param integer $width The width of the popup. [UNUSED]
* @param string $alt The name of the button.
* @param string $path An alternative path for the configuation
xml relative to JPATH_SITE.
*
* @return void
*
* @since 1.5
*/
public static function preferences($component, $height = '550',
$width = '875', $alt = 'JToolbar_Options', $path =
'')
{
$component = urlencode($component);
$path = urlencode($path);
$bar = Toolbar::getInstance('toolbar');
$uri = (string) Uri::getInstance();
$return = urlencode(base64_encode($uri));
// Add a button linking to config for component.
$bar->appendButton(
'Link',
'options',
$alt,
'index.php?option=com_config&view=component&component='
. $component . '&path=' . $path .
'&return=' . $return
);
}
/**
* Writes a version history
*
* @param string $typeAlias The component and type, for example
'com_content.article'
* @param integer $itemId The id of the item, for example the
article id.
* @param integer $height The height of the popup.
* @param integer $width The width of the popup.
* @param string $alt The name of the button.
*
* @return void
*
* @since 3.2
*/
public static function versions($typeAlias, $itemId, $height = 800, $width
= 500, $alt = 'JTOOLBAR_VERSIONS')
{
$lang = Factory::getLanguage();
$lang->load('com_contenthistory', JPATH_ADMINISTRATOR,
$lang->getTag(), true);
$contentTypeTable = Table::getInstance('Contenttype');
$typeId = $contentTypeTable->getTypeId($typeAlias);
// Options array for JLayout
$options = array();
$options['title'] = Text::_($alt);
$options['height'] = $height;
$options['width'] = $width;
$options['itemId'] = $itemId;
$options['typeId'] = $typeId;
$options['typeAlias'] = $typeAlias;
$bar = Toolbar::getInstance('toolbar');
$layout = new FileLayout('joomla.toolbar.versions');
$bar->appendButton('Custom', $layout->render($options),
'versions');
}
/**
* Displays a modal button
*
* @param string $targetModalId ID of the target modal box
* @param string $icon Icon class to show on modal button
* @param string $alt Title for the modal button
*
* @return void
*
* @since 3.2
*/
public static function modal($targetModalId, $icon, $alt)
{
$title = Text::_($alt);
$dhtml = '<button data-toggle="modal"
data-target="#' . $targetModalId . '" class="btn
btn-small">
<span class="' . $icon . '" title="' .
$title . '"></span> ' . $title .
'</button>';
$bar = Toolbar::getInstance('toolbar');
$bar->appendButton('Custom', $dhtml, $alt);
}
}
PK��[(�4ZffButton/ConfirmButton.phpnu�[���PK��[%��]���Button/CustomButton.phpnu�[���PK��[�ܩE� � �Button/HelpButton.phpnu�[���PK��[g��]BB
Button/LinkButton.phpnu�[���PK��[}�d
d
�#Button/PopupButton.phpnu�[���PK��[#�h��>1Button/SeparatorButton.phpnu�[���PK��[��� � "7Button/SliderButton.phpnu�[���PK��[�����7AButton/StandardButton.phpnu�[���PK��[F�CVV@MToolbar.phpnu�[���PK��[��% % �eToolbarButton.phpnu�[���PK��[�A[HGHG7oToolbarHelper.phpnu�[���PK���