/** * Initializes parameters of the SCO defined in children nodes. * * @param Scorm2004Sco $sco * @param \DOMNode $item */ private function findNodeParams(Scorm2004Sco $sco, \DOMNode $item) { while (!is_null($item)) { switch ($item->nodeName) { case 'title': $sco->setTitle($item->nodeValue); break; case 'adlcp:timeLimitAction': $action = strtolower($item->nodeValue); if ($action === 'exit,message' || $action === 'exit,no message' || $action === 'continue,message' || $action === 'continue,no message') { $sco->setTimeLimitAction($action); } break; case 'adlcp:dataFromLMS': $sco->setLaunchData($item->nodeValue); break; case 'adlcp:completionThreshold': $sco->setCompletionThreshold($item->nodeName); break; case 'imsss:attemptAbsoluteDurationLimit': $sco->setMaxTimeAllowed($item->nodeName); break; case 'imsss:minNormalizedMeasure': $sco->setScaledPassingScore($item->nodeName); break; } $item = $item->nextSibling; } }