SIS Kalenderdaten erstellen

[insert_php] /**
*XML SIS Handball v2
* @package .ics Dateien erstellen
* @version 1.0: spics.php 2012-02-17
* @author Martin Maetz (webmaster@maetzokopter.at)
* @copyright (C) 2012 Martin Maetz (http://www.maetzokopter.at)
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
**/

$spparams = Array (
„sis_meinevereinsnummer“ => „1410801122“,
„sis_meinvereinspasswort“ => „564409“,
„sis_url“ => „http://www.sis-handball.de“,
„sis_timezone“ => „Europe/Vienna“,
„sis_deinvereinsname“ => „SV Erbach“,
„sis_deinvereinsnameshort“ => „SVE“,
„sis_deinvereinsurl“ => „http://localhost:8888/SVE_wordpress/“,
„sis_icsurl“ => „icsdb“,
„sis_jahr“ => „2016“
);

/**Hier die Daten der Teams eintragen (immer der Wert nach =>).
sis_team muss den Namen aus dem Menüeintrag „Name für .ics-Datei“ haben!
sis_clubnummer und sis_clubnummer1 stehen für die Teams, mindestens eines muss angegeben werden.**/
$artauf = array(
array(„sis_team“ => „ml“, „sis_liganr“ => „001516504501508501000000000000000001000“, „sis_clubnummer“ => „001516504501508501000000000000000001004“, „sis_clubnummer1“ => „teamnummer1 oder leer“),
);

/**Variable Daten Ende**/

/**
*XML SIS Handball v2
*
* @package xmlsishandballv2 for Joomla 2.5
* @version 2.7.1: spics.php 2015-01-14
* @author Martin Maetz (webmaster@maetzokopter.at)
* @copyright (C) 2015 Martin Maetz (http://www.maetzokopter.at)
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
**/

echo $spparams[’sis_timezone‘];

echo ‚

XML SIS-Handball v2 ICS-Generator

Mit dieser URL können per cronscript die .ics-Dateien immer aktuell gehalten werden.

‚;

//Timezone einstellen für Datumsberechnung
date_default_timezone_set($spparams[’sis_timezone‘]);
$heute = mktime(0, 0, 0, date(„m“) , date(„d“), date(„Y“));
$futuredate = mktime(0, 0, 0, 1, 1, $spparams[’sis_jahr‘]);

$wtag = array(
„Mon“ => „Mo.“,
„Tue“ => „Di.“,
„Wed“ => „Mi.“,
„Thu“ => „Do.“,
„Fri“ => „Fr.“,
„Sat“ => „Sa.“,
„Sun“ => „So.“
);

$monat = array(
„Jan“ => „Jänner“,
„Feb“ => „Februar“,
„Mar“ => „März“,
„Apr“ => „April“,
„May“ => „Mai“,
„Jun“ => „Juni“,
„Jul“ => „Juli“,
„Aug“ => „August“,
„Sep“ => „September“,
„Oct“ => „Oktober“,
„Nov“ => „November“,
„Dec“ => „Dezember“
);

function getParameter($vereinsnummer,$vereinspasswort,$liganummer,$sis_art) {
$parameter = array(
‚user‘ => $vereinsnummer,
‚pass‘ => $vereinspasswort,
‚art‘ => $sis_art,
‚auf‘ => $liganummer
);
return $parameter;
}
function getXML($linkresults, $linkparameters, $liganummer,$sis_art) {
// 1. nachsehen, ob Daten noch aktuell sind.
xmlsishandballv2Modelxmlsishandballv2::refreshData($linkresults, $linkparameters,$liganummer,$sis_art);
$result = xmlsishandballv2Modelxmlsishandballv2::getLatestDataFromDatabase($liganummer,$sis_art);
$result1 = simplexml_load_string($result[0]->content);
return $result1;
}

echo getParameter($spparams[’sis_meinevereinsnummer‘],$spparams[’sis_meinvereinspasswort‘],$liganummer,1);

//Aufrufschleife beginnen
//Array Mannschaften zählen
$teamanz = count($artauf);
echo ‚

‚.$teamanz.‘ Mannschaften:

‚;

