Ejemplo n.º 1
0
 function render($mode, Doku_Renderer $renderer, $data)
 {
     $renderer->monospace_open();
     $renderer->cdata(substr($data[0], 5, -5));
     $renderer->monospace_close();
     return true;
 }
Ejemplo n.º 2
0
 /**
  * Create output
  */
 function render($mode, Doku_Renderer $renderer, $indata) {
     if($mode == 'xhtml'){
         /** @var Doku_Renderer_xhtml $renderer */
         $renderer->finishSectionEdit();
         return true;
     }
     return false;
 }
 /**
  * Handles the actual output creation.
  *
  * @param string        $mode     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($mode, Doku_Renderer $renderer, $data)
 {
     if ($mode == 'xhtml') {
         $renderer->internallink($data['link'], $data['title']);
         return true;
     }
     return false;
 }
 function testNonexisting()
 {
     $Renderer = new Doku_Renderer();
     $Renderer->interwiki = getInterwiki();
     $shortcut = 'nonexisting';
     $reference = 'foo @+%/';
     $url = $Renderer->_resolveInterWiki($shortcut, $reference);
     $expected = 'https://www.google.com/search?q=foo%20%40%2B%25%2F&btnI=lucky';
     $this->assertEquals($expected, $url);
 }
 /**
  * Finishes the last open section edit
  */
 function render($mode, Doku_Renderer $renderer, $data)
 {
     if ($mode == 'xhtml') {
         /** @var Doku_Renderer_xhtml $renderer */
         list($endpos) = $data;
         $renderer->finishSectionEdit($endpos);
         return true;
     }
     return false;
 }
Ejemplo n.º 6
0
 /**
  * Renders an include edit button
  *
  * @author Michael Klier <*****@*****.**>
  */
 function render($mode, Doku_Renderer &$renderer, $data)
 {
     list($title) = $data;
     if ($mode == 'xhtml') {
         $renderer->startSectionEdit(0, 'plugin_include_editbtn', $title);
         $renderer->finishSectionEdit();
         return true;
     }
     return false;
 }
Ejemplo n.º 7
0
 /**
  * Output the stored data
  *
  * @param string|int $value the value stored in the database
  * @param \Doku_Renderer $R the renderer currently used to render the data
  * @param string $mode The mode the output is rendered in (eg. XHTML)
  * @return bool true if $mode could be satisfied
  */
 public function renderValue($value, \Doku_Renderer $R, $mode)
 {
     $date = date_create($value);
     if ($date !== false) {
         $out = date_format($date, $this->config['format']);
     } else {
         $out = '';
     }
     $R->cdata($out);
     return true;
 }
Ejemplo n.º 8
0
 /**
  * @param string $value the user to display
  * @param \Doku_Renderer $R
  * @param string $mode
  * @return bool
  */
 public function renderValue($value, \Doku_Renderer $R, $mode)
 {
     if ($mode == 'xhtml') {
         $name = userlink($value);
         $R->doc .= $name;
     } else {
         $name = userlink($value, true);
         $R->cdata($name);
     }
     return true;
 }
Ejemplo n.º 9
0
 /**
  * @param int|string $value
  * @param \Doku_Renderer $R
  * @param string $mode
  * @return bool
  */
 public function renderValue($value, \Doku_Renderer $R, $mode)
 {
     $context = $this->getContext();
     $filter = SearchConfigParameters::$PARAM_FILTER . '[' . $context->getTable() . '.' . $context->getLabel() . '*~]=' . $value;
     $page = trim($this->config['page']);
     if (!$page) {
         $page = cleanID($context->getLabel());
     }
     $R->internallink($page . '?' . $filter, $value);
     return true;
 }
Ejemplo n.º 10
0
 function render($mode, Doku_Renderer $renderer, $data)
 {
     if ($data[0] == DOKU_LEXER_ENTER) {
         $renderer->strong_open();
     } elseif ($data[0] == DOKU_LEXER_EXIT) {
         $renderer->strong_close();
     } else {
         $renderer->cdata($data[1]);
     }
     return true;
 }
 /**
  * Create output
  */
 function render($format, Doku_Renderer $renderer, $data)
 {
     if ($format != 'xhtml') {
         return false;
     }
     // disable caching
     $renderer->nocache();
     /** @var helper_plugin_translation $hlp */
     $hlp = plugin_load('helper', 'translation');
     $renderer->doc .= $hlp->showTranslations();
     return true;
 }
