diff --git a/Pages/tune/uuid.php b/Pages/tune/uuid.php index 6f2d966..41b0e7a 100644 --- a/Pages/tune/uuid.php +++ b/Pages/tune/uuid.php @@ -19,15 +19,62 @@ $variants = $db->RunSelect( queryBuilder: SQLQueryBuilderWrapper::SELECT( table: 'TuneVariants', ) - ->where(cond: 'T.TuneID=:__tune_id__') - ->bindValue(name: '__tune_id__', value: $_GET["tune-id"]) + ->where(cond: 'T.TuneID=:__tune_id__') + ->bindValue(name: '__tune_id__', value: $_GET["tune-id"]) ); +$dances = $db->RunSelect( + queryBuilder: SQLQueryBuilderWrapper::SELECT( + table: 'Dances', + ) + ->cols(cols: [ + "CONCAT('[', GROUP_CONCAT( + CONCAT( + '{\"ID\":', JSON_QUOTE(T_DS.ID), ',', + '\"CreatedAt\":', JSON_QUOTE(T_DS.CreatedAt), ',', + '\"DanceID\":', JSON_QUOTE(T_DS.DanceID), ',', + '\"BarCountAtStart\":', T_DS.BarCountAtStart, ',', + '\"BarCountAtEnd\":', T_DS.BarCountAtEnd, ',', + '\"Description\":', JSON_QUOTE(T_DS.Description), '}' + ) + ), ']') AS Steps" + ]) + ->join( + join: 'INNER', + spec: 'DanceSteps AS T_DS', + cond: 'T.ID=T_DS.DanceID' + ) + ->join( + join: 'INNER', + spec: '_Junction_Tunes_Dances AS _J_T_D', + cond: 'T.ID=_J_T_D.DanceID' + ) + ->where(cond: '_J_T_D.TuneID=:__tune_id__') + ->bindValue(name: '__tune_id__', value: $_GET["tune-id"]) + ->groupBy(spec: [ + 'T.ID', + 'T.CreatedAt', + 'T.Title', + '_J_T_D.ID', + '_J_T_D.CreatedAt', + '_J_T_D.TuneID', + '_J_T_D.DanceID', + ]) +); + +for ($i = 0; $i < count($dances); $i++) + $dances[$i]['Steps'] = json_decode( + $dances[$i]['Steps'], + true, + JSON_THROW_ON_ERROR + ); + TwigWrapper::RenderTwig( target: "Pages/tune/uuid.html.twig", arguments: [ "TuneDetails"=>$tuneDetails, "TuneVariants"=>$variants, + "Dances"=>$dances, ] ); diff --git a/Templates/Pages/tune/uuid.html.twig b/Templates/Pages/tune/uuid.html.twig index 4e736e6..a84ac38 100644 --- a/Templates/Pages/tune/uuid.html.twig +++ b/Templates/Pages/tune/uuid.html.twig @@ -3,43 +3,102 @@ {% block content %}
+{{ "Variants of"|translate }} "{{ TuneDetails.Title }}"
+ {% for x in TuneVariants %} ++ +-+++++++
+- {{ "Time Signature"|translate }}
+- {{ x.TimeSignature }}
+ +- {{ "Key Signature"|translate }}
+- {{ x.KeySignature }}
+ +- {{ "Copyright"|translate }}
+- {{ TuneDetails.Copyright }}
+ +- {{ "Number of Parts"|translate }}
+- {{ TuneDetails.Parts|json_encode }}
++ ++++{{ "ABC Notation"|translate }}
++++{{ "Audio"|translate }}
+ + +-+Audio
- + {% endfor %} +++ {% endfor %}{{ "Dances for"|translate }} "{{ TuneDetails.Title }}"
+ {% for x in Dances %} ++ +-+Steps
++ +
++ + + + {% for step in x.Steps %} +{{ "Bars"|translate }} +{{ "Description"|translate }} ++ + {% endfor %} + +{{ step.BarCountAtStart }} +{{ step.BarCountAtEnd }} +{{ step.Description }} +