"; if (!function_exists("generate_table_of_contents")) { /** * @param string $html * @param int|string $row_id * * @return array */ function generate_table_of_contents($html, $row_id) { $dom = HtmlDomParser::str_get_html($html); $font_classnames = array( "h1" => "tpl-text-default-big", "h2" => "tpl-text-default", "h3" => "tpl-text-default-small", "h4" => "tpl-text-default-small", "h5" => "tpl-text-default-smaller", "h6" => "tpl-text-default-smaller", ); $last_level = 0; $i = 1; $toc = ""; foreach ($dom->find("h1,h2,h3,h4,h5,h6") as $h) { $id = "toc-header-n-" . $row_id . "-" . $i++; $h->outertext = "" . $h->outertext; $level = intval($h->tag[1]); if ($level > $last_level) { $toc .= "", $last_level - $level); $toc .= ""; } $toc .= "
  • $h->innertext"; $last_level = $level; } $toc .= str_repeat("
  • ", $last_level); $toc = preg_replace("#
    |
    |
    |
    #", " ", $toc); $html_with_toc = $dom->save(); $dom->clear(); unset($dom); return array( "index" => $toc, "html" => $html_with_toc, ); } }