начал использовать шаблонизатор fxl_template (мне очень подходит)
но в нем почти нету документаций
я хочу то как то делать условие прям в файл tpl
и так в класс я добавил
if (strpos ($this->tpl['template'], "{if " ) !== false) {
$this->tpl['template'] = preg_replace ( "#\\{if (.+?)\\}(.*?)\\{/if\\}#ies", "\$this->check_else('\\1', '\\2', false)", $this->tpl['template']);
}
функция check_else
public function check_else($condition, $block)
{
global $GLOBALS;
extract($GLOBALS, EXTR_SKIP, "");
if(is_array($matches=explode("{else}",$block))) {
$block=$matches[0];
$else=$matches[1];
}
if(eval(("return $condition;"))) return str_replace( '\"', '"', $block );
return str_replace( '\"', '"', $else );
}
в php делаю
$tpl->set('auth', ($_SESSION['auth']) ? 1 : 0);
и в шаблон хочу что бы использовал как то так
{if auth}
Вы пользователь!
{else}
Вы гость
{/if}
но все это почему то не правельно работает, тоесть как бы не создал условие, всегда показывает 1ую часть условие
Спустя 9 минут, 9 секунд (2.03.2012 - 21:56) nugle написал(а):
попробуй так
{if auth}
Вы пользователь!
{/if}
{else}
Вы гость
{if auth}
Вы пользователь!
{/if}
{else}
Вы гость
Спустя 10 минут, 24 секунды (2.03.2012 - 22:06) okapo написал(а):
не хочет
я вот включил ошибки пхп и вот что дает
строчка 181:
строчка 183:
я вот включил ошибки пхп и вот что дает
Notice: Undefined offset: 1 in Z:\home\test1.ru\www\inc\classes\template.php on line 181
Notice: Use of undefined constant auth - assumed 'auth' in Z:\home\test1.ru\www\inc\classes\template.php(183) : eval()'d code on line 1
строчка 181:
$else=$matches[1];
строчка 183:
if(eval(("return $condition;"))) return str_replace( '\"', '"', $block );
Спустя 3 часа, 52 минуты, 20 секунд (3.03.2012 - 01:59) dron4ik написал(а):
<tpl:if auth="auth">
<tpl:else />
</tpl:if>
Но вариант через подстановку шаблонов... хз, вдруг)))
<tpl:else />
</tpl:if>
Но вариант через подстановку шаблонов... хз, вдруг)))
Спустя 1 час, 6 минут, 11 секунд (3.03.2012 - 03:05) okapo написал(а):
dron4ik
нет ничего не выводит
нет ничего не выводит
Спустя 2 часа, 6 минут, 30 секунд (3.03.2012 - 05:11) inpost написал(а):
Используй PHP шаблонизатор. Проблем не будет.
Спустя 6 часов, 19 минут, 2 секунды (3.03.2012 - 11:30) okapo написал(а):
inpost
не очень подходит php шаблон
вот этот подходит не плохо, только условия не знаю как создать
не очень подходит php шаблон
вот этот подходит не плохо, только условия не знаю как создать
Спустя 7 часов, 23 минуты, 3 секунды (3.03.2012 - 18:53) inpost написал(а):
okapo
php не подходит? Чем же?!
Ограничен в возможностях? Или медленно работает?
php не подходит? Чем же?!

Спустя 1 час, 46 минут, 35 секунд (3.03.2012 - 20:40) sergeiss написал(а):
Сорри за оффтоп... Но я, наверное, никогда так и не пойму. Зачем люди "любовно" раскладывают грабли на своем пути, а потом "мужественно" ищут пути для их обхода?
Я это про вот такую "хитровывернутую" конструкцию.
Я это про вот такую "хитровывернутую" конструкцию.
Цитата (okapo @ 2.03.2012 - 22:47) |
$this->tpl['template'] = preg_replace ( "#\\{if (.+?)\\}(.*?)\\{/if\\}#ies", "\$this->check_else('\\1', '\\2', false)", $this->tpl['template']); |
Вот зачем это всё городить - ради того, чтобы не думать самому, а использовать некий шаблонизатор? Который всё равно в итоге использует не более тех возможностей, что может предоставить ПХП.