Ejemplo n.º 12
0
 function render($mode, Doku_Renderer $renderer, $data)
 {
     if ($data[0] == DOKU_LEXER_ENTER) {
         $renderer->emphasis_open();
     } elseif ($data[0] == DOKU_LEXER_EXIT) {
         $renderer->emphasis_close();
     } elseif ($data[0] == DOKU_LEXER_UNMATCHED) {
         $renderer->cdata($data[1]);
     } elseif ($data[0] == DOKU_LEXER_SPECIAL) {
         $renderer->cdata($data[1]);
     }
     return true;
 }
Ejemplo n.º 13
0
 /**
  * Output the stored data
  *
  * @param string $value the value stored in the database - JSON when titles are used
  * @param \Doku_Renderer $R the renderer currently used to render the data
  * @param string $mode The mode the output is rendered in (eg. XHTML)
  * @return bool true if $mode could be satisfied
  */
 public function renderValue($value, \Doku_Renderer $R, $mode)
 {
     if ($this->config['usetitles']) {
         list($id, $title) = json_decode($value);
     } else {
         $id = $value;
         $title = null;
     }
     if (!$id) {
         return true;
     }
     $R->internallink(":{$id}", $title);
     return true;
 }
Ejemplo n.º 14
0
 /**
  * Output the stored data
  *
  * @param string|int $value the value stored in the database
  * @param \Doku_Renderer $R the renderer currently used to render the data
  * @param string $mode The mode the output is rendered in (eg. XHTML)
  * @return bool true if $mode could be satisfied
  */
 public function renderValue($value, \Doku_Renderer $R, $mode)
 {
     if ($this->config['roundto'] == -1) {
         $value = $this->formatWithoutRounding($value, $this->config['decpoint'], $this->config['thousands']);
     } else {
         $value = floatval($value);
         $value = number_format($value, $this->config['roundto'], $this->config['decpoint'], $this->config['thousands']);
     }
     if ($this->config['trimzeros'] && strpos($value, $this->config['decpoint']) !== false) {
         $value = rtrim($value, '0');
         $value = rtrim($value, $this->config['decpoint']);
     }
     $R->cdata($this->config['prefix'] . $value . $this->config['postfix']);
     return true;
 }
Ejemplo n.º 15
0
 /**
  * Render xhtml output or metadata
  *
  * @param string         $mode      Renderer mode (supported modes: xhtml)
  * @param Doku_Renderer  $renderer  The renderer
  * @param array          $data      The data from the handler() function
  * @return bool If rendering was successful.
  */
 public function render($mode, &$renderer, $data)
 {
     if ($mode == 'xhtml') {
         try {
             preg_match('/<sequencediagram>(.*?)<\\/sequencediagram>/s', $data[0], $erg);
             $src = $renderer->_xmlEntities($erg[1]);
             $text = "<div class=\"diagram\" style=\"overflow: auto;margin: 0 auto;text-align: center;\">{$src}</div>";
             $renderer->doc .= $text;
         } catch (Exception $e) {
             $renderer->doc .= "<pre>" . htmlentities($text) . "\n" . $e . "</pre>";
         }
         return true;
     }
     return false;
 }
Ejemplo n.º 16
0
 /**
  * Create output
  */
 public function render($format, Doku_Renderer $renderer, $indata)
 {
     if (empty($indata)) {
         return false;
     }
     list($state, $data) = $indata;
     if ($format != 'xhtml') {
         return false;
     }
     switch ($state) {
         case DOKU_LEXER_ENTER:
             list($class, $title) = $data;
             if ($title) {
                 //$html = '<div class="plugin_codeprettify">'.hsc($title).'</div>';
                 $html = p_render($format, p_get_instructions($title), $info);
                 $html = '<div class="plugin_codeprettify">' . $html . '</div>';
                 $renderer->doc .= $html;
             }
             $class = implode(' ', $class);
             $renderer->doc .= '<pre class="' . $class . '">';
             break;
         case DOKU_LEXER_UNMATCHED:
             $renderer->doc .= $renderer->_xmlEntities($data);
             break;
         case DOKU_LEXER_EXIT:
             $renderer->doc .= '</pre>';
             break;
     }
     return true;
 }
 function plugin($name, $data, $state = '', $match = '')
 {
     // filter syntax plugins that are not our own syntax plugin
     if ($name == 'icalevents') {
         return parent::plugin($name, $data, $state, $match);
     }
 }
