Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Вопрос по Smarty
Форумы портала PHP.SU » » Вопросы новичков » Вопрос по Smarty

Страниц (3): [1] 2 3 »
 

1. afuno - 01 Января, 2012 - 23:03:23 - перейти к сообщению
Здравствуйте!

У меня возник такой вопрос. Я недавно начал изучать Smarty. У меня есть регистрация и авторизация на сайте. Но как мне ссылку "Регистрация" из меню убирать, если пользователь авторизован? Меню находится в шаблоне column.tpl со всеми блоками колонки.
2. caballero - 01 Января, 2012 - 23:58:45 - перейти к сообщению
if else как и везде
синтаксис точно не помню - уточни по документации
3. afuno - 02 Января, 2012 - 12:03:57 - перейти к сообщению
А в .tpl разве работать будет?
4. caballero - 02 Января, 2012 - 12:05:29 - перейти к сообщению
Может все таки прочитаешь доки по Smarty дальше первой страницы?
5. afuno - 02 Января, 2012 - 12:28:07 - перейти к сообщению
И ещё. Создал index.php (в корне), он нормально работает, всё подключается. Создал файл в app/systems/ и он отказывается работать: тупо белая страница, ничего не подключает. Как исправить?


(Добавление)
У меня получилось подключить библиотеку Smarty, но теперь выводит такую ошибку:
Цитата:
Fatal error: Uncaught exception 'SmartyException' with message 'Unable to load template file 'main.tpl'' in /var/www/user151/data/www/site.ru/libs/sysplugins/smarty_internal_templatebase.php:127 Stack trace: #0 /var/www/user151/data/www/site.ru/libs/sysplugins/smarty_internal_templatebase.php(374): Smarty_Internal_TemplateBase->fetch('main.tpl', NULL, NULL, NULL, true) #1 /var/www/user151/data/www/site.ru/engine/modules/registration/registration.php(169): Smarty_Internal_TemplateBase->display('main.tpl') #2 {main} thrown in /var/www/user151/data/www/site.r u/libs/sysplugins/smarty_interna l_templatebase.php on line 127


Вот 127 строка:
PHP:
скопировать код в буфер обмена
  1. throw new SmartyException("Unable to load template {$_template->source->type} '{$_template->source->name}'{$parent_resource}");
6. Maxi - 02 Января, 2012 - 13:03:05 - перейти к сообщению
Короче когда проходишь авторизацию, заноси в переменную смарти значение (почтай доки про assign) а потом просто вот так вот
CODE (html):
скопировать код в буфер обмена
  1.  
  2. {if $login != 'ololo'}<div>твоя регистрация</div>{/if}
  3.  
7. afuno - 02 Января, 2012 - 13:08:50 - перейти к сообщению
Maxi, я уже решил вопрос с проверкой на существование сессии. Помоги мне с подключением файла регистрации из подкаталогов.
8. Maxi - 02 Января, 2012 - 13:16:23 - перейти к сообщению
afuno пишет:
Помоги мне с подключением файла регистрации из подкаталогов.


Точно так же.
Передаёшь гетом id страницы, и делаешь вот так.

CODE (html):
скопировать код в буфер обмена
  1.  
  2. {if $id==1}
  3.     {include file='registration.tpl'}
  4. {/if}
  5.  
9. afuno - 02 Января, 2012 - 13:23:24 - перейти к сообщению
Maxi, у меня в файле registration функция. Вы уверены что .tpl подходит?
(Добавление)
Я так подумал, и понял что ни фига не понял из того, что вы написали. Откуда гет брать, в каком файле прописывать и т. д.?
(Добавление)
ладно, решил размещать файлы как у WP. Спасибо всем за помощь! Улыбка
10. afuno - 02 Января, 2012 - 21:19:03 - перейти к сообщению
Ещё один вопрос. У меня в index.php подключен файл сесии. Он будет работать в подключаемом шаблоне?
(Добавление)
Подключён так:
PHP:
скопировать код в буфер обмена
  1. include $_SERVER['DOCUMENT_ROOT'].'/engine/configs/session.php';

(Добавление)
Просто у меня в .tpl не работает это:

{if !isset($user_name)}
<a href="/registration/"><div class="menu">Регистрация</div></a>
<a href="/login/"><div class="menu">Авторизация</div></a>
{/if}
{if isset($user_name)}
<div class="menu">Ваши турниры</div>
<div class="menu">Вы учавствовали</div>
<div class="menu">Создать турнир</div>
{/if}

Выводит только первые 2 ссылки, и не важно авторизован я или нет...
11. caballero - 02 Января, 2012 - 21:30:10 - перейти к сообщению
а как этот файл связан с шаблоном? что он там будет делать? Что подразумевается под словом работать?
12. afuno - 02 Января, 2012 - 21:58:07 - перейти к сообщению
Ясно. Я в принципе так и думал, что в шаблонах ничего не подключено. А как сделать так, что бы автоматически во всех .tpl подключалась сессия?
(Добавление)
Мне как раз ещё нужно в .tpl из БД выводить данные. Ещё нужно БД помимо сессии подключить.
13. caballero - 02 Января, 2012 - 22:04:07 - перейти к сообщению
Зачем брать Smarty если упрямо не хочешь даже почитать как он работает и как используется.
Ничего в шаблон не подключается. Все как обычно в PHP файлах которые
передают шаблону массив готовых данных предназначенных для вывода.
14. afuno - 02 Января, 2012 - 22:07:52 - перейти к сообщению
Я дичал документацию, правда не полностью. Если вам не трудно, то дайте ссылку на описание этого или скажите, как сделать чтобы автоматически в файлах .tpl подключалась сессия, бд и т. д.?
15. caballero - 02 Января, 2012 - 22:11:50 - перейти к сообщению
Нечего делать в tpl ни сессии ни БД ни всему остальному в принципе

доки
http://www[dot]smarty[dot]net/docsv2/ru/
примеры
http://ekimoff[dot]ru/115/

 

Powered by ExBB FM 1.0 RC1