* @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 * @version CVS: $Id: Toc.php,v 1.9 2005/07/30 08:03:29 toggg Exp $ * @link http://pear.php.net/package/Text_Wiki */ /** * This class inserts a table of content in XHTML. * * @category Text * @package Text_Wiki * @author Paul M. Jones * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 * @version Release: @package_version@ * @link http://pear.php.net/package/Text_Wiki */ class Text_Wiki_Render_Xhtml_Toc extends Text_Wiki_Render { var $conf = array( 'css_list' => null, 'css_item' => null, 'title' => 'Table of Contents', 'div_id' => 'toc', 'collapse' => true ); var $min = 2; /** * * Renders a token into text matching the requested format. * * @access public * * @param array $options The "options" portion of the token (second * element). * * @return string The text rendered from the token options. * */ function token($options) { // type, id, level, count, attr extract($options); switch ($type) { case 'list_start': $css = $this->getConf('css_list'); $html = ''; // collapse div within a table? if ($this->getConf('collapse')) { $html .= ''; $html .= "
\n"; } // add the div, class, and id $html .= 'getConf('div_id'); if ($div_id) { $html .= " id=\"$div_id\""; } // add the title, and done $html .= '>'; $html .= $this->getConf('title'); return $html; break; case 'list_end': if ($this->getConf('collapse')) { return "\n\n
\n\n"; } else { return "\n\n\n"; } break; case 'item_start': $html = "\n\tgetConf('css_item'); if ($css) { $html .= " class=\"$css\""; } $pad = ($level - $this->min); $html .= " style=\"margin-left: {$pad}em;\">"; $html .= ""; return $html; break; case 'item_end': return ""; break; } } } ?>