');
/*
* 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, $lang['difflink'], $l_rev, $r_rev ? $r_rev : $INFO['lastmod']);
ptln('
');
/*
* Revisions navigation
*/
$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, $lang['diffbothprevrev'], $l_prev, $r_prev);
html_diff_navigationlink($type, $lang['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, $lang['diffnextrev'], $l_next, $r_rev);
}
if($l_rev < $r_prev) {
html_diff_navigationlink($type, $lang['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, $lang['difflastrev'], $l_rev); //last revision is diff with current page
} else {
html_diff_navigationlink($type, $lang['diffnextrev'], $l_rev, $r_next);
}
html_diff_navigationlink($type, $lang['diffbothnextrev'], $l_next, $r_next);
}
ptln('
');
}
/*
* Diff view
*/
?>