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 :: Правильная работа с шаблонизатором

 PHP.SU

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


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

> Описание: file_get_contents() - как правильно инклудить файлы в тег
Алексеей
Отправлено: 26 Июня, 2013 - 14:16:20
Post Id


Посетитель


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


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




Привет друзья!
Очень долго пытаюсь решить задачу, обратился в форум "Хэшкод", и там не помогли.

Дело в том, что у меня задача создать CMS, а там должны быть удобные (понятные) для новичка теги, например {username} или $USERNAME$- и тут уже все сделано, CMS полностью разработал, а вот осталось решить эту задачу:

Нужно создать тег $HEADER$, а в этом теге инклудить файл header.tpl, пишу так:

PHP:
скопировать код в буфер обмена
  1. codes::set('header', file_get_contents($_SERVER['DOCUMENT_ROOT'] . '/site/templates/header.tpl'));


Все работает, но те теги, которые внутри файла header.tpl не работают, а просто отображаются как $USERNAME$ (и т.д.)

Нашел данный шаблонизатор у себя в компьютере (забыл от куда скачивал).
Шаблонизатор работает как в Ucoz'е, те же условные операторы и теги, например:

CODE (htmlphp):
скопировать код в буфер обмена
  1. <?if($USERNAME$ = "Иван")?> Привет, Ваня! <?else?> Ты не Ваня! <?endif?>


Файл шаблонизатора прикрепил к сообщении.
Помогите мне решить эту задачу, пожалуйста! Спасибо.
Скачать файл: codes.class.php
Скачан раз: 64
 
 Top
caballero
Отправлено: 26 Июня, 2013 - 14:56:38
Post Id


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


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


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




Цитата:
Все работает, но те теги, которые внутри файла header.tpl не работают,

а с чего бы им работать если ты им никакие данные не присваиваешь


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Алексеей
Отправлено: 26 Июня, 2013 - 15:01:17
Post Id


Посетитель


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


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




caballero, полный код:

Подключаюсь к БД, к таблице users, и далее приписываю к тегам:

PHP:
скопировать код в буфер обмена
  1. $tpl = file_get_contents($_SERVER['DOCUMENT_ROOT'] . '/site/templates/home.tpl');
  2.  
  3. codes::set('header', file_get_contents($_SERVER['DOCUMENT_ROOT'] . '/site/templates/header.tpl'), $tpl);
  4.  
  5. if (isset($_SESSION['login']) && isset($_SESSION['id'])) {
  6.     codes::set('username', $user_data['name']);
  7.     codes::set('user_id', $user_data['id']);
  8.     codes::set('user_email', $user_data['email']);
  9.     codes::set('logined', TRUE);
  10. } else {
  11.     codes::set('username', 'Гость');
  12.     codes::set('user_id', FALSE);
  13.     codes::set('logined', FALSE);
  14. };
  15.  
  16. echo codes::tpl($tpl);

(Отредактировано автором: 26 Июня, 2013 - 15:03:05)

 
 Top
_Dark_
Отправлено: 26 Июня, 2013 - 19:24:43
Post Id


Частый гость


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


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

[+]


Ну наверное header.tpl тоже нужно распарсить перед инклудом?
А вообще, шаблонизаторы бред, бросайте это.
 
 Top
LIME
Отправлено: 26 Июня, 2013 - 20:04:47
Post Id


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


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




_Dark_ пишет:
шаблонизаторы бред
распространенное неправильное мнение
 
 Top
DeepVarvar Супермодератор
Отправлено: 26 Июня, 2013 - 20:11:03
Post Id



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


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


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




LIME пишет:
распространенное неправильное мнение
правильного растпространения мнений или мнения распространения правильности?
 
 Top
esterio
Отправлено: 26 Июня, 2013 - 20:15:30
Post Id



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


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


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




PHP:
скопировать код в буфер обмена
  1. codes::set('header', codes::tpl($_SERVER['DOCUMENT_ROOT'] . '/site/templates/header.tpl'));

