summaryrefslogtreecommitdiffstats
path: root/modules-available/locationinfo/inc/coursebackend/coursebackend_davinci.inc.php
diff options
context:
space:
mode:
authorDirk Riestere2017-03-02 18:32:54 +0100
committerDirk Riestere2017-03-02 18:32:54 +0100
commit885aba04832c840aed3a45c3bb09bf088ce01a0c (patch)
tree838e1b582dc0f2d30c99da1d91d6ddc897f3bc66 /modules-available/locationinfo/inc/coursebackend/coursebackend_davinci.inc.php
parentDas HisInOne Backend funktioniert nun auch mit OpenCourseService (diff)
downloadslx-admin-885aba04832c840aed3a45c3bb09bf088ce01a0c.tar.gz
slx-admin-885aba04832c840aed3a45c3bb09bf088ce01a0c.tar.xz
slx-admin-885aba04832c840aed3a45c3bb09bf088ce01a0c.zip
Bugfixes und Davincii ist jetzt implementiert
Diffstat (limited to 'modules-available/locationinfo/inc/coursebackend/coursebackend_davinci.inc.php')
-rw-r--r--modules-available/locationinfo/inc/coursebackend/coursebackend_davinci.inc.php75
1 files changed, 66 insertions, 9 deletions
diff --git a/modules-available/locationinfo/inc/coursebackend/coursebackend_davinci.inc.php b/modules-available/locationinfo/inc/coursebackend/coursebackend_davinci.inc.php
index 6e07e1f4..c62ad4f4 100644
--- a/modules-available/locationinfo/inc/coursebackend/coursebackend_davinci.inc.php
+++ b/modules-available/locationinfo/inc/coursebackend/coursebackend_davinci.inc.php
@@ -1,22 +1,18 @@
<?php
-class Coursebackend_Davinci extends CourseBackend {
+class Coursebackend_Davinci extends CourseBackend
+{
private $location;
public $serverID;
- function __construct($location, $serverID) {
-
- }
public function setCredentials($json,$location,$serverID) {
- $this->error = true;
- $this->errormsg = "This class is just a place holder";
- $this->location = $location."/daVinciIS.dll?";
+ $this->location = $location."/DAVINCIIS.dll?";
$this->serverID = $serverID;
//Davinci doesn't have credentials
}
public function checkConection(){
- $this->fetchSchedulesInternal(42);
+ $this->fetchSchedulesInternal('B206');
return $this->error;
}
public function getCredentials(){
@@ -32,9 +28,70 @@ class Coursebackend_Davinci extends CourseBackend {
public function getRefreshTime(){
return 0;
}
- public function fetchSchedulesInternal($roomId){
+ private function toArray($response){
+
+ $cleanresponse = preg_replace("/(<\/?)(\w+):([^>]*>)/", "$1$2$3", $response);
+ $xml = new SimpleXMLElement($cleanresponse);
+ $array = json_decode(json_encode((array)$xml), TRUE);
+ return $array;
+ }
+ private function fetchArray($roomId){
+ $startdate= new DateTime('monday this week');
+ $enddate = new DateTime('sunday');
+ $url= $this->location."content=xml&type=room&name=".$roomId."&startdate=".$startdate->format('d.m.Y')."&enddate=".$enddate->format('d.m.Y');
+ $ch=curl_init();
+ $options = array(
+ CURLOPT_RETURNTRANSFER => true,
+ CURLOPT_FOLLOWLOCATION => true,
+ CURLOPT_SSL_VERIFYHOST => false,
+ CURLOPT_SSL_VERIFYPEER => false,
+ CURLOPT_URL => $url ,
+ );
+
+ curl_setopt_array($ch, $options);
+ $output=curl_exec($ch);
+ if( $output === false)
+ {
+ $this->error = true;
+ $this->errormsg = 'Curl error: ' . curl_error($soap_do);
+ return 'Curl error: ' . curl_error($soap_do);
+ }
+ else
+ {
+ $this->error = false;
+ $this->errormsg ="";
+ ///Operation completed successfully
+ }
+ curl_close($ch);
+ return $this->toArray($output);
}
+ public function fetchSchedulesInternal($roomIds){
+ $shedules = [];
+ foreach ($roomIds as $locationId => $sroomId) {
+ $return = $this->fetchArray($sroomId);
+ $lessons = $return['Lessons']['Lesson'];
+ $timetable =[];
+ foreach ($lessons as $lesson) {
+ $date = $lesson['Date'];
+ $date = substr($date,0,4).'-'.substr($date,4,2).'-'.substr($date,6,2);
+ $start = $lesson['Start'];
+ $start = substr($start,0,2).':'.substr($start,2,2);
+ $end = $lesson['Finish'];
+ $end = substr($end,0,2).':'.substr($end,2,2);
+ $subject = $lesson['Subject'];
+ $json = array(
+ 'title' => $subject,
+ 'start' => $date." ".$start.':00',
+ 'end' => $date." ".$end.':00'
+ );
+ array_push($timetable,$json);
+ }
+ $timetable= json_encode($timetable);
+ $shedules[$locationId] = $timetable;
+ }
+ return $shedules;
+ }
}
?>