getTemplateVars('print_page') == 'y' || $prefs['layout_tabs_optional'] === 'n') { $params['toggle'] = 'n'; } if ($repeat) { // opening if (! is_array($smarty_tabset)) { $smarty_tabset = []; } $tabset_index = count($smarty_tabset) + 1; $smarty_tabset_name = getTabsetName($params, $tabset_index); $smarty_tabset[$tabset_index] = [ 'name' => $smarty_tabset_name, 'tabs' => []]; if (! isset($smarty_tabset_i_tab)) { $smarty_tabset_i_tab = 1; } if (! isset($cookietab) || $tabset_index > 1) { $cookietab = getCookie($smarty_tabset_name, 'tabs', 1); } // work out cookie value if there if (isset($_REQUEST['cookietab']) && $tabset_index) { // overrides cookie if added to request as in tiki-admin.php?page=look&cookietab=6 $cookietab = empty($_REQUEST['cookietab']) ? 1 : $_REQUEST['cookietab']; setCookieSection($smarty_tabset_name, $cookietab, 'tabs'); // too late to set it here as output has started } // If the tabset specifies the tab, override any kind of memory but only if not doing "no tabs" mode if (isset($params['cookietab']) && $cookietab !== 'n') { $cookietab = $params['cookietab']; } $smarty_tabset_i_tab = 1; return; } else { $content = trim($content); if (empty($content)) { return ''; } if (! empty($params['skipsingle']) && count($smarty_tabset[$tabset_index]['tabs']) == 1) { return $content; } $ret = ''; $notabs = ''; //closing if ($prefs['feature_tabs'] == 'y') { if (empty($params['toggle']) || $params['toggle'] != 'n') { $smarty->loadPlugin('smarty_function_button'); if ($cookietab == 'n') { $button_params['_text'] = tra('Tab View'); } else { $button_params['_text'] = tra('No Tabs'); } $button_params['_size'] = 'mini'; $button_params['_auto_args'] = '*'; $button_params['_onclick'] = "setCookie('$smarty_tabset_name','" . ($cookietab == 'n' ? 1 : 'n' ) . "', 'tabs') ;"; $button_params['_class'] = 'btn-sm btn-secondary'; $notabs = smarty_function_button($button_params, $smarty); $notabs = "
$notabs
"; $content_class = ''; } else { $content_class = ' full_width'; // no no-tabs button } } else { return $content; } if ($cookietab == 'n') { return $ret . $notabs . $content; } $smarty_tabset_name = getTabsetName($params, $tabset_index); if (isset($params['params']['direction']) && $params['params']['direction'] == 'vertical') { $count = 1; $ret .= '
"; $tabset_index--; $ret .= '
' . $content . '
'; //add styles applyStyles($params, $smarty_tabset_name); } else { $ret .= '
' . $notabs; $count = 1; $ret .= ''; $ret .= "
"; $tabset_index--; $ret .= '
' . $content . '
'; // add styles applyStyles($params, $smarty_tabset_name); } return $ret; } } /** * @param $params * @param $tabset_index * @return array */ function getTabsetName($params, $tabset_index) { if (! empty($params['name'])) { $smarty_tabset_name = $params['name']; // names have to be unique } else { $short_name = str_replace(['tiki-', '.php'], '', basename($_SERVER['SCRIPT_NAME'])); $smarty_tabset_name = '_' . $short_name . $tabset_index; } $smarty_tabset_name = TikiLib::remove_non_word_characters_and_accents($smarty_tabset_name); return $smarty_tabset_name; } function applyStyles($params, $smarty_tabset_name) { $headerlib = TikiLib::lib('header'); $panels = '#v-pills-' . $smarty_tabset_name; $tabs = '#nav-' . $smarty_tabset_name . ' .nav-link'; $style = ''; $style .= ! empty($params['params']['tabborderstyle']) ? $tabs . '{border-style:' . $params['params']['tabborderstyle'] . ';} ' : ''; $style .= ! empty($params['params']['tabborderwidth']) ? $tabs . '{border-width:' . $params['params']['tabborderwidth'] . 'px;} ' : ''; $style .= ! empty($params['params']['tabbordercolor']) ? $tabs . '{border-color:' . $params['params']['tabbordercolor'] . ';} ' : ''; $style .= ! empty($params['params']['tabfontstyle']) ? $tabs . '{font-style:' . $params['params']['tabfontstyle'] . ';} ' : ''; $style .= ! empty($params['params']['tabfontweight']) ? $tabs . '{font-weight:' . $params['params']['tabfontweight'] . ';} ' : ''; $style .= ! empty($params['params']['tabfontsize']) ? $tabs . '{font-size:' . $params['params']['tabfontsize'] . 'px;} ' : ''; $style .= ! empty($params['params']['tabtextcolor']) ? $tabs . '{color:' . $params['params']['tabtextcolor'] . ';} ' : ''; $style .= ! empty($params['params']['tabactivetextcolor']) ? $tabs . '.active {color:' . $params['params']['tabactivetextcolor'] . ';} ' : ''; $style .= ! empty($params['params']['tabbgcolor']) ? $tabs . '{background-color:' . $params['params']['tabbgcolor'] . ';} ' : ''; $style .= ! empty($params['params']['tabactivebgcolor']) ? $tabs . '.active {background:' . $params['params']['tabactivebgcolor'] . ';} ' : ''; $style .= ! empty($params['params']['panelbgcolor']) ? $panels . '{background-color:' . $params['params']['panelbgcolor'] . ';} ' : ''; $style .= ! empty($params['params']['paneltextcolor']) ? $panels . '{color:' . $params['params']['paneltextcolor'] . ';} ' : ''; $style .= ! empty($params['params']['paneltextstyle']) ? $panels . '{font-style:' . $params['params']['paneltextstyle'] . ';} ' : ''; $style .= ! empty($params['params']['panelfontweight']) ? $panels . '{font-weight:' . $params['params']['panelfontweight'] . ';} ' : ''; $style .= ! empty($params['params']['panelfontsize']) ? $panels . '{font-size:' . $params['params']['panelfontsize'] . 'px;} ' : ''; $style .= ! empty($params['params']['panelborderstyle']) ? $panels . '{border-style:' . $params['params']['panelborderstyle'] . ';} ' : ''; $style .= ! empty($params['params']['panelborderwidth']) ? $panels . '{border-width:' . $params['params']['panelborderwidth'] . 'px;} ' : ''; $style .= ! empty($params['params']['panelbordercolor']) ? $panels . '{border-color:' . $params['params']['panelbordercolor'] . ';} ' : ''; $headerlib->add_css($style); }