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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вопрос по Smarty [3]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
caballero
Отправлено: 02 Января, 2012 - 23:40:58
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




не знаю о каком каждом файле идет речь

Есть шаблон tpl ему надо передать переменные

затем этот шаблон выполнить
переменным могут быть чем угодно, включая ссылки
шаблонизатор просто подставляет их


$username = "Вася пупкин";
$smarty->assign("usename',$username);

$smarty->display();

вместо

<a href >{$sername}</a> в tpl файле образуется HTML
<a href >Вася пупкин</a>

если наборы меню не формируются динамически тогда можно просто саздать два файла tpl захардкодить туда ссыли (обычный HTML) и инклудить файлы по условию
например равенства некоей переменной. Которую разумеется тоже нужно передать в Смарти

$smarty->assign('islogined', ... );


{if $islogined }
include ...


переменные PHP в шаблонизатор сами никак не попадают

(Отредактировано автором: 02 Января, 2012 - 23:42:51)



-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
afuno
Отправлено: 02 Января, 2012 - 23:44:52
Post Id


Частый гость


Покинул форум
Сообщений всего: 152
Дата рег-ции: Февр. 2011  


Помог: 0 раз(а)




Я имею ввиду файлы:
index.php
registration.php
login.php

Файлы, которые по сути являются модулями и каждый из них передаёт данные в main.tpl

Теперь я думаю сделать так:
В каждый файл поместить функцию, где в переменную $column будут заноситься нужные ссылки, а затем переменную передавать шаблонизатору.

Всё верно?
 
 Top
caballero
Отправлено: 02 Января, 2012 - 23:48:13
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




зачем лишние сложности
вызывай функцию assign в каждом файле для своих переменных

а dispaly как обычно в конце главного файла


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
afuno
Отправлено: 02 Января, 2012 - 23:50:22
Post Id


Частый гость


Покинул форум
Сообщений всего: 152
Дата рег-ции: Февр. 2011  


Помог: 0 раз(а)




caballero, извини за тупость... Но не понимаю.

Ты имеешь ввиду присвоить переменной $content файл content.php?
 
 Top
caballero
Отправлено: 02 Января, 2012 - 23:58:38
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




в файле content.php

$smarty->assign('content', <строка с неким контентом>);

в файле шаблона (неваЖно каком)

{$content}

(Отредактировано автором: 02 Января, 2012 - 23:59:29)



-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
afuno
Отправлено: 03 Января, 2012 - 00:02:06
Post Id


Частый гость


Покинул форум
Сообщений всего: 152
Дата рег-ции: Февр. 2011  


Помог: 0 раз(а)




Хмм. Спасибо Улыбка Вот наконец и мы и поняли друг друга и пришли к решению. Спасибо Улыбка
 
 Top
afuno
Отправлено: 03 Января, 2012 - 10:55:13
Post Id


Частый гость


Покинул форум
Сообщений всего: 152
Дата рег-ции: Февр. 2011  


Помог: 0 раз(а)




Ребят. Вопрос немного не по теме, но создавать ещё одну тему бессмысленно.

Я в index.php прописал функцию. Выглядит она так:

PHP:
скопировать код в буфер обмена
  1. function column($block) {
  2.  
  3. if (isset($user_name)){
  4.         return file_get_contents($_SERVER['DOCUMENT_ROOT'].'/templates/column_user.php');
  5. }
  6. if (!isset($user_name)){
  7.         return file_get_contents($_SERVER['DOCUMENT_ROOT'].'/templates/column_quest.php');
  8. }
  9.  
  10. return base64_encode($block);
  11. }


Но file_get_contents блокирует все php строки, то есть php код будит выводиться как обычный текст. Можете посоветовать как по другому можно инклудить?
 
 Top
Страниц (3): « 1 2 [3]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB