Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Наследование класса, вообщем ООП


Автор: Opik 9.12.2004, 22:30
Объявляю класс:
Код

class ad_news extends Smarty

Далее:
Код

         $content = $this->fetch('../../theme/opik/admin/news/admin_news.tpl');

и переменная $content пуста, че не так? я в ООП.... мимолетом smile

Автор: IZ@TOP 9.12.2004, 23:26
Честно говоря смарти я не юзал. Что за функция fetch? И в каком классе она объявлена? Еще вариант пути посмотреть, может путь неверный указан.

Автор: Mal Hack 9.12.2004, 23:54
Цитата
и переменная $content пуста, че не так? я в ООП.... мимолетом smile

А как ты к ней обращаешься?
Думаю логически там долдно быть $this -> content.
Приведи весь код...

Автор: Opik 10.12.2004, 00:07
Цитата
Что за функция fetch

Функция объявлена в Smarty
Код
class ad_news extends Smarty {
function Show(){
         $this->content = $this->fetch('../../theme/opik/admin/news/admin_news.tpl');
}}


Автор: IZ@TOP 10.12.2004, 00:44
тормоз я... не обратил внимания на this... так проблема решена? Может тебе стоит ее заранее объявить? Хотя в PHP это не особо важно, кроме тех случаев где используются функции чтения и определния перменных (начиная с версии 5).

Автор: penizillin 10.12.2004, 00:55
а где и как вы проверяете содержимое $content?

Автор: IZ@TOP 10.12.2004, 00:59
Opr, больше кода пожалуйста.

Автор: Opik 10.12.2004, 01:03
penizillin
print $this->content;
IZ@TOP
Что именно нужно?

Автор: penizillin 10.12.2004, 01:10
я надеюсь, внутри класса ad_news?
нужно больше кода. как вы создаете объект, в каком месте вызываете проверку, и т.п.

Автор: IZ@TOP 10.12.2004, 12:10
Opr, а не пробовал в $obj->Show() в конце сделать print_r($this)?

Автор: Opik 10.12.2004, 14:25
IZ@TOP
Функция Show вызывается нормально.
А вот внутри этой функции не вызывается класс.

Автор: <Spawn> 10.12.2004, 17:14
Попробуй

Код

parent::fetch(...);


если, кончено, данная функция определена в предке.

Автор: Opik 10.12.2004, 22:20
При var_dump($this)
Выдается класс Smarty всё ок, но присвается всё равно пустая переменная
Код

        $this->assign('text', $message);

         $this->content = $this->fetch('../../theme/opik/admin/news/admin_news.tpl');

         $this->assign('content', $this->content);
          var_dump($this);


Чуть выше есть
$this->assign('cat_id', $cat_id);
и всё ок работает...
Добавлено @ 22:24
Надо сделать, что бы работало:
$this->display('../../theme/opik/admin/news/admin_news.tpl');
smile

Автор: <Spawn> 11.12.2004, 03:24
Дак ты покажи внутренности $this->fetch. И откуда уже взялось $this->display? И еще одно - в каком методе нового класса ты все это пишешь?????

Автор: IZ@TOP 11.12.2004, 09:25
smile <Spawn>, он шифруется smile

Автор: Opik 11.12.2004, 13:27
<Spawn>
Я понял, что так:
$this->content = $this->fetch('../../theme/opik/admin/news/admin_news.tpl');
$this->assign('content', $this->content);
мне ща делать не надо smile
Достаточно:
$this->display('../../theme/opik/admin/news/admin_news.tpl');
В методе Show

Автор: <Spawn> 11.12.2004, 17:48
Цитата(IZ @ 11.12.2004, 01:25)
smile <Spawn>, он шифруется smile

smile

Opr
Т.е. проблема решена?

Автор: Opik 12.12.2004, 11:01
нет smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)