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; } if($id == 0 && array_key_exists('source', $_GET) && array_key_exists('page', $_GET)) { $c_s[] = ['source' => intval($_GET['source']), 'page' => $_GET['page'], 'sequence' => 0, 'extent' => 1]; } $tags = array(); $sql = 'SELECT * FROM '.db('chant_tags').' WHERE chant_id = '.$id; $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); $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('cantusid','version','office-part','mode','mode_var','commentary','initial','transcriber','gabc','gabc_verses','tex_verses','remarks') 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($mypost['tags'] as $t) { if($t > '') { $sql1 = 'SELECT * FROM '.db('tags').' WHERE tag LIKE "'.$mysqli->real_escape_string($t).'"'; $req1 = $mysqli->query($sql1) or die('Erreur SQL !
'.$sql1.'
'.$mysqli->error); $tt = $req1->fetch_assoc(); if($tt) { $tid = $tt['id']; } else { $sql2 = 'INSERT into '.db('tags').' (`tag`) VALUES ("'.$mysqli->real_escape_string($t).'")'; $mysqli->query($sql2) or die('Erreur SQL !
'.$sql2.'
'.$mysqli->error); $tid = $mysqli->insert_id; } $sql3 = 'INSERT into '.db('chant_tags').' VALUES ('.$id.','.$tid.')'; $mysqli->query($sql3) or die('Erreur SQL !
'.$sql3.'
'.$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']).','.max(1,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(array_key_exists('comment',$mypost)) { $chgset = explode('|',$mypost['changeset']); $sql = 'UPDATE '.db('changesets').' SET `comment` = "'.$mysqli->real_escape_string($mypost['comment']).'" WHERE `user_id` = '.intval($chgset[2]).' AND `chant_id` = '.intval($chgset[1]).' AND `time` = '.intval($chgset[0]); $mysqli->query($sql) or die('Erreur SQL !
'.$sql.'
'.$mysqli->error); foreach($mypost['fix'] as $fix) { $sql = 'UPDATE '.db('pleasefix').' SET `fixed` = 1, `fixed_by` = '.intval($chgset[2]).', `fixed_time` = '.intval($chgset[0]).' WHERE `id` = '.$fix; $mysqli->query($sql) or die('Erreur SQL !
'.$sql.'
'.$mysqli->error); } header('Location: chant.php?id='.$id); } elseif(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'] = 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']); $new_tags = []; foreach($mypost['tags'] as $t) { if($t > '') $new_tags[] = $t; } natcasesort($new_tags); unset($mypost['tags']); $fields = array('id','incipit','cantusid','version','office-part','mode','mode_var','commentary','initial','transcriber','gabc','gabc_verses','tex_verses','remarks'); $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 || $new_tags != $tags || 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($new_tags != $tags) { $sql = 'DELETE FROM '.db('chant_tags').' WHERE `chant_id` = '.$id; $mysqli->query($sql) or die('Erreur SQL !
'.$sql.'
'.$mysqli->error); foreach($new_tags as $t) { $sql1 = 'SELECT * FROM '.db('tags').' WHERE tag LIKE "'.$mysqli->real_escape_string($t).'"'; $req1 = $mysqli->query($sql1) or die('Erreur SQL !
'.$sql1.'
'.$mysqli->error); $tt = $req1->fetch_assoc(); if($tt) { $tid = $tt['id']; } else { $sql2 = 'INSERT into '.db('tags').' (`tag`) VALUES ("'.$mysqli->real_escape_string($t).'")'; $mysqli->query($sql2) or die('Erreur SQL !
'.$sql2.'
'.$mysqli->error); $tid = $mysqli->insert_id; } $sql3 = 'INSERT into '.db('chant_tags').' VALUES ('.$id.','.$tid.')'; $mysqli->query($sql3) or die('Erreur SQL !
'.$sql3.'
'.$mysqli->error); } $sql = 'INSERT into '.db('changes').' VALUES ("'.$chgset.'","tags","'.$mysqli->real_escape_string(json_encode($tags, JSON_UNESCAPED_SLASHES)).'")'; $mysqli->query($sql) or die('Erreur SQL !
'.$sql.'
'.$mysqli->error); } 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"; $sql = 'SELECT * FROM '.db('pleasefix').' WHERE chant_id = '.$id.' AND fixed = 0'; $req = $mysqli->query($sql) or die('Erreur SQL !
'.$sql.'
'.$mysqli->error); if($req->num_rows > 0) { echo "

Does it fix one of these problems?

\n"; $count = 0; while ($fix = $req->fetch_assoc()) { if($count > 0) echo "
"; echo '

'.nl2br(htmlspecialchars($fix['pleasefix']))."

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

No changes made

"; } } 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 '

Cantus ID

'."\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

'."\n"; echo "

Tags

\n"; $i = 0; foreach ($tags as $t) { echo '

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

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

'; echo ''; echo '

'; } echo 'Add more'; echo "

Remarks

\n"; echo '\n"; 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 ''; echo ''; echo ''; echo ($i>0?' Remove':''); echo '

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

'; sources_box('0'); echo ''; echo ''; echo ''; echo '

'; } echo 'Add more'; echo '

'; foreach ($c_s as $s) { if(is_dir('./sources/'.$s['source']) && !(is_array($sources[$s['source']]['pages']) && !in_array($s['page'],$sources[$s['source']]['pages']))) { $source_label = "".$sources[$s['source']]['title'].", ".$sources[$s['source']]['editor'].", ".$sources[$s['source']]['year']."".($s['page']>''?", p. ".$s['page']:''); echo '

'.$source_label."
\n"; for($i = 0; $i < max(1,$s['extent']); $i++) { echo '
'."\n"; } echo "

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