<?php 
/************************************************************/
// CREATE & POPULATE CURRENT course/course.xml with mdlid
//$old_log = file_get_contents('../'.$argv[1]); //
//$old_log = file_get_contents($argv[1]); //
$old_log = file($argv[1]); //
//$old_log = fopen($argv[1],"rb"); //
$shortname = preg_replace ('/.xml/m', '', $argv[1]);

// write into tmp file
$tmp_new_clog = $shortname."_tmp.xml";
$fh_tmp_new_clog = fopen($tmp_new_clog, 'w') or die("can't open file $tmp_new_clog");


// courselog.xml is written from bottom to top to avoid 'the scroll of death'
$old_log = array_reverse($old_log);
$mdlid = 1;

foreach ($old_log as $line) {

// ADD MDLID TO EXISTING CLOG_ACTIVITIES
if (preg_match_all("/<clog_activity>/",$line,$linematched)) {
foreach ($linematched[0] as $matches) {
// 1/2 opening tag
$replace1 = <<< 'EOD'
<mdlid>
EOD ;

// 2/2 closing tag
$replace2 = <<< 'EOD'
</mdlid>
<clog_activity>

EOD ;
$line = (preg_replace('/<clog_activity>/m',$replace1.$mdlid.$replace2,$matches));
fwrite($fh_tmp_new_clog, $line);
$mdlid++;
}
}


// ADD CLOG_ACTIVITIES AROUND TAGS, THEN mdlid

// 1/2 opening tag
if (preg_match_all("/<clog_expressions>/",$line,$linematched)) {
foreach ($linematched[0] as $matches) {

$replace1 = <<< 'EOD'
<clog_expressions>
<mdlid>
EOD ;

$replace2 = <<< 'EOD'
</mdlid>
<clog_activity>

EOD ;

//$line = (preg_replace('/<clog_expressions>/m',$replace1.$mdlid.$replace2.'<clog_expressions>',$matches));
$line = (preg_replace('/<clog_expressions>/m',$replace1.$mdlid.$replace2,$matches));
fwrite($fh_tmp_new_clog, $line);
$mdlid++;
}
}

// 2/2 closing tag
if (preg_match_all("/<\/clog_expressions>/",$line,$linematched)) {
foreach ($linematched[0] as $matches) {
$replace = <<< 'EOD'

</clog_activity>
</clog_expressions>

EOD ;

$line = (preg_replace('/<\/clog_expressions>/m',$replace,$matches));
fwrite($fh_tmp_new_clog, $line);
}
}

// 1/2 opening tag
if (preg_match_all("/<clog_deco>/",$line,$linematched)) {
foreach ($linematched[0] as $matches) {

$replace1 = <<< 'EOD'
<deco><![CDATA[
<mdlid>

EOD ;

$replace2 = <<< 'EOD'
</mdlid>
<clog_activity>

EOD ;

$line = (preg_replace('/<clog_deco>/m',$replace1.$mdlid.$replace2,$matches));
fwrite($fh_tmp_new_clog, $line);
$mdlid++;
}
}

// 2/2 closing tag
if (preg_match_all("/<\/clog_deco>/",$line,$linematched)) {
foreach ($linematched[0] as $matches) {
$replace = <<< 'EOD'

</clog_activity>
]]></clog_deco>

EOD ;

$line = (preg_replace('/<\/clog_deco>/m',$replace,$matches));
fwrite($fh_tmp_new_clog, $line);
}
}



/////////// XXXXX
/***

// 1/2 opening tag
if (preg_match_all("/<clog_expressions>/",$line,$linematched)) {
foreach ($linematched[0] as $matches) {
// $line = (preg_replace('/<clog_activity>/m','<clog_activity>\n<mdlid>'.$mdlid.'</mdlid>',$matches));
$replace1 = <<< 'EOD'
<mdlid>
<clog_activity>

EOD ;

$replace2 = <<< 'EOD'
<clog_expressions>
</mdlid>
EOD ;

$line = (preg_replace('/<clog_expressions>/m',$replace1.$mdlid.$replace2,$matches));
fwrite($fh_tmp_new_clog, $line);
$mdlid++;
}
}


// 2/2 closing tag
if (preg_match_all("/<\/clog_expressions>/",$line,$linematched)) {
foreach ($linematched[0] as $matches) {
// $line = (preg_replace('/<clog_activity>/m','<clog_activity>\n<mdlid>'.$mdlid.'</mdlid>',$matches));
$replace = <<< 'EOD'
</clog_activity>
</clog_expressions>

EOD ;

$line = (preg_replace('/<\/clog_expressions>/m',$replace,$matches));
fwrite($fh_tmp_new_clog, $line);
$mdlid++;
}
}

// 1/2 opening tag
if (preg_match_all("/<clog_deco>/",$line,$linematched)) {
foreach ($linematched[0] as $matches) {
// $line = (preg_replace('/<clog_activity>/m','<clog_activity>\n<mdlid>'.$mdlid.'</mdlid>',$matches));
$replace = <<< 'EOD'
<clog_deco>
<clog_activity>

EOD ;

$line = (preg_replace('/<clog_deco>/m',$replace,$matches));
fwrite($fh_tmp_new_clog, $line);
$mdlid++;
}
}

// closing tag
if (preg_match_all("/<\/clog_deco>/",$line,$linematched)) {
foreach ($linematched[0] as $matches) {
// $line = (preg_replace('/<clog_activity>/m','<clog_activity>\n<mdlid>'.$mdlid.'</mdlid>',$matches));
$replace = <<< 'EOD'
</clog_activity>
</clog_deco>

EOD ;

$line = (preg_replace('/<\/clog_deco>/m',$replace,$matches));
fwrite($fh_tmp_new_clog, $line);
$mdlid++;
}
}
***/

else {
fwrite($fh_tmp_new_clog, $line);
}
}
fclose($fh_tmp_new_clog);

// write into new file
$new_clog = $shortname."_mdl.xml";
$fh_new_clog = fopen($new_clog, 'w') or die("can't open file $new_clog");

$clog = array_reverse(file($tmp_new_clog));
// $mdlid = 1; // now already included

foreach ($clog as $line) {
fwrite($fh_new_clog, $line);
}
fclose($fh_new_clog);

?>
