[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Метод работает в разных ситуациях по раному
Shkiper
Написал вот такой метод для работы с шаблончиком:
class Template
{
public static function replace_cycle($tpl_name, $tag_name, $replacement)
{
$tpl_path = self::$tpl_dir . $tpl_name;
if(file_exists($tpl_path))
{
$result = "";
$tpl_ctn = file_get_contents($tpl_path);

$preg_pattern = "#\[".$tag_name."\](.*)\[/".$tag_name."\]#isU";

preg_match($preg_pattern, $tpl_ctn, $rep);

if(count($rep) > 0)
{
$tpl_rep = $rep[0];

$tpl_action = $rep[1];

$complate = "";
foreach($replacement as $v)
{
foreach($v as $original=>$repOrig)
{
$result = str_replace($original, $repOrig, $tpl_action);
}

$complate .= $result;
$result = "";
}


$result = str_replace($tpl_rep, $complate, $tpl_ctn);
}
else
{
$result = null;
}

}

else
{
$result = null;
}

return $result;
}
}

На одной странице делаю вот так:
$array = array();

$array[] = array(

'{theme}' => 'ggg'
);

$array[] = array(

'{theme}' => 'fff',
'{date}' => date("y-m-d h-i-s")
);

$result = Template::replace_cycle("pm.tpl", "working_area", $array);

parent::$content = $result;

Мне заменяет все нужные теги в шаблоне, между [working_area][/working_area]
на то, что я прописал в массиве. НА второй же странице эта конструкция не работает:
$messages = Database::query("SELECT `id`, `theme`, `author`, `date`, `view` FROM `pm` WHERE `folder`='vh' and `success` = 'all' or `success` = 'to'");
$array = array();

if($messages->num_rows > 0)
{
while($pm = $messages->fetch_assoc())
{
$new_pm = $pm['view'] == 1 ? "":"<img src='/template/images/new_pm.jpg' />";


$array[] = array(
'{views}' => $new_pm,
'{theme}' => $pm['theme'],
'{author}' => $pm['author'],
'{date}' => $pm['date'],
'{checked}' => "<input type='checkbox' value='".$pm['id']."'>",
);

}


$result = Template::replace_cycle("pm.tpl", "working_area", $array);
}
else
{
$result = "<p>У вас нет новых сообщений</p>";
}

Дамп массива $array таков:
<pre>Array
(
[0] => Array
(
[{views}] => <img src="/template/images/new_pm.jpg">
[{theme}] => Test theme
[{author}] => Shiper
[{date}] => 2012-12-29
[{checked}] => <input type="checkbox" value="1">
)

)
</pre>


То есть массив не пуст.
А при выводе ничего не заменилось, кроме последнего элемента в массиве, то есть чекбокс. В чем проблема?
Быстрый ответ:

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