[TYPO3-dev] function getDocHeaderButtons in template.php
Tapio Markula
tapio.markula at xetpoint.fi
Mon Mar 17 09:49:55 CET 2008
Hi
Steffen Kamper made relative good proposal for adding,reordering and
regrouping doc header buttons. The main problem in Steffen's proposal is
that it is *generic* solution, which doesn't take accound different
needs of individual pages.
The generic solution might be bad for some individual pages.
Bad for example navigation frame, because buttons shoud be put to right
button set instead on leftbutton set.
Solution - add some extra parameters.
public function moduleBody($pageRecord = array(), $buttons = array(),
$markerArray =
array(),$page='',$leftButtonsGroupString='',$rightButtonsGroupString='') {
...
$docHeaderButtons =
$this->getDocHeaderButtons($buttons,$page,$leftButtonsGroupString,$rightButtonsGroupString);
...
}
protected final function
getDocHeaderButtons($buttons,$page,$leftButtonsGroupString,$rightButtonsGroupString)
$page - in which page the set has been used
// read the group and order of buttons.
if($page && $leftButtonsGroupString) {
$leftButtonsGroupString =
$GLOBALS['BE_USER']->getTSConfigVal('options.docheader.'.$page.'left') ?
$GLOBALS['BE_USER']->getTSConfigVal('options.docheader.'.$page.'left')
:$leftButtonsGroupString);
} else {
$leftButtonsGroupString =
$GLOBALS['BE_USER']->getTSConfigVal('options.docheader.left) ?
$GLOBALS['BE_USER']->getTSConfigVal('options.docheader.left') :
'reload,function_menu,|,level_up,back,close,cancel,refresh,|,upload,new_record,paste,|,new_page,new_content,|,view,edit,edit_page,edit_content,hide_unhide,move,move_page,history_page,|,columns_only,|,publish,save,save_view,save_close,save_new,|,delete,undo,history';
}
// similar test for $rightButtonsGroupString
// Adds hook for processing of extra buttons - note that the hook can
be generic or it can relate with certain page!
if($page)
$page ='_'.$page;
if
(is_array($GLOBALS['TYPO3_CONF_VARS']['template']['docheaderButtonsHook'.$page]))
{
foreach($GLOBALS['TYPO3_CONF_VARS']['template']['docheaderButtonsHook'.$page]
as $_classRef) {
$_procObj = & t3lib_div::getUserObj($_classRef);
$_procObj->buttonProcessor($buttons, $leftButtonsGroupString,
$rightButtonsGrouString);
}
}
alternative '$page' as an additional parameter.
With these changes Steffen's base solution could properly take account
all cases.
More information about the TYPO3-dev
mailing list