Prüfung der Voraussetzungen
Das Template prüft einige Bedingungen, die erfüllt sein müssen, damit es funktionieren kann:
Einige Dateien müssen beschreibbar sein.
/*
Einige Dateien des Templates müssen zwingend beschreibbar sein, damit es nicht zu Fehlermeldungen kommt.
Hier werden diese Dateien einzeln auf Beschreibbarkeit getestet und im Fehlerfall (nicht beschreibbar) eine Fehlermeldung vor und oberhalb der Website ausgegeben.
*/
// Flag für Beschreibbarkeit auf "true" setzen
$template_is_writable = 1;
// Array anlegen mit den Namen der Dateien, die beschreibbar sein müssen.
// $pth['folder']['template'] hat als erstes Zeichen einen '.', der durch substr($pth....,1) abgeschnitten wird
$arr = array($pth['folder']['template'] . 'stylesheet.css');
$arr[] = $pth['folder']['template'] . 'template.htm';
$arr[] = $pth['folder']['template'] . 'colordefinition.css';
// Ordner der Sprachdateien
$languagedir = $pth['folder']['template'].'languages/';
// Sprachdateien in .../languages/**.php ermitteln und ans Array anhängen
if (is_dir($languagedir))
{
if ($dh = opendir($languagedir))
{
while (($file = readdir($dh)) !== false)
{
if (($file !== ".") and ($file !== ".."))
{
$arr[] = $languagedir . $file; // System-Ordnername mit Dateinamen
}
}
closedir($dh);
}
}
// Beschreibbarkeit für jedes Element im Array überprüfen und im Fehlerfall Meldung ausgeben
foreach ($arr as &$filename) {
if (!is_writable($filename)) {
echo '<p style="color: black; background-color: yellow; border: 2px solid red; padding:1ex;">' . $text['template_file_not_writable'] . ' ' . $filename . '</p>' . "\n";
$template_is_writable = 0;
}
}
// Wenn eine der Dateien nicht beschreibbar ist Abbruch der Ausgabe der Webseite
if ($template_is_writable <> 1)
{
die;
}
Das Plugin CnC (Cash des CMS) darf nicht aktiv sein, da im Template CSS-Formate enthalten sind, die unterschiedlich definiert sind, je nachdem, ob sich die Seite im Editiermodus befindet oder nicht.
// Wenn das Plugin CnC installiert ist wird die Warnmeldung wegen inkompatibilität ausgegeben.
if (is_readable($pth['folder']['plugins'].'cnc/index.php')) {
die('Das Template <b>krl-3col-flex</b> ist in dieser Version nicht mehr mit dem Plugin CnC kompatibel.');
}
// Wenn jQuery4CMSimple installiert ist wird die Bibliothek geladen.
// if jQuery4CMSimple is installed, include its jQuery library
if (is_readable($pth['folder']['plugins'].'jquery/jquery.inc.php')) {
include_once $pth['folder']['plugins'].'jquery/jquery.inc.php';
include_jQuery();
}
// Konfigurationsdatei einlesen -----------------------------------------
if (is_readable($pth['folder']['template'].'config/config.ini.php')) {
include $pth['folder']['template'].'config/config.ini.php';
} else {
echo '<p style="color: black; background-color: white; border: 2px solid red; padding:1ex;">Das Template "krl-3col-flex" kann seine Konfigurations-Datei nicht finden.</p>'."\n";
}
// Wenn das FontAwesom Plugin installiert ist wird die Funktion aufgerufen, andernfalls eine Warnmeldung ausgegeben.
// Plugin FA_XH
if (function_exists('fa_require')) {
fa_require();
} else {
echo '<p style="color: black; background-color: white; border: 2px solid red; padding:1ex;">Das Template "krl-3col-flex" benötigt das Fa_XH-Plugin.<br>Das Fa_XH-Plugin kann hier heruntergeladen werden: <a href="https://github.com/cmb69/fa_xh/releases" target="_blank">Download</a><br>Installieren Sie das Plugin!</p>'."\n";
}
// Plugin Morepagedata nicht installiert? -> Warnmeldung ausgeben.
if (!function_exists('getPageDataFields')) {
echo '<p style="color: black; background-color: white; border: 2px solid red; padding:1ex;">Das Template "krl-3col-flex" benötigt das Morepagedata-Plugin.<br>Das Morepagedata-Plugin kann hier heruntergeladen werden: <a href="https://github.com/cmsimple-xh/morepagedata/releases/" target="_blank">Download</a><br>Installieren Sie das Plugin!</p>'."\n";
}
// Plugin Slideshow nicht installiert, die Slideshow nicht abgeschaltet und entweder die "headerslideshow" oder die "headerslideshowbelow" ist aktiviert, dann Warnmeldung ausgeben.
if ((!function_exists('slideshow')) and (!isset($NoSlideShow))) {
if (($Headertyp == "headerslideshow") or ($Headertyp == "headerslideshowbelow")) {
echo '<p style="color: black; background-color: white; border: 2px solid red; padding:1ex;">Das Template "fhs-simple-all" benötigt das Slideshow-Plugin.<br>Das Slideshow-Plugin kann hier heruntergeladen werden: <a href="https://github.com/cmb69/slideshow_xh/releases/" target="_blank">Download</a><br>Installieren Sie das Plugin!</p>'."\n";
}
}
// Plugin SimplePlugins_XH Edition KRL nicht installiert (für Funktion "recently_changed" notwendig) -> Warnmeldung ausgeben.
if (!function_exists('recently_changed')) {
echo '<p style="color: black; background-color: white; border: 2px solid red; padding:1ex;">Das Template "fhs-simple-all" benötigt das "SimplePlugins_XH Edition KRL"-Plugin.<br>Das "SimplePlugins_XH Edition KRL"-Plugin kann hier heruntergeladen werden: <a href="https://lembach-cmsimple.de/?Download/Plugins-Modifikationen" target="_blank">Download</a><br>Installieren Sie das Plugin!</p>'."\n";
}
// Templateerweiterung changeFontSizeByUser laden, wenn nicht möglich -> Warnmeldung ausgeben.
if (is_readable($pth['folder']['template'].'fontsize.inc.php')) {
include 'fontsize.inc.php';
$changeFontSize = true;
} else {
echo '<p style="color: black; background-color: white; border: 2px solid red; padding:1ex;">Das Template "fhs-simple-all" kann die Datei "fontsize.inc.php" nicht finden.</p>'."\n";
}
// Im Editormodus werden Dateien in Arrays eingelesen und die Eingaben via POST verarbeitet.
if ($edit) {
if (is_readable($pth['folder']['template'].'config/input_via_post.php')) {
include $pth['folder']['template'].'config/input_via_post.php';
} else {
echo '<p style="color: black; background-color: white; border: 2px solid red; padding:1ex;">Das Template "krl-3col-flex" kann die Datei "input_via_post.php" nicht finden.</p>'."\n";
}
}
// Texte in der aktiven Sprache einlesen
// Für den Fall, dass in der fremdsprachlichen Sprachdatei nicht alle Variablen enthalten sind, wird zuerst einmal die deutsche Datei eingelesen.
$text = array();
if (is_readable($pth['folder']['template'].'languages/de.php')) {
include $pth['folder']['template'].'languages/de.php';
} else {
echo '<p style="color: black; background-color: white; border: 2px solid red; padding:1ex;">Das Template "krl-3col-flex" kann die Sprachen-Datei "languages/de.php" nicht finden.</p>'."\n";
}
if ($sl !== "de") { // Wenn die aktive Sprache nicht Deutsch ist wird die Sprachdatei der aktiven Sprach nachzuladen versucht.
if (is_readable($pth['folder']['template'].'languages/'.$sl.'.php')) {
include $pth['folder']['template'].'languages/'.$sl.'.php';
}
else // Wenn die Sprachdatei nicht existiert wird die englische (ersatzweise die deutsche) Sprachdatei als Default-Datei in die Ziel-Sprachdatei kopiert.
{
if (is_readable($pth['folder']['template'].'foreign-language.php')) {
include $pth['folder']['template'].'foreign-language.php';
} else {
echo '<p style="color: black; background-color: white; border: 2px solid red; padding:1ex;">Das Template "krl-3col-flex" kann die Datei foreign-language.php nicht finden.</p>'."\n";
}
}
}