-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathModuleSISReader.php
121 lines (108 loc) · 3.61 KB
/
ModuleSISReader.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
<?php
/**
* PHP version 5
* @copyright Oliver Lohoff
* @author Oliver Lohoff, [email protected]
* @package sis-reader
* @license GNU/LGPL
* @filesource
*/
namespace Contao4You;
/**
* Class sis-reader
*
* @copyright Oliver Lohoff
* @author Oliver Lohoff, [email protected]
* @package Controller
*/
class ModuleSISReader extends \Module
{
/**
* Template
* @var string
*/
protected $strTemplate = 'mod_sis';
protected $strVerein = '';
public function generate()
{
if (TL_MODE == 'BE')
{
$objTemplate = new \BackendTemplate('be_wildcard');
$objTemplate->wildcard = '### SIS - Reader ###';
$objTemplate->title = $this->headline;
$objTemplate->id = $this->id;
$objTemplate->link = $this->name;
return $objTemplate->parse();
}
return parent::generate();
}
/**
* Generate module
*/
protected function compile()
{
$this->strVerein = $GLOBALS['TL_CONFIG']['sisverein'];
$xmldatei = $this->aktualisiereDaten($this->sis_art, $this->sis_liga, $this->strVerein);
switch ($this->sis_art)
{
case 'tabelle': $tpl = 'sis_tabelle'; break;
case 'allespieleliga' : $tpl = 'sis_naechstenspiele'; break;
case 'allespieleverein' : $tpl = 'sis_naechstenspiele'; break;
case 'heimspieleverein' : $tpl = 'sis_heimspiele'; break;
case 'spielemannschaft' : $tpl = 'sis_spielemannschaft'; break;
case 'naechsten15spieleliga' : $tpl = 'sis_naechstenspiele'; break;
case 'naechsten30spieleverein' : $tpl = 'sis_gesamtspielplan'; break;
case 'naechsten15spieleverein' : $tpl = 'sis_naechstenspiele'; break;
case 'letzten15spieleliga' : $tpl = 'sis_letztenspiele'; break;
case 'letzten15spieleliga' : $tpl = 'sis_letztenspiele'; break;
}
$objTemplate = new \FrontendTemplate($tpl);
$objTemplate->sis_verein = $this->strVerein;
$objTemplate->sis_liga = $this->Template->sis_liga;
$objTemplate->xmldatei = $xmldatei;
$this->Template->daten = $objTemplate->parse();
}
protected function aktualisiereDaten($strArt, $strLiga)
{
// SIS - Benutzerdaten auslesen
$login = $GLOBALS['TL_CONFIG']['sisuser'];
$pass = $GLOBALS['TL_CONFIG']['sispass'];
// Die SIS - Parameter zuordnen
switch ($strArt)
{
case 'tabelle' : $art = 4; $auf = $strLiga; break;
case 'allespieleliga' : $art = 1; $auf = $strLiga; break;
case 'allespieleverein' : $art = 1; $auf = $this->strVerein; break;
case 'heimspieleverein' : $art = 1; $auf = $this->strVerein; break;
case 'spielemannschaft' : $art = 1; $auf = $strLiga; break;
case 'naechsten15spieleliga' : $art = 3; $auf = $strLiga; break;
case 'naechsten30spieleverein' : $art= 11; $auf = $this->strVerein; break;
case 'naechsten15spieleverein' : $art = 3; $auf = $this->strVerein; break;
case 'letzten15spieleliga' : $art = 2; $auf = $strLiga; break;
case 'letzten15spieleverein' : $art = 2; $auf = $this->strVerein; break;
}
// Den Dateinamen bestimmen
$datei = 'system/tmp/sis_' . substr(md5($strArt . $auf), 0,8) . ".xml";
// Url generieren
$this->sisUrl = "http://sis-handball.de/xmlexport/xml_dyn.aspx?art=$art&auf=$auf&user=$login&pass=$pass";
if (file_exists($datei))
{
$letzteAenderung = filemtime($datei);
if ( (time() - $letzteAenderung) > 3600)
{
// Laden
$content = file_get_contents($this->sisUrl);
// Parsen
$doc = simplexml_load_string($content);
$doc->saveXML($datei);
}
} else{
$content = file_get_contents($this->sisUrl);
// Parsen
$doc = simplexml_load_string($content);
$doc->saveXML($datei);
}
return $datei;
}
}
?>