query($sql) or die('Erreur SQL !
'.$sql.'
'.$mysqli->error); $c = $req->fetch_assoc(); if(!$c && $id != '0') { die('Wrong id'); } $c_s = array(); $sql = 'SELECT * FROM '.db('chant_sources').' WHERE chant_id = '.$id; $req = $mysqli->query($sql) or die('Erreur SQL !
'.$sql.'
'.$mysqli->error); while ($s = $req->fetch_assoc()) { $c_s[] = $s; } $title = $c['incipit']?$c['incipit']:'New score'; $custom_header = <<
HEADER; include('include/header.php'); if(!$logged_in) { echo '

Please login

'; } elseif($id == '0' && count($mypost) > 0) { $gabc = array(); for($i=0;$i '') { $gabc[] = array($mypost['type'][$i],$mypost['content'][$i],array()); } } if(count($gabc) == 0) { $mypost['gabc'] = NULL; } elseif(count($gabc) == 1 && $gabc[0][0] == 'gabc') { $mypost['gabc'] = str_replace('",[]]','",{}]', str_replace("\r","",json_encode($gabc[0][1], JSON_UNESCAPED_SLASHES))); } else { $mypost['gabc'] = str_replace('",[]]','",{}]', str_replace("\r","",json_encode($gabc, JSON_UNESCAPED_SLASHES))); } unset($mypost['type']); unset($mypost['content']); $s_p = array(); for($i=0;$i (string)$id, "source" => $mypost['source'][$i], "page" => $mypost['page'][$i], "sequence" => $mypost['sequence'][$i], "extent" => $mypost['extent'][$i]); } } unset($mypost['source']); unset($mypost['page']); unset($mypost['sequence']); unset($mypost['extent']); $mypost['gabc_verses'] = str_replace("\r","",$mypost['gabc_verses']); $mypost['tex_verses'] = str_replace("\r","",$mypost['tex_verses']); $sql = 'INSERT into '.db('chants').' (`incipit`) VALUES ("'.$mysqli->real_escape_string($mypost['incipit']).'")'; $mysqli->query($sql) or die('Erreur SQL !
'.$sql.'
'.$mysqli->error); $id = $mysqli->insert_id; $mypost['id'] = $id; foreach(array('version','office-part','mode','mode_var','commentary','initial','transcriber','gabc','gabc_verses','tex_verses') as $k) { if($mypost[$k] > '' && $mypost[$k] != "(c4)") { $sql = 'UPDATE '.db('chants').' SET `'.$k.'` = "'.$mysqli->real_escape_string($mypost[$k]).'" WHERE `id` = '.$id; $mysqli->query($sql) or die('Erreur SQL !
'.$sql.'
'.$mysqli->error); } } foreach($s_p as $s) { $sql = 'INSERT into '.db('chant_sources').' VALUES ('.$id.','.$s['source'].',"'.$mysqli->real_escape_string($s['page']).'",'.intval($s['sequence']).','.intval($s['extent']).')'; $mysqli->query($sql) or die('Erreur SQL !
'.$sql.'
'.$mysqli->error); } $t = time(); $uid = $current_user->ID; $chgset = $t.'-'.$id.'-'.$uid; $sql = 'INSERT into '.db('changesets').' VALUES ('.$uid.','.$id.','.$t.', "Added to the database")'; $mysqli->query($sql) or die('Erreur SQL !
'.$sql.'
'.$mysqli->error); header('Location: chant.php?id='.$id); } elseif(count($mypost) > 3) { $gabc = array(); for($i=0;$i '') { $gabc[] = array($mypost['type'][$i],$mypost['content'][$i],array()); } } if(count($gabc) == 0) { $mypost['gabc'] = NULL; } elseif(count($gabc) == 1 && $gabc[0][0] == 'gabc') { $mypost['gabc'] = json_encode($gabc[0][1], JSON_UNESCAPED_SLASHES); } else { $mypost['gabc'] = json_encode($gabc, JSON_UNESCAPED_SLASHES); } unset($mypost['type']); unset($mypost['content']); $s_p = array(); for($i=0;$i (string)$id, "source" => $mypost['source'][$i], "page" => $mypost['page'][$i], "sequence" => $mypost['sequence'][$i], "extent" => $mypost['extent'][$i]); } } unset($mypost['source']); unset($mypost['page']); unset($mypost['sequence']); unset($mypost['extent']); $fields = array('id','incipit','version','office-part','mode','mode_var','commentary','initial','transcriber','gabc','gabc_verses','tex_verses'); $old = array(); $new = array(); foreach($fields as $f) { $myfield = str_replace('",[]]','",{}]', str_replace("\r","",$mypost[$f])); if($c[$f] != $myfield) { $old[$f] = $c[$f]; $new[$f] = $myfield; } } if($c_s != $s_p || count($old) > 0) { $t = time(); $uid = $current_user->ID; $chgset = $t.'|'.$id.'|'.$uid; $sql = 'INSERT into '.db('changesets').' VALUES ('.$uid.','.$id.','.$t.', NULL)'; $mysqli->query($sql) or die('Erreur SQL !
'.$sql.'
'.$mysqli->error); $mod = False; foreach($old as $k => $v) { $sql = 'INSERT into '.db('changes').' VALUES ("'.$chgset.'","'.$k.'","'.$mysqli->real_escape_string($v).'")'; $mysqli->query($sql) or die('Erreur SQL !
'.$sql.'
'.$mysqli->error); $sql = 'UPDATE '.db('chants').' SET `'.$k.'` = "'.$mysqli->real_escape_string($new[$k]).'" WHERE `id` = '.$id; $mysqli->query($sql) or die('Erreur SQL !
'.$sql.'
'.$mysqli->error); if(in_array($k, array('office-part','mode','mode_var','commentary','initial','gabc','gabc_verses','tex_verses'))) { $mod = True; } } if($c_s != $s_p) { $sql = 'DELETE FROM '.db('chant_sources').' WHERE `chant_id` = '.$id; $mysqli->query($sql) or die('Erreur SQL !
'.$sql.'
'.$mysqli->error); foreach($s_p as $s) { $sql = 'INSERT into '.db('chant_sources').' VALUES ('.$s['chant_id'].','.$s['source'].',"'.$mysqli->real_escape_string($s['page']).'",'.intval($s['sequence']).','.intval($s['extent']).')'; $mysqli->query($sql) or die('Erreur SQL !
'.$sql.'
'.$mysqli->error); } $sql = 'INSERT into '.db('changes').' VALUES ("'.$chgset.'","sources","'.$mysqli->real_escape_string(json_encode($c_s, JSON_UNESCAPED_SLASHES)).'")'; $mysqli->query($sql) or die('Erreur SQL !
'.$sql.'
'.$mysqli->error); } echo '
'; echo "

