Шаблонизатор не определяет переменную

1. Евгений (20.05.2012 / 12:23)
Шаблонизатор не определяет переменную $user:
Notice: Undefined variable: user
В чём может быть проблема ?
Архив: http://upwap.ru/2381143

2. Евгений (20.05.2012 / 14:10)
Кто поможет ?

3. Жень4ик (20.05.2012 / 14:15)
Есть топ-тема http://visavi.net/forum/topic.php?tid=391&start=5270&

4. JustZero (20.05.2012 / 14:20)
что за велик?
<?php
$p = opendir(HOME .'/system/classes/');
while ($f = readdir($p)) {
if (preg_match('/\.class.php$/i', $f)) require_once(HOME .'/system/classes/'. $f); 
}

можно же autoload юзать.

<?php
function __autoload($name)
{
    $fileName = $name . '.php';
    $fileDir = HOME . '/incfiles/classes/' . $fileName;
    if (is_file($fileDir) == false) {
        return true;
    } 
    include_once($fileDir);
}

Добавлено через 03:17 сек.
можно использовать define еще

Добавлено через 03:31 сек.
вместо $user

5. Евгений (20.05.2012 / 14:25)
4. Доктор Зло, можно примерчик ?

6. ramzes (20.05.2012 / 14:50)
4. Доктор Зло, по моему у тебя ошибка.
После return функция останавливается.
Инклуда не будет.
+ инклуд внутри функции не выйдет за ее пределы. Нужен require.
Я правда ни когда не пользовался подобными конструкциями, но вроде так.

7. JustZero (20.05.2012 / 16:42)
ну те нужно для начала переписать user.class.php на ООП.
потом делать типа так:
<?php
$uid = User::get_user_id(); // получаем ИД юзера (если гость, присваиваем -1)
define('USER_ID', $uid);


////// в index.tpl

if (USER_ID != -1) {
    echo 'admin';
}


как-то типа так.
P.S. это самый простой велик.

6, все работает на ура.

Добавлено через 05:38 сек.
переписать чеб не позориться т.к. с названия файла я думал что там ооп а открыв его увидел чет страшное smile
или же просто перенести класс

8. Евгений (20.05.2012 / 18:34)
7. Доктор Зло, эт в инете начитался, вот и написал.... D
ещё можно через global обьявить)

URL: https://visavi.net/topics/32049