|
|
|
| Здравствуйте. В Proteus будет реализована следующая система шаблонов. Хотел бы услышать ваши мнения или альтернативные варианты.
Шаблон:
<html>
<head>
<title>{site_title}</title>
<META NAME='keywords' CONTENT='{site_keywords}'>
<META NAME='description' CONTENT='{site_descr}'>
<META HTTP-EQUIV='Content-Type' content='text/html; charset={gl_charset}'>
|
Функция, обрабатывающая шаблоны:
<?
function insert_template($tpl_file, $vars)
{
global $conf_templates_path;
$tpl = file_get_contents($conf_templates_path.$tpl_file);
$code = $tpl;
if(is_array($vars))
{
foreach($vars as $entity => $value)
{
$code = str_replace($entity, $value, $code);
}
}
return $code;
}
?>
|
Вставка шаблона:
<?
print insert_template('head.htm', array("{site_title}" => $site_title,
"{site_keywords}" => $site_keywords,
"{site_descr}" => $site_descr,
"{gl_charset}" => $gl_charset));
include('link_css.inc');
?>
</head>
<body>
|
| |
|
|
|
|
|
|
|
для: antf
(13.12.2005 в 21:37)
| | Использую такую же точно.
Только со вставкой шаблона я работаю иначе - формирую массив в процессе исполнения кода и передаю его в качестве параметра в последней строке.
Ну и еще придется дробить шаблон на мелкие составляющие, так как внутри шаблона циклы не обрабатываются. | |
|
|
|
|
|
|
|
для: Loki
(14.12.2005 в 10:15)
| | Допустим, я хочу сделать так, чтобы пользователь мог настраивать шаблон для каждой новостной ленты, элемента меню, гостевой книги, голосования ... отдельно. Тогда шаблоны придется хранить в базе для каждой новостной ленты. Меня интересует хранить ли шаблоны в тоже же таблице, где находятся общие настройки новостной ленты, или создать под это дело отдельную таблицы.
Дизайн БД в первом случае (колонки с постфиксом _tpl – шаблоны):
#новостная лента
CREATE TABLE news_bands (
'id_band' INT(32) NOT NULL AUTO_INCREMENT,
'title' VARCHAR(255),
'news_per_page' INT,
#новостная лента, обрамляющая таблица
'news_main_tpl' MEDIUMTEXT,
#шаблон отдельной новости
'news_main_tpl' MEDIUMTEXT,
#шаблон странички подробнее
'news_more_tpl' MEDIUMTEXT,
'id_lng' INT,
PRIMARY KEY('id_band')
);
|
Дизайн БД во втором случае
#новостная лента
CREATE TABLE news_bands (
'id_band' INT(32) NOT NULL AUTO_INCREMENT,
'title' VARCHAR(255),
'news_per_page' INT,
'id_lng' INT,
PRIMARY KEY('id_band')
);
CREATE TABLE news_bands (
'id_tpl' INT(32) NOT NULL AUTO_INCREMENT,
#новостная лента, обрамляющая таблица
'news_main_tpl' MEDIUMTEXT,
#шаблон отдельной новости
'news_main_tpl' MEDIUMTEXT,
#шаблон странички подробнее
'news_more_tpl' MEDIUMTEXT,
'id_band' INT,
PRIMARY KEY('id_tpl')
);
|
| |
|
|
|
|
|
|
|
для: antf
(14.12.2005 в 16:07)
| | А какие выгоды дает Smarty по сравнению с этой системой? | |
|
|
|
|
|
|
|
для: antf
(14.12.2005 в 16:08)
| | А зачем их вообще хранить в базе? за что вы так дизайнеров не любите?:)) Ведь ему же удобнее иметь шаблон в виде файла, в который он может вносить правку (а может дизайнов у сайта будет несколько).
Со смарти не работал, но думаю что это как mysql по сравнению с файлами: все здорово, но для этого надо ее изучить:) | |
|
|
|
|
|
|
|
для: Loki
(14.12.2005 в 16:21)
| | > А зачем их вообще хранить в базе? за что вы так дизайнеров не любите?:)) Ведь ему же удобнее
> иметь шаблон в виде файла, в который он может вносить правку (а может дизайнов у сайта будет
> (несколько).
> Со смарти не работал, но думаю что это как mysql по сравнению с файлами: все здорово, но для
> этого надо ее изучить:)
Почему не люблю? Люблю и уважаю, даже сам хочу стать дизайнером, но пока не получается :) Пока я только могу обеспечить, удобную работу дизайнера с системой. Фишка заключается в том, что шаблоны хранятся и в файлах, и в базе. Шаблоны, хранящиеся в файлах - это шаблоны, выбираемые по умолчанию. Процесс настройки шаблонов происходит так:
1) При создании элемента шаблоны из нужных файлов заполняют соответствующие столбцы таблицы.
2) После этого дизайнер может выбрать опцию шаблоны >> в настройках элемента (новостной ленты) и изменить их. Изменение коснуться только текущей новостной ленты и не затронут другие. Этим мы повышаем гибкость системы. К тому же шаблоны, хранимые в базе, удобно настраиваются через систему администрирования, как это и происходит в большинсве скриптов, называемых профессиональными.
PS Одновременно с шаблонами я создаю руководство для дизайнера, куда войдет описание шаблонов и подключаемых css-файлов. И после этого я не люблю дизайнеров... :)) Такого руководства нет даже в системе NetCat.
PPS В руководство для программиста войдет описание модулей и принципы наименования переменных. | |
|
|
|
|
|
|
|
для: antf
(14.12.2005 в 20:02)
| | Ну просто править по живому сайту как-то неправильно... я считаю что шаблоны должны быть сделаны так, чтобы править их можно было даже без контента... кроме того, хтмл удобнее править в предназначенных для этого программах, нежели в текстареа. | |
|
|
|
|
|
|
|
для: Loki
(14.12.2005 в 20:36)
| | Так а html-файлы никто не убирает :). В базу заносится их содержимое :). Шаблоны базы лишь повышают настваиваемость системы. А если пользователь захочеТ, чтобы формат одной новостной ленты отличался от другой? Поскольку мы делаем шаблоны для элементов: новости, голосования, фотогалереи, кода получается совсем мало. | |
|
|
|
|
|
|
|
для: antf
(14.12.2005 в 20:02)
| | А знаете - опытные программисты считают самыми тупыми шаблонами у netcat... | |
|
|
|
|
|
|
|
для: isset
(14.12.2005 в 20:44)
| | :) | |
|
|
|
|
|
|
|
для: antf
(14.12.2005 в 20:53)
| | А кстати, кто-нибудь смотрел EzPublish, там какая-то особая система шаблонов. Мне ее так и не удалось установить.
[url]www.ez.no[/url] | |
|
|
|
|
|
|
|
для: antf
(14.12.2005 в 20:02)
| | >PS Одновременно с шаблонами я создаю руководство для дизайнера, куда войдет описание шаблонов и подключаемых css-файлов. И после этого я не люблю дизайнеров... :)) Такого руководства нет даже в системе NetCat.
Посыплю голову пеплом и признаюсь, что я также не люблю дизайнеров :), потому что в распространяемом нами форуме также нет описания css. | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(15.12.2005 в 00:46)
| | >Посыплю голову пеплом и признаюсь, что я также не люблю
>дизайнеров :), потому что в распространяемом нами форуме
>также нет описания css.
Однако такое описание имеется в PHP 5. Практика создания Web-сайтов. | |
|
|
|
|
 3.8 Кб |
