Hallo,
folgendes Problem:
Auf unsere Seite soll ein Kalender eingebunden werden, für andere CMS gibt es schon Module, für Contao allerdings nicht. Haben ein PHP-Skript bekommen wissen nun nur nicht wie wir es einbinden können.
<?php
// Geben Sie hier Ihre Veranstalter-ID von www.evangelische-termine.de ein:
// Mehrere Veranstalter-IDs können durch Kommata getrennt angegeben werden: z.B: 3,21,25
$veranstalterID = '3';
// Für eine Ausgabe auf Dekanatsebene:
// Bitte setzen Sie die veranstalterID auf 'all'
// Entfernen Sie bitte das # von der folgenden Zeile und geben die 3-stellige Dekanatsnummer an:
#$region = '404';
// Gruppenadministrator-ID (optional)
// Wenn eine aid angegeben ist, werden im Veranstalter-Auswahlmenü die zugehörigen Veranstalter angezeigt
#$aid = '';
// Vorbelegungen beim ersten Aufruf:
// siehe Handbuch -> Parameter
$ET_defaults = array(
'vid' => $veranstalterID,
'region' => $region,
'aid' => $aid,
'eventtype' => 'all',
'highlight' => 'all',
'people' => '0',
'itemsPerPage' => '20',
'place' => '',
'person' => '',
'ipm' => '',
'cha' => '',
'until' => 'yes'
);
// Encoding Ihrer Website latin1 | utf8
$encoding = 'utf8';
// Designanpssung: Geben Sie hier den vollständigen Pfad auf eine eigene CSS-Datei an
// oder 'none' um alle CSS-Angaben zu entfernen
// z.B: $ET_defaults['css'] = 'http://www.ihre-domain.de/Styles/et.css';
$ET_defaults['css'] = '';
// ------------------ Unterhalb bitte nichts ändern ------------------
session_start();
if(!isset($_SESSION['session'])) {
$session = new stdClass;
$_SESSION['session'] = $session;
} else {
$session = $_SESSION['session'];
}
function setSessionVar($key, $sess, $default = NULL) {
if( $_REQUEST[$key] != ""){
$sess->{$key} = $_REQUEST[$key];
if($key != 'pageID'){
$sess->pageID = 1;
}
}
if($sess->{$key} == ""){
$sess->{$key} = $default;
}
}
function resetSessionVars($sess, $defaults){
$sess->vid = $defaults['vid'];
$sess->eventtype = $defaults['eventtype'];
$sess->highlight = $defaults['highlight'];
$sess->people = $defaults['people'];
$sess->pageID = 1;
$sess->et_q = '';
$sess->itemsPerPage = $defaults['itemsPerPage'];
$sess->date = '';
}
if($_REQUEST['reset'] == '1'){
resetSessionVars($session, $ET_defaults);
} else {
setSessionVar('vid', $session ,$ET_defaults['vid']);
setSessionVar('region', $session ,$ET_defaults['region']);
setSessionVar('aid', $session ,$ET_defaults['aid']);
setSessionVar('date', $session ,'');
setSessionVar('eventtype', $session , $ET_defaults['eventtype']);
setSessionVar('highlight', $session , $ET_defaults['highlight']);
setSessionVar('people', $session ,$ET_defaults['people']);
setSessionVar('itemsPerPage', $session ,$ET_defaults['itemsPerPage']);
setSessionVar('pageID', $session ,'1');
if($_REQUEST['et_q'] != ''){
$session->et_q = $_REQUEST['et_q'];
if($_REQUEST['reset'] == '1'){
$session->et_q = '';
}
} else {
if($_REQUEST['action'] == 'search'){
$session->et_q = '';
}
}
}
$queryString = 'vid=' . $session->vid .
'&'.'region=' . $session->region .
'&aid=' . $session->aid .
'&date='.$session->date .
'&highlight=' . $session->highlight .
'&eventtype=' . $session->eventtype .
'&people=' . $session->people .
'&et_q=' . $session->et_q .
'&place=' . $ET_defaults['place'] .
'&person=' . $ET_defaults['person'] .
'&ipm=' . $ET_defaults['ipm'] .
'&cha=' . $ET_defaults['cha'] .
'&until=' . $ET_defaults['until'] .
'&itemsPerPage='.$session->itemsPerPage .
'&pageID='.$session->pageID .
'&encoding=' . $encoding.
'&css=' . $ET_defaults['css'] ;
$etVars = array('vid','region','aid','date','highlight','eve nttype','people','et_q','place',
'person','ipm','cha','until','itemsPerPage','pageI D','encoding','css','etID','Suche','action',sessio n_name(),'_token','reset');
foreach($_REQUEST as $key => $val){
if(!in_array($key,$etVars)){
$queryString .= '&' . $key . '='. $val;
}
}
$filename = 'veranstaltungen-php';
if ($_GET['etID'] != "") {
$queryString .= '&ID='. $_GET['etID'];
$filename = 'detail-php';
}
$host = "evangelische-termine.de";
$url = "http://$host/$filename?$queryString";
if(function_exists('curl_init')){
$sobl = curl_init($url);
curl_setopt($sobl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($sobl, CURLOPT_USERAGENT, 'Veranstalter-Script 2.0');
curl_setopt($sobl, CURLOPT_REFERER, $_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);
curl_setopt($sobl, CURLOPT_CONNECTTIMEOUT, 2);
$pageContent = curl_exec ($sobl);
$sobl_info = curl_getinfo ( $sobl);
if($sobl_info['http_code'] == '200'){
$pageContent = str_replace("/Upload/","http://$host/Upload/",$pageContent);
$pageContent = str_replace("http://_HOST_/","http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'] ,$pageContent);
$veranstaltungen = $pageContent;
} else {
# Fehlermeldung:
$veranstaltungen = '<div>Der Veranstaltungskalender ist derzeit nicht verfügbar.</div>';
}
} else {
# Fehlermeldung:
$veranstaltungen = "Das benötigte PHP-Modul curl ist nicht installiert.";
}
?>
Setzen Sie an die Stelle, an der die Veranstaltungen angezeigt werden sollen, folgenden Code:
?
1 <?php echo $veranstaltungen; ?>
Eine andere Möglichkeit den Kalender einzubinden wäre dann wohl über XML. Gibt es hierfür eine Möglichkeit bei Contao?
Danke schonmal
Lesezeichen