Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
$ ctpp2c 'путь/к/исходнику' 'путь/к/результату'
<_var ИМЯ_ПАРАМЕТРА> - непосредственный вывод параметра.
<_if УСЛОВИЕ> <_elsif УСЛОВИЕ> <_else> </_if> - условное ветвление.
<_loop МОДИФИКАТОР1 МОДИФИКАТОР2 ИМЯ_ПАРАМЕТРА> </_loop> - цикл.
<_foreach ИМЯ_ПАРАМЕТРА as ИМЯ_ИТЕРАТОРА> </_foreach> - цикл с итератором.
<_... >
Зашел в блог Nginx, глядь там топиком ниже кто-то модуль анонсировал, который берет данные из MySQL базы и отдает в виде JSON.
… и делаются несколько подзапросов, каждый из подзапросов также берет JSON, пропускает через CT++ и результат отдает SSI модулю.
<TMPL_udf SUBREQUEST('/path/to/auth/backend')>
<TMPL_comment>Функция SUBREQUEST() получает данные
в формате JSON и использует их в качестве данных для шаблонизатора</TMPL_comment>
<TMPL_if User>
Hello, <TMPL_var User.username>!
Your friends are:
<TMPL_loop User.friends>
<TMPL_var friendname>
</TMPL_loop>
</TMPL_if>
Или я чего-то недопонял?
<TMPL_set page_title = 'Index page'> <TMPL_include "include/page_header.tmpl">
<title><TMPL_var page_title></title>
<ctpp template="hellow.ct2" />
<ctpp tempalte="about.ct2"/>
<TMPL_udf SUBREQUEST('http://my-facking-server.ru/about')><ctpp template="hellow.ct2" json-from='http://my-facking-server.ru/about' />
url: localhost:8888/ Response headers: x-template: build/html/index.html.ct2 url: localhost:8888/about/ Response headers: x-template: build/html/about/index.html.ct2
server {
listen 8888;
server_name localhost;
ctpp2 on;
templates_header x-template;
add_header x-template $request_filename.ct2;
location / {
root html;
}
HTTP_COPY_FILTER_MODULE="ngx_http_ctpp2_filter_module $HTTP_COPY_FILTER_MODULE ngx_http_ctpp2_tmpl_loader"HTTP_COPY_FILTER_MODULE="$HTTP_COPY_FILTER_MODULE ngx_http_ctpp2_tmpl_loader"HTTP_HEADERS_FILTER_MODULE="ngx_http_ctpp2_filter_module $HTTP_HEADERS_FILTER_MODULE"
if (requestFromNginx) {
.setHeader(«X-Template », "/там-гдето")
}
Я считаю это мегакруто, загорелся этой идей но столкнулся с проблемой
Гибкий синтаксис шаблонов
Если вы привыкли к синтаксису Smarty, HTML::Template или Text::Template, вы можете настроить CTPP «понимать» ваши старые шаблоны. Разумеется, некоторые переделки будут, но в ряде случаев проблем при переходе на новый «движок» не возникнет.
svn co svn://svn.vbart.ru/ngx_ctpp2/trunktemplate: cached /path/to/template.ct2;
Релиз Nginx CT++ Module 0.5 — высокопроизводительного модуля-шаблонизатора для веб-сервера