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.
 | |
|   }
 | |
| }
 | 
