Habe jetzt einen Skin Controller eingebaut :
* getCurrentSkinId: gibt die aktuell ausgewählte ID des Skins wieder
* getCurrentSkinName: liefert den Namen des Skins
* getCurrentSkinPath: gibt die Speicheradresse des Skins wieder.
Code:
<?PHP
class SkinController{
function getCurrentSkinId(){
return getSetting("selectedskin");
}
function getCurrentSkinName(){
global $dbpraefix;
$res = mysql_query("SELECT name FROM ".$dbpraefix."skins
WHERE id = '".SkinController::getCurrentSkinId()."'");
if($row = mysql_fetch_row($res)){
return $row[0];
}
else{
return "default";
}
}
function getCurrentSkinPath(){
return "system/skins/".SkinController::getCurrentSkinName();
}
}
?>
In der Funktion getCurrentSkinID wird einfach nur über die Funktion getSetting aus der Datei settings.php die aktuelle ID aus der DB geholt und mit return zurückgegeben.
Die Funktion getCurrentSkinName muss auf die Variable $dbpraefix aus der dbsettings.php zugreifen. Diese muss deswegen erst einmal als global deklariert werden. Danach wird eine MySQL-Abfrage gesendet, um den Namen herauszubekommen. Hierbei wird auf die Funktion getCurrentSkinID zugegriffen. Da wir ja alle Funktionen statisch aufrufen möchten, müssen wir hier den Klassennamen gefolgt von 2 Doppelpunkten und den Funktionnamen aufrufen. Sollte die Abfrage scheitern, wird hier der Wert “default” für den Standardskin zurückgegeben.
getCurrentSkinPath verknüpft einfach den Skinnamen mit dem Speicherplatz, wo die Skins gespeichert sind.
* dbconnect.php (beinhaltet auch die dbsettigns.php und verbindet zur DB)
* settings.php (für das Auslesen der Einstellungen)
Die Index :
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
<head>
<title>Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<?PHP
include("system/dbconnect.php");
include("system/settings.php");
include("system/classes/skincontroller.php");
include("system/filterfilename.php");
include(filterfilename("content/articles/".$_GET['include']));
include(SkinController::getCurrentSkinPath()."/test.php");
?>
</body>
</html>