|
|
для: cheops
(15.12.2005 в 13:12)
| | Я только хотел это сказать... Вам и шаблоны не нужны, поскольку ваши приложения подробно описаны в книгах. С вас даже их не спрашивают. У меня уже несколько раз их спросили, надо было сразу написать, что их нет, а то бедные люди, наверняка замучались искать :)
Вот так будет выглядеть настройка шаблонов для новостных лент (см. прикрепленный файл). Html-кода совсем немного.
А кстати, вы не знаете какой-нибудь невизуальный редактор html с подстветкой синтаксиса для редактирования шаблонов. Я бы его подключал наподобие Spaw. Может ли такой редактор существовать в природе? | |
|
|
|
|
|
|
|
для: antf
(15.12.2005 в 20:54)
| | А прикольно с шаблонами.
Раньше мне надо было разместить на сайте две группы баннеров, первая группа ссылается на партнерские сайты, вторая – на страницы этого же сайта. Ссылки первой группы должны были открываться в новом окне, а ссылки второй – в том же окне. Я думал для решения этой проблемы создать особый столбец с указанием в каком окне, в этом или в новом должна открываться ссылка баннера. А теперь можно просто убирать/вставлять параметр target, редактируя шаблон для каждой группы баннеров. И вообще шаблоны очень сильно повышают гибкость и настраиваемость системы: например, одну группу случайных фраз выделяем синим цветом, другую красным, можно вставить дополнительный текст для элемента... Система на порядок выиграет при такой системе шаблонов. | |
|
|
|
|
|
|
|
для: antf
(18.12.2005 в 13:17)
| | >шаблоны очень сильно повышают гибкость и настраиваемость системы
но в той же степени снижают читабельность кода - ничто не дается бесплатно:) | |
|
|
|
|
|
|
|
для: Loki
(18.12.2005 в 22:03)
| | Я бы не сказал...
Любой имеет модуль системы организован так:
1) Сначала мы добываем нужные данные из базы, делаем необходимые вычисления, формируем нужные переменные.
2) Обрабатываем шаблоны выводим результат.
Если не мешать код этапов 1 и 2 все выглядит очень цивильно. Вот мешанина html и php может произвести ужасное впечатление.
Я умудрился сделать такие шаблоны, что их суммарный объем равен примерно 10кб. Для сравнения шаблоны minibb весят 164кб. Такой маленький размер объясняется тем, что шаблоны относятся не к страницам, а к отдельным элементам: формам, голосованиям, фотогалереям, гостевым книгам. Есть и основные шаблоны, которые определяют структуру сайта. | |
|
|
|
|
|
|
|
для: antf
(19.12.2005 в 13:02)
| | А я вот хочу постепенно двигаться к усложнению шаблонов. Первым делом хочу реализовать циклы внутри шаблона. Но тут, скорее всего, придется городить двумерные массивы. | |
|
|
|
|
|
|
|
для: Loki
(19.12.2005 в 13:49)
| | Я не люблю усложнение. Одна из основных идей, заложенных в Proteus, это простота реализации в сочетании с максимально возможной гибкостью и функциональностью. | |
|
|
|
|
|
|
|
для: antf
(19.12.2005 в 14:46)
| | Ну тут вы немного передергиваете: богатый функционал сам по себе подразумевает сложность. Вопрос в том, что эту сложность можно переложить как на программиста, так и на пользователя. В первом случае, можно эту сложность раскидать между различными модулями программы (простой код -> больше возни с шаблонами и пр.)
В общем, я счититаю это заблуждением. Функционал=сложность.
В общем, спор из разряда теологических, так что предлагаю ограничится обменом мнениями:) | |
|
|
|
|
|
|
|
для: antf
(19.12.2005 в 14:46)
| | Я пока лишь разбираюсь с системой Proteus, я не php-кодер, но зато "опытный" :) пользователь различных КМС. Сама система мне очень нравиться, работа с шаблонами тоже пока не вызывает сложностей, но есть одно "но"... Пока не реализована возможность быстрой смены дизайна, т.е. "темы оформления". Хотя хз... может и стоит отойти от "тем" для развития фантазии дизайнера? ;) отказаться от "тем" как таковых? | |
|
|
|
|
|
|
|
для: Ollegon
(28.12.2005 в 07:58)
| | А что вы имеете в виду под быстрой сменой дизайна? Для этого нужно всего лишь изменить шаблоны или нужно что-то еще? | |
|
|
|
|
|
|
|
для: antf
(28.12.2005 в 13:54)
| | Может имелась ввиду возможность держать несколько шаблонов для каждого элемента? | |
|
|
|
|
|
|
|
для: antf
(28.12.2005 в 13:54)
| | Закроем тему:) Ибо мне понравился твой подход к шаблонам. С ними легко разбираться. Просто в других КМС темы оформления могут создать спецы, а простой смертный для дизайна своего сайта ищет подходящую тему, ибо создать свою "тямы-ума-знаний" не хватает. Здесь же всё легко, если делал сам сайты на чистом хтмл, то сделать дизайн на Proteus реально каждому. Тем самым мы решаем главную проблему популярных КМС - одинаковость по внешнему виду.
PS Я постараюсь притащить двух своих друзей, оба прекрасно ориентируются в КМС-ах и владеют php. Один из них грамотно делает ЧПУ, другой системы дизайна. Если они заинтересуются то у Proteus-a высокие шансы выскочить в лидеры. | |
|
|
|