diff --git a/src/Controller/SafetyController.php b/src/Controller/SafetyController.php index 1d19a26..a9ad58f 100644 --- a/src/Controller/SafetyController.php +++ b/src/Controller/SafetyController.php @@ -46,14 +46,59 @@ class SafetyController extends AbstractController return $this->render('Training/Safety/SafetyQuiz.html.twig',['quiz'=>$form]); } #[Route('/Training/Safety/Topics/{topic?}')] - public function Topics(?string $topic) : Response + public function Topics(?string $topic, LoggerInterface $log) : Response { //We want to show the safety homepage if this is blank if($topic == null) { return $this->redirectToRoute('safetyHome'); } + + //We need to get the previous and next topics for nav buttons + //FEATURING: Regret for not having mapped this YAML file to a data model that would have saved myself a lot of trouble and spaghetti + $contentFile = Yaml::parseFile('../config/safetyLinks.yaml', 2, 2, Yaml::PARSE_OBJECT_FOR_MAP); + $previousTopic = $nextTopic = ""; //declare ahead of time for scoping + + $arrayKeys = array_keys($contentFile['Cards']); + foreach($arrayKeys as $key) + { + $card = $contentFile['Cards'][$key]; + for($i = 0; $i < count($card); $i++) + { + $entry = $card[$i]; + $cardIndex = array_search($key, $arrayKeys); + if($entry['url'] == $topic) + { + //Assign Previous Topic + if($i > 0) + { + $previousTopic = $contentFile['Cards'][$arrayKeys[$cardIndex]][$i-1]; + } + else if($cardIndex > 0) //there's a previous card, use the last entry in it + { + //NOTE: Should be fine to use end, at this point we shouldn't care about the array's internal pointer, we're done iterating + $previousTopic = end($contentFile['Cards'][$arrayKeys[$cardIndex-1]]); + } + + //Assign Next Topic + if($i < count($card)-1) //Next topic should be within the same card + { + $nextTopic = $contentFile['Cards'][$arrayKeys[$cardIndex]][$i+1]; + } + else if($cardIndex < count($contentFile['Cards'])-1) //Next topic is not in same card, or does not exist + { + $nextTopic = $contentFile['Cards'][$arrayKeys[$cardIndex+1]][0]; //Set to first entry in next card + } + break 2; //Got what we needed, break out of both for loops + } + } + } + $topic = strtolower($topic); - return $this->render('Training/Safety/Topics/'.$topic.".html.twig"); + //TODO: Insert back button + $navButtonData = ['previous'=> $previousTopic, 'next' => $nextTopic]; + $contents = $this->render('Training/Safety/Topics/'.$topic.".html.twig", $navButtonData); + $navButtons = $this->render('Training/Safety/navButtons.html.twig',$navButtonData); + return new Response($contents . $navButtons); } -} \ No newline at end of file +} diff --git a/templates/Training/Safety/Topics/actionplan.html.twig b/templates/Training/Safety/Topics/actionplan.html.twig index c33cdbe..d40f0af 100644 --- a/templates/Training/Safety/Topics/actionplan.html.twig +++ b/templates/Training/Safety/Topics/actionplan.html.twig @@ -3,6 +3,7 @@ {{ include('_header.html.twig') }} {{ include('_navbar.html.twig')}} +{{ include('Training/Safety/navButtons.html.twig') }}

Emergency Action Plan

diff --git a/templates/Training/Safety/Topics/bloodborne.html.twig b/templates/Training/Safety/Topics/bloodborne.html.twig index 2584b2b..d1b3019 100644 --- a/templates/Training/Safety/Topics/bloodborne.html.twig +++ b/templates/Training/Safety/Topics/bloodborne.html.twig @@ -3,6 +3,7 @@ {{ include('_header.html.twig') }} {{ include('_navbar.html.twig')}} +{{ include('Training/Safety/navButtons.html.twig') }}
diff --git a/templates/Training/Safety/Topics/crane.html.twig b/templates/Training/Safety/Topics/crane.html.twig index ed724fb..5aa12f6 100644 --- a/templates/Training/Safety/Topics/crane.html.twig +++ b/templates/Training/Safety/Topics/crane.html.twig @@ -3,6 +3,7 @@ {{ include('_header.html.twig') }} {{ include('_navbar.html.twig')}} +{{ include('Training/Safety/navButtons.html.twig') }}

Crane / Hoist Safety

diff --git a/templates/Training/Safety/Topics/electrical.html.twig b/templates/Training/Safety/Topics/electrical.html.twig index 72e246d..9f3472f 100644 --- a/templates/Training/Safety/Topics/electrical.html.twig +++ b/templates/Training/Safety/Topics/electrical.html.twig @@ -3,6 +3,7 @@ {{ include('_header.html.twig') }} {{ include('_navbar.html.twig')}} +{{ include('Training/Safety/navButtons.html.twig') }}

Electrical Safety

diff --git a/templates/Training/Safety/Topics/extinguisher.html.twig b/templates/Training/Safety/Topics/extinguisher.html.twig index 848391f..6f90654 100644 --- a/templates/Training/Safety/Topics/extinguisher.html.twig +++ b/templates/Training/Safety/Topics/extinguisher.html.twig @@ -3,6 +3,7 @@ {{ include('_header.html.twig') }} {{ include('_navbar.html.twig')}} +{{ include('Training/Safety/navButtons.html.twig') }}

Fire Extinguisher Operation