Как то так.
П.С. Ваш код из файла практически не возможно читать. Отступов нету.


Да здраствует вечный холивар на тему "шаблонизаторы в ПХП". И тут началось ...
Народ давайте не спорить нужно, не нужно
 
 Top
LIME
Отправлено: 26 Июня, 2013 - 20:22:02
Post Id


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


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




я откажусь от этого мнения если дадите альтернативу вот например такого
Спойлер (Отобразить)
Спойлер (Отобразить)
вот как верстальщик будет менять что-то не испугавшись PHP кода?
нехочу чтоб меня лишний раз дергали
если бы сам работал то отказался бы
(Добавление)
esterio пишет:
Народ давайте не спорить
а нафига тогда мне этот форум
давайте ...учите...
 
 Top
Алексеей
Отправлено: 26 Июня, 2013 - 20:25:51
Post Id


Посетитель


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


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




_Dark_ пишет:
шаблонизаторы бред, бросайте это.

Может для вас это так, но новичкам, которые не знают даже html, это очень помогает. У меня заказ, создать панель управления для одного сайта, и все уже сделал, осталось решить только данную задачу.

esterio, я так делал, не понимаю почему, там где тег $HEADER$ - выводит данную строку:
Цитата:
/home/u369534117/public_html/site/templates/header.tpl

что это значит ? Недовольство, огорчение
 
 Top
esterio
Отправлено: 26 Июня, 2013 - 20:26:29
Post Id



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


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


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




 
 Top
vanicon
Отправлено: 26 Июня, 2013 - 20:27:09
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


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




Единственный плюс не нативного шаблонизатора как я считаю так это то что серверная часть может быть написан на любом языке хоть на пыхе, хоть на яве, для этого шаблон менять не надо, а так разницы я считаю не будет изучить синтаксис какого-нибудь шаблонизатора или же синтаксис пыха.
Если не прав то поправьте, хочется тоже услышать мнения сообщества...

(Отредактировано автором: 26 Июня, 2013 - 20:32:25)



-----
Так было, так есть и так будет
 
 Top
LIME
Отправлено: 26 Июня, 2013 - 20:31:04
Post Id


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


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




esterio ....епрст
верстальщик всеравно испугается кода....а если их не 1 а много и работаешь ты с ними удаленно то это вообще в кошмар превращается
я это знаю)
 
 Top
esterio
Отправлено: 26 Июня, 2013 - 20:32:36
Post Id



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


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


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




Сразу замечу то, что я не ярый противник шаблонизаторов. И да есть у меня знакомый верстальщик не знающый ни ПХП ни шаблонизаторы. И когда я ему показал два синтаксиса с шаблонизатором и без, то ему удобней было именно с шаблонизатором. Но сам являюсь приверженцем нативного ПХП.
vanicon
найдите мне smarty или twig например на сях или яве?

(Отредактировано автором: 26 Июня, 2013 - 20:33:33)

 
 Top
vanicon
Отправлено: 26 Июня, 2013 - 20:37:36
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


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




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


-----
Так было, так есть и так будет
 
 Top
_Dark_
Отправлено: 26 Июня, 2013 - 20:42:19
Post Id


Частый гость


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


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

[+]


А что шаблонизатор делает?

Заменяет <?= $var ?> на {$var} ?
<? foreach($array AS $val): ?> на {foreach($array AS $val)} ?

<? include('file') ?> на {include file='file'} ?

Кому легче становится верстать? То, что верстальщикам — это
LIME пишет:
распространенное неправильное мнение


Покажите мне пример, когда использование шаблонизатора действительно оправдано, оно серьезно упрощает код и ради этого можно пожертвовать производительностью и поддержкой еще одного синтаксиса.
(Добавление)
Алексеей пишет:
Может для вас это так, но новичкам, которые не знают даже html, это очень помогает. У меня заказ, создать панель управления для одного сайта, и все уже сделал, осталось решить только данную задачу.

Новичкам как раз лучше не использовать никаких шаблонизаторов.
 
 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