/** * Handles the actual output creation. * * @param string $format output format being rendered * @param Doku_Renderer $renderer the current renderer object * @param array $data data created by handler() * @return boolean rendered correctly? (however, returned value is not used at the moment) */ public function render($format, Doku_Renderer $renderer, $data) { global $ID, $REV; if (!$data) { // Export button if ($format != 'xhtml') { return false; } $renderer->doc .= '<a href="' . exportlink($ID, 'odt', $REV != '' ? 'rev=' . $REV : '') . '" title="' . $this->getLang('view') . '">'; $renderer->doc .= '<img src="' . DOKU_BASE . 'lib/plugins/odt/odt.png" align="right" alt="' . $this->getLang('view') . '" width="48" height="48" />'; $renderer->doc .= '</a>'; return true; } else { // Extended info list($info_type, $info_value) = $data; if ($info_type == "template") { // Template-based export if ($format == 'odt') { /** @var renderer_plugin_odt_page $renderer */ $renderer->template = $info_value; } elseif ($format == 'metadata') { /** @var Doku_Renderer_metadata $renderer */ $renderer->meta['relation']['odt']['template'] = $info_value; } } if ($info_type == "toc") { // Insert TOC in exported ODT file if ($format == 'odt') { /** @var renderer_plugin_odt_page $renderer */ $renderer->toc_settings = $info_value; $renderer->render_TOC(); } elseif ($format == 'metadata') { /** @var Doku_Renderer_metadata $renderer */ $renderer->meta['relation']['odt']['toc'] = $info_value; } } if ($info_type == "page") { // Set/change page format in exported ODT file if ($format == 'odt') { /** @var renderer_plugin_odt_page $renderer */ $params = explode(',', $info_value); $format = trim($params[0]); $orientation = trim($params[1]); for ($index = 2; $index < 6; $index++) { if (empty($params[$index])) { $params[$index] = 2; } } $renderer->setPageFormat($format, $orientation, $params[2], $params[3], $params[4], $params[5]); } } } return false; }
/** * Handles the actual output creation. * * @param string $format output format being rendered * @param Doku_Renderer $renderer the current renderer object * @param array $data data created by handler() * @return boolean rendered correctly? (however, returned value is not used at the moment) */ public function render($format, Doku_Renderer $renderer, $data) { global $ID, $REV; if (!$data) { // Export button if ($format != 'xhtml') { return false; } $renderer->doc .= '<a href="' . exportlink($ID, 'odt', $REV != '' ? 'rev=' . $REV : '') . '" title="' . $this->getLang('view') . '">'; $renderer->doc .= '<img src="' . DOKU_BASE . 'lib/plugins/odt/odt.png" align="right" alt="' . $this->getLang('view') . '" width="48" height="48" />'; $renderer->doc .= '</a>'; return true; } else { // Extended info // Load config helper if not done yet if ($this->config == NULL) { $this->config = plugin_load('helper', 'odt_config'); } list($info_type, $info_value, $pos) = $data; // If it is a config option store it in the meta data // and set the config parameter in the renderer. if ($this->config->isParam($info_type)) { if ($format == 'odt') { /** @var renderer_plugin_odt_page $renderer */ $renderer->setConfigParam($info_type, $info_value); } elseif ($format == 'metadata') { if ($this->config->addingToMetaIsAllowed($info_type, $pos)) { /** @var Doku_Renderer_metadata $renderer */ $renderer->meta['relation']['odt'][$info_type] = $info_value; } } } // Do some more work for the tags which are not just a config parameter setter switch ($info_type) { case 'toc': // Insert TOC in exported ODT file if ($format == 'odt') { /** @var renderer_plugin_odt_page $renderer */ $renderer->toc_settings = $info_value; $renderer->render_TOC(); } elseif ($format == 'metadata') { /** @var Doku_Renderer_metadata $renderer */ $renderer->meta['relation']['odt']['toc'] = $info_value; } break; case 'disablelinks': // Disable creating links and only show the text instead if ($format == 'odt') { $renderer->disable_links(); } break; case 'enablelinks': // Re-enable creating links if ($format == 'odt') { $renderer->enable_links(); } break; case 'page': if ($format == 'odt') { /** @var renderer_plugin_odt_page $renderer */ $params = explode(',', $info_value); $format = trim($params[0]); $orientation = trim($params[1]); for ($index = 2; $index < 6; $index++) { if (empty($params[$index])) { $params[$index] = 2; } } $renderer->setPageFormat($format, $orientation, $params[2], $params[3], $params[4], $params[5]); } break; case 'format': if ($format == 'odt') { /** @var renderer_plugin_odt_page $renderer */ $format = trim($info_value); $renderer->setPageFormat($format); } break; case 'orientation': if ($format == 'odt') { /** @var renderer_plugin_odt_page $renderer */ $orientation = trim($info_value); $renderer->setPageFormat(NULL, $orientation); } break; case 'margin_top': if ($format == 'odt') { /** @var renderer_plugin_odt_page $renderer */ $margin = trim($info_value); $renderer->setPageFormat(NULL, NULL, $margin); } break; case 'margin_right': if ($format == 'odt') { /** @var renderer_plugin_odt_page $renderer */ $margin = trim($info_value); $renderer->setPageFormat(NULL, NULL, NULL, $margin); } break; case 'margin_bottom': if ($format == 'odt') { /** @var renderer_plugin_odt_page $renderer */ $margin = trim($info_value); $renderer->setPageFormat(NULL, NULL, NULL, NULL, $margin); } break; case 'margin_left': if ($format == 'odt') { /** @var renderer_plugin_odt_page $renderer */ $margin = trim($info_value); $renderer->setPageFormat(NULL, NULL, NULL, NULL, NULL, $margin); } break; } } return false; }