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 :: Расширения .inc и .tpl

 PHP.SU

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


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

> Описание: Для чего конкретно нужны и как использовать?
rar
Отправлено: 15 Ноября, 2008 - 15:54:31
Post Id


Новичок


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


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




Для чего используется расширение INC (.inc) в PHP? А так же расширение TPL (.tpl)? Хотя про TPL я немного знаю, однако не могу понять как им пользоваться. Знаю, что это расширение для файла-шаблона содержащего HTML- и CSS-код. Однако, применять совершенно не умею. Помогите разобраться.
 
 Top
Вездеход
Отправлено: 15 Ноября, 2008 - 16:16:33
Post Id



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


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


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




ниче не могу сказать нашет .inc но .tpl я использую для своих шаблонов.
тупо вбиваю в файлы шаблон вывода и сохраняю с этим расширением. а потом уже обрабатываю скриптом для вывода инфы =)


-----
о великий nl2br!
Хочешь невероятных ощущений? Юзай блокнот! Блокнот - чудеса сбываются!
Чем меньше вы знаете PHP - тем ценнее мои знания!
 
 Top
rar
Отправлено: 15 Ноября, 2008 - 16:19:28
Post Id


Новичок


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


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




Вездеход пишет:
ниче не могу сказать нашет .inc но .tpl я использую для своих шаблонов.
тупо вбиваю в файлы шаблон вывода и сохраняю с этим расширением. а потом уже обрабатываю скриптом для вывода инфы =)


Я, правда, подозреваю что INC - это сокращенно от include. Но как ими пользоваться по назначению не знаю.
А про TPL, я так понял ты просто сохраняешь шаблон в этом формате потом через PHP ты открываешь шаблон как файл? то есть не include'ом?
 
 Top
Вездеход
Отправлено: 15 Ноября, 2008 - 16:22:13
Post Id



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


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


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




rar
не, не через include
шаблон выгледит например так:

CODE (text):
скопировать код в буфер обмена
  1.  
  2. <table width="100%" cellspacing="0" cellpadding="0" class="main_table"><tr>
  3. <td width="20%" valign="top" class="main_menu">{CONST=LEFT_MENU}</td>
  4. <td width="80%" valign="top">{SHOW_INFO}
  5. </td></tr></table>
  6.  


где вместо {CONST=LEFT_MENU} и {SHOW_INFO} я прописываю инфу для вывода


-----
о великий nl2br!
Хочешь невероятных ощущений? Юзай блокнот! Блокнот - чудеса сбываются!
Чем меньше вы знаете PHP - тем ценнее мои знания!
 
 Top
rar
Отправлено: 15 Ноября, 2008 - 16:33:06
Post Id


Новичок


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


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




Ну открываешь шаблон как файл. Я правильно понял? Содержимое файла сохраняешь в переменной. Ну а потом с помощью регулярных выражений или с помощью стандартных функций PHP работы со строками ты заменяешь метки на какие либо данные.

Ну еще надо бы разобраться с расширением inc. Кто что знает?

(Отредактировано автором: 15 Ноября, 2008 - 17:03:51)

 
 Top
Вездеход
Отправлено: 15 Ноября, 2008 - 17:39:10
Post Id



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


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


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




rar
нет, я не сохраняю как переменную =)
я вывожу сразу данные.

т.е. цикл такой - проверяю все что надо для работы. создаю\получаю\формирую данные для вывода. загружаю !В! шаблон. вывожу. весь вывод осуществляется только через шаблонизатор, поэтому могу написать например так: header("Location: login.php"); где захочу во время обработки. =)
ну а вопщем то ты правельно написал суть )
шаблонизатор хоть и не самый красивый\удобный\защищенный но работает безотказно и полностью управляем =) к тому же мною же написан ^_^

(Отредактировано автором: 15 Ноября, 2008 - 17:39:47)



-----
о великий nl2br!
Хочешь невероятных ощущений? Юзай блокнот! Блокнот - чудеса сбываются!
Чем меньше вы знаете PHP - тем ценнее мои знания!
 
 Top
Agassi
Отправлено: 15 Ноября, 2008 - 20:01:49
Post Id



Частый гость


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


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




Вездеход пишет:
создаю\получаю\формирую данные для вывода.


Покажы маленькый код этого всего,я что-то не могу понять как это.
Я через fopen() их открываю и потом репрлейс и вывод
 
 Top
Morgan
Отправлено: 15 Ноября, 2008 - 20:46:50
Post Id


Гость


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


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




