Темплейт система и if проверки...

streleca_stz

Registered
Здравейте! Искам да ви попитам как се прави номера ако например потрбителя е логнат само тогава да му се появява определен линк?

Пробвам се с тази темплейт системка -> цък, но не се сещам как може да се направи в tpl файловете да се показва HTML-a който ми е необходим само ако е мината проверката...?
 
В урока е казано, че в tpl файловете не можеш да използваш никакъв РНР код. Следователно трябва да променяш конфигурацията на темплейт системата в зависимост от това дали потребителя е логнат или не, и да показваш различен темплейт, нещо като това:

PHP:
//нямам идея как проверяваш за логнат потребител
//това е само пример
if(USER_IS_LOGGED){
    $tpl->tpl_file(array(
        "index" => "index_logged.tpl",
        "news" => "news_logged.tpl",
        "users" => "users_logged.tpl"
    ));
}else{
    $tpl->tpl_file(array(
        "index" => "index.tpl",
        "news" => "news.tpl",
        "users" => "users.tpl"
    ));

}

index.tpl ще се показва когато потребителя не се е логнал, index_logged.tpl ще се показва, когато потребителя се е логнал. Това обаче е страшно неудобно решение. Или разучи дали можеш да имаш някакви контролни структури (if/else) в темплейт файловете, или си избери друга темплейт система, която може и да е по-тромава, но да ти осигурява повече контрол.
 
Код:
$template->set_var('IS_LOGGED_IN', ($user->logged_in) ? true : false);


 Здравей ..

 Моля влезте

Това е пример само за да разбереш начина.Синтаксиса на класа май е по-различен.
 
exec каза:
В урока е казано, че в tpl файловете не можеш да използваш никакъв РНР код. Следователно трябва да променяш конфигурацията на темплейт системата в зависимост от това дали потребителя е логнат или не, и да показваш различен темплейт, нещо като това:

PHP:
//нямам идея как проверяваш за логнат потребител
//това е само пример
if(USER_IS_LOGGED){
    $tpl->tpl_file(array(
        "index" => "index_logged.tpl",
        "news" => "news_logged.tpl",
        "users" => "users_logged.tpl"
    ));
}else{
    $tpl->tpl_file(array(
        "index" => "index.tpl",
        "news" => "news.tpl",
        "users" => "users.tpl"
    ));

}

index.tpl ще се показва когато потребителя не се е логнал, index_logged.tpl ще се показва, когато потребителя се е логнал. Това обаче е страшно неудобно решение. Или разучи дали можеш да имаш някакви контролни структури (if/else) в темплейт файловете, или си избери друга темплейт система, която може и да е по-тромава, но да ти осигурява повече контрол.

Ами точно това, че трябва да се правят по 51561 повече файла.. :D Пък на мен да ми трябва да се регулира за 1 страница дали е логнат или не само 1,2 кутийки със съдържание.. ;D


======================

alex3 каза:
Код:
$template->set_var('IS_LOGGED_IN', ($user->logged_in) ? true : false);


 Здравей ..

 Моля влезте

Това е пример само за да разбереш начина.Синтаксиса на класа май е по-различен.
Чесно казано нищо не разбрах.. :D
 
Ще се опитам да ти обясня, това което написа alex3, макар да не съм запознат с тази темплейт системата.

PHP:
$template->set_var('IS_LOGGED_IN', ($user->logged_in) ? true : false);
Този код трябва да бъде в твоя РНР файл. След като си инизиализирал $template обекта, създаваш една константа (вероятно) IS_LOGGED_IN, която ще има стойност true ако потребителя се е логнал, или стойност false ако потребителя не се е логнал. Тук трябва да го свържеш/заместиш с твоя код, защото ние не знам как ти управляваш потребителите и логването им.

Код:
 Здравей ..

 Моля влезте
Това вече е темплейт файла . Явно създадената по-горе константа е достъпна по подобен начин като в РНР - ред по ред кода означава

Код:
ако потребителя се е логнал
    здравей
иначе
    моля влезте

На мястото където е "здравей", слагаш информацията/менюто, което трбява да се появи само за логнатите потребители.
 
exec каза:
Ще се опитам да ти обясня, това което написа alex3, макар да не съм запознат с тази темплейт системата.

PHP:
$template->set_var('IS_LOGGED_IN', ($user->logged_in) ? true : false);
Този код трябва да бъде в твоя РНР файл. След като си инизиализирал $template обекта, създаваш една константа (вероятно) IS_LOGGED_IN, която ще има стойност true ако потребителя се е логнал, или стойност false ако потребителя не се е логнал. Тук трябва да го свържеш/заместиш с твоя код, защото ние не знам как ти управляваш потребителите и логването им.

Код:
 Здравей ..

 Моля влезте
Това вече е темплейт файла . Явно създадената по-горе константа е достъпна по подобен начин като в РНР - ред по ред кода означава

Код:
ако потребителя се е логнал
    здравей
иначе
    моля влезте

На мястото където е "здравей", слагаш информацията/менюто, което трбява да се появи само за логнатите потребители.

Ами проверявам с обикновена сесия.. и следователно трябва да стане
PHP:
$template->set_var($_SESSION['is_logged'], ($user->logged_in) ? true : false);
?
 
следователно би трябвало да стане:

PHP:
$template->set_var('IS_LOGGED_IN', ($_SESSION['is_logged']) ? true : false);
 

Back
Горе