예제 #1
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;
 }
예제 #2
0
 /**
  * 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;
     }
 }
예제 #3
0
파일: syntax.php 프로젝트: richmahn/Door43
 /**
  * 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();
     }
 }
예제 #4
0
 /**
  * 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;
 }
예제 #5
0
 /**
  * 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>&darr;</span> ';
                 $ckey = '^' . $ckey;
             } else {
                 $text .= '<span>&uarr;</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;
     }
 }