AAAAhome/academiac/www/libraries/joomla/html/toolbar.php 0000644 00000013302 15137274024 0016567 0 ustar 00 _name = $name;
// Set base path to find buttons.
$this->_buttonPath[] = dirname(__FILE__) . '/toolbar/button';
}
/**
* Stores the singleton instances of various toolbar.
*
* @var JToolbar
* @since 11.3
*/
protected static $instances = array();
/**
* Returns the global JToolBar object, only creating it if it
* doesn't already exist.
*
* @param string $name The name of the toolbar.
*
* @return JToolBar The JToolBar object.
*
* @since 11.1
*/
public static function getInstance($name = 'toolbar')
{
if (empty(self::$instances[$name]))
{
self::$instances[$name] = new JToolBar($name);
}
return self::$instances[$name];
}
/**
* Set a value
*
* @return string The set value.
*
* @since 11.1
*/
public function appendButton()
{
// Push button onto the end of the toolbar array.
$btn = func_get_args();
array_push($this->_bar, $btn);
return true;
}
/**
* Get the list of toolbar links.
*
* @return array
*
* @since 11.1
*/
public function getItems()
{
return $this->_bar;
}
/**
* Get the name of the toolbar.
*
* @return string
*
* @since 11.1
*/
public function getName()
{
return $this->_name;
}
/**
* Get a value.
*
* @return string
*
* @since 11.1
*/
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 tool bar.
*
* @return string HTML for the toolbar.
*
* @since 11.1
*/
public function render()
{
$html = array();
// Start toolbar div.
$html[] = '
';
return implode("\n", $html);
}
/**
* Render a button.
*
* @param object &$node A toolbar node.
*
* @return string
*
* @since 11.1
*/
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 object
*
* @since 11.1
*/
public function loadButtonType($type, $new = false)
{
$signature = md5($type);
if (isset($this->_buttons[$signature]) && $new === false)
{
return $this->_buttons[$signature];
}
if (!class_exists('JButton'))
{
JError::raiseWarning('SOME_ERROR_CODE', JText::_('JLIB_HTML_BUTTON_BASE_CLASS'));
return false;
}
$buttonClass = 'JButton' . $type;
if (!class_exists($buttonClass))
{
if (isset($this->_buttonPath))
{
$dirs = $this->_buttonPath;
}
else
{
$dirs = array();
}
$file = JFilterInput::getInstance()->clean(str_replace('_', DIRECTORY_SEPARATOR, strtolower($type)) . '.php', 'path');
jimport('joomla.filesystem.path');
if ($buttonFile = JPath::find($dirs, $file))
{
include_once $buttonFile;
}
else
{
JError::raiseWarning('SOME_ERROR_CODE', JText::sprintf('JLIB_HTML_BUTTON_NO_LOAD', $buttonClass, $buttonFile));
return false;
}
}
if (!class_exists($buttonClass))
{
//return JError::raiseError('SOME_ERROR_CODE', "Module file $buttonFile does not contain class $buttonClass.");
return false;
}
$this->_buttons[$signature] = new $buttonClass($this);
return $this->_buttons[$signature];
}
/**
* Add a directory where JToolBar should search for button types in LIFO order.
*
* You may either pass a string or an array of directories.
*
* JToolbar 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 11.1
* @see JToolbar
*/
public function addButtonPath($path)
{
// Just force path to array.
settype($path, 'array');
// Loop through the path directories.
foreach ($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);
}
}
}
home/academiac/www/administrator/includes/toolbar.php 0000644 00000042512 15137315155 0017062 0 ustar 00 '.$title.'
';
$app = JFactory::getApplication();
$app->JComponentTitle = $html;
$doc = JFactory::getDocument();
$doc->setTitle($app->getCfg('sitename'). ' - ' .JText::_('JADMINISTRATION').' - '.$title);
}
/**
* Writes a spacer cell.
*
* @param string $width The width for the cell
* @since 1.0
*/
public static function spacer($width = '')
{
$bar = JToolBar::getInstance('toolbar');
// Add a spacer.
$bar->appendButton('Separator', 'spacer', $width);
}
/**
* Writes a divider between menu buttons
*
* @since 1.0
*/
public static function divider()
{
$bar = JToolBar::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.
* @since 1.0
*/
public static function custom($task = '', $icon = '', $iconOver = '', $alt = '', $listSelect = true)
{
$bar = JToolBar::getInstance('toolbar');
// Strip extension.
$icon = preg_replace('#\.[^.]*$#', '', $icon);
// Add a standard button.
$bar->appendButton('Standard', $icon, $alt, $task, $listSelect);
}
/**
* 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.
* @since 1.0
* @deprecated
*/
public static function customX($task = '', $icon = '', $iconOver = '', $alt = '', $listSelect = true)
{
self::custom($task, $icon, $iconOver, $alt, $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
* @since 1.0
*/
public static function preview($url = '', $updateEditors = false)
{
$bar = JToolBar::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)
* @since 1.0
*/
public static function help($ref, $com = false, $override = null, $component = null)
{
$bar = JToolBar::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.
* @since 1.0
*/
public static function back($alt = 'JTOOLBAR_BACK', $href = 'javascript:history.back();')
{
$bar = JToolBar::getInstance('toolbar');
// Add a back button.
$bar->appendButton('Link', 'back', $alt, $href);
}
/**
* Writes a media_manager button.
*
* @param string $directory The sub-drectory to upload the media to.
* @param string $alt An override for the alt text.
* @since 1.0
*/
public static function media_manager($directory = '', $alt = 'JTOOLBAR_UPLOAD')
{
$bar = JToolBar::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.
* @since 1.0
*/
public static function makeDefault($task = 'default', $alt = 'JTOOLBAR_DEFAULT')
{
$bar = JToolBar::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.
* @since 1.0
*/
public static function assign($task = 'assign', $alt = 'JTOOLBAR_ASSIGN')
{
$bar = JToolBar::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.
* @since 1.0
*/
public static function addNew($task = 'add', $alt = 'JTOOLBAR_NEW', $check = false)
{
$bar = JToolBar::getInstance('toolbar');
// Add a new button.
$bar->appendButton('Standard', 'new', $alt, $task, $check);
}
/**
* Writes the common 'new' icon for the button bar.
* Extended version of addNew() calling hideMainMenu() before Joomla.submitbutton().
*
* @param string $task An override for the task.
* @param string $alt An override for the alt text.
* @since 1.0
* @deprecated
*/
public static function addNewX($task = 'add', $alt = 'JTOOLBAR_NEW')
{
self::addNew($task, $alt);
}
/**
* 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.
* @since 1.0
*/
public static function publish($task = 'publish', $alt = 'JTOOLBAR_PUBLISH', $check = false)
{
$bar = JToolBar::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.
* @since 1.0
*/
public static function publishList($task = 'publish', $alt = 'JTOOLBAR_PUBLISH')
{
$bar = JToolBar::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.
* @since 1.0
*/
public static function unpublish($task = 'unpublish', $alt = 'JTOOLBAR_UNPUBLISH', $check = false)
{
$bar = JToolBar::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.
* @since 1.0
*/
public static function unpublishList($task = 'unpublish', $alt = 'JTOOLBAR_UNPUBLISH')
{
$bar = JToolBar::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.
* @since 1.0
*/
public static function archiveList($task = 'archive', $alt = 'JTOOLBAR_ARCHIVE')
{
$bar = JToolBar::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.
* @since 1.0
*/
public static function unarchiveList($task = 'unarchive', $alt = 'JTOOLBAR_UNARCHIVE')
{
$bar = JToolBar::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.
* @since 1.0
*/
public static function editList($task = 'edit', $alt = 'JTOOLBAR_EDIT')
{
$bar = JToolBar::getInstance('toolbar');
// Add an edit button.
$bar->appendButton('Standard', 'edit', $alt, $task, true);
}
/**
* Writes a common 'edit' button for a list of records.
* Extended version of editList() calling hideMainMenu() before Joomla.submitbutton().
*
* @param string $task An override for the task.
* @param string $alt An override for the alt text.
* @since 1.0
* @deprecated
*/
public static function editListX($task = 'edit', $alt = 'JTOOLBAR_EDIT')
{
self::editList($task, $alt);
}
/**
* 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.
* @since 1.0
*/
public static function editHtml($task = 'edit_source', $alt = 'JTOOLBAR_EDIT_HTML')
{
$bar = JToolBar::getInstance('toolbar');
// Add an edit html button.
$bar->appendButton('Standard', 'edithtml', $alt, $task, true);
}
/**
* Writes a common 'edit' button for a template html.
* Extended version of editHtml() calling hideMainMenu() before Joomla.submitbutton().
*
* @param string $task An override for the task.
* @param string $alt An override for the alt text.
* @since 1.0
* @deprecated
*/
public static function editHtmlX($task = 'edit_source', $alt = 'JTOOLBAR_EDIT_HTML')
{
self::editHtml($task, $alt);
}
/**
* 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.
* @since 1.0
*/
public static function editCss($task = 'edit_css', $alt = 'JTOOLBAR_EDIT_CSS')
{
$bar = JToolBar::getInstance('toolbar');
// Add an edit css button (hide).
$bar->appendButton('Standard', 'editcss', $alt, $task, true);
}
/**
* Writes a common 'edit' button for a template css.
* Extended version of editCss() calling hideMainMenu() before Joomla.submitbutton().
*
* @param string $task An override for the task.
* @param string $alt An override for the alt text.
* @since 1.0
* @deprecated
*/
public static function editCssX($task = 'edit_css', $alt = 'JTOOLBAR_EDIT_CSS')
{
self::editCss($task, $alt);
}
/**
* 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.
* @since 1.0
*/
public static function deleteList($msg = '', $task = 'remove', $alt = 'JTOOLBAR_DELETE')
{
$bar = JToolBar::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 'delete' button for a list of records.
* Extended version of deleteList() calling hideMainMenu() before Joomla.submitbutton().
*
* @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.
* @since 1.0
* @deprecated
*/
public static function deleteListX($msg = '', $task = 'remove', $alt = 'JTOOLBAR_DELETE')
{
self::deleteList($msg, $task, $alt);
}
/**
* Write a trash button that will move items to Trash Manager.
*
* @param string $task An override for the task.
* @param string $alt An override for the alt text.
* @param bool $check
* @since 1.0
*/
public static function trash($task = 'remove', $alt = 'JTOOLBAR_TRASH', $check = true)
{
$bar = JToolBar::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.
* @since 1.0
*/
public static function apply($task = 'apply', $alt = 'JTOOLBAR_APPLY')
{
$bar = JToolBar::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.
* @since 1.0
*/
public static function save($task = 'save', $alt = 'JTOOLBAR_SAVE')
{
$bar = JToolBar::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
* @param string $alt
* @since 1.6
*/
public static function save2new($task = 'save2new', $alt = 'JTOOLBAR_SAVE_AND_NEW')
{
$bar = JToolBar::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
* @param string $alt
* @since 1.6
*/
public static function save2copy($task = 'save2copy', $alt = 'JTOOLBAR_SAVE_AS_COPY')
{
$bar = JToolBar::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
* @param string $alt
* @param boolean $check True if required to check that a standard list item is checked.
* @since 1.7
*/
public static function checkin($task = 'checkin', $alt = 'JTOOLBAR_CHECKIN', $check = true)
{
$bar = JToolBar::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.
* @since 1.0
*/
public static function cancel($task = 'cancel', $alt = 'JTOOLBAR_CANCEL')
{
$bar = JToolBar::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 int $height The height of the popup.
* @param int $width The width of the popup.
* @param string $alt The name of the button.
* @param string $path An alternative path for the configuation xml relative to JPATH_SITE.
* @since 1.0
*/
public static function preferences($component, $height = '550', $width = '875', $alt = 'JToolbar_Options', $path = '', $onClose = '')
{
$component = urlencode($component);
$path = urlencode($path);
$top = 0;
$left = 0;
$bar = JToolBar::getInstance('toolbar');
// Add a configuration button.
$bar->appendButton('Popup', 'options', $alt, 'index.php?option=com_config&view=component&component='.$component.'&path='.$path.'&tmpl=component', $width, $height, $top, $left, $onClose);
}
}
/**
* Utility class for the submenu.
*
* @package Joomla.Administrator
*/
abstract class JSubMenuHelper
{
/**
* Method to add a menu item to submenu.
*
* @param string $name Name of the menu item.
* @param string $link URL of the menu item.
* @param bool True if the item is active, false otherwise.
*/
public static function addEntry($name, $link = '', $active = false)
{
$menu = JToolBar::getInstance('submenu');
$menu->appendButton($name, $link, $active);
}
}