91 lines
2.6 KiB
PHP
91 lines
2.6 KiB
PHP
<?php
|
|
|
|
namespace block_timetable\task;
|
|
|
|
/**
|
|
* An example of a scheduled task.
|
|
*/
|
|
class import_data extends \core\task\scheduled_task {
|
|
|
|
/**
|
|
* Return the task's name as shown in admin screens.
|
|
*
|
|
* @return string
|
|
*/
|
|
public function get_name() {
|
|
return get_string('import_data', 'block_timetable');
|
|
}
|
|
|
|
/**
|
|
* Execute the task.
|
|
*/
|
|
public function execute() {
|
|
global $DB;
|
|
$lastmtime = get_config('block_timetable', 'lastmtime');
|
|
$filename = get_config('timetable', 'fnamelesson');
|
|
echo $filename;
|
|
if (!$filename) return;
|
|
//$filename = "/srv/stundenplan/lesson.txt";
|
|
echo "Lastmtime = $lastmtime\n";
|
|
if (file_exists ( $filename )) {
|
|
$mtime = filemtime ( $filename );
|
|
echo "mtime = $mtime\n";
|
|
if ($mtime<=$lastmtime) return;
|
|
echo "after return\n";
|
|
try {
|
|
$transaction = $DB->start_delegated_transaction();
|
|
echo "before delete\n";
|
|
$DB->delete_records_select("timetable_lesson", "id>0");
|
|
echo "after delete\n";
|
|
$handle = @fopen($filename, "r");
|
|
echo "after handle\n";
|
|
while (($buffer = fgets($handle, 4096)) !== false) {
|
|
// echo $buffer;
|
|
$buffer = utf8_encode(rtrim($buffer));
|
|
$data = explode("\t", $buffer);
|
|
// echo "Num elements: ".count($data)."\n";
|
|
if (count($data) != 10) throw new Exception('Wrong size of elements');
|
|
// echo "after count data \n";
|
|
// echo "data 0 =$data[0]\n";
|
|
|
|
/*
|
|
$dataobject = new stdClass();
|
|
//$dataobject = new object;
|
|
$dataobject->teacher = $data[0];
|
|
$dataobject->day = $data[1];
|
|
$dataobject->period = $data[2];
|
|
$dataobject->subject = $data[3];
|
|
$dataobject->room = $data[4];
|
|
$dataobject->lessonid= $data[5];
|
|
$dataobject->flag = $data[6];
|
|
$dataobject->class = $data[7];
|
|
$dataobject->week = $data[8];
|
|
$dataobject->unknown = $data[9];
|
|
*/
|
|
$dataobject = (object)array('teacher' => $data[0],
|
|
'day' => $data[1],
|
|
'period' => $data[2],
|
|
'subject' => $data[3],
|
|
'room' => $data[4],
|
|
'lessonid'=> $data[5],
|
|
'flag' => $data[6],
|
|
'class' => $data[7],
|
|
'week' => $data[8],
|
|
'unknown' => $data[9]);
|
|
|
|
// echo "after dataobject\n";
|
|
$DB->insert_record("timetable_lesson", $dataobject);
|
|
}
|
|
$transaction->allow_commit();
|
|
$lastmtime = $mtime;
|
|
set_config('lastmtime', $lastmtime, 'block_timetable');
|
|
} catch(Exception $e) {
|
|
$transaction->rollback($e);
|
|
}
|
|
|
|
}
|
|
// Apply fungus cream.
|
|
// Apply chainsaw.
|
|
// Apply olive oil.
|
|
}
|
|
}
|