Xwab
Форумыnavigate_nextПрограммирование на PHP

Помогите понять
Сообщения
Hameleon

Помогите понять как в шаблонизаторе задействовать использование if'ов, блоков и т.д.
Смотрел шаблонизаторы но не понял:
for($i = 0;$i < $count_ifs;$i ++)
{

$var = $this -> _get_var($ifs[$i][4], false);
$chapter1 = 'isset('.$var.') && ';


if(!empty($ifs[$i][8]))
{
// если это переменная
if($ifs[$i][10] == '$'.$ifs[$i][11])
{

$var2 = $this -> _get_var($ifs[$i][11], false);

$chapter1 .= 'isset('.$var2.') && ';

$strlen = strlen($ifs[$i][10]);

$chapter2 = $var.substr($ifs[$i][8], 0, -$strlen).$var2;

}
else
{
$chapter2 = $var.$ifs[$i][8];
}



}
else
{


if($ifs[$i][2] == '!')
{
$chapter1 = '!isset('.$var.') || ';

if($ifs[$i][3] == '~')$chapter2 = '!(bool)'.$var;
else $chapter2 = $var.' !== true';

}
else
{
if($ifs[$i][3] == '~')$chapter2 = '(bool)'.$var;
else $chapter2 = $var.' === true';
}

#if($ifs[$i][3] == '~')$chapter2 = ($ifs[$i][2] == '!' ? '!' : null).'(bool)'.$var;
#else $chapter2 = $var.($ifs[$i][2] == '!' ? '!' : '=').'== true';

}
Если чесно, я потерялся вот в этих вот фичах:
$ifs[$i][4]
Заранее спасибо


__________
посл.ред. 31 Окт 2010, 12:19; всего 1 раз 31 Окт 2010, 12:16
MadMax

http://xwab.mobi/forum/viewtopic.php?t=13

31 Окт 2010, 12:17
iceman12

MadMax, такой вопрос и темы стоит)

31 Окт 2010, 12:19
Hameleon

MadMax, хочу подробно во всём разобраться
#3, Согласен

31 Окт 2010, 12:23
wapmorgan

1, вообще, я там много намудрил.
Смотря регулярку, можно понять что в $ifs[$i][4] хранится переменная.
Т.е, из шаблона
{if $var}
...
{/if $var}
будет получено $var.

31 Окт 2010, 13:22
Hameleon

Morgan, тоесть
$ifs[$i][4] = $var ?
Что именно ты считаеш намудрённым?

31 Окт 2010, 15:06
Hameleon

Morgan, я не понимаю что такое
$ifs[$i][8]
$ifs[$i][10]
$ifs[$i][11]
и т.д.
Откуда оно берёться?

31 Окт 2010, 15:10
wapmorgan

6,
Цитата:
"$ifs[$i][4] = $var"
- нет

после preg_match_all(...) сделай print_r($ifs), или var_dump($ifs);

Цитата:
"Что именно ты считаеш намудрённым?"

систему обработки этих блоков.

31 Окт 2010, 15:14
Hameleon

Morgan, а почему бы preg_replace не заюзать?
И еще как это всё (скомпилированый шаблон) выводить? Как лучше? Если через echo ''; то не пойму как будет тогда работать пхп код (<?php ?>), не пойму как это можно зделать через eval() или это всё выводить вобще через include ?

31 Окт 2010, 20:52
wapmorgan

9, в SomeTemplate делается include шаблонов.
Цитата:
"а почему бы preg_replace не заюзать?"

а кто будет обрабатывать внутренние блоки?

01 Ноя 2010, 8:41
Ответить на тему