class DudeTplCompiler_Include extends DudeTplCompiler_Default {
public $patterns = array('inc');
public function compile($pattern, $tag) {
$template = trim(mb_strstr($tag[1]," "));
$src = $this->engine->fetch($template);
return $src;
}
}
Форум → Программирование → Пыхнуть хотите? → Готовые решения → DudeTpl 0.2.2 Beta
DudeTpl 0.2.2 Beta
Страницы: ← Предыдущая страница • Следующая страница →
-
19 апреля 2010 г. 18:42, спустя 3 часа 30 минут 12 секунд
как вам это? -
19 апреля 2010 г. 18:44, спустя 2 минуты 8 секунд
soulgarden, мне - не о чем, ибо я не вижу смысла в отдельном компиляторе для "инклуда" шаблонов :)
к тому же у тебя будет происходить КОМПИЛЯЦИЯ И ВЫЗОВ влоенного шаблона ТОЛЬКО ПРИ КОМПИЛЯЦИИ ;)
а не при каждой генерации)Сапожник без сапог -
19 апреля 2010 г. 19:22, спустя 37 минут 59 секунд
сделал вот так
class DudeTplCompiler_Include extends DudeTplCompiler_Default {
public $patterns = array('inc');
public function compile($pattern, $tag) {
$template = trim(mb_strstr($tag[1]," "));
$this->engine->fetch($template);
$src = '<?php require (\''.$this->engine->_compile_dir.'/'.md5($template.'tpl').'\') ?>';
return $src;
}
} -
-
25 апреля 2010 г. 8:38, спустя 5 дней 11 часов 18 минут
сделал вот так
class DudeTplCompiler_Include extends DudeTplCompiler_Default {
public $patterns = array('inc');
public function compile($pattern, $tag) {
$template = trim(mb_strstr($tag[1]," "));
$this->engine->fetch($template);
$src = '<?php require (\''.$this->engine->_compile_dir.'/'.md5($template.'tpl').'\') ?>';
return $src;
}
}
А не проще ли:
$tpl = new DudeTpl(true);
$tpl->add_function("inc","inc");
function inc(DudeTpl $inst, $filename)
{
$last_tpl = $inst->last_tpl;
$inst->show($filename);
$inst->last_tpl = $last_tpl;
}Спустя 209 сек.P.S. Дуд, ты за сервер забыл заплатить? :) -
25 апреля 2010 г. 10:53, спустя 2 часа 15 минут 2 секунды
felix90,P.S. Дуд, ты за сервер забыл заплатить? :)
в пн поеду ось менять, сейчас он онлайн, но работает на лив версии убунты с флешки :)
винты тестировал, один наебнулсяСапожник без сапог -
25 апреля 2010 г. 11:51, спустя 58 минут 17 секунд
felix90,P.S. Дуд, ты за сервер забыл заплатить? :)
в пн поеду ось менять, сейчас он онлайн, но работает на лив версии убунты с флешки :)
винты тестировал, один наебнулся
Так выложи здесь свою шаблонизатор обновленный. Хотел бы выспользоваться им :)Спустя 18 сек.
felix90,P.S. Дуд, ты за сервер забыл заплатить? :)
в пн поеду ось менять, сейчас он онлайн, но работает на лив версии убунты с флешки :)
винты тестировал, один наебнулся
Так выложи здесь свою шаблонизатор обновленный. Хотел бы выспользоваться им :)
*воспользоваться -
25 апреля 2010 г. 12:07, спустя 15 минут 47 секунд
felix90, перенес тебя в группу адекватыСпустя 138 сек.дополнил шабонизатор вот такой вот простейшей функцией, которая позволяет использовать этот простой, но мощный имхо "хак" хоть где , например в block function'сахpublic static function replace($tpl, $data)
{
if(preg_match_all("#%(.+?)%#is", $tpl, $matches, PREG_SET_ORDER))
{
foreach($matches as $m)
{
$func = "";
if(substr($m[1], 0, 2) == "::")
{
$func = "rawurlencode";
$m[1] = substr($m[1], 2);
}
elseif(substr($m[1], 0, 1) == ":")
{
$func = "htmlspecialchars";
$m[1] = substr($m[1], 1);
}
$val = $data;
foreach(explode(".", $m[1]) as $x)
{
$val = $val[$x];
}
$tpl = str_replace($m[0], $func ? $func($val) : $val, $tpl);
}
}
return $tpl;
}
соответственно сделал у себя в двиге двойной обработчик меню - fucntion, block function, теперь можно верстальщика прогибать под верстку меню, а можно верстку прогибать под верстальщика :)
осторожно, пример на смарти{content_menu_list id="1" title="Главное меню"}
<a href="%:href%" title="%:title%"%meta%%class%>%:anchor%</a>
{/content_menu_list}
это меню под версталу и{content_menu_list id="1" title="Главное меню"}
этоверстальщик под меню :)Сапожник без сапог -
28 апреля 2010 г. 21:53, спустя 3 дня 9 часов 46 минут
как сделать в шаблоне вот такое?
[$price += $good.price] -
28 апреля 2010 г. 22:03, спустя 9 минут 38 секунд
в DudeTpl не припомню можно ли такое, он задумывался как простой с минимумом инструкций. а вот в моем другом делалось это так
как сделать в шаблоне вот такое?
[$price += $good.price]
{=newprice=$price + $good.price}
попробуй, может тут сработает, тольк оскобки на квадратные замени)Сапожник без сапог -
-
28 апреля 2010 г. 22:19, спустя 12 минут 34 секунды
видимо не судьба :)
не выходитСапожник без сапог -
-
29 апреля 2010 г. 0:06, спустя 1 час 42 минуты 56 секунд
class DudeTplCompiler_P extends DudeTplCompiler_Default {
public $patterns = array('=');
public function compile($pattern, $tag) {
$arr = explode(' ',(trim(ltrim($tag[1],"="))));
$src = '<?php '.$this->parse_vars($arr[0]).$arr[1].$this->parse_vars($arr[2]).'; ?>';
return $src;
}
} -
29 апреля 2010 г. 0:19, спустя 13 минут 42 секунды
soulgarden, молодец! :)
надо готовые решения собирать)Сапожник без сапог
Страницы: ← Предыдущая страница • Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!