Skip to content

Commit c6fdbae

Browse files
Update README.md
1 parent 1ec4889 commit c6fdbae

File tree

1 file changed

+162
-0
lines changed

1 file changed

+162
-0
lines changed

README.md

Lines changed: 162 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,164 @@
11
# nodejs-output-phptags
22
Шаблонизатор для nodejs
3+
```
4+
Автоматически подсвечивает php-тэги в любом текстовом редакторе
5+
Поддерживает передачу любых переменных в файл html(php):
6+
Строки
7+
Объекты
8+
Функции
9+
Поддерживает использование логических блоков
10+
if-elseif-else-endif
11+
foreach-endforeach
12+
for-endfor
13+
while-endwhile
14+
Поддерживает любые переменные и выражения на js
15+
<?=$название?>
16+
<?=$переменная1 * переменная2?>
17+
Поддерживает создание и использование переменных внутри кода HTML
18+
<?
19+
var $i=1;
20+
?>
21+
...
22+
<?
23+
$i++;
24+
?>
25+
26+
<?=$i?>
27+
Очищает код от всех комментариев пробелов и переносов строк (опционально)
28+
```
29+
30+
## Пример кода сервера (файл server.js)
31+
```js
32+
//Устанавливаем конфигурацию
33+
myConfig = {};
34+
//Конфигурация пользователя (глобальная)
35+
myConfig.data = {
36+
port : 2011,
37+
isDebug : true, //Сообшения сервера
38+
};
39+
//Конфигурация модуля Output
40+
myConfig.output = {
41+
//Папка отображений
42+
dir : require('path').dirname(require.main.filename),
43+
//Очищать код
44+
clear : true,
45+
//Режим отладки
46+
isDebug : false,
47+
};
48+
49+
var output = require('output')(myConfig.output);
50+
//Подключаем нативный модуль http
51+
var http = require('http');
52+
//Формируем задачу
53+
var app = function(req, res) {
54+
if (myConfig.data.isDebug) {
55+
console.log('\nПолучен запрос req.url', req.url);
56+
console.time('app');//Установим метку времени
57+
}
58+
req.output = output;
59+
60+
var rows =
61+
[
62+
{user_id: 11, user_name:'Андрей', user_family:'Иванов', user_active:1},
63+
{user_id: 121, user_name:'Петр', user_family:'Петров', user_active:1},
64+
{user_id: 13, user_name:'Алексей', user_family:'Сидоров', user_active:1},
65+
{user_id: 142, user_name:'Сергей', user_family:'Алексеев', user_active:1},
66+
{user_id: 15, user_name:'Герман', user_family:'Степанов', user_active:0},
67+
];
68+
69+
res.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'});
70+
/*
71+
res.write(
72+
req.output({
73+
text : 'Hello, World!',
74+
})
75+
);
76+
*/
77+
res.write(
78+
req.output({
79+
//Название файла
80+
file : '/test.php',
81+
//Переменные
82+
data : {
83+
$title : 'Список участников:',
84+
$rows : rows,
85+
width_10: function(str) {
86+
var count = 10;
87+
return (new Array( count ).join(' ') + str).substr(-count).replace(/ /g, '&nbsp;');
88+
}
89+
},
90+
})
91+
);
92+
93+
res.end();
94+
95+
if (myConfig.data.isDebug) {
96+
console.timeEnd('app');
97+
}
98+
};
99+
//Создаем сервер для задачи
100+
var server = http.createServer(app);
101+
//Запускаем сервер
102+
server.listen(myConfig.data.port);
103+
//Отображаем информацию о старте сервера
104+
if (myConfig.data.isDebug) console.log('Server start on port ' + myConfig.data.port + ' ...');
105+
```
106+
## Код отображения (файл test.php)
107+
```php
108+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
109+
<html xmlns="http://www.w3.org/1999/xhtml">
110+
<head>
111+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
112+
<title>Пример</title>
113+
<style>
114+
body {
115+
font-family:'Lucida Console', Monaco, monospace
116+
}
117+
/*Пример комментария1*/
118+
.bold {
119+
font-weight:bold
120+
}
121+
/*Пример комментария2*/
122+
.no_active {
123+
color:lightgray;
124+
text-decoration:line-through;
125+
}
126+
</style>
127+
</head>
128+
129+
<body>
130+
<!--Заголовок-->
131+
<div id="title" class="bold"><?='Привет, Мир!'?></div>
132+
<br />
133+
<div><?=$title?></div>
134+
<!--Таблица-->
135+
<div>----------------------------------</div>
136+
<div>|<?=width_10('ID')?>|<?=width_10('ИМЯ')?>|<?=width_10('ФАМИЛИЯ')?>|</div>
137+
<div>----------------------------------</div>
138+
<?php foreach($rows as $key=>$row): ?>
139+
<div class="<?=$row['user_active'] ? '' : 'no_active'?>">|<?=width_10($row['user_id'])?>|<?=width_10($row['user_name'])?>|<?=width_10($row['user_family'])?>|</div>
140+
<?php endforeach; ?>
141+
<div>----------------------------------</div>
142+
</body>
143+
</html>
144+
<script>
145+
/*Комментарий*/
146+
var a1 = 1; //Комментарий
147+
var a2 = 'http://test.ru'; //Комментарий
148+
</script>
149+
```
150+
## Результат
151+
```
152+
Привет, Мир!
153+
154+
Список участников:
155+
----------------------------------
156+
| ID| ИМЯ| ФАМИЛИЯ|
157+
----------------------------------
158+
| 11| Андрей| Иванов|
159+
| 121| Петр| Петров|
160+
| 13| Алексей| Сидоров|
161+
| 142| Сергей| Алексеев|
162+
| 15| Герман| Степанов|
163+
----------------------------------
164+
```

0 commit comments

Comments
 (0)