Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
212 changes: 49 additions & 163 deletions index.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,89 +15,6 @@
$token_ok = (token_found($arv_config['tokens_dir'], $token) >= 2);

$f = 'Archives_HMAP.csv';

// Instuments minimum pour pouvoir jouer un morceau
// Ex: au moins flûte 1, clar 1, sax 1, etc.
$instru_oblig = array(
'Conducteur',
'Flûte 1',
'Hautbois 1 ',
'Clarinette 1 Sib',
'Clarinette Basse',
'Sax Alto 1',
'Sax Ténor 1 ',
'Sax Baryton',
'Trompette 1',
'Cor fa 1 + Mib',
'Trombone Ut 1',
'Baryton sib clé de sol',
'Basse Sib clé de fa',
'Batterie',
'Percussion 1',
);

// Tous les instruments de l'HMAP
// $instru_oblig + piccolo, flûte 2, clar 2/3, sax 2/3, etc.
$instru_hmap =
array(
'Piccolo',
'Flûte 2 ',
'Hautbois 2',
'Clarinette 2 Sib',
'Clarinette 3 Sib',
'Sax Alto 2 ',
'Sax Alto 3 ',
'Sax Ténor 2',
'Bugle 1',
'Bugle 2',
'Cornet 1',
'Cornet 2',
'Cornet 3',
'Trompette 2',
'Trompette 3',
'Cor fa 2 + Mib',
'Trombone Ut 2',
'Tuba sib clé de fa',
'Euphonium Ut clé de fa',
'Euph 1 Sib clé de fa + sol',
'Basse Sib clé de sol',
'Percussion 2',
'Timbales',
);

$instru_hmap = array_merge($instru_hmap, $instru_oblig);

// Autres instrus
/*
'Ptte flûte réb',
'Basson 1',
'Basson 2',
'Petite Clarinette Mib',
'Clarinette Alto',
'Clarinette Solo',
'Sax. Soprano',
'Sax Basse',
'Cor fa 3 + Mib',
'Cor fa 4 + Mib',
'Trombone Ut 3',
'Trombone Ut 4',
'Trombone Sib 1 clé fa',
'Trombone Sib2 Clé fa',
'Trombone Sib3 clé fa',
'Trombone Sib 4 clé fa',
'Trombone sib 1 clé sol',
'TromboneSib2 clé de sol',
'Trombone Sib 3 clé de sol',
'Tuba Ut clé de fa',
'Euphonium 2 Sib clé de fa',
'Contrebasse Sib clé de fa',
'Contrebasse Sib clé de sol',
'Contrebasse Mib clé de fa',
'Contrebasse Mib clé de sol',
'Contrebasse Ut clé de Fa',
'Divers',
*/

?>
<!DOCTYPE html>
<html>
Expand Down Expand Up @@ -168,14 +85,15 @@
?>

<?php
$sv = ''; $tv = ''; $lv = 0;
$sv = ''; $tv = ''; $iv = '';
// recherche
if(isset($_GET['s'])) $sv = htmlspecialchars($_GET['s']);
// instrument
if(isset($_GET['i'])) $iv = htmlspecialchars($_GET['i']);
// token
if(isset($_GET['t'])) $tv = (int)($_GET['t']);
// avec instruments
if(isset($_GET['l'])) $lv = ($_GET['l'] ? true : false);
?>

<!-- <p style="float:right;padding:0;margin:0"><em><?php echo $f ?></em></p> -->
<h1 class="entry-title">Arvin <span style="color:#ff379b">l'archiviste</span></h1>

Expand Down Expand Up @@ -228,6 +146,51 @@
</form>
<br/>

<!-- Select an instrument -->
<form>
<?php
if($token_ok)
{
echo '<input type="hidden" name="token" value="'.$token.'" />';
}
?>
Télécharger toutes les partitions d'un instrument :

<select name="inst">
<?php
echo "<option value=\"\"";
if(substr($iv, 0, 4) != 'inst:') echo " selected";
echo ">Tous les instruments</option>";

$instruments = get_instruments('private/docs/instruments.csv');
ksort($instruments);

foreach($instruments as $instr)
{
$instr_name = $instr["name_fr"];
echo "<option value=\"inst:{$instr_name}\"";
if($iv == "inst:{$instr_name}") echo " selected";
echo ">{$instr_name}</option>";
}
?>
</select>
<select name="number">
<?php
for($instnum = 1; $instnum <= 4; $instnum++)
{
echo "<option value=\"instnum:{$instnum}\">";
echo "{$instnum}";
echo "</option>";
}
echo "<option value=\"\">";
echo "Toutes les parties";
echo "</option>";
?>
</select>
<!-- FIXME -->
<input type="submit" value="Télécharger"/>
</form>

<form method="get" class="noprint">
<?php
if($token_ok)
Expand All @@ -241,11 +204,7 @@
<option value="0" <?php if($tv==0) echo 'selected' ?>>Titre</option>
<option value="1" <?php if($tv==1) echo 'selected' ?>>Auteur</option>
<option value="2" <?php if($tv==2) echo 'selected' ?>>Référence</option>
<option value="3" <?php if($tv==3) echo 'selected' ?>>Complétion</option>
</select>
<!--
<input type="checkbox" id="l" name="l" <?php if($lv) echo 'checked' ?>><label for="l">avec instruments</label>
-->
</form>

