tplTemplatez - парсер шаблонов.

Фанат

oncle terrible
Команда форума
вопрос изначально странный.
"стоит ли мне ограничиваться одной стороной слона, с которой виситтонкая веревка, или лучше оглядеть его со всех сторон".
чего ты ждешь?
ответа,что по одной вещи можно составить представление о шаблонах?
не дождешься.
 

Name

Новичок
Опс...

И что за второй параметр у конструктора
function tplTemplatez($tplfile, $box = null)
box ?
Это что ? Что нужно туда передовать ?
* @param string $box certain part of page to be a template file

Вообщем по задумке на одной странице можно делать несколько шаблонов.
Оказалось не востребована, мной во всяком случае.
PHP:
<!--tmpl:box_name-->
template content ...
<!--tmpl:box_name-->

И вот в работе программы в 3 шаблон необходимо вставить внутри таблицы новый шаблон $tpl5 = $MyHtml->LoadTemplate('tpl/main5.tpl');
Не получаеться это сделать, подскажите как это сделать?
$tpl->tplAssign('my_content', $var_with_any_content);
 

klep

Новичок
Спасибо !
Я уже примерно так и сделал.

$result = array("post"=>file_get_contents($path));

$tpl3->tplParse($result,'if_news/view_post');

Только в таком варианте все { } , который находились в файле $path пришлось обрабатывать самому ;(

Ну ладно, ерунда !
 

copch

Guest
Всем привет!

Я в свою очередь тоже написал как-то свой "движек" (если можно так назвать). Он очень маленький.

У кого есть желание, взгляните на него, скажите свое мнение, покритикуйте, если что.

http://golovan.iatp.org.ua/cptpl/
 

HTTP

Guest
А есть что-то типа спецификации на этот парсер?

Да и ещё вопрос. Разберётся ли простой дизайнер с файлами TPL :confused:

Или может кто посоветует что более проще (всмысле для дизайнеров). Просто надо делать движок CMS, и приходится разбираться с шаблонами. Надо что бы было всё просто и понятно. Тоесть сделали себе дизайн, прицепили без проблем.

Подскажите пожалуйста!
 

Name

Новичок
> А есть что-то типа спецификации на этот парсер?
Документация?
Да там по большому счету и нечего документировать.
Есть сгенерированая "из коментариев класса" на http://www.phpclasses.org/

> Разберётся ли простой дизайнер с файлами TPL
А что там сложного?
 

copch

Guest
Originally posted by copch
Я в свою очередь тоже написал как-то свой "движек" (если можно так назвать). Он очень маленький.
У кого есть желание, взгляните на него, скажите свое мнение, покритикуйте, если что.
http://golovan.iatp.org.ua/cptpl/
Привет снова!
Народ пишет на емайл в основном тока по поводу документации..
Это же форум для продвинутых..
Ок, я постараюсь на выходных подготовить кое-что из этого.

Да, кстати, я "вырезал" этот класс из одного из моих проектов, повыкидывал кое-что из него на скорую руку.. Уже заметил баги мелкие. :) Тож подправлю на выходных.

Основная цель этого класса - это простота. Весь код проходит через eval. Вот меня это в основном и интересует. Не валится ли он при больших данных и вообще. Может кто сталкивался.. ?
 

HTTP

Guest
Что то он нехочет с этим работать:

TPL:

<tmpl:row_select_ip>
<oprion value="{ip_value}">{ip_caption}</option>
</tmpl:row_select_ip>
А вот сам ПХП:

PHP:
$array = array (
array("ip_value" => "1", "ip_caption" => SET_CAP_SEL_1),
array("ip_value" => "0", "ip_caption" => SET_CAP_SEL_2)
);

foreach ($array as $k => $v){
    $templates->tplParse($v, 'row_select_ip');
}
По идеи должен работать нормально :) Но он не работает :(
Может кто подскажет в чём дело?
 

Name

Новичок
> <oprion value="{ip_value}">{ip_caption}</option>

А что это за "oprion"?
Все работает.
В HTML умейте заглядывать.
 

HTTP

Guest
Originally posted by Name
> <oprion value="{ip_value}">{ip_caption}</option>

А что это за "oprion"?
Все работает.
В HTML умейте заглядывать.
:D

Уже заметил
ВОт что значит конец рабочего дня :)

