예제 #1
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;
 }
예제 #2
0
 /**
  * Create output
  */
 function render($format, Doku_Renderer $renderer, $data)
 {
     global $ID;
     if ($format != 'xhtml') {
         return false;
     }
     if (is_null($data)) {
         return false;
     }
     if (!$this->dthlp->ready()) {
         return false;
     }
     $sqlite = $this->dthlp->_getDB();
     if (!$sqlite) {
         return false;
     }
     if (!$data['sql']) {
         return true;
     }
     // sql build
     $this->dthlp->_replacePlaceholdersInSQL($data);
     $res = $sqlite->query($data['sql']);
     if (!$sqlite->res2count($res)) {
         return true;
     }
     // no rows matched
     $rows = $sqlite->res2arr($res);
     $renderer->doc .= '<dl class="' . $data['classes'] . '">';
     $renderer->doc .= '<dt>' . htmlspecialchars($data['title']) . '</dt>';
     $renderer->doc .= '<dd>';
     $renderer->listu_open();
     foreach ($rows as $row) {
         $renderer->listitem_open(1);
         $renderer->internallink($row['page']);
         $renderer->listitem_close();
     }
     $renderer->listu_close();
     $renderer->doc .= '</dd>';
     $renderer->doc .= '</dl>';
     return true;
 }
예제 #3
0
 /**
  * Create list 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)
 {
     switch ($R->getFormat()) {
         case 'xhtml':
             $R->doc .= '<div class="dataaggregation"><ul class="dataplugin_list ' . $data['classes'] . '">';
             break;
         case 'odt':
             $R->listu_open();
             break;
     }
 }