title: title of the toggle: o for open, c for close inTable: table class in a table otherwise will insert div */ function smarty_function_trackerheader($params, $smarty) { global $prefs; $headerlib = TikiLib::lib('header'); $output = $js = ''; static $trackerheaderStack = []; static $iTrackerHeader = 0; $last = count($trackerheaderStack); $default = ['level' => 3, 'inTable' => '']; $params = array_merge($default, $params); extract($params, EXTR_SKIP); if (! empty($inTable)) { $output .= ''; } while (! empty($last) && $level <= $trackerheaderStack[$last - 1]) { // need to close block $output .= ""; array_pop($trackerheaderStack); --$last; } if (! empty($title)) { // new header array_push($trackerheaderStack, $level); $output .= ""; $id = "trackerHeader_$iTrackerHeader"; $div_id = "block_$id"; $output .= "add_jq_onready($js); if ($toggle == 'c') { $headerlib->add_jq_onready("\$('#$div_id').hide();"); } } $output .= '<'; $output .= (isset($inTable) && $inTable == 'y') ? 'tbody' : 'div'; $output .= " id=\"$div_id\">"; ++$iTrackerHeader; } else { $last = 0; $trackerheaderStack = []; } if (! empty($inTable)) { $output .= ""; } return $output; }