<?php
Expand Down Expand Up @@ -284,28 +243,6 @@ function tri_par_completion($a, $b) {return tri_ligne($a, $b, 'completion');}
case 2:
usort($data, 'tri_par_ref');
break;
case 3:
$data_sorted = array();
foreach($data as $k => $l)
{
$oblig_compt = 0;
$hmap_compt = 0;
for($j=4; $j<count($l);$j++)
{
if(!$entete[$j]) continue; // passe les colonnes vides

$en_stock = ($l[$j] !== '' && $l[$j] !== '0');
if($en_stock && in_array($entete[$j], $instru_oblig)) $oblig_compt++;
if($en_stock && in_array($entete[$j], $instru_hmap)) $hmap_compt++;
}
$key = sprintf('%03d', (int)(100*$oblig_compt/count($instru_oblig))).'_'.
sprintf('%03d', (int)(100*$hmap_compt/count($instru_hmap))).'_'.
$l[3]; // reference pour le tri en cas d'égalité
$data_sorted[$key] = $l;
}
krsort($data_sorted);
$data = array_values($data_sorted);
break;
}

$pgm = array();
Expand Down Expand Up @@ -351,69 +288,18 @@ function tri_par_completion($a, $b) {return tri_ligne($a, $b, 'completion');}
else
echo $c;
echo '</div>';
//if(!$lv)
{
if($i>=3) break;
}
}

$oblig_compt = 0;
$hmap_compt = 0;
for($j=4; $j<count($l);$j++)
{
if(!$entete[$j]) continue; // passe les colonnes vides

$en_stock = ($l[$j] !== '' && $l[$j] !== '0');
if($en_stock && in_array($entete[$j], $instru_oblig)) $oblig_compt++;
if($en_stock && in_array($entete[$j], $instru_hmap)) $hmap_compt++;
}
/*
// Désactivation complétion
echo '<td>'.(int)(100*$oblig_compt/count($instru_oblig)).'% / '.
(int)(100*$hmap_compt/count($instru_hmap)).'%</td>';
*/
if($token_ok && is_dir($arv_config['docs_dir'].'/'.$l[3]))
{
echo '<div><a href="list.php?ref='.$l[3].'&token='.$_GET['token'].'" style="font-size:150%;font-weight:bolder;text-decoration:underline">Télécharger</a></div>';
}
echo "</div>\n";

if($lv)
{
echo '</div>';
//var_dump($l);
echo '<ul>';
$oblig_compt = 0;
for($j=4; $j<count($l);$j++)
{
if(!$entete[$j]) continue; // passe les colonnes vides

$class = '';
if(in_array($entete[$j], $instru_hmap)) $class .= ' hmap';
if(in_array($entete[$j], $instru_oblig)) $class .= ' oblig';

$en_stock = ($l[$j] !== '' && $l[$j] !== '0');
if(!$en_stock) $class .= ' manquant';
if($en_stock && in_array($entete[$j], $instru_oblig)) $oblig_compt++;

echo '<li';
if($class) echo ' class="'.$class.'"';
echo '>';
echo $entete[$j];
if($en_stock) echo ' ('.$l[$j].')';
echo '</li>';
}
echo '</ul>';

echo '<div>';
}

}
echo '</div>';

//echo '</p>';


?>
</div>
</body>
Expand Down
23 changes: 23 additions & 0 deletions private/docs/instruments.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name_fr,name_eng,tune,regex_fr,regex_en
basson,bassoon,ut
batterie,drums,
bugle,flugelhorn,Bb
clarinette,clarinet,A;Bb;Eb
clarinette basse,clarinet bass,
claviers,,
conducteur,,
cor,horn,Eb;F
cornet,cornet,Bb
euphonium,euphonium,Bb;C
flute,flute,
hautbois,oboe,
mallet,,
percussion,,percu(ssion)?
piccolo,piccolo,
saxophone alto,,sax[o|ophone]? alto
saxophone baryton,,sax[o|ophone]? baryton
saxophone tenor,,sax[o|ophone]? tenor
timbales,timballes,,,
trompette,trumpet,Bb;C
trombone,trombone,C
tuba,tuba,Bb;C
24 changes: 24 additions & 0 deletions util.php
Original file line number Diff line number Diff line change
Expand Up @@ -141,4 +141,28 @@ function listing_render_list($listing, $token, $ref, $config, $base='.', $fileba
echo '</ul>';
}

function get_instruments($csvfilename)
{
$res = array();
$line = 1;
$csvfile = fopen($csvfilename, 'r');
fgetcsv($csvfile);
$entete = fgetcsv($csvfile);
while($line)
{
$line = fgetcsv($csvfile);
if($line[0] != '')
{
$instr = array();
$instr["name_fr"] = $line[0];
$intsr["name_en"] = $line[1];
$instr["tune"] = $line[2];
$instr["regex_fr"] = $line[3];
$instr["regex_en"] = $line[4];
$res[$instr["name_fr"]] = $instr;
}
}
return $res;
}

?>