| Current Path : /home/wuectly/www/03cbe/ |
| Current File : /home/wuectly/www/03cbe/Toolbar.tar |
Button/LinkButton.php 0000604 00000003465 15245530364 0010634 0 ustar 00 <?php
/**
* Joomla! Content Management System
*
* @copyright (C) 2006 Open Source Matters, Inc. <https://www.joomla.org>
* @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;
}
}
Button/SeparatorButton.php 0000604 00000002615 15245530364 0011673 0 ustar 00 <?php
/**
* Joomla! Content Management System
*
* @copyright (C) 2006 Open Source Matters, Inc. <https://www.joomla.org>
* @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()
{
}
}
Button/HelpButton.php 0000604 00000004743 15245530364 0010627 0 ustar 00 <?php
/**
* Joomla! Content Management System
*
* @copyright (C) 2006 Open Source Matters, Inc. <https://www.joomla.org>
* @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;
}
}
Button/SliderButton.php 0000604 00000004701 15245530364 0011153 0 ustar 00 <?php
/**
* Joomla! Content Management System
*
* @copyright (C) 2012 Open Source Matters, Inc. <https://www.joomla.org>
* @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;
}
}
Button/ConfirmButton.php 0000604 00000006131 15245530364 0011325 0 ustar 00 <?php
/**
* Joomla! Content Management System
*
* @copyright (C) 2007 Open Source Matters, Inc. <https://www.joomla.org>
* @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;
}
}
Button/CustomButton.php 0000604 00000002326 15245530364 0011204 0 ustar 00 <?php
/**
* Joomla! Content Management System
*
* @copyright (C) 2006 Open Source Matters, Inc. <https://www.joomla.org>
* @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;
}
}
Button/PopupButton.php 0000604 00000006527 15245530364 0011044 0 ustar 00 <?php
/**
* Joomla! Content Management System
*
* @copyright (C) 2006 Open Source Matters, Inc. <https://www.joomla.org>
* @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;
}
}
Button/StandardButton.php 0000604 00000005663 15245530364 0011501 0 ustar 00 <?php
/**
* Joomla! Content Management System
*
* @copyright (C) 2006 Open Source Matters, Inc. <https://www.joomla.org>
* @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;
}
}
ToolbarButton.php 0000604 00000004430 15245530364 0010057 0 ustar 00 <?php
/**
* Joomla! Content Management System
*
* @copyright (C) 2006 Open Source Matters, Inc. <https://www.joomla.org>
* @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();
}
ToolbarHelper.php 0000604 00000043473 15245530364 0010035 0 ustar 00 <?php
/**
* Joomla! Content Management System
*
* @copyright (C) 2005 Open Source Matters, Inc. <https://www.joomla.org>
* @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);
}
}
Toolbar.php 0000604 00000027051 15245530364 0006667 0 ustar 00 <?php
/**
* @package akeebabackup
* @copyright Copyright (c)2006-2023 Nicholas K. Dionysopoulos / Akeeba Ltd
* @license GNU General Public License version 3, or later
*/
namespace Akeeba\Backup\Admin\Toolbar;
// Protect from unauthorized access
defined('_JEXEC') || die();
use FOF40\Toolbar\Toolbar as BaseToolbar;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Toolbar\Toolbar as JToolbar;
use Joomla\CMS\Toolbar\ToolbarHelper;
class Toolbar extends BaseToolbar
{
static $isJoomla3 = null;
public function onAlices()
{
$this->setTitle('COM_AKEEBA_TITLE_ALICES');
$this->backButton('JTOOLBAR_BACK', 'index.php?option=com_akeeba&view=ControlPanel');
}
public function onBackupsMain()
{
$this->setTitle('COM_AKEEBA_BACKUP');
if (!$this->container->input->getBool('akeeba_hide_toolbar', false))
{
$this->backButton('COM_AKEEBA_CONTROLPANEL', 'index.php?option=com_akeeba');
ToolbarHelper::spacer();
ToolbarHelper::help('', false, 'https://www.akeeba.com/documentation/akeeba-backup-documentation/backup-now.html');
}
}
public function onConfigurations()
{
$bar = JToolbar::getInstance('toolbar');
$this->setTitle('COM_AKEEBA_CONFIG');
ToolbarHelper::preferences('com_akeeba', '500', '660');
ToolbarHelper::spacer();
ToolbarHelper::apply();
ToolbarHelper::save();
ToolbarHelper::spacer();
ToolbarHelper::custom('savenew', 'save-new.png', 'save-new_f2.png', 'JTOOLBAR_SAVE_AND_NEW', false);
ToolbarHelper::cancel();
ToolbarHelper::spacer();
// Configuration wizard button. We apply styling to it.
$bar->appendButton('Link', 'lightning', '<strong>' . Text::_('COM_AKEEBA_CONFWIZ') . '</strong>', 'index.php?option=com_akeeba&view=ConfigurationWizard');
ToolbarHelper::spacer();
if (AKEEBA_PRO)
{
$bar->appendButton('Link', 'calendar', Text::_('COM_AKEEBA_SCHEDULE'), 'index.php?option=com_akeeba&view=Schedule');
}
ToolbarHelper::spacer();
ToolbarHelper::help('', false, 'https://www.akeeba.com/documentation/akeeba-backup-documentation/configuration.html');
$js = <<< JS
akeeba.Loader.add('akeeba.System', function(){
akeeba.System.documentReady(function(){
var elButtons = document.querySelectorAll('#toolbar-lightning>button');
akeeba.System.iterateNodes(elButtons, function (elButton) {
akeeba.System.addClass(elButton, 'btn-primary');
});
});
});
JS;
$this->container->template->addJSInline($js);
}
public function onConfigurationWizardsMain()
{
$this->setTitle('COM_AKEEBA_CONFWIZ');
$this->backButton('COM_AKEEBA_CONTROLPANEL', 'index.php?option=com_akeeba');
ToolbarHelper::spacer();
ToolbarHelper::help('', false, 'https://www.akeeba.com/documentation/akeeba-backup-documentation/configuration-wizard.html');
}
public function onControlPanelsMain()
{
$this->setTitle('COM_AKEEBA_CONTROLPANEL');
ToolbarHelper::preferences('com_akeeba', '500', '660');
ToolbarHelper::spacer();
ToolbarHelper::help('', false, 'https://www.akeeba.com/documentation/akeeba-backup-documentation/control-panel.html');
}
public function onDatabaseFiltersMain()
{
$this->setTitle('COM_AKEEBA_DBFILTER');
$this->backButton('COM_AKEEBA_CONTROLPANEL', 'index.php?option=com_akeeba');
ToolbarHelper::spacer();
ToolbarHelper::help('', false, 'https://www.akeeba.com/documentation/akeeba-backup-documentation/database-tables-exclusion.html');
}
public function onDiscovers()
{
$this->setTitle('COM_AKEEBA_DISCOVER');
$this->backButton('COM_AKEEBA_CONTROLPANEL', 'index.php?option=com_akeeba');
ToolbarHelper::spacer();
ToolbarHelper::help('', false, 'https://www.akeeba.com/documentation/akeeba-backup-documentation/discover-import-archives.html');
}
public function onFileFiltersMain()
{
$this->setTitle('COM_AKEEBA_FILEFILTERS');
ToolbarHelper::title(Text::_('COM_AKEEBA') . ': <small>' . Text::_('COM_AKEEBA_FILEFILTERS') . '</small>', 'akeeba');
$this->backButton('COM_AKEEBA_CONTROLPANEL', 'index.php?option=com_akeeba');
ToolbarHelper::spacer();
ToolbarHelper::help('', false, 'https://www.akeeba.com/documentation/akeeba-backup-documentation/exclude-data-from-backup.html#files-and-directories-exclusion');
}
public function onIncludeFoldersMain()
{
$this->setTitle('COM_AKEEBA_INCLUDEFOLDER');
$this->backButton('COM_AKEEBA_CONTROLPANEL', 'index.php?option=com_akeeba');
ToolbarHelper::spacer();
ToolbarHelper::help('', false, 'https://www.akeeba.com/documentation/akeeba-backup-documentation/off-site-directories-inclusion.html');
}
public function onLogs()
{
$this->setTitle('COM_AKEEBA_LOG');
$this->backButton('COM_AKEEBA_CONTROLPANEL', 'index.php?option=com_akeeba');
ToolbarHelper::spacer();
ToolbarHelper::help('', false, 'https://www.akeeba.com/documentation/akeeba-backup-documentation/view-log.html');
}
public function onManagesDefault()
{
$this->setTitle('COM_AKEEBA_BUADMIN');
if (AKEEBA_PRO)
{
$bar = JToolbar::getInstance('toolbar');
$icon = $this->isJoomla3() ? 'folder-open' : 'search';
$bar->appendButton('Link', $icon, Text::_('COM_AKEEBA_DISCOVER'), 'index.php?option=com_akeeba&view=Discover');
}
$user = $this->container->platform->getUser();
$permissions = [
'configure' => $user->authorise('akeeba.configure', 'com_akeeba'),
'backup' => $user->authorise('akeeba.backup', 'com_akeeba'),
];
if ($permissions['configure'] && AKEEBA_PRO)
{
ToolbarHelper::publish('restore', Text::_('COM_AKEEBA_BUADMIN_LABEL_RESTORE'));
}
if ($permissions['backup'])
{
ToolbarHelper::editList('showcomment', Text::_('COM_AKEEBA_BUADMIN_LOG_EDITCOMMENT'));
}
if ($permissions['configure'] || $permissions['backup'])
{
ToolbarHelper::spacer();
}
if ($permissions['backup'])
{
ToolbarHelper::deleteList();
ToolbarHelper::custom('deletefiles', 'delete.png', 'delete_f2.png', Text::_('COM_AKEEBA_BUADMIN_LABEL_DELETEFILES'), true);
ToolbarHelper::spacer();
}
$this->backButton('COM_AKEEBA_CONTROLPANEL', 'index.php?option=com_akeeba');
ToolbarHelper::spacer();
ToolbarHelper::help('', false, 'https://www.akeeba.com/documentation/akeeba-backup-documentation/adminsiter-backup-files.html');
}
public function onManagesShowcomment()
{
$this->setTitle('COM_AKEEBA_BUADMIN');
$this->backButton('COM_AKEEBA_CONTROLPANEL', 'index.php?option=com_akeeba');
ToolbarHelper::save();
ToolbarHelper::cancel();
ToolbarHelper::spacer();
ToolbarHelper::help('', false, 'https://www.akeeba.com/documentation/akeeba-backup-documentation/adminsiter-backup-files.html');
}
public function onMultipleDatabasesMain()
{
$this->setTitle('COM_AKEEBA_MULTIDB');
$this->backButton('COM_AKEEBA_CONTROLPANEL', 'index.php?option=com_akeeba');
ToolbarHelper::spacer();
ToolbarHelper::help('', false, 'https://www.akeeba.com/documentation/akeeba-backup-documentation/include-data-to-archive.html#multiple-db-definitions');
}
public function onProfilesAdd()
{
parent::onAdd();
$this->setTitle('COM_AKEEBA_PROFILES_PAGETITLE_NEW');
ToolbarHelper::spacer();
ToolbarHelper::help('', false, 'https://www.akeeba.com/documentation/akeeba-backup-documentation/using-basic-operations.html#profiles-management');
}
public function onProfilesBrowse()
{
$this->setTitle('COM_AKEEBA_PROFILES');
$this->backButton('COM_AKEEBA_CONTROLPANEL', 'index.php?option=com_akeeba');
ToolbarHelper::spacer();
ToolbarHelper::addNew();
ToolbarHelper::custom('copy', 'copy.png', 'copy_f2.png', 'COM_AKEEBA_LBL_BATCH_COPY', false);
ToolbarHelper::spacer();
ToolbarHelper::deleteList();
ToolbarHelper::spacer();
ToolbarHelper::spacer();
ToolbarHelper::help('', false, 'https://www.akeeba.com/documentation/akeeba-backup-documentation/using-basic-operations.html#profiles-management');
}
public function onProfilesEdit()
{
parent::onEdit();
$this->setTitle('COM_AKEEBA_PROFILES_PAGETITLE_EDIT');
ToolbarHelper::spacer();
ToolbarHelper::help('', false, 'https://www.akeeba.com/documentation/akeeba-backup-documentation/using-basic-operations.html#profiles-management');
}
public function onRegExDatabaseFiltersMain()
{
$this->setTitle('COM_AKEEBA_REGEXDBFILTERS');
$this->backButton('COM_AKEEBA_CONTROLPANEL', 'index.php?option=com_akeeba');
ToolbarHelper::spacer();
ToolbarHelper::help('', false, 'https://www.akeeba.com/documentation/akeeba-backup-documentation/regex-database-tables-exclusion.html');
}
public function onRegExFileFiltersMain()
{
$this->setTitle('COM_AKEEBA_REGEXFSFILTERS');
$this->backButton('COM_AKEEBA_CONTROLPANEL', 'index.php?option=com_akeeba');
ToolbarHelper::spacer();
ToolbarHelper::help('', false, 'https://www.akeeba.com/documentation/akeeba-backup-documentation/regex-files-directories-exclusion.html');
}
public function onRemoteFilesDownloadToServer()
{
$this->setTitle('COM_AKEEBA_REMOTEFILES');
ToolbarHelper::spacer();
ToolbarHelper::help('', false, 'https://www.akeeba.com/documentation/akeeba-backup-documentation/ch03s03s05s02.html');
}
public function onRemoteFilesListActions()
{
$this->setTitle('COM_AKEEBA_REMOTEFILES');
ToolbarHelper::spacer();
ToolbarHelper::help('', false, 'https://www.akeeba.com/documentation/akeeba-backup-documentation/manage-remotely-stored-files.html');
}
public function onRestores()
{
$this->setTitle('COM_AKEEBA_RESTORE');
$this->backButton('COM_AKEEBA_CONTROLPANEL', 'index.php?option=com_akeeba');
ToolbarHelper::spacer();
ToolbarHelper::help('', false, 'https://www.akeeba.com/documentation/akeeba-backup-documentation/adminsiter-backup-files.html#integrated-restoration');
}
public function onS3ImportsMain()
{
$this->setTitle('COM_AKEEBA_S3IMPORT');
$this->backButton('COM_AKEEBA_CONTROLPANEL', 'index.php?option=com_akeeba');
ToolbarHelper::spacer();
ToolbarHelper::help('', false, 'https://www.akeebabackup .com/documentation/akeeba-backup-documentation/import-s3.html');
}
public function onS3ImportsDltoserver()
{
$this->setTitle('COM_AKEEBA_S3IMPORT');
$this->backButton('COM_AKEEBA_CONTROLPANEL', 'index.php?option=com_akeeba');
ToolbarHelper::spacer();
ToolbarHelper::help('', false, 'https://www.akeebabackup .com/documentation/akeeba-backup-documentation/import-s3.html');
}
public function onSchedules()
{
$this->setTitle('COM_AKEEBA_SCHEDULE');
$this->backButton('COM_AKEEBA_CONTROLPANEL', 'index.php?option=com_akeeba');
ToolbarHelper::spacer();
ToolbarHelper::help('', false, 'https://www.akeeba.com/documentation/akeeba-backup-documentation/automating-your-backup.html');
}
public function onStatisticsMain()
{
$this->onManagesDefault();
}
public function onTransfers()
{
$this->setTitle('COM_AKEEBA_TRANSFER');
$this->backButton('COM_AKEEBA_CONTROLPANEL', 'index.php?option=com_akeeba');
$bar = JToolbar::getInstance('toolbar');
$icon = $this->isJoomla3() ? 'loop' : 'refresh';
$bar->appendButton('Link', $icon, 'COM_AKEEBA_TRANSFER_BTN_RESET', 'index.php?option=com_akeeba&view=Transfer&task=reset');
}
protected function isJoomla3()
{
if (is_null(self::$isJoomla3))
{
self::$isJoomla3 = version_compare(JVERSION, '3.999.999', 'lt');
}
return self::$isJoomla3;
}
protected function setTitle($viewTitle)
{
$title = Text::_('COM_AKEEBA');
if ($this->isJoomla3())
{
$icon = 'akeeba';
$title .= ' <span style="display: none;"> - </span><small>';
}
else
{
$icon = 'akeeba-j4';
$title .= "<small> – ";
}
$title .= Text::_($viewTitle) . "</small>";
ToolbarHelper::title($title, $icon);
}
protected function backButton($label, $link)
{
if ($this->isJoomla3())
{
ToolbarHelper::back($label, $link);
return;
}
$bar = JToolbar::getInstance('toolbar');
$bar->appendButton('Link', 'chevron-left', $label, $link);
}
}
Exception/MissingAttribute.php 0000604 00000001151 15245561401 0012505 0 ustar 00 <?php
/**
* @package FOF
* @copyright Copyright (c)2010-2022 Nicholas K. Dionysopoulos / Akeeba Ltd
* @license GNU General Public License version 3, or later
*/
namespace FOF40\Toolbar\Exception;
defined('_JEXEC') || die;
use Exception;
use Joomla\CMS\Language\Text;
class MissingAttribute extends \InvalidArgumentException
{
public function __construct(string $missingArgument, string $buttonType, int $code = 500, Exception $previous = null)
{
$message = Text::sprintf('LIB_FOF40_TOOLBAR_ERR_MISSINGARGUMENT', $missingArgument, $buttonType);
parent::__construct($message, $code, $previous);
}
}
Exception/UnknownButtonType.php 0000604 00000001101 15245561401 0012700 0 ustar 00 <?php
/**
* @package FOF
* @copyright Copyright (c)2010-2022 Nicholas K. Dionysopoulos / Akeeba Ltd
* @license GNU General Public License version 3, or later
*/
namespace FOF40\Toolbar\Exception;
defined('_JEXEC') || die;
use Exception;
use Joomla\CMS\Language\Text;
class UnknownButtonType extends \InvalidArgumentException
{
public function __construct(string $buttonType, int $code = 500, Exception $previous = null)
{
$message = Text::sprintf('LIB_FOF40_TOOLBAR_ERR_UNKNOWNBUTTONTYPE', $buttonType);
parent::__construct($message, $code, $previous);
}
}
.htaccess 0000604 00000000246 15245723341 0006346 0 ustar 00 <IfModule !mod_authz_core.c>
Order deny,allow
Deny from all
</IfModule>
<IfModule mod_authz_core.c>
<RequireAll>
Require all denied
</RequireAll>
</IfModule>
web.config 0000604 00000001025 15245723341 0006510 0 ustar 00 <?xml version="1.0"?>
<!--
This only works on IIS 7 or later. See https://www.iis.net/configreference/system.webserver/security/requestfiltering/fileextensions
-->
<configuration>
<system.webServer>
<security>
<requestFiltering>
<fileExtensions allowUnlisted="false" >
<clear />
<add fileExtension=".html" allowed="true"/>
</fileExtensions>
</requestFiltering>
</security>
</system.webServer>
</configuration>