тут на сайте пример есть:
PHP:
скопировать код в буфер обмена
  1.  
  2. Пишем класс Template
  3.  
  4. Автор: Андрошук Александр
  5.  
  6. Класс шаблонов это незаменимая часть в форуме, гостевой, чате и т.д. Это класс прост, причём очень прост. Объясню основные функции: загрузка шаблона, обработка в нём переменных и выход шаблона. Давайте рассмотрим подробнее:
  7.  
  8. <?PHP
  9.  
  10. class template # создали класс
  11.  
  12. { # зададим переменные
  13.  
  14. var $data = array(); # переменная для шаблонов
  15.  
  16. var $root = '.'; # каталог для шаблонов
  17.  
  18. var $ext = '.tpl'; # расширение для шаблонов
  19.  
  20. var $da_vr = array(); # переменная для преобразованых шаблонов
  21.  
  22. // Класс создан, далее формируем функции:
  23.  
  24. function template($dir,$ext)
  25.  
  26. {
  27.  
  28. if(is_dir($dir)){$this -> root = $dir;}
  29.  
  30. else{die('Ошибка! <b>'.$dir.'</b> - это не директория!');}
  31.  
  32. $this -> ext = $ext;
  33.  
  34. }
  35.  
  36. // Эта функция выполниется сразу после создания класса, поэтому при создании надо
  37.  
  38. // указывать директорию и расширения шаблонов (см. ниже). Далее надо загрузить шаблон:
  39.  
  40. function load($name)
  41.  
  42. {
  43.  
  44. $nn = $name;
  45.  
  46. $dir = $this -> root;
  47.  
  48. $ext = $this -> ext;
  49.  
  50. $name = $dir.'/'.$name.$ext;
  51.  
  52. if(!is_file($name)) {die('Ошибка <b>'.$name.'</b> - это не файл!');}
  53.  
  54. $fp = fopen($name,'r');
  55.  
  56. $data = fread($fp,filesize($name));
  57.  
  58. fclose($fp);
  59.  
  60. $this -> data[$nn] = $data;
  61.  
  62. $this -> da_vr[$nm] = $data;
  63.  
  64. }
  65.  
  66. // В этой функции мы считали шаблон через fread и запихнули его в две переменных:
  67.  
  68. // da_vr и data. При загрузке шаблона надо указывать имя шаблона без расширения
  69.  
  70. // (см.ниже). Далее преобразовываем переменные:
  71.  
  72. function vars($nm,$vars = array())
  73.  
  74. {
  75.  
  76. $data = $this -> data[$nm];
  77.  
  78. while(list($id,$var) = each($vars))
  79.  
  80. {
  81.  
  82. global $$vars[$id];
  83.  
  84. $data=str_replace('{'.$vars[$id].'}',$$vars[$id],$data);
  85.  
  86. }
  87.  
  88. $this -> da_vr[$nm] = $data;
  89.  
  90. }
  91.  
  92. // Тут мы преобразовали переменные и загнали в переменную da_vr. И осталось вывести
  93.  
  94. // шаблон:
  95.  
  96. function out($name)
  97.  
  98. {
  99.  
  100. $ret = $this -> da_vr[$name];
  101.  
  102. $this -> da_vr[$name] = $this -> data[$name];
  103.  
  104. return $ret;
  105.  
  106. }
  107.  
  108. }
  109.  
  110. После вывода шаблона, все переменные в нём уничтожились, их надо задавать заново. А теперь весь код, чтобы небыло проблем (без комментов):
  111.  
  112. <?PHP
  113.  
  114. class template # создали класс
  115.  
  116. { # зададим переменные
  117.  
  118. var $data = array(); # переменная для шаблонов
  119.  
  120. var $root = '.'; # каталог для шаблонов
  121.  
  122. var $ext = '.tpl'; # расширение для шаблонов
  123.  
  124. var $da_vr = array(); # переменная для преобразованых шаблонов
  125.  
  126. function template($dir,$ext)
  127.  
  128. {
  129.  
  130. if(is_dir($dir)){$this -> root = $dir;}
  131.  
  132. else{die('Ошибка! '.$dir.' - это не директория!');}
  133.  
  134. $this -> ext = $ext;
  135.  
  136. }
  137.  
  138. function load($name)
  139.  
  140. {
  141.  
  142. $nn = $name;
  143.  
  144. $dir = $this -> root;
  145.  
  146. $ext = $this -> ext;
  147.  
  148. $name = $dir.'/'.$name.$ext;
  149.  
  150. if(!is_file($name)) {die('Ошибка <b>'.$name.'</b> - это не файл!');}
  151.  
  152. $fp = fopen($name,'r');
  153.  
  154. $data = fread($fp,filesize($name));
  155.  
  156. fclose($fp);
  157.  
  158. $this -> data[$nn] = $data;
  159.  
  160. $this -> da_vr[$nm] = $data;
  161.  
  162. }
  163.  
  164. function vars($nm,$vars = array())
  165.  
  166. {
  167.  
  168. $data = $this -> data[$nm];
  169.  
  170. while(list($id,$var) = each($vars))
  171.  
  172. {
  173.  
  174. global $$vars[$id];
  175.  
  176. $data=str_replace('{'.$vars[$id].'}',$$vars[$id],$data);
  177.  
  178. }
  179.  
  180. $this -> da_vr[$nm] = $data;
  181.  
  182. }
  183.  
  184. function out($name)
  185.  
  186. {
  187.  
  188. $ret = $this -> da_vr[$name];
  189.  
  190. $this -> da_vr[$name] = $this -> data[$name];
  191.  
  192. return $ret;
  193.  
  194. }
  195.  
  196. }
  197.  
  198. ?>
  199.  
  200. Обясню как работать с классом. Допустим у нас есть шаблон body.tpl в директории data. Его содержимое:
  201.  
  202. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  203.  
  204. <html>
  205.  
  206. <head>
  207.  
  208. <title> {title} </title>
  209.  
  210. </head>
  211.  
  212. <body bgcolor={bgcolor}>
  213.  
  214. {text}
  215.  
  216. </body>
  217.  
  218. </html>
  219.  
  220. Работа с классом:
  221.  
  222. include('template.php'); # включили класс
  223.  
  224. # Зададим переменные #
  225.  
  226. $bgcolor = '#CCFFCC';
  227.  
  228. $text = 'Тест класса!';
  229.  
  230. $title = 'ТЕСТ!';
  231.  
  232. $tpl = new template('./data','.tpl'); # создали объект, задали каталог и расширение
  233.  
  234. $tpl -> load('body'); # зашрузили шаблон
  235.  
  236. $tpl -> vars('body',array('text','title','bgcolor')); # указали какие переменные преобразовать, они должны быть заданы зарание
  237.  
  238. echo $tpl -> out('body'); # вывели шаблон
  239.  
 
 Top
