[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: if else в файл tpl
okapo
Всем привет
начал использовать шаблонизатор 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}
Вы гость

Спустя 10 минут, 24 секунды (2.03.2012 - 22:06) okapo написал(а):
не хочет
я вот включил ошибки пхп и вот что дает

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>

Но вариант через подстановку шаблонов... хз, вдруг)))

Спустя 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 шаблон


вот этот подходит не плохо, только условия не знаю как создать

Спустя 7 часов, 23 минуты, 3 секунды (3.03.2012 - 18:53) inpost написал(а):
okapo
php не подходит? Чем же?! smile.gif Ограничен в возможностях? Или медленно работает?

Спустя 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']);


Вот зачем это всё городить - ради того, чтобы не думать самому, а использовать некий шаблонизатор? Который всё равно в итоге использует не более тех возможностей, что может предоставить ПХП.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.