for ($t=0; $t < $teamanz; $t++) { $liganummer = $artauf[$t]['sis_liganr']; $sis_clubnummer = $artauf[$t]['sis_clubnummer']; $sis_clubnummer1 = $artauf[$t]['sis_clubnummer1']; $linkparameters = getParameter($spparams['sis_meinevereinsnummer'],$spparams['sis_meinvereinspasswort'],$liganummer,1); $linkresult = xmlsishandballv2Modelxmlsishandballv2::getLink(str_replace('\\', '', $spparams['sis_url'])); //New with SQL $result = getXML($linkresult,$linkparameters,$liganummer,1); //iCal start $string='BEGIN:VCALENDAR CALSCALE:GREGORIAN VERSION:2.0 PRODID:-//'.$spparams['sis_deinvereinsname'].' Calendar V1.1//EN METHOD:PUBLISH X-WR-TIMEZONE:'.$spparams['sis_timezone'].' '; //iCal end $spielcount = 0; foreach ($result->Spiel as $spiel) {
if((string) $spiel->Mannschaft1 === $sis_clubnummer || (string) $spiel->Mannschaft2 === $sis_clubnummer || (string) $spiel->Mannschaft1 === $sis_clubnummer1 || (string) $spiel->Mannschaft2 === $sis_clubnummer1) {
//$spdatum_exp = explode(‚-‚, (string) $spiel->SpielDatum);
//$spdatum_exp = preg_replace(‚/[^T0-9]+/‘, “,strrev(substr(strrev((string) $spiel->SpielDatum),5)));
$spdatum_exp = preg_split(‚/[^T0-9]+/‘, (string) $spiel->SpielDatum);
//print_r($spdatum_exp);
$spdatumvon_exp = preg_split(‚/[^T0-9]+/‘, (string) $spiel->SpielVon);
//Sun, 09. Oct. 2011 => date(‚D, d. M. Y‘, strtotime ($spiel->Datum))
$wtagsp = $wtag[date(‚D‘, strtotime ($spiel->SpielDatum))];
$monatsp = $monat[date(‚M‘, strtotime ($spiel->SpielDatum))];
$sdatum = mktime(0, 0, 0, date(‚m‘, strtotime ($spiel->SpielDatum)) , date(‚d‘, strtotime ($spiel->SpielDatum)), date(‚Y‘, strtotime ($spiel->SpielDatum)));
//echo ‚Datum: ‚.$sdatum.‘ – heute: ‚.$heute;
if($heute <= $sdatum && $sdatum < $futuredate) { //iCal start $string.='BEGIN:VEVENT CREATED:'.date('Ymd').'T'.date('His').'Z LAST-MODIFIED:'.date('Ymd').'T'.date('His').'Z DTSTAMP:'.date('Ymd').'T'.date('His').'Z SUMMARY:'.strtoupper($spparams['sis_deinvereinsnameshort']).' '.strtoupper($artauf[$t]['sis_team']).' Spiel: '.$spiel->Heim.‘ – ‚.$spiel->Gast.‘
LOCATION:‘.$spiel->HallenOrt.‘, ‚.$spiel->HallenStrasse.‘
DTSTART:‘.preg_replace(‚/[^T0-9]+/‘, “,strrev(substr(strrev((string) $spiel->SpielVon),5))).‘
DTEND:‘.preg_replace(‚/[^T0-9]+/‘, “,strrev(substr(strrev((string) $spiel->SpielBis),5))).‘
URL:‘.$spparams[’sis_deinvereinsurl‘].‘
DESCRIPTION:Termin: ‚.$wtagsp.‘, ‚.date(‚j.‘, strtotime ($spiel->SpielDatum)).‘ ‚.$monatsp.‘ ‚.date(‚Y‘, strtotime ($spiel->SpielDatum)).’\nZeit: ‚.substr($spdatumvon_exp[2],-2).‘:‘.$spdatumvon_exp[3].‘ Uhr\nMannschaften: ‚.$spiel->Heim.‘ – ‚.$spiel->Gast.’\nSpielort: ‚.$spiel->HallenName.’\n‘.$spiel->HallenOrt.‘, ‚.$spiel->HallenStrasse.‘
TRANSP:TRANSPARENT
UID:‘.$spparams[’sis_deinvereinsnameshort‘].’_‘.strtoupper($artauf[$t][’sis_team‘]).’_Spieltermin-‚.$spdatumvon_exp[0].$spdatumvon_exp[1].substr($spdatumvon_exp[2],0,-3).‘:‘.substr($spdatumvon_exp[2],-2).$spdatumvon_exp[3].$spdatumvon_exp[4].’@‘.substr($spparams[’sis_deinvereinsurl‘], 11).‘
END:VEVENT
‚;
//iCal end
$spielcount++;

} //endif Datum
} //endif Mannschaft
}

//iCal start
$string.=’END:VCALENDAR‘;

//Verzeichnis erstellen
$path = $_SERVER[‚DOCUMENT_ROOT‘].(substr($_SERVER[‚DOCUMENT_ROOT‘], -1) == „/“ ? “ : ‚/‘).$spparams[’sis_icsurl‘];
if (!file_exists($path)){
mkdir($path, 0755)or die(„Ordner nicht erstellbar! Bitte per FTP erstellen“);
}
$handle = @fopen($path.“/“.$spparams[’sis_deinvereinsnameshort‘].“-spiele_“.$artauf[$t][’sis_team‘].“.ics“, ‚w‘);
fwrite($handle, $string);
fclose($handle);
//iCal end
echo ‚Done: ‚.$artauf[$t][’sis_team‘].‘; ‚.$spielcount.‘ Spiel(e); Link für Kalenderabo: Spielplan abonnieren
‚;
} // for Aufrufschleife ende

[/insert_php]