Agassi
Отправлено: 15 Ноября, 2008 - 20:53:58
Post Id



Частый гость


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


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




Morgan пишет:
$fp = fopen($name,'r');

$data = fread($fp,filesize($name));

fclose($fp);

$this -> data[$nn] = $data;

$this -> da_vr[$nm] = $data;


Да тоже самое что и я делаю,токо тут грузят всё и в классе
 
 Top
rar
Отправлено: 15 Ноября, 2008 - 21:59:26
Post Id


Новичок


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


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




Я так понял по этому принципу работает система Smarty? Спасибо. С TPL (.tpl), вроде, разобрались. Осталось разобраться с форматом INC (.inc).
 
 Top
Гость
Отправлено: 15 Ноября, 2008 - 22:13:56
Post Id


УДАЛЁН










Народ, вы меня пугаете! Улыбка
Я конечно не могу знать про что именно речь, но по-меоему всю жизнб в файле .INC хранились типа библиотеки PHP, набор функций и классов и т.д.
ИМХО INC ~ SO ~ DLL
 
 Top
Agassi
Отправлено: 15 Ноября, 2008 - 22:19:58
Post Id



Частый гость


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


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




JustUserR пишет:
Я конечно не могу знать про что именно речь, но по-меоему всю жизнб в файле .INC хранились типа библиотеки PHP, набор функций и классов и т.д.


А как их можна открыть.МОжет есть специальные функции.Чтоб не использовать как обычный файл,как можна его использовать????
 
 Top
rar
Отправлено: 15 Ноября, 2008 - 22:25:23
Post Id


Новичок


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


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




JustUserR пишет:
Народ, вы меня пугаете! Улыбка
Я конечно не могу знать про что именно речь, но по-меоему всю жизнб в файле .INC хранились типа библиотеки PHP, набор функций и классов и т.д.
ИМХО INC ~ SO ~ DLL


Ага, только в достаточно авторитетных издания по PHP, прям таки, пишут PHP-код в файлах с расширением .inc и инклудами вставляют в основной файл с расширением .php. Я вот и хочу узнать почему так делают.

Например вот так.

Файл test.inc:
<?php
$x = 'Привет!';
?>

Файл index.php:
<?php
include_once($_SERVER['DOCUMENT_ROOT'].'/'.'test.inc');
if (isset($x)) echo($x);
else echo('Не работает!');
?>

Выдаст: "Привет !".

(Отредактировано автором: 15 Ноября, 2008 - 22:28:29)

 
 Top
Гость
Отправлено: 15 Ноября, 2008 - 22:58:11
Post Id


УДАЛЁН










Agassi пишет:
А как их можна открыть.МОжет есть специальные функции
А чем вас не устраивают include/raquire ?
Agassi пишет:
Чтоб не использовать как обычный файл,как можна его использовать????
А остальные обычные PHP файлы разве не обычные текстовые? Значит и библиотеки PHP тоже текстовые файлы

rar пишет:
Ага, только в достаточно авторитетных издания по PHP, прям таки, пишут PHP-код в файлах с расширением .inc и инклудами вставляют в основной файл с расширением .php. Я вот и хочу узнать почему так делают.
То ли я не понимаю глубокой сути этой философской проблемы, то ли доно из двух.
Вы же сами пишите что этот файл ПОДКЛЮЧАЕТСЯ, а .INC[LUDE] и переводится как подключать
 
 Top
rar
Отправлено: 15 Ноября, 2008 - 23:13:44
Post Id


Новичок


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


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




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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB