Вызов функции-члена для необъектаPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Вызов функции-члена для необъекта

Сообщение Anonymous »

У меня есть класс шаблона, который может либо анализировать переменные массива в файлах TPL, либо просто отображать чистый HTML-файл. Функция синтаксического анализа работает нормально, но функция отображения возвращает следующую ошибку:

"Неустранимая ошибка: вызов функции-члена display() для объекта, не являющегося объектом в C: \xampp\htdocs\clancms\controllers\home.php в строке 7"

Это home.php

class Home extends Controller {

function index(){

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

}


Это класс шаблона

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!');
}

}
}


Обновление

Извините, я забыл это добавить



Подробнее здесь: https://stackoverflow.com/questions/496 ... non-object
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»