Ejemplo n.º 18
0
 /**
  * Create output
  */
 function render($format, Doku_Renderer $R, $data)
 {
     global $conf;
     if ($format != 'xhtml') {
         return false;
     }
     //prepare for formating
     $link['target'] = $conf['target']['extern'];
     $link['style'] = '';
     $link['pre'] = '';
     $link['suf'] = '';
     $link['more'] = '';
     $link['class'] = 'xref_plugin';
     $link['name'] = hsc($data[2]);
     if (!$data[1]) {
         $link['url'] = $this->web;
         $link['title'] = $this->getLang('unknown');
         $link['class'] .= ' xref_plugin_err';
     } else {
         $link['url'] = $this->web . '/' . $data[1] . hsc($data[3]);
         $link['title'] = sprintf($this->getLang('view'), hsc($data[0]));
     }
     $R->doc .= $R->_formatLink($link);
     return true;
 }
Ejemplo n.º 19
0
 function render($mode, Doku_Renderer &$renderer, $data)
 {
     list($page) = $data;
     if ($mode == 'xhtml') {
         $renderer->doc .= DOKU_LF . '<p class="include_readmore">' . DOKU_LF;
     } else {
         $renderer->p_open();
     }
     $renderer->internallink($page, $this->getLang('readmore'));
     if ($mode == 'xhtml') {
         $renderer->doc .= DOKU_LF . '</p>' . DOKU_LF;
     } else {
         $renderer->p_close();
     }
     return true;
 }
Ejemplo n.º 20
0
 /**
  * Create output
  */
 function render($mode, Doku_Renderer $renderer, $data)
 {
     if ($mode == 'xhtml') {
         list($state, $match) = $data;
         switch ($state) {
             case DOKU_LEXER_ENTER:
                 list($style, $face) = $match;
                 if (isset($face)) {
                     list($face, $fg, $bg) = explode(';;', $face);
                     if (isset($fg)) {
                         $color = " color: {$fg}; ";
                         $style .= $color;
                     }
                     if (isset($bg)) {
                         $color = " background-color: {$bg} ";
                         $style .= $color;
                     }
                 }
                 $style = "font-family: {$face}; {$style}";
                 $renderer->doc .= "<span style='{$style}'>";
                 break;
             case DOKU_LEXER_UNMATCHED:
                 $renderer->doc .= $renderer->_xmlEntities($match);
                 break;
             case DOKU_LEXER_EXIT:
                 $renderer->doc .= "</span>";
                 break;
         }
         return true;
     }
     return false;
 }
Ejemplo n.º 21
0
 /**
  * Create output
  */
 function render($format, Doku_Renderer $R, $data)
 {
     if ($format != 'xhtml') {
         return false;
     }
     $user = strip_tags(editorinfo($data['user']));
     if ($data['valid']) {
         $msg = sprintf($this->getLang('valid'), $user);
         $R->doc .= '<span class="sig_valid" title="' . $msg . '">';
     } else {
         $msg = sprintf($this->getLang('invalid'), $user);
         $R->doc .= '<span class="sig_invalid" title="' . $msg . '">';
     }
     $R->cdata($data['text']);
     $R->doc .= '</span>';
     return true;
 }
Ejemplo n.º 22
0
 /**
  * Displays a local link to an included page
  *
  * @author Michael Hamann <*****@*****.**>
  */
 function render($mode, Doku_Renderer &$renderer, $data)
 {
     global $ID;
     if ($mode == 'xhtml') {
         /** @var Doku_Renderer_xhtml $renderer */
         list($hash, $name, $id) = $data;
         // construct title in the same way it would be done for internal links
         $default = $renderer->_simpleTitle($id);
         $name = $renderer->_getLinkTitle($name, $default, $isImage, $id);
         $title = $ID . ' ↵';
         $renderer->doc .= '<a href="#' . $hash . '" title="' . $title . '" class="wikilink1">';
         $renderer->doc .= $name;
         $renderer->doc .= '</a>';
         return true;
     }
     return false;
 }
