GregoBase/chant_submit.php

219 lines
6.0 KiB
PHP

<?php
include('include/db.php');
if(array_key_exists("id", $_GET)) {
$id = intval($_GET['id']);
} else {
die('No id');
}
# function makeimg($c) {
# $tex = mgabc2tex($c);
# if($tex) {
# makeimgfiles($c['id'],$tex);
# }
# if($c['gabc_verses'] || $c['tex_verses']) {
# $tex = mgabc2tex($c,True);
# if($tex) {
# makeimgfiles($c['id'],$tex,'.1verse');
# }
# }
# }
#
# function mkstemp($suffix) {
# # based on http://stackoverflow.com/questions/8970913/create-a-temp-file-with-a-specific-extension-using-php
# $attempts = 238328; // 62 x 62 x 62
# $letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
# $length = strlen($letters) - 1;
#
# for($count = 0; $count < $attempts; ++$count) {
# $random = "";
#
# for($p = 0; $p < 6; $p++) {
# $random .= $letters[mt_rand(0, $length)];
# }
#
# $randomFile = __DIR__.'/temp/'.$random.$suffix;
#
# if( !($fd = @fopen($randomFile, "x+")) )
# continue;
#
# return array($fd,$randomFile);
# }
# return False;
# }
#
# function gregorio($s,$i=1) {
# $f = mkstemp('.gabc');
# fwrite($f[0],"initial-style:".$i.";\n%%\n".$s);
# fclose($f[0]);
# chdir(dirname($f[1]));
# exec('gregorio '.basename($f[1]));
# unlink($f[1]);
# $gf = substr($f[1],0,-5).'.tex';
# $g = fopen($gf,'r');
# $tex = fread($g,filesize($gf));
# fclose($g);
# unlink($gf);
# $tex = substr($tex,0,-12)."\n\\relax\n";
#
# if($i > 0) {
# $tex = '\setspaceafterinitial{2.2mm plus 0em minus 0em}
# \setspacebeforeinitial{2.2mm plus 0em minus 0em}
# '.$tex;
# } else {
# $tex = '\setspaceafterinitial{0pt plus 0em minus 0em}%
# \setspacebeforeinitial{0pt plus 0em minus 0em}%
# '.$tex;
# }
#
# return $tex;
# }
#
# function mgabc2tex($c, $firstverse = False) {
# $ann = array('al' => False,
# 'an' => 'Ant',
# 'ca' => 'Cant',
# 'co' => 'Comm',
# 'gr' => 'Grad',
# 'hy' => 'Hymn',
# 'in' => 'Intr',
# 'im' => False,
# 'ky' => False,
# 'of' => 'Offert',
# 'or' => False,
# 'pr' => False,
# 'ps' => False,
# 're' => 'Resp',
# 'se' => 'Seq',
# 'tr' => 'Tract',
# 'va' => False);
# #
# # Document header
# #
# $tex = '% !TEX TS-program = lualatex
# % !TEX encoding = UTF-8
#
# \documentclass[12pt]{article}
# \usepackage{geometry}
# \geometry{paperwidth=16cm,paperheight=150cm}
# \usepackage{gregoriotex}
# \usepackage{fullpage}
# \usepackage{Tabbing}
#
# \usepackage[latin]{babel}
#
# \usepackage{fontspec}
# \defaultfontfeatures{Ligatures=TeX}
# \setmainfont{Linux Libertine O}
#
# \pagestyle{empty}
# \begin{document}
# \newcommand{\red}[1]{\textcolor{red}{#1}}
# \newcommand{\black}[1]{\textcolor{black}{#1}}
# \setlength{\parindent}{0pt}
#
# \def\greinitialformat#1{
# {\fontsize{38}{38}\selectfont #1}
# }
#
# \def\grebiginitialformat#1{
# {\fontsize{144}{144}\selectfont #1}
# }
#
# \tolerance=9999
# \pretolerance=500
# ';
# if($c['commentary']) {
# $tex .= '\commentary{{\small \emph{'.$c['commentary']."}}}\n";
# $tex .= '\nolinebreak[4]'."\n";
# }
# if($ann[$c['office-part']]) {
# $tex .= '\gresetfirstannotation{\small \textbf{'.$ann[$c['office-part']].".}}\n";
# }
# if($c['mode'] || $c['mode_var']) {
# if($c['mode'] == 'p') {
# $mode = "T. pereg.";
# } else {
# $mode = $c['mode'].($c['mode_var']?' '.$c['mode_var']:'');
# }
# $tex .= '\gresetsecondannotation{\small \textbf{'.$mode.".}}\n";
# }
# #
# # Parsing gabc
# #
# $g = json_decode($c['gabc']);
# $i = $c['initial'];
# if(is_array($g)) {
# foreach($g as $l) {
# if($l[0] == 'gabc') {
# $tex .= gregorio($l[1],$i);
# $i = 0;
# } else {
# $tex .= "\\vspace{10pt}\n".$l[1]."\\par\n";
# }
# }
# } elseif($c['gabc_verses'] && !$firstverse) {
# $tex .= gregorio($g."\n".$c['gabc_verses'],$i);
# } elseif($c['tex_verses'] && !$firstverse) {
# $tex .= gregorio($g,$i);
# $tex .= "\\vspace{10pt}\n".$c['tex_verses']."\\par\n";
# } else {
# $tex .= gregorio($g,$i);
# }
# #
# # Document footer
# #
# $tex .= '
# \end{document}
# ';
# return $tex;
# }
#
# function makeimgfiles($id, $tex, $suffix = '') {
# $path = __DIR__.'/scores/';
# $f = mkstemp('.tex');
# fwrite($f[0],$tex);
# fclose($f[0]);
# chdir(dirname($f[1]));
# exec('lualatex --interaction=nonstopmode '.basename($f[1]));
# exec('convert -density 300 '.substr($f[1],0,-4).'.pdf -flatten -trim '.$path.'png/'.$id.$suffix.'.png');
# chmod($path.'png/'.$id.$suffix.'.png', 0666);
# exec('convert -resize 33.333333% '.$path.'png/'.$id.$suffix.'.png '.$path.$id.$suffix.'.png');
# chmod($path.$id.$suffix.'.png', 0666);
# exec('pdfcrop '.substr($f[1],0,-4).'.pdf '.$path.'pdf/'.$id.$suffix.'.pdf');
# chmod($path.'pdf/'.$id.$suffix.'.pdf', 0666);
# exec('gs -q -dNOPAUSE -dBATCH -dSAFER -sDEVICE=epswrite -dCompatibilityLevel=1.3 -dEmbedAllFonts=true -dSubsetFonts=true -sOutputFile='.$path.'eps/'.$id.$suffix.'.eps '.$path.'pdf/'.$id.$suffix.'.pdf');
# chmod($path.'eps/'.$id.$suffix.'.eps', 0666);
# unlink($f[1]);
# unlink(substr($f[1],0,-4).'.log');
# unlink(substr($f[1],0,-4).'.aux');
# unlink(substr($f[1],0,-4).'.gaux');
# unlink(substr($f[1],0,-4).'.pdf');
# }
#
$sql1 = 'SELECT * FROM '.db('chants').' WHERE id = '.$id;
$req1 = $mysqli->query($sql1) or die('Erreur SQL !<br />'.$sql1.'<br />'.$mysqli->error);
$c = $req1->fetch_assoc();
if(!$c) {
die('Wrong id');
}
# makeimg($c);
$content="name:".$c['incipit'].";";
if($c['annotation1'] > ''){
$content=$content."%0A"."annotation:".$c['annotation1'].";";
}
if($c['annotation2'] > ''){
$content=$content."%0A"."annotation:".$c['annotation2'].";%0A";
}
if($c['mode'] > '' and $c['annotation2'] == ''){
$content=$content."%0A"."annotation:".$c['mode'].";";
}
if($c['commentary'] > ''){
$content=$content."%0A"."commentary:".$c['commentary'].";";
}
$content=$content."%0A"."%25%25"."%0A".json_decode($c['gabc']);
header('HTTP/1.1 301 Moved Permanently');
header('Location: /gregoriophp/?crop=0#'.$content);
?>