Такая вот идея:
Значит CMS в которой каждый шаблон лежит в отдельной папке и представляет собой обычные html файлы
т.е. каждый .html файл можно открыть с помощью редактора и отредактировать расположение элементов
Может я немного поспешил, но я реализовал такую систему вот так
содержимое файла index.htm
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
$theme->printout('
<meta name="keywords" content="[keywords]" />
<meta name="description" content="[description]" />
<title>[full_title]</title>
<link rel="stylesheet" type="text/css" href="[full_url]/css/main.css" />
<script type="text/javascript" src="[full_url]/scripts/scriptjava.js"></script>
<script type="text/javascript" src="[full_url]/js/main.js"></script>
');
?>
</head>
<body>
<div id="main">
<div id="top">
<!-- оформление -->
<div id="search">
<!-- поиск -->
<?php
$theme->printout('
<form action="[full_url]/" method="get" enctype="application/x-www-form-urlencoded">
<input class="searchtxt" name="q" type="text" value="" /><input type="submit" value="Поиск" />
</form>
');
?>
</div>
<!-- заголовок -->
<div id="title">
<?php
$theme->printout('
<h1><a href="[full_url]/">[title]</a></h1>
<h2>[description]</h2>
');
?>
</div>
</div>
<div id="topline">
<!-- верхняя линия -->
</div>
<div id="sorting">
<!-- сортировка -->
<ul>
<?php
$theme->sorturl('
<li[style_id]><a href="[id]" title="Сортировать по порядку">По порядку</a></li>
<li[style_rating]><a href="[rating]" title="Сортировать по рейтингу">По рейтингу</a></li>
<li[style_datetime]><a href="[datetime]" title="Сортировать по дате">По дате</a></li>
<li[style_views]><a href="[views]" title="Сортировать по просмотрам">По просмотрам</a></li>
<li[style_countcomment]><a href="[countcomment]" title="Сортировать по комментариям">По комментариям</a></li>
','style="background:#cccccc;"');
?>
</ul><br style="clear:both;" />
</div>
<div id="content">
<div id="categories">
<!-- категории -->
<h2>Категории</h2>
<?php
$theme->categories('
<div class="categorins"><a href="[category_url]" title="Просмотреть все записи в рубрике [category]">[category]</a>[insert]</div>
');
?>
</div>
<!-- контент -->
<?php
$theme->poster('
<div class="postblock">
<h3><a href="[post_url]" rel="bookmark">[title]</a></h3>
<div class="postinfo">[datetime] Категория: <a href="[category_url]" title="Просмотреть все записи в рубрике [category]" rel="category tag">[category]</a></div>
<div class="postrating"><div class="ratingup" onclick="rating_up(\'[full_url]/\',[id]);"></div><span id="rating_[id]">[rating]</span><div class="ratingdown" onclick="rating_down(\'[full_url]/\',[id]);"></div></div>
<div class="post">
[text]
</div>
<div class="postlinks">
<div class="postviews">Просмотров: [views]</div><div class="postcomments"><a href="[post_url]">Комментариев: [count_comment]</a></div><br style="clear:both;" />
<div class="posttags"><a href="[tags_url]">[tags]</a></div><div class="postmark">мне нравится</div>
</div>
</div>
');
?>
</div>
<div id="navigation">
<!-- навигация -->
<div>
<?php
$theme->navigation('
<a href="[previous_url]">Назад -[previous_link]-</a> <span>[current_link]</span> <a href="[page_url]">[other_link]</a> <a href="[next_url]">Вперед -[next_link]-</a>
');
?>
</div>
</div>
<div id="bottom">
<!-- низ -->
<?php
$theme->printout('
<div>Все права защищены © 2012 <a href="[seoengi]">[title]</a> время генерации [loadtimer]</div>
');
?>
</div>
</div>
</body>
</html>
В данном случае вся эта штуковина подгружается в шаблонизатор с помощью
Фигачил я фигачил и тут мне попалась DLE 9.6
Открыл ее код шаблонов и увидел сходство в чем то с верхним кодом файла index.htm
Но конечно во всех CMS все шаблоны нарезаны на кусочки - то же самое обстоит с DLE
В общем еще когда я начал разработку своей CMS мне пришла идея с комментариями
А сегодня я посмотрев исходные CMS понял что код шаблонов можно было сделать очень изящно
содержимое файла index.htm - изящный вариант
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!--[printout]-->
<meta name="keywords" content="[keywords]" />
<meta name="description" content="[description]" />
<title>[full_title]</title>
<link rel="stylesheet" type="text/css" href="[full_url]/css/main.css" />
<script type="text/javascript" src="[full_url]/scripts/scriptjava.js"></script>
<script type="text/javascript" src="[full_url]/js/main.js"></script>
<!--[/printout]-->
</head>
<body>
<div id="main">
<div id="top">
<!-- оформление -->
<div id="search">
<!-- поиск -->
<!--[printout]-->
<form action="[full_url]/" method="get" enctype="application/x-www-form-urlencoded">
<input class="searchtxt" name="q" type="text" value="" /><input type="submit" value="Поиск" />
</form>
<!--[/printout]-->
</div>
<!-- заголовок -->
<div id="title">
<!--[printout]-->
<h1><a href="[full_url]/">[title]</a></h1>
<h2>[description]</h2>
<!--[/printout]-->
</div>
</div>
<div id="topline">
<!-- верхняя линия -->
</div>
<div id="sorting">
<!-- сортировка -->
<ul>
<!--[sorturl='style="background:#cccccc;"']-->
<li[style_id]><a href="[id]" title="Сортировать по порядку">По порядку</a></li>
<li[style_rating]><a href="[rating]" title="Сортировать по рейтингу">По рейтингу</a></li>
<li[style_datetime]><a href="[datetime]" title="Сортировать по дате">По дате</a></li>
<li[style_views]><a href="[views]" title="Сортировать по просмотрам">По просмотрам</a></li>
<li[style_countcomment]><a href="[countcomment]" title="Сортировать по комментариям">По комментариям</a></li>
<!--[/sortur]-->
</ul><br style="clear:both;" />
</div>
<div id="content">
<div id="categories">
<!-- категории -->
<h2>Категории</h2>
<!--[categories]-->
<div class="categorins"><a href="[category_url]" title="Просмотреть все записи в рубрике [category]">[category]</a>[insert]</div>
<!--[/categories]-->
</div>
<!-- контент -->
<!--[poster]-->
<div class="postblock">
<h3><a href="[post_url]" rel="bookmark">[title]</a></h3>
<div class="postinfo">[datetime] Категория: <a href="[category_url]" title="Просмотреть все записи в рубрике [category]" rel="category tag">[category]</a></div>
<div class="postrating"><div class="ratingup" onclick="rating_up(\'[full_url]/\',[id]);"></div><span id="rating_[id]">[rating]</span><div class="ratingdown" onclick="rating_down(\'[full_url]/\',[id]);"></div></div>
<div class="post">
[text]
</div>
<div class="postlinks">
<div class="postviews">Просмотров: [views]</div><div class="postcomments"><a href="[post_url]">Комментариев: [count_comment]</a></div><br style="clear:both;" />
<div class="posttags"><a href="[tags_url]">[tags]</a></div><div class="postmark">мне нравится</div>
</div>
</div>
<!--[/poster]-->
</div>
<div id="navigation">
<!-- навигация -->
<div>
<!--[navigation]-->
<a href="[previous_url]">Назад -[previous_link]-</a> <span>[current_link]</span> <a href="[page_url]">[other_link]</a> <a href="[next_url]">Вперед -[next_link]-</a>
<!--[/navigation]-->
</div>
</div>
<div id="bottom">
<!-- низ -->
<!--[printout]-->
<div>Все права защищены © 2012 <a href="[seoengi]">[title]</a> время генерации [loadtimer]</div>
<!--[/printout]-->
</div>
</div>
</body>
</html>
Но в этом случае прийдется отказаться от
include и загружать файл и жестко его парсить
Думаю вариант 2 будет сильно тормозить систему, хотя вариант просто идеальный
На данный момент движок превосходит по функционалу вордпресс и работает в несколько раз быстрее вордпресса
Какой по вашему мнению вариант лучше и много ли я проиграю в производительности?
Не хотелось бы потерять скорость...