');
/*
* display type and exact reference
*/
$form = new Doku_Form(array('action' => wl()));
$form->addHidden('id', $ID);
$form->addHidden('rev2[0]', $l_rev);
$form->addHidden('rev2[1]', $r_rev);
$form->addHidden('do', 'diff');
$form->addElement(
form_makeListboxField(
'difftype',
array(
'sidebyside' => $lang['diff_side'],
'inline' => $lang['diff_inline']
),
$type,
$lang['diff_type'],
'', '',
array('class' => 'quickselect')
)
);
$form->addElement(form_makeButton('submit', 'diff', 'Go'));
$form->printForm();
ptln('
');
// link to exactly this view FS#2835
html_diff_navigationlink($type, 'difflink', $l_rev, $r_rev ? $r_rev : $INFO['lastmod']);
ptln('
');
}
if(!$text) {
/*
* Revisions navigation
*/
ptln('
');
$r_rev = $r_rev ? $r_rev : $INFO['meta']['last_change']['date']; //last timestamp is not in changelog
list($l_revs, $r_revs) = $pagelog->getRevisionsAround($l_rev, $r_rev);
$l_revisions = array();
foreach($l_revs as $rev) {
$info = $pagelog->getRevisionInfo($rev);
$l_revisions[$rev] = array(
$rev,
dformat($info['date']) . ' ' . editorinfo($info['user']) . ' ' . $info['sum'],
$rev >= $r_rev //disable?
);
}
$r_revisions = array();
foreach($r_revs as $rev) {
$info = $pagelog->getRevisionInfo($rev);
$r_revisions[$rev] = array(
$rev,
dformat($info['date']) . ' ' . editorinfo($info['user']) . ' ' . $info['sum'],
$rev <= $l_rev //disable?
);
}
//determine previous/next revisions
$l_index = array_search($l_rev, $l_revs);
$l_prev = $l_revs[$l_index + 1];
$l_next = $l_revs[$l_index - 1];
$r_index = array_search($r_rev, $r_revs);
$r_prev = $r_revs[$r_index + 1];
$r_next = $r_revs[$r_index - 1];
//move back
if($l_prev) {
html_diff_navigationlink($type, 'diffbothprevrev', $l_prev, $r_prev);
html_diff_navigationlink($type, 'diffprevrev', $l_prev, $r_rev);
}
//left dropdown
$form = new Doku_Form(array('action' => wl()));
$form->addHidden('id', $ID);
$form->addHidden('difftype', $type);
$form->addHidden('rev2[1]', $r_rev);
$form->addHidden('do', 'diff');
$form->addElement(
form_makeListboxField(
'rev2[0]',
$l_revisions,
$l_rev,
'', '', '',
array('class' => 'quickselect')
)
);
$form->addElement(form_makeButton('submit', 'diff', 'Go'));
$form->printForm();
//move forward/back
if($l_next < $r_rev) {
html_diff_navigationlink($type, 'diffnextrev', $l_next, $r_rev);
}
if($l_rev < $r_prev) {
html_diff_navigationlink($type, 'diffprevrev', $l_rev, $r_prev);
}
//rigth dropdown
$form = new Doku_Form(array('action' => wl()));
$form->addHidden('id', $ID);
$form->addHidden('rev2[0]', $l_rev);
$form->addHidden('difftype', $type);
$form->addHidden('do', 'diff');
$form->addElement(
form_makeListboxField(
'rev2[1]',
$r_revisions,
$r_rev,
'', '', '',
array('class' => 'quickselect')
)
);
$form->addElement(form_makeButton('submit', 'diff', 'Go'));
$form->printForm();
//move forward
if($r_next) {
if($pagelog->isCurrentRevision($r_next)) {
html_diff_navigationlink($type, 'difflastrev', $l_rev); //last revision is diff with current page
} else {
html_diff_navigationlink($type, 'diffnextrev', $l_rev, $r_next);
}
html_diff_navigationlink($type, 'diffbothnextrev', $l_next, $r_next);
}
ptln('
'); // .diffnav
ptln('
'); // .diffoptions
}
/*
* Diff view
*/
?>