Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
Как сделать систему шаблонов? |

03.01.2010, 16:58
|
|
Познающий
Регистрация: 23.08.2009
Сообщений: 47
Провел на форуме: 63389
Репутация:
1
|
|
Как сделать систему шаблонов?
Я создаю свой сайт. И мне нужно создать систему шаблонов. Чтобы вместо images, index.php в корне это было в /styles/Название шаблона/тут и чтобы шаблоны можна было быстро менять через админку. Я что-то не понимаю, как такое реализовать, подскажите плиз =)
|
|
|

03.01.2010, 17:14
|
|
Постоянный
Регистрация: 08.11.2008
Сообщений: 498
Провел на форуме: 2603363
Репутация:
278
|
|
Smarty в помощь
|
|
|

03.01.2010, 17:16
|
|
Постоянный
Регистрация: 16.04.2008
Сообщений: 889
Провел на форуме: 12942062
Репутация:
1550
|
|
Юзай шаблонизаторы, smarty, к примеру.
Лично я выдирал класс из DLУ и юзал.
У меня даже в книге какой-то по пыху есть глава, посвященная созданию собственного простого шаблонизатора
|
|
|

03.01.2010, 17:16
|
|
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме: 6462214
Репутация:
3171
|
|
Вариантов много по сути,самый просто,это просто чтение шаблонов.
То есть,ты выбираешь шаблон, далее он открываеться,например file_get_contsnts(), в нем уже есть предустановленные переменные,например в таком виде(мне удобнее так,чтобы если на не задействована,то и на экране не отображалась), <!--{TITLE}-->,<!--{HEADER}-->, ну и тд.Заменяеш переменные,и выводиш на экран,просто обзавстись парочкой функция нужных и все.
|
|
|

03.01.2010, 17:36
|
|
Познающий
Регистрация: 23.08.2009
Сообщений: 47
Провел на форуме: 63389
Репутация:
1
|
|
smarty я не особо понял, да и мне интерестно самому все сделать...
m0Hze
А можно, пожалуйста, поподробнее. Я вроде как еще новичек. =)
|
|
|

03.01.2010, 17:58
|
|
Постоянный
Регистрация: 29.07.2009
Сообщений: 400
Провел на форуме: 1455812
Репутация:
150
|
|
Я бы делал так например.
Создал основной файл, где идет замена строк на вывод из БД...
Например:
content.php
PHP код:
<?php
$style = "black_cat";
$title = "Заголовок страницы";
$header = "Крутая страница";
$text = "Тут короче всякий текст";
$content = file_get_contents($style."/page.html");
$content = preg_replace("#__TITLE__#",$title,$content);
$content = preg_replace("#__HEADER__#",$header,$content);
$content = preg_replace("#__TEXT__#",$text,$content);
echo $content;
?>
Там же папка black_cat, где лежит файл page.html:
PHP код:
<html>
<head>
<title>__TITLE__</title>
</head>
<body>
<h1>__HEADER__</h1><br />
<i>__TEXT__</i>
</body>
</html>
Короче файл будет content.php будет заменять строчки __УКАЗАТЕЛЬ__ на вывод соотв. данных. Тоесть при создании шаблона конструируешь его код и в нужных местах ставшь указатели на вывод какнкретных данных. Конечно я привел бональный вариант...
В результате будет:

Последний раз редактировалось LStr1ke; 03.01.2010 в 18:00..
|
|
|

03.01.2010, 18:19
|
|
Новичок
Регистрация: 09.08.2008
Сообщений: 3
Провел на форуме: 15163
Репутация:
10
|
|
Сообщение от LStr1ke
Я бы делал так например.
Создал основной файл, где идет замена строк на вывод из БД...
Например:
content.php
PHP код:
<?php
$style = "black_cat";
$title = "Заголовок страницы";
$header = "Крутая страница";
$text = "Тут короче всякий текст";
$content = file_get_contents($style."/page.html");
$content = preg_replace("#__TITLE__#",$title,$content);
$content = preg_replace("#__HEADER__#",$header,$content);
$content = preg_replace("#__TEXT__#",$text,$content);
echo $content;
?>
Там же папка black_cat, где лежит файл page.html:
PHP код:
<html>
<head>
<title>__TITLE__</title>
</head>
<body>
<h1>__HEADER__</h1><br />
<i>__TEXT__</i>
</body>
</html>
Короче файл будет content.php будет заменять строчки __УКАЗАТЕЛЬ__ на вывод соотв. данных. Тоесть при создании шаблона конструируешь его код и в нужных местах ставшь указатели на вывод какнкретных данных. Конечно я привел бональный вариант...
В результате будет:

Юзать для таких целей регулярки - зло.Намного кощернее будет юзать strtr,str_replace.Кстати, mTemplater, выдерни от туда функцию для обработки шаблона и все.
_http://m0hze.ru/files/mtemplater.class.php
PHP код:
include('mtemplater.class.php');
$tpl = new mTempalter('tpl', 'tpl_c', array('right' => '}-->','left' => '<!--{'),$_SERVER['REMOTE_ADDR']);
$tpl->create_tpl('index',array('LILO' => 'HEllo, admin!'));
$tpl->display();
//$tpl->clear_dir_if_ip();
Аля заменитель строк в виде класса,удобно указывать разделители.
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|