query($sql1) or die('Erreur SQL !
'.$sql1.'
'.$mysqli->error);
$c = $req1->fetch_assoc();
$sql1 = 'SELECT * FROM '.db('changesets').' WHERE `chant_id` = '.intval($chgset[1]).' AND `time` > '.intval($chgset[0]).' ORDER BY `time` DESC';
$req1 = $mysqli->query($sql1) or die('Erreur SQL !
'.$sql1.'
'.$mysqli->error);
while($n = $req1->fetch_assoc()) {
$sql2 = 'SELECT * FROM '.db('changes').' WHERE changeset = "'.$n['time'].'|'.$n['chant_id'].'|'.$n['user_id'].'" ORDER BY field';
$req2 = $mysqli->query($sql2) or die('Erreur SQL !
'.$sql2.'
'.$mysqli->error);
while($o = $req2->fetch_assoc()) {
$c[$o['field']] = $o['changed'];
}
}
$title = 'History - '.$c['incipit'];
include('include/header.php');
echo "
".$m['comment']."
\n"; $sql2 = 'SELECT * FROM '.db('changes').' WHERE changeset = "'.$mysqli->real_escape_string($_GET['changeset']).'" ORDER BY field'; $req2 = $mysqli->query($sql2) or die('Erreur SQL !'.$f['field']."
\n";
$from_text = $f['changed'];
if($f['field'] == 'sources') {
$c_s = array();
$sql = 'SELECT * FROM '.db('chant_sources').' WHERE chant_id = '.intval($chgset[1]);
$req = $mysqli->query($sql) or die('Erreur SQL !
'.$sql.'
'.$mysqli->error);
while ($s = $req->fetch_assoc()) {
$c_s[] = $s;
}
$to_text = json_encode($c_s);
} elseif($f['field'] == 'tags') {
$tags = array();
$sql = 'SELECT * FROM '.db('chant_tags').' WHERE chant_id = '.intval($chgset[1]);
$req = $mysqli->query($sql) or die('Erreur SQL !
'.$sql.'
'.$mysqli->error);
while ($t = $req->fetch_assoc()) {
$sql1 = 'SELECT * FROM '.db('tags').' WHERE id = '.$t['tag_id'];
$req1 = $mysqli->query($sql1) or die('Erreur SQL !
'.$sql1.'
'.$mysqli->error);
$tt = $req1->fetch_assoc();
$tags[] = $tt['tag'];
}
natcasesort($tags);
$to_text = json_encode($tags);
} else {
$to_text = $c[$f['field']];
}
$diff = new FineDiff($from_text, $to_text, FineDiff::$wordGranularity);
$opcodes = FineDiff::getDiffOpcodes($from_text, $to_text);
echo ''.FineDiff::renderDiffToHTMLFromOpcodes($from_text, $opcodes)."