-~{}~ 27.06.04 05:57:

Народ!

Подскажите как мне вывести значение функции?

Вот такая ситуация:

TPL:

<table width="564" border="0" align="center" cellpadding="0" cellspacing="0">
<tmpl:dinamic_echo>
<tr>
<td width="456" bgcolor="#FFFFFF"><div align="left"><span class="style15">&nbsp;&nbsp;</span><span class="style14">{ThemeMenuDinamic}</span></div></td>
<td width="108"><div align="center"><span class="style14">{DateeMenuDinamic}</span></div></td>
</tr>
</tmpl:dinamic_echo>
</table>
<table width="564" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="20" bgcolor="#333333"><div align="center"><span class="style12">{navigation}</span></div></td></tr>
</table>

Вместо {navigation} нме нужно подставить значение функции.
Функция при исполнении выводит не одной переменной всё а в несколько раз :)
 

HTTP

Guest
Что-то нечего непонимаю :-\ вроде оставлял пост, куда он делся :-\

Name

PHP:
function PRINT_NUM_PAGE(){
global $maxpage, $limit,  $currpage, $page, $next, $max_lines_on_page, $max_pages_on_page, $maxpages, $viewBack, $viewNext;
$maxpage=MAXPAGE();
if ($max_pages_on_page>$maxpages) {
$max_pages_on_page=$max_pages_on_page-$maxpages;
$page=$page-$maxpages;
$limit=($page+$maxpages-2)*$max_lines_on_page;
echo "<a class=CONTENT_NEWS_NUM href=\"?limit=$limit&max_pages_on_page=$max_pages_on_page&page=$page\"><b>$viewBack</b></a>";
$limit=($page+$maxpages+2)*$max_lines_on_page;
$max_pages_on_page=$max_pages_on_page+$maxpages;
$page=$page+$maxpages;
}

for ($page; $page<=$maxpage; $page++){

   if ($page==$currpage){echo " <font color=#D2691E size=2><b>$page</b></font>";}
      else{
      if ($page>$max_pages_on_page){
      $max_pages_on_page=$max_pages_on_page+$maxpages;
      $limit=($page-1)*$max_lines_on_page;
      echo " <a class=CONTENT_NEWS_NUM href=\"?maxpage=$maxpage&limit=$limit&max_pages_on_page=$max_pages_on_page&page=$page\" title=\"&#241;&#235;&#229;&#228;&#243;&#254;&#249;&#232;&#229; $maxpages &#231;&#224;&#239;&#232;&#241;&#229;&#233;\"><b>$viewNext</b></a>";
      break;}

      $limit=($page-1)*$max_lines_on_page;
      $p=$max_pages_on_page-$maxpages+1;
      echo " <a class=CONTENT_NEWS_NUM href=\"?maxpage=$maxpage&limit=$limit&max_pages_on_page=$max_pages_on_page&page=$p\">$page</a>";}
      } echo "<br><font color=#999999>&#194;&#241;&#229;&#227;&#238; &#241;&#242;&#240;&#224;&#237;&#232;&#246;: ".$maxpage;
}
кода её выполняю, у меня вместо того, чтобы результат выводить вместо {navigation} выводит в верху странички :-\
 

Name

Новичок
Не уверен что ты хочешь.
Скорее всего надо делать не echo а собирать все в переменную и возвращать ее.

function PRINT_NUM_PAGE() {
........
$html = "blah";
.........
$html .= "blah";

return $html;
}
 

HTTP

Guest
Name Сенкс, сейчас попробую. А то завтра часть проекта нужно сдавать :)
 

Name

Новичок
> не мог распарсить вложенные массивы типа Array(Array(Array()))
Пример?

> то есть грубо говоря, если мне нужно построить дерево, что мне делать ?
Как вариант я генерил разные значения для {padding}
Код:
<td style="padding-left: {padding}px;">{value}</td>
 

klep

Новичок
Я например строил дерево рекурсией + конкатанеция <ul><li>
, а уже потом готовую строку (целой ветки) отдавал на вставку шаблонизатору.
 
Сверху