Ejemplo n.º 23
0
 /**
  * Render schema data
  *
  * Currently completely renderer agnostic
  *
  * @todo we currently have no schema headlines
  *
  * @param string $mode Renderer mode
  * @param Doku_Renderer $R The renderer
  * @param array $data The data from the handler() function
  * @return bool If rendering was successful.
  */
 public function render($mode, Doku_Renderer $R, $data)
 {
     global $ID;
     global $INFO;
     global $REV;
     if ($ID != $INFO['id']) {
         return true;
     }
     if (!$INFO['exists']) {
         return true;
     }
     if ($this->hasBeenRendered) {
         return true;
     }
     // do not render the output twice on the same page, e.g. when another page has been included
     $this->hasBeenRendered = true;
     $assignments = new Assignments();
     $tables = $assignments->getPageAssignments($ID);
     if (!$tables) {
         return true;
     }
     if ($mode == 'xhtml') {
         $R->doc .= '<div id="plugin__struct_output">';
     }
     foreach ($tables as $table) {
         $schemadata = AccessTable::byTableName($table, $ID, $REV);
         $schemadata->optionSkipEmpty(true);
         $data = $schemadata->getData();
         if (!count($data)) {
             continue;
         }
         $R->table_open();
         $R->tablethead_open();
         $R->tablerow_open();
         $R->tableheader_open(2);
         $R->cdata($table);
         $R->tableheader_close();
         $R->tablerow_close();
         $R->tablethead_open();
         $R->tabletbody_open();
         foreach ($data as $field) {
             $R->tablerow_open();
             $R->tableheader_open();
             $R->cdata($field->getColumn()->getTranslatedLabel());
             $R->tableheader_close();
             $R->tablecell_open();
             $field->render($R, $mode);
             $R->tablecell_close();
             $R->tablerow_close();
         }
         $R->tabletbody_close();
         $R->table_close();
     }
     if ($mode == 'xhtml') {
         $R->doc .= '</div>';
     }
     return true;
 }
Ejemplo n.º 24
0
 function render($mode, Doku_Renderer $R, $data)
 {
     global $auth;
     global $conf;
     extract($data);
     if ($mode != 'xhtml' || is_null($auth)) {
         $R->cdata($title ? $title : $login);
         return true;
     }
     // fetch userinfo
     $uinfo = $auth->getUserData($login);
     // nothing found? render as text
     if (!$uinfo) {
         $R->cdata($title ? $title : $login);
         return true;
     }
     if (!$title) {
         if ($this->getConf('usefullname')) {
             $title = $uinfo['name'];
         } else {
             $title = $login;
         }
     }
     if (!$title) {
         $title = $login;
     }
     if ($uinfo['avatar'] && $uinfo['avatar'] != 'gravatar') {
         $img = $this->getConf('avatarurl') . $uinfo['avatar'];
     } else {
         $img = $this->getConf('gravatar') . md5($uinfo['mail']);
     }
     $R->doc .= '<a href="' . $this->getConf('profileurl') . $uinfo['uid'] . '" class="unblink_plugin">';
     $R->doc .= hsc($title);
     $R->doc .= '<span class="unblink_popup" title="Visit Profile">';
     $R->doc .= '<img src="' . hsc($img) . '" class="medialeft" width="64" height="64" alt="" />';
     $R->doc .= '<b>' . hsc($uinfo['name']) . '</b><br />';
     if ($uinfo['name'] != $login) {
         $R->doc .= '<i>' . hsc($login) . '</i><br />';
     }
     $R->doc .= '<br />';
     $R->doc .= hsc($uinfo['location']);
     $R->doc .= '</span>';
     $R->doc .= '</a>';
     return true;
 }
Ejemplo n.º 25
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;
 }
Ejemplo n.º 26
0
 /**
  * Create output
  *
  * @param string $format Renderer mode (supported modes: xhtml)
  * @param Doku_Renderer $renderer The renderer
  * @param array $data The data from the handler() function
  * @return bool If rendering was successful.
  */
 function render($format, Doku_Renderer $renderer, $data)
 {
     if ($format == 'metadata') {
         return false;
     }
     if ($data[0] != DOKU_LEXER_SPECIAL) {
         return false;
     }
     $hlp = plugin_load('helper', 'rating');
     $list = $hlp->best($data[1]['lang'], $data[1]['startdate'], 20);
     if ($data[1]['tag'] == 'ol') {
         $renderer->listo_open();
     } else {
         $renderer->listu_open();
     }
     $num_items = 0;
     foreach ($list as $item) {
         if (auth_aclcheck($item['page'], '', null) < AUTH_READ) {
             continue;
         }
         if (!page_exists($item['page'])) {
             continue;
         }
         $num_items = $num_items + 1;
         $renderer->listitem_open(1);
         if (strpos($item['page'], ':') === false) {
             $item['page'] = ':' . $item['page'];
         }
         $renderer->internallink($item['page']);
         if ($data[1]['score'] === 'true') {
             $renderer->cdata(' (' . $item['val'] . ')');
         }
         $renderer->listitem_close();
         if ($num_items >= 10) {
             break;
         }
     }
     if ($data[1]['tag'] == 'ol') {
         $renderer->listo_close();
     } else {
         $renderer->listu_close();
     }
     return true;
 }
