[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Заплачу за работу в скрипте
okapo
я начал пользоватся шаблонизатор FXL_template, немножко переделал
создал тему на сайте но так и не ответили никто

представляю свой код шаблонизатора
<?php
class
template
{
protected $tpl = array(
'param' => array('clipleft' => '{', 'clipright' => '}', 'trim_block' => 0),
'block' => array(),
'place' => array(),
'template' => ''
);

public function __construct ($content = false, $options = false)
{
if (!file_exists($content) || !is_readable($content)) return false;
$this->set_template($content, 'file');
if ($this->tpl['template']) $this->init();
}

public function get_content()
{
$tmp = preg_replace('/'.$this->tpl['param']['clipleft'].'([a-z0-9\-\_]+)'.$this->tpl['param']['clipright'].'/i', '', $this->get());
return preg_replace('/'.$this->tpl['param']['clipleft'].'\\\/i', $this->tpl['param']['clipleft'], $tmp);
}

public function display()
{
echo $this->get_content();
}

public function set($var, $val = null)
{
if (is_array($var)) foreach($var as $k => $v) $this->tpl['place'][$k][] = $v;
elseif (is_object($val)) $this->tpl['place'][$var][] = clone $val;
elseif (strlen($var) && is_null($val)) $this->set_block($var);
elseif (strlen($var)) $this->tpl['place'][$var][] = $val;
}

public function set_block($blockname)
{
$block = $this->get_block($blockname);
$this->set($blockname, $block);
}

public function get_block($blockname)
{
if (isset($this->tpl['block'][$blockname]) && is_object($this->tpl['block'][$blockname])) return clone $this->tpl['block'][$blockname];
elseif (isset($this->halt_on_error) && $this->halt_on_error) {
die("Block: $blockname not found!");
}
else return false;
}

public function block_exists($blockname)
{
if (isset($this->tpl['block'][$blockname]) && is_object($this->tpl['block'][$blockname])) return true;
else return false;
}

public function clear()
{
$this->tpl['place'] = array();
}

public function get()
{
if (count($this->tpl['place'])) {

foreach ($this->tpl['place'] as $k => $v) {
$replace = '';
for ($i = 0; $i < count($this->tpl['place'][$k]); $i++) {
$replace .= (is_object($this->tpl['place'][$k][$i])) ? $this->tpl['place'][$k][$i]->get() : $this->tpl['place'][$k][$i];
}
$this->tpl['template'] = ($this->tpl['param']['trim_block'] == 2) ? preg_replace("/[\n\r\s]*".$this->tpl['param']['clipleft'].$k.$this->tpl['param']['clipright']."[\n\r\s]/", trim($replace), $this->tpl['template']) : str_replace($this->tpl['param']['clipleft'].$k.$this->tpl['param']['clipright'], $replace, $this->tpl['template']);

}
}


return $this->tpl['template'];
}

public function set_template($data, $type = 'file')
{
if ($type == 'file') {
if (($this->tpl['template'] = file_get_contents($data))) return true;
}
elseif ($type == 'string') {
$this->tpl['template'] = $data;
return true;
}
return false;
}

public function init()
{
return $this->parse($this->tpl['template']);
}

protected function parse($tplstring = '')
{

$this->tpl['template'] = $tplstring;
$m = $this->_match_block();
for ($x = 0; $x < count($m[0]); $x++) {
$this->tpl['template'] = $this->parse_block($m[1][$x], $this->tpl['template']);
$this->tpl['block'][$m[1][$x]] = clone $this;
$this->tpl['block'][$m[1][$x]]->tpl['place'] = array();
$this->tpl['block'][$m[1][$x]]->tpl['block'] = array();
$this->tpl['block'][$m[1][$x]]->parse(($this->tpl['param']['trim_block']) ? trim($m[2][$x]) : $m[2][$x]);
}
}


protected function parse_block($blockname = '', $template = '')
{
$blockname = preg_quote($blockname);
return preg_replace(($this->tpl['param']['trim_block']) ? "/[\s\r\n]+<!--\sSTART\s(" .$blockname. ")\s-->.*<!--\sEND\s(" .$blockname. ")\s-->[\s\r\n]+/ms":"/<!--\sSTART\s(" .$blockname. ")\s-->.*<!--\sEND\s(" .$blockname. ")\s-->/ms",$this->tpl['param']['clipleft'].$blockname.$this->tpl['param']['clipright'], $template);
}

protected function _match_block()
{
preg_match_all("/<!--\sSTART\s([a-z0-9_]+)\s-->(.*)<!--\sEND\s(\\1)\s-->/mis", $this->tpl['template'], $m);
return $m;
}
}

?>


вот мне нужно что бы в шаблонах .tpl я мог использовать условия

кто сможет сделать и за сколько



Спустя 27 минут, 6 секунд (3.03.2012 - 14:57) kekus написал(а):
Зачем использовать шаблонизатор, не зная как он работает, да ещё и деньги за его работу платить?

Спустя 14 минут, 41 секунда (3.03.2012 - 15:11) Игорь_Vasinsky написал(а):
тем более что в Smarty всё реализовано.

Спустя 1 час, 46 минут, 28 секунд (3.03.2012 - 16:58) okapo написал(а):
Игорь_Vasinsky
смарти не подходит




ну есть кто нибуть кто сможет помочь ?

Спустя 29 минут, 10 секунд (3.03.2012 - 17:27) redreem написал(а):
сколько денег?

Спустя 2 часа, 57 минут, 59 секунд (3.03.2012 - 20:25) okapo написал(а):
redreem
а сколько просите ?

Спустя 3 минуты, 45 секунд (3.03.2012 - 20:29) Игорь_Vasinsky написал(а):
чуть больше чем вы хотите дать и с авансом.

Спустя 21 минута, 24 секунды (3.03.2012 - 20:50) okapo написал(а):
ну так назовите вашу цену

Спустя 18 минут, 46 секунд (3.03.2012 - 21:09) redreem написал(а):
800 р.
2 дня (неторопясь, с чувством, с расстановкой).

Спустя 1 час, 3 минуты, 33 секунды (3.03.2012 - 22:13) okapo написал(а):
redreem
как можно с вами свизатся

Спустя 48 минут, 52 секунды (3.03.2012 - 23:01) redreem написал(а):
<мой ник>@mail.ru

Спустя 15 часов, 3 минуты, 10 секунд (4.03.2012 - 14:05) okapo написал(а):
ну а skype или wmid или icq
киньте в лс

Спустя 1 день, 1 час, 27 минут, 51 секунда (5.03.2012 - 15:32) okapo написал(а):
Спасибо redreem, выполнил раньше времени, качественно
Быстрый ответ:

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