예제 #1
0
 /**
  * Renders a permalink header.
  * 
  * Code heavily copied from the header renderer from inc/parser/xhtml.php, just
  * added an href parameter to the anchor tag linking to the wikilink.
  */
 function render($mode, Doku_Renderer $renderer, $data)
 {
     global $conf;
     list($headline, $lvl, $pos, $page, $sect, $flags) = $data;
     if ($mode == 'xhtml') {
         /** @var Doku_Renderer_xhtml $renderer */
         $hid = $renderer->_headerToLink($headline, true);
         $renderer->toc_additem($hid, $headline, $lvl);
         $url = $sect ? wl($page) . '#' . $sect : wl($page);
         $renderer->doc .= DOKU_LF . '<h' . $lvl;
         $classes = array();
         if ($flags['taglogos']) {
             $tag = $this->_get_firsttag($page);
             if ($tag) {
                 $classes[] = 'include_firsttag__' . $tag;
             }
         }
         // the include header instruction is always at the beginning of the first section edit inside the include
         // wrap so there is no need to close a previous section edit.
         if ($lvl <= $conf['maxseclevel']) {
             $classes[] = $renderer->startSectionEdit($pos, 'section', $headline);
         }
         if ($classes) {
             $renderer->doc .= ' class="' . implode(' ', $classes) . '"';
         }
         $headline = $renderer->_xmlEntities($headline);
         $renderer->doc .= ' id="' . $hid . '"><a href="' . $url . '" title="' . $headline . '">';
         $renderer->doc .= $headline;
         $renderer->doc .= '</a></h' . $lvl . '>' . DOKU_LF;
         return true;
     } else {
         $renderer->header($headline, $lvl, $pos);
     }
     return false;
 }
예제 #2
0
 /**
  * Renders a permalink header.
  *
  * Code heavily copied from the header renderer from inc/parser/xhtml.php, just
  * added an href parameter to the anchor tag linking to the wikilink.
  *
  * @param   $mode     string              output format being rendered
  * @param   $renderer Doku_Renderer reference to the current renderer object
  * @param   $indata   array               data created by handler()
  * @return  boolean                       rendered correctly?
  */
 function render($mode, Doku_Renderer $renderer, $indata)
 {
     global $ID;
     list($text, $level) = $indata;
     if ($mode == 'xhtml') {
         /** @var $renderer Doku_Renderer_xhtml */
         $hid = $renderer->_headerToLink($text, true);
         //only add items within configured levels
         $renderer->toc_additem($hid, $text, $level);
         // write the header
         $renderer->doc .= DOKU_LF . '<h' . $level . '><a name="' . $hid . '" id="' . $hid . '" href="' . wl($ID) . '">';
         $renderer->doc .= $renderer->_xmlEntities($text);
         $renderer->doc .= "</a></h{$level}>" . DOKU_LF;
         return true;
     }
     // unsupported $mode
     return false;
 }
예제 #3
0
 /**
  * Adds a TOC item
  */
 function _addToTOC($text, $level, Doku_Renderer &$renderer)
 {
     global $conf;
     if ($level >= $conf['toptoclevel'] && $level <= $conf['maxtoclevel']) {
         /** @var $renderer Doku_Renderer_xhtml */
         $hid = $renderer->_headerToLink($text, 'true');
         $renderer->toc[] = array('hid' => $hid, 'title' => $text, 'type' => 'ul', 'level' => $level - $conf['toptoclevel'] + 1);
     }
     return $hid;
 }