diff --git a/templates/Training/Safety/Topics/fireprevention.html.twig b/templates/Training/Safety/Topics/fireprevention.html.twig index 4d0eff7..a2b5909 100644 --- a/templates/Training/Safety/Topics/fireprevention.html.twig +++ b/templates/Training/Safety/Topics/fireprevention.html.twig @@ -3,6 +3,7 @@ {{ include('_header.html.twig') }} {{ include('_navbar.html.twig')}} +{{ include('Training/Safety/navButtons.html.twig') }}

Fire Prevention

diff --git a/templates/Training/Safety/Topics/general.html.twig b/templates/Training/Safety/Topics/general.html.twig index 926c496..9c83c88 100644 --- a/templates/Training/Safety/Topics/general.html.twig +++ b/templates/Training/Safety/Topics/general.html.twig @@ -2,9 +2,10 @@ {{ include('_header.html.twig') }} - +{{ include('_navbar.html.twig')}} +{{ include('Training/Safety/navButtons.html.twig') }} - {{ include('_navbar.html.twig')}} +

General Rules at J.V. Manufacturing, Inc.

    diff --git a/templates/Training/Safety/Topics/guarding.html.twig b/templates/Training/Safety/Topics/guarding.html.twig index 5d9917f..ac342e5 100644 --- a/templates/Training/Safety/Topics/guarding.html.twig +++ b/templates/Training/Safety/Topics/guarding.html.twig @@ -3,6 +3,7 @@ {{ include('_header.html.twig') }} {{ include('_navbar.html.twig')}} +{{ include('Training/Safety/navButtons.html.twig') }}

    Machine Guarding

    diff --git a/templates/Training/Safety/Topics/hazardcommunication.html.twig b/templates/Training/Safety/Topics/hazardcommunication.html.twig index 12c204f..5cd90d5 100644 --- a/templates/Training/Safety/Topics/hazardcommunication.html.twig +++ b/templates/Training/Safety/Topics/hazardcommunication.html.twig @@ -3,6 +3,7 @@ {{ include('_header.html.twig') }} {{ include('_navbar.html.twig')}} +{{ include('Training/Safety/navButtons.html.twig') }}

    Hazard Communication

    diff --git a/templates/Training/Safety/Topics/hearing.html.twig b/templates/Training/Safety/Topics/hearing.html.twig index 4b4686f..558714d 100644 --- a/templates/Training/Safety/Topics/hearing.html.twig +++ b/templates/Training/Safety/Topics/hearing.html.twig @@ -3,6 +3,7 @@ {{ include('_header.html.twig') }} {{ include('_navbar.html.twig')}} +{{ include('Training/Safety/navButtons.html.twig') }}

    Hearing Protection

    diff --git a/templates/Training/Safety/Topics/powertools.html.twig b/templates/Training/Safety/Topics/powertools.html.twig index a8f2bd3..13a5883 100644 --- a/templates/Training/Safety/Topics/powertools.html.twig +++ b/templates/Training/Safety/Topics/powertools.html.twig @@ -3,6 +3,7 @@ {{ include('_header.html.twig') }} {{ include('_navbar.html.twig')}} +{{ include('Training/Safety/navButtons.html.twig') }}

    Hand & Power Tools

    diff --git a/templates/Training/Safety/Topics/ppe.html.twig b/templates/Training/Safety/Topics/ppe.html.twig index 97b84d3..b23e27d 100644 --- a/templates/Training/Safety/Topics/ppe.html.twig +++ b/templates/Training/Safety/Topics/ppe.html.twig @@ -3,6 +3,7 @@ {{ include('_header.html.twig') }} {{ include('_navbar.html.twig')}} +{{ include('Training/Safety/navButtons.html.twig') }}

    Personal Protective Equipment (Eyes, Face, Hands, & Feet)

    diff --git a/templates/Training/Safety/Topics/safelifting.html.twig b/templates/Training/Safety/Topics/safelifting.html.twig index d2f059d..04c0508 100644 --- a/templates/Training/Safety/Topics/safelifting.html.twig +++ b/templates/Training/Safety/Topics/safelifting.html.twig @@ -3,6 +3,7 @@ {{ include('_header.html.twig') }} {{ include('_navbar.html.twig')}} +{{ include('Training/Safety/navButtons.html.twig') }}

    Safe Lifting

    diff --git a/templates/Training/Safety/Topics/tagout.html.twig b/templates/Training/Safety/Topics/tagout.html.twig index 9f13895..0d2b8bf 100644 --- a/templates/Training/Safety/Topics/tagout.html.twig +++ b/templates/Training/Safety/Topics/tagout.html.twig @@ -3,6 +3,7 @@ {{ include('_header.html.twig') }} {{ include('_navbar.html.twig')}} +{{ include('Training/Safety/navButtons.html.twig') }}

    Lockout Tagout

    diff --git a/templates/Training/Safety/Topics/welding.html.twig b/templates/Training/Safety/Topics/welding.html.twig index b11542f..523299a 100644 --- a/templates/Training/Safety/Topics/welding.html.twig +++ b/templates/Training/Safety/Topics/welding.html.twig @@ -3,6 +3,7 @@ {{ include('_header.html.twig') }} {{ include('_navbar.html.twig')}} +{{ include('Training/Safety/navButtons.html.twig') }}

    Welding Safety

    diff --git a/templates/Training/Safety/navButtons.html.twig b/templates/Training/Safety/navButtons.html.twig new file mode 100644 index 0000000..9b7512f --- /dev/null +++ b/templates/Training/Safety/navButtons.html.twig @@ -0,0 +1,19 @@ + +
    +
    +
    + {% if previous != null %} + Previous Page: {{previous.title}} + {% endif %} +
    +
    + Back +
    +
    + {% if next != null %} + Next Page: {{next.title}} + {% endif %} +
    +
    +
    + \ No newline at end of file