Ejemplo n.º 27
0
 function render($mode, Doku_Renderer $renderer, $data)
 {
     if ($mode == 'xhtml') {
         list($state, $match) = $data;
         switch ($state) {
             case DOKU_LEXER_SPECIAL:
                 $renderer->doc .= $match;
                 break;
             case DOKU_LEXER_UNMATCHED:
                 $renderer->doc .= $renderer->_xmlEntities($match);
                 break;
             case DOKU_LEXER_EXIT:
                 $renderer->doc .= "";
                 break;
         }
         return true;
     }
     return false;
 }
Ejemplo n.º 28
0
 function render($mode, Doku_Renderer $renderer, $data)
 {
     global $ID;
     preg_match('/^\\!\\[(' . $this->nested_brackets_re . ')\\][ ]?(?:\\n[ ]*)?\\[(.*?)\\]$/', $data[1], $matches);
     $title = $matches[1];
     if ($matches[2] == '') {
         $rid = $matches[1];
     } else {
         $rid = $matches[2];
     }
     $rid = preg_replace("/ /", ".", $rid);
     $target = p_get_metadata($ID, 'markdowku_references_' . $rid, METADATA_RENDER_USING_CACHE);
     if ($target == '') {
         $renderer->cdata($data[1]);
     } else {
         $renderer->_media($target, $title);
     }
     return true;
 }
Ejemplo n.º 29
0
 /**
  * Create output
  */
 public function render($mode, Doku_Renderer $renderer, $state)
 {
     // $data is what the function handle() return'ed.
     if ($mode == 'xhtml') {
         /** @var Doku_Renderer_xhtml $renderer */
         switch ($state) {
             case DOKU_LEXER_ENTER:
                 $renderer->doc .= '<div class="alphalist2">';
                 break;
             case DOKU_LEXER_UNMATCHED:
                 $renderer->doc .= $renderer->_xmlEntities($match);
                 break;
             case DOKU_LEXER_EXIT:
                 $renderer->doc .= "</div>";
                 break;
         }
         return true;
     }
     return false;
 }
Ejemplo n.º 30
0
 /**
  * Create output
  */
 function render($mode, Doku_Renderer $renderer, $data)
 {
     if ($mode == 'xthml') {
         return true;
         // don't output anything
     } elseif ($mode == 'metadata') {
         /** @var Doku_Renderer_metadata $renderer */
         // do some validation / conversion for date metadata
         if (isset($data['date'])) {
             if (is_array($data['date'])) {
                 foreach ($data['date'] as $key => $date) {
                     $date = $this->_convertDate(trim($date));
                     if (!$date) {
                         unset($data['date'][$key]);
                     } else {
                         $data['date'][$key] = $date;
                     }
                 }
             } else {
                 unset($data['date']);
             }
         }
         // now merge the arrays
         $protected = array('description', 'date', 'contributor');
         foreach ($data as $key => $value) {
             // be careful with sub-arrays of $meta['relation']
             if ($key == 'relation') {
                 foreach ($value as $subkey => $subvalue) {
                     if ($subkey == 'media') {
                         $renderer->meta[$key][$subkey][cleanID($subvalue)] = @file_exists(mediaFN($subvalue));
                     } elseif ($subkey == 'firstimage') {
                         /* The metadata renderer overrides the first image value with its internal value at the end.
                            Therefore the only thing we can do is setting this internal value by calling _firstimage.
                            This fails if there has already been a first image saved. */
                         $renderer->_firstimage($subvalue);
                     } else {
                         // for everything else assume that we have a page id
                         $renderer->meta[$key][$subkey][cleanID($subvalue)] = page_exists($subvalue);
                     }
                 }
                 // be careful with some senisitive arrays of $meta
             } elseif (in_array($key, $protected)) {
                 if (array_key_exists($key, $renderer->meta)) {
                     $renderer->meta[$key] = array_merge($renderer->meta[$key], $value);
                 } else {
                     $renderer->meta[$key] = $value;
                 }
                 // no special treatment for the rest
             } else {
                 $renderer->meta[$key] = $value;
             }
         }
     }
 }