public function conceptsAction($unit = '1') { $this->view->disable(); // Get our context (this takes care of starting the session, too) $context = $this->getDI()->getShared('ltiContext'); if (!$context->valid) { echo '[{"error":"Invalid lti context"}]'; return; } $concepts = MappingHelper::conceptsInUnit($unit); $maxPercentage = 0; $conceptArray = []; foreach ($concepts as $concept) { $conceptID = $concept['Lecture Number']; $historicalConceptMasteryScores = ClassConceptHistory::find(["concept_id = '{$conceptID}'", "order" => 'time_stored DESC']); $newConcept = ["id" => $conceptID, "title" => $concept["Concept Title"], "history" => []]; foreach ($historicalConceptMasteryScores as $score) { $newConcept["history"][] = ["date" => $score->time_stored, "average" => $score->average_mastery, "percent" => $score->videopercentage]; } $newConcept["history"] = $newConcept["history"][0]; if ($newConcept["history"]["percent"] > $maxPercentage) { $maxPercentage = $newConcept["history"]["percent"]; } $conceptsArray[] = $newConcept; } $firstRow = ["max" => $maxPercentage]; array_unshift($conceptsArray, $firstRow); echo json_encode($conceptsArray); }