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 %}
-
-
-
-

{{ TuneDetails.Title }}

-
-
Time Signature
-
{{ TuneDetails.TimeSignature }}
- -
Key Signature
-
{{ TuneDetails.KeySignature }}
- -
Copyright
-
{{ TuneDetails.Copyright }}
- -
Number of Parts
-
{{ TuneDetails.Parts|json_decode|length }}
-
-
-
-
-
-
-

ABC Notation

-
+        

{{ "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 %} +
+
+

{{ "Dances for"|translate }} "{{ TuneDetails.Title }}"

+ {% for x in Dances %} +
+ +
+

Steps

+ + + + + + + + + {% for step in x.Steps %} + + + + + + {% endfor %} + +
{{ "Bars"|translate }}{{ "Description"|translate }}
{{ step.BarCountAtStart }}{{ step.BarCountAtEnd }}{{ step.Description }}
+
-
+ {% endfor %}
+ + {% endblock %} \ No newline at end of file