diff --git a/MensaPlugin.class.php b/MensaPlugin.class.php old mode 100644 new mode 100755 diff --git a/README.md b/README.md old mode 100644 new mode 100755 diff --git a/assets/images/alkohol.png b/assets/images/alkohol.png old mode 100644 new mode 100755 diff --git a/assets/images/bio.gif b/assets/images/bio.gif old mode 100644 new mode 100755 diff --git a/assets/images/gefluegel.png b/assets/images/gefluegel.png old mode 100644 new mode 100755 diff --git a/assets/images/knoblauch.gif b/assets/images/knoblauch.gif old mode 100644 new mode 100755 diff --git a/assets/images/rindfleisch.gif b/assets/images/rindfleisch.gif old mode 100644 new mode 100755 diff --git a/assets/images/schweinefleisch.gif b/assets/images/schweinefleisch.gif old mode 100644 new mode 100755 diff --git a/assets/images/vegan.png b/assets/images/vegan.png old mode 100644 new mode 100755 diff --git a/assets/images/vegetarisch.png b/assets/images/vegetarisch.png old mode 100644 new mode 100755 diff --git a/assets/mensa-widget.css b/assets/mensa-widget.css old mode 100644 new mode 100755 diff --git a/assets/mensa-widget.js b/assets/mensa-widget.js old mode 100644 new mode 100755 diff --git a/assets/mensa-widget.less b/assets/mensa-widget.less old mode 100644 new mode 100755 diff --git a/classes/MensaCronjob.class.php b/classes/MensaCronjob.class.php old mode 100644 new mode 100755 index d5f9691af3b2257a99834c17de98234aeb1d4e92..dbb00fc79fc2fac6d0a751accbdf51d47833c81a --- a/classes/MensaCronjob.class.php +++ b/classes/MensaCronjob.class.php @@ -1,4 +1,5 @@ <?php + /** * Class MensaCrojob * @@ -9,48 +10,48 @@ */ class MensaCronjob extends CronJob { - private static $curl_timeout = 40; - + private static $curl_timeout = 50; + public static function getName() { return _('Mensa-Cronjob'); } - + public static function getDescription() { return _('L�dt die Speisepl�ne f�r das Studentenwerk Osnabr�ck herunter'); } - + public function setUp() { \PluginEngine::getPlugin('MensaPlugin'); } - + public function execute($last_result, $parameters = []) { $sourceFile = 'ftp://' . Config::get()->MENSA_FTP_SERVER . '/' . Config::get()->MENSA_FTP_FILE; - $filename = MensaHelper::getFilename(); + $filename = \MensaHelper::getFilename(); $curl = curl_init(); - $file = fopen($filename, 'w'); - + curl_setopt($curl, CURLOPT_URL, $sourceFile); curl_setopt($curl, CURLOPT_USERPWD, Config::get()->MENSA_FTP_USER . ':' . Config::get()->MENSA_FTP_PASS); - curl_setopt($curl, CURLOPT_FAILONERROR, 1); - curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_TIMEOUT, self::$curl_timeout); - curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); - curl_setopt($curl, CURLOPT_FILE, $file); - - if (curl_exec($curl)) { + + $result = curl_exec($curl); + + if ($result) { echo "Der Import der Mensa-Datei war nicht erfolgreich!\n"; } else { echo "Der Import der Mensa-Datei war erfolgreich\n"; } - + curl_close($curl); - fclose($file); - + + if ($result !== false) { + file_put_contents($filename, $result); + } + if (!isset($_SERVER)) { chown($filename, 'www-data'); chgrp($filename, 'www-data'); diff --git a/classes/MensaHelper.class.php b/classes/MensaHelper.class.php old mode 100644 new mode 100755 index 638fec032d0c6ce5ccba1420aea28116ce87efcd..7cb19b372670120403506cfc6d659156cbd324d5 --- a/classes/MensaHelper.class.php +++ b/classes/MensaHelper.class.php @@ -10,51 +10,59 @@ */ class MensaHelper { - public static function getMenu($timstamp = null) + public static function getMenu($timestamp = null) { $file = self::getFilename(); - + if (!file_exists($file)) { return []; } - $handler = fopen($file, 'r'); - $data = []; + $handler = fopen($file, 'r'); + $data = []; + $language = substr($_SESSION['_language'], 0, 2); if ($handler !== false) { $headLine = fgetcsv($handler, 0, ' '); + $pos = array_change_key_case(array_flip($headLine)); while (($row = fgetcsv($handler, 0, ' ')) !== false) { - $order[] = $row[5]; - if ($row[0] == Config::get()->MENSA_LOCATION) { - $data[strtotime($row[1])][$row[5]][$row[4]][$headLine[6]] = $row[6]; - $data[strtotime($row[1])][$row[5]][$row[4]][$headLine[7]] = $row[7]; - $data[strtotime($row[1])][$row[5]][$row[4]][$headLine[8]] = $row[8]; - $data[strtotime($row[1])][$row[5]][$row[4]][$headLine[10]] = $row[10]; - $data[strtotime($row[1])][$row[5]][$row[4]][$headLine[11]] = number_format(str_replace(',', '.', $row[11]), 2, ',', '.'); - $data[strtotime($row[1])][$row[5]][$row[4]][$headLine[12]] = number_format(str_replace(',', '.', $row[12]), 2, ',', '.'); - $data[strtotime($row[1])][$row[5]][$row[4]][$headLine[13]] = number_format(str_replace(',', '.', $row[13]), 2, ',', '.'); - $data[strtotime($row[1])][$row[5]][$row[4]][$headLine[14]] = $row[14]; - $data[strtotime($row[1])][$row[5]][$row[4]][$headLine[15]] = $row[15]; - $data[strtotime($row[1])][$row[5]][$row[4]][$headLine[16]] = $row[16]; + if ($row[$pos['mensa']] == Config::get()->MENSA_LOCATION) { + $date = strtotime($row[$pos['datum']]); + $order = $row[$pos['speise_bezeichnung']]; + $item = [ + 'TEXT1' => $row[$pos['text1']], + 'TEXT2' => $row[$pos['text2']], + 'TEXT3' => $row[$pos['text3']], + 'STD_PREIS' => number_format(str_replace(',', '.', $row[$pos['std_preis']]), 2, ',', '.'), + 'BED_PREIS' => number_format(str_replace(',', '.', $row[$pos['bed_preis']]), 2, ',', '.'), + 'G�STE_PREIS' => number_format(str_replace(',', '.', $row[$pos['g�ste_preis']]), 2, ',', '.'), + 'FREI1' => $row[$pos['frei1']], + 'ZSNUMMERN' => $row[$pos['zsnummern']], + 'ZSNAMEN' => $row[$pos['zsnamen']], + ]; + if ($language == 'en') { + $item['TEXT1'] = $row[$pos['text1_1']] ?: $item['TEXT1']; + $item['TEXT2'] = $row[$pos['text2_1']] ?: $item['TEXT2']; + $item['TEXT3'] = $row[$pos['text3_1']] ?: $item['TEXT3']; + } + $data[$date][$order][] = $item; } } - fclose($handler); - } - if (!$timstamp) { - return $data; + fclose($handler);; } - - return $data[$timstamp]; + return $timestamp ? $data[$timestamp] : $data; } - + + + public static function getFilename() { return $GLOBALS['TMP_PATH'] . '/mensa.txt'; } - + public static function replace($string) { $patterns = ['/\(/', '/\)/']; $replacements = ['<sup>', '</sup>']; - + return preg_replace($patterns, $replacements, htmlReady($string)); } } \ No newline at end of file diff --git a/migrations/01_add_cronjob.php b/migrations/01_add_cronjob.php old mode 100644 new mode 100755 diff --git a/migrations/02_add_config.php b/migrations/02_add_config.php old mode 100644 new mode 100755 diff --git a/migrations/03_add_config_location.php b/migrations/03_add_config_location.php old mode 100644 new mode 100755 diff --git a/plugin.manifest b/plugin.manifest old mode 100644 new mode 100755 index 200826eae0b24f1a996fa99119722b518d615142..187dd07931a84b75f4ec1540c503e8f7bca162c0 --- a/plugin.manifest +++ b/plugin.manifest @@ -1,7 +1,7 @@ pluginclassname=MensaPlugin pluginname=Mensa origin=Vec -version=0.8 +version=0.9 studipMinVersion=3.1 description=Zeigt den Mensaplan als Widget aber auch als Gesamt�bersicht an displayname = Studentenwerk OS Mensaplan diff --git a/templates/exception.php b/templates/exception.php old mode 100644 new mode 100755 diff --git a/templates/menu.php b/templates/menu.php old mode 100644 new mode 100755 diff --git a/templates/widget.php b/templates/widget.php old mode 100644 new mode 100755