public function toXML($flgContent) { $str = ""; //write out general lesson information foreach ($lesson as $key => $value) { $str .= "<{$key}>{$value}<{$key}>"; } //write out the content tree $contentTree = new EfrontContentTree($this->lesson['id']); $str .= $contentTree->toXML(false); //write out the glossary $glossary = ef_getTableData("glossary", "*", "lessons_ID=" . $this->lessonId); if (sizeof($glossary) > 0) { $str .= '<glossary>'; for ($i = 0; $i < sizeof($glossary); $i++) { $str .= '<word>'; $str .= '<name>' . $glossary[$i]['name'] . '</name>'; $str .= '<info>' . $glossary[$i]['info'] . '</info>'; $str .= '<type>' . $glossary[$i]['type'] . '</type>'; $str .= '<active>' . $glossary[$i]['active'] . '</active>'; $str .= '</word>'; } $str .= '</glossary>'; } //write out the lesson conditions $conditions = ef_getTableData("lesson_conditions", "*", "lessons_ID=" . $this->lessonId); if (sizeof($conditions) > 0) { $str .= '<conditions>'; for ($i = 0; $i < sizeof($conditions); $i++) { $str .= '<condition>'; $str .= '<type>' . $conditions[$i]['type'] . '</type>'; $str .= '<options>' . $conditions[$i]['options'] . '</options>'; $str .= '<relation>' . $conditions[$i]['relation'] . '</relation>'; $str .= '</condition>'; } $str .= '</conditions>'; } //write out the rules $rules = ef_getTableData("rules r, content c", "r.*", "c.id = r.content_ID and c.lessons_ID=" . $this->lessonId); if (sizeof($rules) > 0) { $str .= '<rules>'; for ($i = 0; $i < sizeof($rules); $i++) { $str .= "<rule>"; $str .= "<content_id>" . $rules[$i]['content_ID'] . "</content_id>"; $str .= "<rule_content_id>" . $rules[$i]['rule_content_ID'] . "</rule_content_id>"; $str .= "<rule_type>" . $rules[$i]['rule_type'] . "</rule_type>"; $str .= "<rule_option>" . $rules[$i]['rule_option'] . "</rule_option>"; $str .= '</rules>'; } $str .= '</rules>'; } if ($flgContent) { //to do export the content as well } $xmlstr .= '<?xml version="1.0" encoding="UTF-8"?><lesson>' . $str . '</lesson>'; return $xmlstr; }