Aufruf einer Memberfunktion für ein Nicht-ObjektPhp

PHP-Programmierer chatten hier
Guest
 Aufruf einer Memberfunktion für ein Nicht-Objekt

Post by Guest »

Ich habe eine Vorlagenklasse, die entweder Array-Variablen in TPL-Dateien analysieren oder einfach eine reine HTML-Datei anzeigen kann. Die Analysefunktion funktioniert einwandfrei, aber die Anzeigefunktion gibt den folgenden Fehler zurück:

"Schwerwiegender Fehler: Aufruf einer Mitgliedsfunktion display() für ein Nicht-Objekt in C: \xampp\htdocs\clancms\controllers\home.php in Zeile 7"

Das ist home.php

Code: Select all

class Home extends Controller {

function index(){

echo $this->template->display('index_body.tpl');
}

}
Dies ist die Vorlagenklasse

Code: Select all

class Template {

var $file = '';
var $vars = '';
var $themeID = '';
var $themeTitle = '';
var $themeDescription = '';
var $themePath = '';

function getTheme(){

if($_SESSION['memberid'] != NULL){

$query = "
SELECT memberid, themeid
FROM members
WHERE memberID = '".$_SESSION['memberID']."
LIMIT 1";

if($query = mysql_query($query)){
$member = mysql_fetch_assoc($query);

$query = "
SELECT themeID, themeTitle, themeDescription, themePath
FROM {DB_PREF}
WHERE themeID = ".$member['themeID']."
LIMIT 1";

if($query = mysql_query($query)){
$theme = mysql_fetch_assoc($query);
$this->themeID = $theme['themeID'];
$this->themePath = BASE_PATH.'/templates/'.$theme['themePath'];
$this->themeTitle = $theme['themeTitle'];
$this->themeDescription = nl2br(htmlspecialchars($theme['themeDescription']));
} else {
$this->themePath = BASE_PATH.'/templates/default';
}

} else {
$this->themePath = BASE_PATH.'/templates/default';
}

} else {
$this->themePath = BASE_PATH.'/templates/default';
}

}

function parse($file, $vars){

$this->getTheme();

if(file_exists($this->themePath.'/'.$file)){
$file = file_get_contents($this->themePath.'/'.$file);

foreach($vars as $key => $val){
$file = str_replace('{'.$key.'}', $val, $file);
}
echo $file;
} else {
die('Template parser error: the file \''.$this->themePath.'/'.$file.'\' does not exist!');
}
}

function display($file){

if(file_exists($this->themePath.'/'.$file)){
$file = file_get_contents($this->themePath.'/'.$file);
echo $file;
} else {
die('Template parser error: the file \''.$this->themePath.'/'.$file.'\' does not exist!');
}

}
}
Update

Tut mir leid, das habe ich vergessen anzugeben

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post