/** * Specify modes allowed in the imgcaption/tabcaption * Using getAllowedTypes() includes too much modes. * * @param string $mode Parser mode * @return bool true if $mode is accepted */ public function accepts($mode) { $allowedsinglemodes = array('table', 'plugin_diagram_main'); if (in_array($mode, $allowedsinglemodes)) { return true; } return parent::accepts($mode); }
/** * Render xhtml output or metadata * * @param string $mode Renderer mode (supported modes: xhtml and metadata) * @param Doku_Renderer $renderer The renderer * @param array $data The data from the handler function * @return bool If rendering was successful. */ function render($mode, Doku_Renderer &$renderer, $data) { global $ID, $ACT; if ($data === false) { return false; } switch ($mode) { case 'xhtml': /** @var Doku_Renderer_xhtml $renderer */ if ($data['page'] == '') { $data['page'] = $ID; } resolve_pageid(getNS($ID), $data['page'], $exists); //determine referencenumber if ($ACT == 'preview' && $data['page'] == $ID) { $caprefs = syntax_plugin_imagereference_imgcaption::getCaptionreferences($ID, $data['type']); } else { $caprefs = p_get_metadata($data['page'], 'captionreferences ' . $data['type']); } $refNumber = array_search($data['caprefname'], $caprefs); if (!$refNumber) { $refNumber = "##"; } $renderer->doc .= '<a href="' . wl($data['page']) . '#' . $data['type'] . '_' . cleanID($data['caprefname']) . '">' . $this->getLang($data['type'] . 'full') . ' ' . $refNumber . '</a>'; return true; case 'latex': $renderer->doc .= $this->getLang($data['type'] . 'full') . " \\ref{" . $data['caprefname'] . "}"; return true; } return false; }