mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-23 02:28:44 +02:00
N°2847 - Refactor
This commit is contained in:
@@ -284,102 +284,7 @@ class TabManager
|
||||
*/
|
||||
public function RenderIntoContent(string $sContent, WebPage $oPage)
|
||||
{
|
||||
// Render the tabs in the page (if any)
|
||||
$container_index = 0;
|
||||
foreach ($this->m_aTabs as $sTabContainerName => $aTabs) {
|
||||
$sTabs = '';
|
||||
$sPrefix = $aTabs['prefix'];
|
||||
if (count($aTabs['tabs']) > 0) {
|
||||
// Clean tabs
|
||||
foreach ($aTabs['tabs'] as $sTabCode => $aTabData) {
|
||||
// Sometimes people set an empty tab to force content NOT to be rendered in the previous one. We need to remove them.
|
||||
// Note: Look for "->SetCurrentTab('');" for examples.
|
||||
if ($sTabCode === '') {
|
||||
unset($aTabs['tabs'][$sTabCode]);
|
||||
}
|
||||
}
|
||||
|
||||
// Render tabs
|
||||
if ($oPage->IsPrintableVersion()) {
|
||||
$oPage->add_ready_script(
|
||||
<<< EOF
|
||||
oHiddeableChapters = {};
|
||||
EOF
|
||||
);
|
||||
$sTabs = "<!-- tabs -->\n<div id=\"tabbedContent_{$sPrefix}{$container_index}\" class=\"light\">\n";
|
||||
$i = 0;
|
||||
foreach ($aTabs['tabs'] as $sTabCode => $aTabData) {
|
||||
$sTabCodeForJs = addslashes($sTabCode);
|
||||
$sTabTitleForHtml = utils::HtmlEntities($aTabData['title']);
|
||||
$sTabId = "tab_{$sPrefix}{$container_index}$i";
|
||||
switch ($aTabData['type']) {
|
||||
case static::ENUM_TAB_TYPE_AJAX:
|
||||
$sTabHtml = '';
|
||||
$sUrl = $aTabData['url'];
|
||||
$oPage->add_ready_script(
|
||||
<<< EOF
|
||||
$.post('$sUrl', {printable: '1'}, function(data){
|
||||
$('#$sTabId > .printable-tab-content').append(data);
|
||||
});
|
||||
EOF
|
||||
);
|
||||
break;
|
||||
|
||||
case static::ENUM_TAB_TYPE_HTML:
|
||||
default:
|
||||
$sTabHtml = $aTabData['html'];
|
||||
}
|
||||
$sTabs .= "<div class=\"printable-tab\" id=\"$sTabId\"><h2 class=\"printable-tab-title\">$sTabTitleForHtml</h2><div class=\"printable-tab-content\">".$sTabHtml."</div></div>\n";
|
||||
$oPage->add_ready_script(
|
||||
<<< EOF
|
||||
oHiddeableChapters['$sTabId'] = '$sTabTitleForHtml';
|
||||
EOF
|
||||
);
|
||||
$i++;
|
||||
}
|
||||
$sTabs .= "</div>\n<!-- end of tabs-->\n";
|
||||
} else {
|
||||
$sTabs = "<!-- tabs -->\n<div id=\"tabbedContent_{$sPrefix}{$container_index}\" class=\"light\">\n";
|
||||
$sTabs .= "<ul>\n";
|
||||
// Display the unordered list that will be rendered as the tabs
|
||||
$i = 0;
|
||||
foreach ($aTabs['tabs'] as $sTabCode => $aTabData) {
|
||||
$sTabCodeForHtml = utils::HtmlEntities($sTabCode);
|
||||
$sTabTitleForHtml = utils::HtmlEntities($aTabData['title']);
|
||||
switch ($aTabData['type']) {
|
||||
case static::ENUM_TAB_TYPE_AJAX:
|
||||
$sTabs .= "<li data-cache=\"".($aTabData['cache'] ? 'true' : 'false')."\"><a href=\"{$aTabData['url']}\" class=\"tab\" data-tab-id=\"$sTabCodeForHtml\"><span>$sTabTitleForHtml</span></a></li>\n";
|
||||
break;
|
||||
|
||||
case static::ENUM_TAB_TYPE_HTML:
|
||||
default:
|
||||
$sTabs .= "<li><a href=\"#tab_{$sPrefix}{$container_index}$i\" class=\"tab\" data-tab-id=\"$sTabCodeForHtml\"><span>$sTabTitleForHtml</span></a></li>\n";
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
$sTabs .= "</ul>\n";
|
||||
// Now add the content of the tabs themselves
|
||||
$i = 0;
|
||||
foreach ($aTabs['tabs'] as $sTabCode => $aTabData) {
|
||||
switch ($aTabData['type']) {
|
||||
case static::ENUM_TAB_TYPE_AJAX:
|
||||
// Nothing to add
|
||||
break;
|
||||
|
||||
case static::ENUM_TAB_TYPE_HTML:
|
||||
default:
|
||||
$sTabs .= "<div id=\"tab_{$sPrefix}{$container_index}$i\">".$aTabData['html']."</div>\n";
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
$sTabs .= "</div>\n<!-- end of tabs-->\n";
|
||||
}
|
||||
}
|
||||
$sContent = str_replace("\$Tabs:$sTabContainerName\$", $sTabs, $sContent);
|
||||
$container_index++;
|
||||
}
|
||||
|
||||
return $sContent;
|
||||
return '';
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user