Initial commit
This commit is contained in:
		
						commit
						e7b8b047fe
					
				
					 3 changed files with 74 additions and 0 deletions
				
			
		
							
								
								
									
										5
									
								
								composer.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								composer.json
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,5 @@
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    "require": {
 | 
				
			||||||
 | 
					        "llagerlof/moodlerest": "2.3.0"
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										25
									
								
								config.php.sample
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								config.php.sample
									
										
									
									
									
										Normal 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
									
								
							
							
						
						
									
										44
									
								
								upload_timetable.php
									
										
									
									
									
										Normal 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";
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue