changelog = new PageChangeLog($this->id); } /** * Display list of old revisions of the page * * @author Andreas Gohr * @author Ben Coburn * @author Kate Arzamastseva * @author Satoshi Sahara * * @param int $first skip the first n changelog lines * @return void */ public function show($first = 0) { global $lang, $REV; $changelog =& $this->changelog; // get revisions, and set correct pagenation parameters (first, hasNext) if ($first === null) $first = 0; $hasNext = false; $revisions = $this->getRevisions($first, $hasNext); // print intro print p_locale_xhtml('revisions'); // create the form $form = new Form([ 'id' => 'page__revisions', 'class' => 'changes', ]); $form->addTagOpen('div')->addClass('no'); // start listing $form->addTagOpen('ul'); foreach ($revisions as $info) { $rev = $info['date']; $info['current'] = $changelog->isCurrentRevision($rev); $class = ($info['type'] === DOKU_CHANGE_TYPE_MINOR_EDIT) ? 'minor' : ''; $form->addTagOpen('li')->addClass($class); $form->addTagOpen('div')->addClass('li'); if (isset($info['current'])) { $form->addCheckbox('rev2[]')->val($rev); } elseif ($rev == $REV) { $form->addCheckbox('rev2[]')->val($rev)->attr('checked','checked'); } elseif (page_exists($this->id, $rev)) { $form->addCheckbox('rev2[]')->val($rev); } else { $form->addCheckbox('')->val($rev)->attr('disabled','disabled'); } $form->addHTML(' '); $objRevInfo = $this->getObjRevInfo($info); $html = implode(' ', [ $objRevInfo->editDate(), // edit date and time $objRevInfo->difflink(), // link to diffview icon $objRevInfo->itemName(), // name of page or media $objRevInfo->editSummary(), // edit summary $objRevInfo->editor(), // editor info $objRevInfo->sizechange(), // size change indicator $objRevInfo->currentIndicator(), // current indicator (only when k=1) ]); $form->addHTML($html); $form->addTagClose('div'); $form->addTagClose('li'); } $form->addTagClose('ul'); // end of revision list // show button for diff view $form->addButton('do[diff]', $lang['diff2'])->attr('type', 'submit'); $form->addTagClose('div'); // close div class=no print $form->toHTML('Revisions'); // provide navigation for paginated revision list (of pages and/or media files) print $this->navigation($first, $hasNext, function ($n) { return array('do' => 'revisions', 'first' => $n); }); } }