private function renderToolbarElement($type, $value = null, array $attributes = array())
{
switch ($type) {
case 'title':
$icon = isset($attributes['icon']) ? $attributes['icon'] : 'generic.png';
if (isset($attributes['translate'])) {
$value = JText::_($value);
}
JToolbarHelper::title($value, $icon);
break;
case 'divider':
JToolbarHelper::divider();
break;
case 'custom':
$task = isset($attributes['task']) ? $attributes['task'] : '';
$icon = isset($attributes['icon']) ? $attributes['icon'] : '';
$iconOver = isset($attributes['icon_over']) ? $attributes['icon_over'] : '';
$alt = isset($attributes['alt']) ? $attributes['alt'] : '';
$listSelect = isset($attributes['list_select']) ? StringHelper::toBool($attributes['list_select']) : true;
JToolbarHelper::custom($task, $icon, $iconOver, $alt, $listSelect);
break;
case 'preview':
$url = isset($attributes['url']) ? $attributes['url'] : '';
$update_editors = isset($attributes['update_editors']) ? StringHelper::toBool($attributes['update_editors']) : false;
JToolbarHelper::preview($url, $update_editors);
break;
case 'help':
if (!isset($attributes['help'])) {
throw new MissingAttribute('help', 'help');
}
$ref = $attributes['help'];
$com = isset($attributes['com']) ? StringHelper::toBool($attributes['com']) : false;
$override = isset($attributes['override']) ? $attributes['override'] : null;
$component = isset($attributes['component']) ? $attributes['component'] : null;
JToolbarHelper::help($ref, $com, $override, $component);
break;
case 'back':
$alt = isset($attributes['alt']) ? $attributes['alt'] : 'JTOOLBAR_BACK';
$href = isset($attributes['href']) ? $attributes['href'] : 'javascript:history.back();';
JToolbarHelper::back($alt, $href);
break;
case 'media_manager':
$directory = isset($attributes['directory']) ? $attributes['directory'] : '';
$alt = isset($attributes['alt']) ? $attributes['alt'] : 'JTOOLBAR_UPLOAD';
JToolbarHelper::media_manager($directory, $alt);
break;
case 'assign':
$task = isset($attributes['task']) ? $attributes['task'] : 'assign';
$alt = isset($attributes['alt']) ? $attributes['alt'] : 'JTOOLBAR_ASSIGN';
JToolbarHelper::assign($task, $alt);
break;
case 'addNew':
case 'new':
$area = isset($attributes['acl']) ? $attributes['acl'] : 'create';
if ($this->checkACL($area)) {
$task = isset($attributes['task']) ? $attributes['task'] : 'add';
$alt = isset($attributes['alt']) ? $attributes['alt'] : 'JTOOLBAR_NEW';
$check = isset($attributes['check']) ? StringHelper::toBool($attributes['check']) : false;
JToolbarHelper::addNew($task, $alt, $check);
}
break;
case 'copy':
$area = isset($attributes['acl']) ? $attributes['acl'] : 'create';
if ($this->checkACL($area)) {
$task = isset($attributes['task']) ? $attributes['task'] : 'copy';
$alt = isset($attributes['alt']) ? $attributes['alt'] : 'JLIB_HTML_BATCH_COPY';
$icon = isset($attributes['icon']) ? $attributes['icon'] : 'copy.png';
$iconOver = isset($attributes['iconOver']) ? $attributes['iconOver'] : 'copy_f2.png';
JToolBarHelper::custom($task, $icon, $iconOver, $alt, false);
}
break;
case 'publish':
$area = isset($attributes['acl']) ? $attributes['acl'] : 'editstate';
if ($this->checkACL($area)) {
$task = isset($attributes['task']) ? $attributes['task'] : 'publish';
$alt = isset($attributes['alt']) ? $attributes['alt'] : 'JTOOLBAR_PUBLISH';
$check = isset($attributes['check']) ? StringHelper::toBool($attributes['check']) : false;
JToolbarHelper::publish($task, $alt, $check);
}
break;
case 'publishList':
$area = isset($attributes['acl']) ? $attributes['acl'] : 'editstate';
if ($this->checkACL($area)) {
$task = isset($attributes['task']) ? $attributes['task'] : 'publish';
$alt = isset($attributes['alt']) ? $attributes['alt'] : 'JTOOLBAR_PUBLISH';
JToolbarHelper::publishList($task, $alt);
}
break;
case 'unpublish':
$area = isset($attributes['acl']) ? $attributes['acl'] : 'editstate';
if ($this->checkACL($area)) {
$task = isset($attributes['task']) ? $attributes['task'] : 'unpublish';
$alt = isset($attributes['alt']) ? $attributes['alt'] : 'JTOOLBAR_UNPUBLISH';
$check = isset($attributes['check']) ? StringHelper::toBool($attributes['check']) : false;
JToolbarHelper::unpublish($task, $alt, $check);
}
break;
case 'unpublishList':
$area = isset($attributes['acl']) ? $attributes['acl'] : 'editstate';
if ($this->checkACL($area)) {
$task = isset($attributes['task']) ? $attributes['task'] : 'unpublish';
$alt = isset($attributes['alt']) ? $attributes['alt'] : 'JTOOLBAR_UNPUBLISH';
JToolbarHelper::unpublishList($task, $alt);
}
break;
case 'archiveList':
$area = isset($attributes['acl']) ? $attributes['acl'] : 'editstate';
if ($this->checkACL($area)) {
$task = isset($attributes['task']) ? $attributes['task'] : 'archive';
$alt = isset($attributes['alt']) ? $attributes['alt'] : 'JTOOLBAR_ARCHIVE';
JToolbarHelper::archiveList($task, $alt);
}
break;
case 'unarchiveList':
$area = isset($attributes['acl']) ? $attributes['acl'] : 'editstate';
if ($this->checkACL($area)) {
$task = isset($attributes['task']) ? $attributes['task'] : 'unarchive';
$alt = isset($attributes['alt']) ? $attributes['alt'] : 'JTOOLBAR_UNARCHIVE';
JToolbarHelper::unarchiveList($task, $alt);
}
break;
case 'edit':
case 'editList':
$area = isset($attributes['acl']) ? $attributes['acl'] : 'edit';
if ($this->checkACL($area)) {
$task = isset($attributes['task']) ? $attributes['task'] : 'edit';
$alt = isset($attributes['alt']) ? $attributes['alt'] : 'JTOOLBAR_EDIT';
JToolbarHelper::editList($task, $alt);
}
break;
case 'editHtml':
$task = isset($attributes['task']) ? $attributes['task'] : 'edit_source';
$alt = isset($attributes['alt']) ? $attributes['alt'] : 'JTOOLBAR_EDIT_HTML';
JToolbarHelper::editHtml($task, $alt);
break;
case 'editCss':
$task = isset($attributes['task']) ? $attributes['task'] : 'edit_css';
$alt = isset($attributes['alt']) ? $attributes['alt'] : 'JTOOLBAR_EDIT_CSS';
JToolbarHelper::editCss($task, $alt);
break;
case 'deleteList':
case 'delete':
$area = isset($attributes['acl']) ? $attributes['acl'] : 'delete';
if ($this->checkACL($area)) {
$msg = isset($attributes['msg']) ? $attributes['msg'] : '';
$task = isset($attributes['task']) ? $attributes['task'] : 'remove';
$alt = isset($attributes['alt']) ? $attributes['alt'] : 'JTOOLBAR_DELETE';
JToolbarHelper::deleteList($msg, $task, $alt);
}
break;
case 'trash':
$area = isset($attributes['acl']) ? $attributes['acl'] : 'editstate';
if ($this->checkACL($area)) {
$task = isset($attributes['task']) ? $attributes['task'] : 'trash';
$alt = isset($attributes['alt']) ? $attributes['alt'] : 'JTOOLBAR_TRASH';
$check = isset($attributes['check']) ? StringHelper::toBool($attributes['check']) : true;
JToolbarHelper::trash($task, $alt, $check);
}
break;
case 'apply':
$task = isset($attributes['task']) ? $attributes['task'] : 'apply';
$alt = isset($attributes['alt']) ? $attributes['alt'] : 'JTOOLBAR_APPLY';
JToolbarHelper::apply($task, $alt);
break;
case 'save':
$task = isset($attributes['task']) ? $attributes['task'] : 'save';
$alt = isset($attributes['alt']) ? $attributes['alt'] : 'JTOOLBAR_SAVE';
JToolbarHelper::save($task, $alt);
break;
case 'savenew':
$task = isset($attributes['task']) ? $attributes['task'] : 'savenew';
$alt = isset($attributes['alt']) ? $attributes['alt'] : 'JTOOLBAR_SAVE_AND_NEW';
$icon = isset($attributes['icon']) ? $attributes['icon'] : 'save-new.png';
$iconOver = isset($attributes['iconOver']) ? $attributes['iconOver'] : 'save-new_f2.png';
JToolBarHelper::custom($task, $icon, $iconOver, $alt, false);
break;
case 'save2new':
$task = isset($attributes['task']) ? $attributes['task'] : 'save2new';
$alt = isset($attributes['alt']) ? $attributes['alt'] : 'JTOOLBAR_SAVE_AND_NEW';
JToolbarHelper::save2new($task, $alt);
break;
case 'save2copy':
$task = isset($attributes['task']) ? $attributes['task'] : 'save2copy';
$alt = isset($attributes['alt']) ? $attributes['alt'] : 'JTOOLBAR_SAVE_AS_COPY';
JToolbarHelper::save2copy($task, $alt);
break;
case 'checkin':
$task = isset($attributes['task']) ? $attributes['task'] : 'checkin';
$alt = isset($attributes['alt']) ? $attributes['alt'] : 'JTOOLBAR_CHECKIN';
$check = isset($attributes['check']) ? StringHelper::toBool($attributes['check']) : true;
JToolbarHelper::checkin($task, $alt, $check);
break;
case 'cancel':
$task = isset($attributes['task']) ? $attributes['task'] : 'cancel';
$alt = isset($attributes['alt']) ? $attributes['alt'] : 'JTOOLBAR_CANCEL';
JToolbarHelper::cancel($task, $alt);
break;
case 'preferences':
if (!isset($attributes['component'])) {
throw new MissingAttribute('component', 'preferences');
}
$component = $attributes['component'];
$height = isset($attributes['height']) ? $attributes['height'] : '550';
$width = isset($attributes['width']) ? $attributes['width'] : '875';
$alt = isset($attributes['alt']) ? $attributes['alt'] : 'JToolbar_Options';
$path = isset($attributes['path']) ? $attributes['path'] : '';
JToolbarHelper::preferences($component, $height, $width, $alt, $path);
break;
default:
throw new UnknownButtonType($type);
}
}