Please describe your changes

\n".''."
\n\n
\n"; if($mod) { echo ''; } } else { echo "

No changes made

"; } } elseif(count($mypost) > 0) { $chgset = explode('|',$mypost['changeset']); $sql = 'UPDATE '.db('changesets').' SET `comment` = "'.$mysqli->real_escape_string($mypost['comment']).'" WHERE `user_id` = '.$chgset[2].' AND `chant_id` = '.$chgset[1].' AND `time` = '.$chgset[0]; $mysqli->query($sql) or die('Erreur SQL !
'.$sql.'
'.$mysqli->error); header('Location: chant.php?id='.$id); } else { $gabc = json_decode($c['gabc']); if(is_string($gabc)) { $gabc = array(array('gabc', $gabc, array()),); } elseif(empty($gabc)) { $gabc = array(array('gabc', "(c4)", array()),); } echo '
'; echo '
'; echo "

Score

"; $i = 0; foreach($gabc as $g) { echo '

'; echo '\n"; echo ''; echo ($i>0?' Remove':''); echo '

'; $i++; } echo 'Add more'; echo "

Hymn verses (GABC)

\n"; echo '\n"; echo "

Hymn verses (TeX)

\n"; echo '\n"; echo '
 
'."\n"; echo '
'; echo '

Incipit

'."\n"; echo '

Version

'."\n"; echo '

Usage

\n"; echo "

Mode

\n"; echo '\n"; echo ' - Ending '."\n"; echo '

Commentary

'; echo "

Initial style

\n"; echo '\n"; echo '

Original transcriber

'; function sources_box($so) { global $sources; $sources_box = '\n"; echo $sources_box; } echo "

Sources

\n"; echo 'PageSequenceExtent'; $i = 0; foreach ($c_s as $s) { echo '

'; sources_box($s['source']); echo "\n"; echo ''; echo ''; echo ''; echo ($i>0?' Remove':''); echo '

'; $i++; } if(count($c_s) == 0) { echo '

'; sources_box('0'); echo "\n"; echo ''; echo ''; echo ''; echo '

'; } echo 'Add more'; echo '

'; echo "
\n"; echo "
\n"; } include('include/footer.php'); ?>