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; }
/** * Create an empty list * * @param array $data instruction by handler() * @param array $clist keys of the columns * @param Doku_Renderer $R */ function nullList($data, $clist, Doku_Renderer $R) { switch ($R->getFormat()) { case 'xhtml': $R->doc .= '<div class="dataaggregation"><p class="dataplugin_list ' . $data['classes'] . '">'; $R->cdata($this->getLang('none')); $R->doc .= '</p></div>'; break; case 'odt': $R->p_open(); $R->cdata($this->getLang('none')); $R->p_close(); break; } }
/** * Renders the data to the page * @param string $mode Name of the format mode * @param Doku_Renderer $renderer ref to the Doku_Renderer * @param array $params Parameter object returned by handle() * @return bool|void */ public function render($mode, Doku_Renderer $renderer, $params) { $render_start_timestamp = microtime(true); // Print warnings or errors, if any if (array_key_exists("message", $params)) { $renderer->p_open(); $renderer->strong_open(); $renderer->unformatted($params["message"]); $renderer->strong_close(); $renderer->p_close(); return; } // Print page title if (array_key_exists("report_title", $params)) { $renderer->header($params["report_title"], 2, 0); } // Render report if recognized if ($params["report"] == "activity_by_user") { // Activity by user renderActivityByUserReport($mode, $renderer, $params); } else { if ($params["report"] == "activity_by_namespace") { // Activity by namespace renderActivityByNamespaceReport($mode, $renderer, $params); } } // Done (except for debug) $params["debug_render_elapsed_time"] = round(microtime(true) - $render_start_timestamp, 3); // Dump params if in debug mode if ($params["debug"] == "true") { $renderer->hr(); $renderer->p_open(); $renderer->emphasis_open(); $renderer->unformatted("Debug: parameter dump"); $renderer->emphasis_close(); $renderer->p_close(); $renderer->table_open(); $renderer->tablerow_open(); $renderer->tablecell_open(); $renderer->strong_open(); $renderer->unformatted("Key"); $renderer->strong_close(); $renderer->tablecell_close(); $renderer->tablecell_open(); $renderer->strong_open(); $renderer->unformatted("Value"); $renderer->strong_close(); $renderer->tablecell_close(); $renderer->tablerow_close(); foreach ($params as $key => $value) { $renderer->tablerow_open(); $renderer->tablecell_open(); $renderer->unformatted($key); $renderer->tablecell_close(); $renderer->tablecell_open(); if (is_array($value)) { // $renderer->unformatted("Array length " . count($value)); $renderer->unformatted(json_encode($value)); } else { $renderer->unformatted($value); } $renderer->tablecell_close(); $renderer->tablerow_close(); } $renderer->table_close(); } }
/** * 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, &$renderer, $data) { global $lang; $flags = $data; if ($mode == 'xhtml') { /* @var Doku_Renderer_xhtml $renderer */ // prevent caching to ensure content is always fresh $renderer->info['cache'] = false; /* @var helper_plugin_pagelist $pagelist */ // let Pagelist Plugin do the work for us if (plugin_isdisabled('pagelist') || !($pagelist = plugin_load('helper', 'pagelist'))) { msg($this->getLang('missing_pagelistplugin'), -1); return false; } // Prepare the flags for the pagelist plugin $configflags = explode(',', str_replace(" ", "", $this->getConf('pagelist_flags'))); $flags = array_merge($configflags, $flags); foreach ($flags as $key => $flag) { if ($flag == "") { unset($flags[$key]); } } // print the search form $renderer->doc .= $this->getForm(); // get the tag input data $tags = $this->getTagSearchString(); if ($tags != NULL) { /* @var helper_plugin_tag $my */ if ($my =& plugin_load('helper', 'tag')) { $pages = $my->getTopic($this->getNS(), '', $tags); } // Display a message when no pages were found if (!isset($pages) || !$pages) { $renderer->p_open(); $renderer->cdata($lang['nothingfound']); $renderer->p_close(); } else { // display the actual search results $pagelist->setFlags($flags); $pagelist->startList(); foreach ($pages as $page) { $pagelist->addPage($page); } $renderer->doc .= $pagelist->finishList(); } } return true; } return false; }
/** * Create table header * * @param array $clist keys of the columns * @param array $data instruction by handler * @param Doku_Renderer $R the current DokuWiki renderer */ function preList($clist, $data, Doku_Renderer $R) { global $ID; global $conf; // Save current request params to not loose them $cur_params = $this->dthlp->_get_current_param(); //show active filters $text = '<div class="table dataaggregation">'; if (isset($_REQUEST['dataflt'])) { $filters = $this->dthlp->_get_filters(); $fltrs = array(); foreach ($filters as $filter) { if (strpos($filter['compare'], 'LIKE') !== false) { if (strpos($filter['compare'], 'NOT') !== false) { $comparator_value = '!~' . str_replace('%', '*', $filter['value']); } else { $comparator_value = '*~' . str_replace('%', '', $filter['value']); } $fltrs[] = $filter['key'] . $comparator_value; } else { $fltrs[] = $filter['key'] . $filter['compare'] . $filter['value']; } } $text .= '<div class="filter">'; $text .= '<h4>' . sprintf($this->getLang('tablefilteredby'), hsc(implode(' & ', $fltrs))) . '</h4>'; $text .= '<div class="resetfilter">' . '<a href="' . wl($ID) . '">' . $this->getLang('tableresetfilter') . '</a>' . '</div>'; $text .= '</div>'; } // build table $text .= '<table class="inline dataplugin_table ' . $data['classes'] . '">'; // build column headers $text .= '<tr>'; if ($data['rownumbers']) { $text .= '<th>#</th>'; } foreach ($data['headers'] as $num => $head) { $ckey = $clist[$num]; $width = ''; if (isset($data['widths'][$num]) and $data['widths'][$num] != '-') { $width = ' style="width: ' . $data['widths'][$num] . ';"'; } $text .= '<th' . $width . '>'; // add sort arrow if (isset($data['sort']) && $ckey == $data['sort'][0]) { if ($data['sort'][1] == 'ASC') { $text .= '<span>↓</span> '; $ckey = '^' . $ckey; } else { $text .= '<span>↑</span> '; } } // Clickable header for dynamic sorting $text .= '<a href="' . wl($ID, array('datasrt' => $ckey) + $cur_params) . '" title="' . $this->getLang('sort') . '">' . hsc($head) . '</a>'; $text .= '</th>'; } $text .= '</tr>'; // Dynamic filters if ($data['dynfilters']) { $text .= '<tr class="dataflt">'; if ($data['rownumbers']) { $text .= '<th></th>'; } foreach ($data['headers'] as $num => $head) { $text .= '<th>'; $form = new Doku_Form(array('method' => 'GET')); $form->_hidden = array(); if (!$conf['userewrite']) { $form->addHidden('id', $ID); } $key = 'dataflt[' . $data['cols'][$clist[$num]]['colname'] . '*~' . ']'; $val = isset($cur_params[$key]) ? $cur_params[$key] : ''; // Add current request params foreach ($cur_params as $c_key => $c_val) { if ($c_val !== '' && $c_key !== $key) { $form->addHidden($c_key, $c_val); } } $form->addElement(form_makeField('text', $key, $val, '')); $text .= $form->getForm(); $text .= '</th>'; } $text .= '</tr>'; } switch ($R->getFormat()) { case 'xhtml': $R->doc .= $text; break; case 'odt': $R->p_close(); $ncols = count($data['headers']); if ($data['rownumbers']) { $ncols += 1; } $R->table_open($ncols); $R->tablerow_open(); if ($data['rownumbers']) { $R->tableheader_open(); $R->tableheader_close(); } foreach ($data['headers'] as $num => $head) { $R->tableheader_open(); $R->doc .= $head; $R->tableheader_close(); } $R->tablerow_close(); break; } }