📄 scormlib.php
字号:
} if (isset($item->rolluprules)) { foreach($item->rolluprules as $rolluprule) { $rollup = new stdClass(); $rollup->scoid = $id; $rollup->childactivityset = $rolluprule->childactivityset; $rollup->minimumcount = $rolluprule->minimumcount; $rollup->minimumpercent = $rolluprule->minimumpercent; $rollup->rollupruleaction = $rolluprule->rollupruleaction; $rollup->conditioncombination = $rolluprule->conditioncombination; $rollupruleid = insert_record('scorm_seq_rolluprule',$rollup); if (isset($rollup->conditions)) { foreach($rollup->conditions as $condition){ $cond = new stdClass(); $cond->scoid = $rollup->scoid; $cond->rollupruleid = $rollupruleid; $cond->operator = $condition->operator; $cond->cond = $condition->cond; $conditionid = insert_record('scorm_seq_rolluprulecond',$cond); } } } } if (isset($item->objectives)) { foreach($item->objectives as $objective) { $obj = new stdClass(); $obj->scoid = $id; $obj->primaryobj = $objective->primaryobj; $obj->satisfiedbumeasure = $objective->satisfiedbymeasure; $obj->objectiveid = $objective->objectiveid; $obj->minnormalizedmeasure = $objective->minnormalizedmeasure; $objectiveid = insert_record('scorm_seq_objective',$obj); if (isset($objective->mapinfos)) {//print_object($objective->mapinfos); foreach($objective->mapinfos as $objmapinfo) { $mapinfo = new stdClass(); $mapinfo->scoid = $id; $mapinfo->objectiveid = $objectiveid; $mapinfo->targetobjectiveid = $objmapinfo->targetobjectiveid; $mapinfo->readsatisfiedstatus = $objmapinfo->readsatisfiedstatus; $mapinfo->writesatisfiedstatus = $objmapinfo->writesatisfiedstatus; $mapinfo->readnormalizedmeasure = $objmapinfo->readnormalizedmeasure; $mapinfo->writenormalizedmeasure = $objmapinfo->writenormalizedmeasure; $mapinfoid = insert_record('scorm_seq_mapinfo',$mapinfo); } } } }//print_object($item); if (($launch == 0) && ((empty($scoes->defaultorg)) || ($scoes->defaultorg == $identifier))) { $launch = $id; } } } } if (!empty($olditems)) { foreach($olditems as $olditem) { delete_records('scorm_scoes','id',$olditem->id); delete_records('scorm_scoes_data','scoid',$olditem->id); if (isset($olditem->newid)) { set_field('scorm_scoes_track', 'scoid', $olditem->newid, 'scoid', $olditem->id); } delete_records('scorm_scoes_track','scoid',$olditem->id); delete_records('scorm_seq_objective','scoid',$olditem->id); delete_records('scorm_seq_mapinfo','scoid',$olditem->id); delete_records('scorm_seq_ruleconds','scoid',$olditem->id); delete_records('scorm_seq_rulecond','scoid',$olditem->id); delete_records('scorm_seq_rolluprule','scoid',$olditem->id); delete_records('scorm_seq_rolluprulecond','scoid',$olditem->id); } } if (empty($scoes->version)) { $scoes->version = 'SCORM_1.2'; } set_field('scorm','version',$scoes->version,'id',$scormid); $scorm->version = $scoes->version; } } return $launch;}function scorm_optionals_data($item, $standarddata) { $result = array(); $sequencingdata = array('sequencingrules','rolluprules','objectives'); foreach ($item as $element => $value) { if (! in_array($element, $standarddata)) { if (! in_array($element, $sequencingdata)) { $result[] = $element; } } } return $result;}function scorm_is_leaf($sco) { if (get_record('scorm_scoes','scorm',$sco->scorm,'parent',$sco->identifier)) { return false; } return true;}function scorm_get_parent($sco) { if ($sco->parent != '/') { if ($parent = get_record('scorm_scoes','scorm',$sco->scorm,'identifier',$sco->parent)) { return scorm_get_sco($parent->id); } } return null;}function scorm_get_children($sco) { if ($children = get_records('scorm_scoes','scorm',$sco->scorm,'parent',$sco->identifier)) {//originally this said parent instead of childrean return $children; } return null;}function scorm_get_available_children($sco){ $res = get_record('scorm_scoes_track','scoid',$scoid,'userid',$userid,'element','availablechildren'); if(!$res || $res == null){ return false; } else{ return unserialize($res->value); }}function scorm_get_available_descendent($descend = array(),$sco){ if($sco == null){ return $descend; } else{ $avchildren = scorm_get_available_children($sco); foreach($avchildren as $avchild){ array_push($descend,$avchild); } foreach($avchildren as $avchild){ scorm_get_available_descendent($descend,$avchild); } }}function scorm_get_siblings($sco) { if ($siblings = get_records('scorm_scoes','scorm',$sco->scorm,'parent',$sco->parent)) { unset($siblings[$sco->id]); if (!empty($siblings)) { return $siblings; } } return null;}function scorm_get_ancestors($sco) { if ($sco->parent != '/') { return array_push(scorm_get_ancestors(scorm_get_parent($sco))); } else { return $sco; }}function scorm_get_preorder($preorder=array(),$sco) { if ($sco != null) { array_push($preorder,$sco); $children = scorm_get_children($sco); foreach ($children as $child){ scorm_get_preorder($sco); } } else { return $preorder; }}function scorm_find_common_ancestor($ancestors, $sco) { $pos = scorm_array_search('identifier',$sco->parent,$ancestors); if ($sco->parent != '/') { if ($pos === false) { return scorm_find_common_ancestor($ancestors,scorm_get_parent($sco)); } } return $pos;}/* Usage Grab some XML data, either from a file, URL, etc. however you want. Assume storage in $strYourXML; $objXML = new xml2Array(); $arrOutput = $objXML->parse($strYourXML); print_r($arrOutput); //print it out, or do whatever!*/class xml2Array { var $arrOutput = array(); var $resParser; var $strXmlData; /** * Convert a utf-8 string to html entities * * @param string $str The UTF-8 string * @return string */ function utf8_to_entities($str) { global $CFG; $entities = ''; $values = array(); $lookingfor = 1; return $str; } /** * Parse an XML text string and create an array tree that rapresent the XML structure * * @param string $strInputXML The XML string * @return array */ function parse($strInputXML) { $this->resParser = xml_parser_create ('UTF-8'); xml_set_object($this->resParser,$this); xml_set_element_handler($this->resParser, "tagOpen", "tagClosed"); xml_set_character_data_handler($this->resParser, "tagData"); $this->strXmlData = xml_parse($this->resParser,$strInputXML ); if(!$this->strXmlData) { die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($this->resParser)), xml_get_current_line_number($this->resParser))); } xml_parser_free($this->resParser); return $this->arrOutput; } function tagOpen($parser, $name, $attrs) { $tag=array("name"=>$name,"attrs"=>$attrs); array_push($this->arrOutput,$tag); } function tagData($parser, $tagData) { if(trim($tagData)) { if(isset($this->arrOutput[count($this->arrOutput)-1]['tagData'])) { $this->arrOutput[count($this->arrOutput)-1]['tagData'] .= $this->utf8_to_entities($tagData); } else { $this->arrOutput[count($this->arrOutput)-1]['tagData'] = $this->utf8_to_entities($tagData); } } } function tagClosed($parser, $name) { $this->arrOutput[count($this->arrOutput)-2]['children'][] = $this->arrOutput[count($this->arrOutput)-1]; array_pop($this->arrOutput); }}?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -