<?php
// 20250116 current master script - wip
// ictnle.com3/xml4teaching/xml4t_config.php
$xml4tpath="../xml4teaching/"; 
$xml4tpath0="../sdata/";
$xml4tpathmedia="../../sdata2_offline/bups/"; // local hard disk
$xml4tpathmedia2="../../sdata2_offline/films2/"; // local hard disk

shell_exec("mkdir activities");
//shell_exec("mkdir sections/section_{$sectionid}");

$filename = "template01_short.xml";
//$template == 'blank'; // make anonymous to import

$sessions_log = file_get_contents($filename); 

$sectionid = 0; // will start from section 0 with no modules
$sectionnumber = 0;
$activityid = 1; // will start from section 1 with modules
$moduleid = 1;
$contextid = 1;

/************************************************************/
// CREATE SECTION #0 (aka general introduction) FOR THE WHOLE COURSE
// i.e. w/o a module

$clog_xml=simplexml_load_string($sessions_log) or die("Error: Cannot create object $ sessions log");

$sectionname = preg_replace ('/.xml/m', '', $filename);
$sectionname = preg_replace ('/_/m', ' ', $sectionname);
$sectionsummary = 'This course is based on...';// retrieve from clog.xml

include ('xml2sections_section0.php');


/************************************************************/
// MATCH ALL SECTIONS WHERE 1 SESSION (DATE) = 1 SECTION
if (preg_match_all("#^<clog_session>$(.*?)^<\/clog_session>$#sim",$sessions_log,$matches)) {

// start from last in clog.xml
$matches = array_reverse($matches, true);

/************************************************************/
// LOOP 1
// MATCH ALL SECTIONS WHERE 1 SESSION (DATE) = 1 SECTION

//$sectionid = 1;
//$sectionnumber = 1;
$allsectionnumbers = '0';

      foreach ($matches[0] as $clog_xml) {
$clog_xml=simplexml_load_string($clog_xml) or die("Error: Cannot create object $ xml course details");

if (($clog_xml->clog_session_status == "tbc") || ($clog_xml->clog_session_status == "lc")) {
// hidden from ss
}

//if (trim($clog_xml->clog_session_status !='lc')
//&& (!empty($clog_xml->clog_session_date_cancelled)) 
if (!empty($clog_xml->clog_session_date)) {

// CREATE CONTENT FOR SECTION SUMMARY
$sessiondate = (trim($clog_xml->clog_session_date));
$sectionname = (trim($clog_xml->clog_session_title));
$sectionsummary = '';

// Append a new person to the file
// $current .= "John Smith\n";
// support material (e.g. books, individual pdfs, etc)
if (!empty($clog_xml->clog_support_material->clog_book_title)) {
foreach ($clog_xml->clog_support_material as $clog_support_material) {
$sectionsummary = "<h2>".$clog_support_material->clog_book_title."</h2> ";
$sectionsummary = $sectionsummary."Level ".$clog_support_material->clog_book_level;
    if (!empty($clog_support_material->clog_book_unit)) {
$sectionsummary = $sectionsummary." Unit ".$clog_support_material->clog_book_unit;
        }
    } // foreach ($clog_xml->clog_support_material as $clog_support_material)
$sectionsummary = $sectionsummary."<br />".$sectionsummary;
} // endif not empty clog_book_title

// prep based on url contents from previous lesson(s)
if (!empty(trim($clog_session_hw_activity->activity->session_date))) {
$session_hw_activity ='';
foreach ($clog_xml->clog_session_hw_activity as $clog_session_hw_activity) {
$session_hw_activity = $session_hw_activity."<br />".trim($clog_session_hw_activity->activity->activity_title);
$session_hw_activity = $session_hw_activity."<br />".trim($clog_session_hw_activity->activity->session_date);
$session_hw_activity = $session_hw_activity."<br />".trim($clog_session_hw_activity->activity->instructions);
} // foreach ($clog_xml->clog_session_hw_activity as $clog_session_hw_activity)
} // if (!empty(trim($clog_session_hw_activity->activity->session_date))) 

// homework (incl. video conf details to be removed in blank template)
$hw = trim($clog_xml->clog_session_hw);
/***
if ($template == 'blank') {
     $string_to_replace = '<src="pix\\/zoom_meeting(.*)<\\a>';
     $hw = preg_replace ('/^'.$string_to_replace.'$/m', '', $hw);
     $string_to_replace = '<src="pix\\/vznaniya(.*)<\\a>';
     $hw = preg_replace ('/^'.$string_to_replace.'$/m', '', $hw);
}
***/
     $string_to_replace = 'src="pix\\/';
     //$string_to_add = 'src="'.$xml4tpath0.'pix/';
     $string_to_add = 'src="'.$xml4tpath.'pix/';
     $hw = preg_replace ('/'.$string_to_replace.'/m', ''.$string_to_add.'', $hw);

$sectionsummary = $sectionsummary."<br />".$session_hw_activity."<br />".$hw;

/************************************************************/
// LOOP 2 (inside 1)
// CREATE MODULE FOR EACH SECTION

foreach ($clog_xml->clog_support_material->clog_activity as $clog_activity) {

// needed to display in xml order and not just retrieve per script order
// if sbook_plugins/* then
// if (!empty($activity_contents))

$activity = $clog_activity;
//$activityintro = '';
$activityintro = 'this is sectionnumber: '.$sectionnumber.' moduleid: '.$moduleid;
$activityname = "<h2>".$activity->activity_title."</h2>";

if (!empty($activity->activity_lead_in)) {
//$activityintro = "<em>".$activity->activity_lead_in."</em>\n";
$activityintro = $activityintro."<br /><em>".$activity->activity_lead_in."</em>\n"; // debug
}
else {
//$activityintro = $activityintro00."<br />\n";
$activityintro = $activityintro."<br />\n";
}

// add into config.php
//$externalurl = "https://www.ictnle.com/xml4teaching/xml_load_file_mdl.php?file=../sdata/inc_xml_mdl/".$filename."&session_date=."$sectionnumber."&mdlid=."$moduleid".";

//$activityexternalurl = "http://127.0.0.1/www/ictnle.com3/xml4teaching/xml_load_file_mdl.php?file=../sdata/inc_xml_mdl/".$filename."&session_date=".$sectionnumber."&mdlid=".$moduleid;

// replace $sessiondate by $sectionumber in xml_load_file_mdl XXXXXXXXXXXXXXXXXXXX
// $activityexternalurl = "http://127.0.0.1/www/ictnle.com3/xml4teaching/xml_load_file_mdl.php?file=../sdata/inc_xml_mdl/".$filename."&session_date=".$sectionnumber."&mdlid=".$moduleid;

$activityexternalurl = "http://127.0.0.1/www/ictnle.com3/xml4teaching/xml_load_file_mdl.php?file=../sdata/inc_xml_mdl/".$filename."&session_date=".$sessiondate."&mdlid=".$moduleid;

include ('xml2activities_url.php');

$activityid++;
$moduleid++;
$contextid++;

} // foreach ($clog_xml->clog_support_material->clog_activity as $clog_activity)

// BACK TO LOOP 1

/************************************************************/
// MATCH ALL NEW_EXPRESSIONS PER ACTIVITY - incl. from reading task... ie 2025 xml format
// adapt from inc/xml4t_new_expressions.php
if (!empty(trim($clog_xml->clog_support_material->clog_expressions))) {
foreach ($clog_xml->clog_support_material->clog_expressions as $clog_expressions) {
$activityname = "Vocabulary (from activity) [sectionnumber:".$sectionnumber." moduleid: ".$moduleid."]<br />";
$activityintro = '';
$activityexternalurl = "http://127.0.0.1/www/ictnle.com3/xml4teaching/xml_load_file_mdl.php?file=../sdata/inc_xml_mdl/".$filename."&session_date=".$sessiondate."&mdlid=".$moduleid;

include ('xml2activities_url.php');

$activityid++;
$moduleid++;
$contextid++;
} // foreach ($clog_xml->clog_support_material->clog_expressions as $clog_expressions)
} // if (!empty(trim($clog_xml->clog_support_material->clog_expressions)))


/************************************************************/
// MATCH ALL NEW_EXPRESSIONS PER SESSION ie < 2024 xml format
// (only once at the end of each session)
// adapt from inc/xml4t_new_expressions.php
if (!empty(trim($clog_xml->clog_expressions))) {

$activityname = "Vocabulary (from session) [sectionnumber:".$sectionumber." moduleid: ".$moduleid."]<br />";
$activityintro = '';
$activityexternalurl = "http://127.0.0.1/www/ictnle.com3/xml4teaching/xml_load_file_mdl.php?file=../sdata/inc_xml_mdl/".$filename."&session_date=".$sessiondate."&mdlid=".$moduleid;

include ('xml2activities_url.php');

$activityid++;
$moduleid++;
$contextid++;
} // if (!empty(trim($clog_xml->clog_expressions)))


/************************************************************/
// MATCH ONLY ONE DELAYED ERROR CORRECTION MODULE (PER SECTION)
// (only once at the end of each session)
if (!empty(trim($clog_xml->clog_deco))) {

//$activityname = "Delayed error correction<br />";
$activityname = "Delayed error correction [sectionnumber:".$sectionnumber." moduleid: ".$moduleid."]<br />";
$activityexternalurl = "http://127.0.0.1/www/ictnle.com3/xml4teaching/xml_load_file_mdl.php?file=../sdata/inc_xml_mdl/".$filename."&session_date=".$sessiondate."&mdlid=".$moduleid;

include ('xml2activities_url.php');

$activityid++;
$moduleid++;
$contextid++;
}

//$allsectionnumbers = $allsectionnumbers.",".$sectionnumber;
$sectionnumber++;
$sectionid++;

// } // if (!empty($clog_xml->clog_session_date))

$allsectionnumbers = $allsectionnumbers.",".$sectionnumber;
$allsectionnumbers = (preg_replace("/^,/","",$allsectionnumbers));
include ('xml2sections_section_sectionid.php');

} // if (!empty($clog_xml->clog_session_date))
} // foreach ($matches[0] as $clog_xml)

// POPULATE <sequence> WITH ALL SECTIONS EXCEPT THE 1ST ONE
shell_exec("mv sections/section_0 sections/sectionzero");
// shell_exec("sed -i 's|^<sequence>(.*)</sequence>|<sequence>".$allsectionnumbers."</sequence>|g' sections/section_*/section.xml");

$arrFiles = array();
//$dir = "./sections/section_2";
//$files = glob($dir . "/*");
$dir = "./sections";
$files = glob($dir . "/section_*/*");
foreach ($files as $file) {
$content = file_get_contents($file);
$content = preg_replace('/<sequence>(.*)<\/sequence>/m',"<sequence>$allsectionnumbers</sequence>",$content);
$file = file_put_contents($file,$content);
}

shell_exec("mv sections/sectionzero sections/section_0" );

} // if (preg_match_all("#^<clog_session>$(.*?)^<\/clog_session>$#sim",$sessions_log,$matches))

?>
