Initial commit

This commit is contained in:
Raphael Dannecker 2020-11-27 22:56:04 +01:00
commit e7b8b047fe
3 changed files with 74 additions and 0 deletions

5
composer.json Normal file
View file

@ -0,0 +1,5 @@
{
"require": {
"llagerlof/moodlerest": "2.3.0"
}
}

25
config.php.sample Normal file
View file

@ -0,0 +1,25 @@
<?php
// Configuration for upload-timetable.php
// Moodle Webservice token
$config['token'] = '11157f172aff76f65712e5468fca3331';
// Webservice URL
$config['url'] = 'https://moodlesb.steinbeisschule-reutlingen.de/webservice/rest/server.php';
// Filename for storing hashes
$config['hashfile'] = 'hashes.json';
// Filepath to untis
$config['files'] = array();
$config['files'][] = array('name' => 'lesson', 'file' => 'untis/export/lesson.txt');
$config['files'][] = array('name' => 'teacher', 'file' => 'untis/export/teacher.txt');
$config['files'][] = array('name' => 'room', 'file' => 'untis/export/room.txt');
$config['files'][] = array('name' => 'class', 'file' => 'untis/export/class.txt');
$config['files'][] = array('name' => 'time', 'file' => 'untis/export/time.txt');
$config['files'][] = array('name' => 'absence_reason', 'file' => 'untis/export/GPU012.TXT');
$config['files'][] = array('name' => 'absence', 'file' => 'untis/export/GPU013.TXT');
$config['files'][] = array('name' => 'substitution', 'file' => 'untis/export/GPU014.TXT');

44
upload_timetable.php Normal file
View file

@ -0,0 +1,44 @@
<?php
/**
* upload-timetable
*
* @package upload_timetable
* @copyright 2020 Raphael Dannecker <raphael.dannecker@steinbeisschule-reutlingen.de>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
require_once dirname(__FILE__) . '/vendor/autoload.php';
require_once('config.php');
$token = '8d962a172b9f56f65712e5710fca2435';
$domainname = 'https://moodlesb.steinbeisschule-reutlingen.de';
$MoodleRest = new MoodleRest($config['url'], $config['token']);
if (file_exists ($config['hashfile'])) {
$hashfile = file_get_contents($config['hashfile']);
$hashes = (array) json_decode($hashfile);
} else $hashes = array();
$untis_data = array('files' => array());
foreach($config['files'] as $file) {
$content = file_get_contents($file['file']);
$hash = md5($content);
if (! array_key_exists($file['name'],$hashes) || $hashes[$file['name']] != $hash)
$untis_data['files'][] = array('name' => $file['name'], 'content' => base64_encode($content));
$hashes[$file['name']] = $hash;
}
if (count($untis_data['files'])) {
$result = $MoodleRest->request('mod_timetable_update', $untis_data, MoodleRest::METHOD_POST);
print_r($result);
if (true) {
$hashfile = fopen($config['hashfile'],'w');
fwrite($hashfile, json_encode($hashes, JSON_FORCE_OBJECT));
fclose($hashfile);
}
} else {
echo "Nothing to do\n";
}