[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