Как-то вот так, хот не совсем понятно что за 'content' передается в $tpl->compile()
Цикл меняем вот так:
$tpl->load_template('main_user_thead.tpl');
$tpl->compile('content');
$tpl->clear();
while ($row = mysql_fetch_assoc($query)) {
$tpl->set("{number}", $number++);
$tpl->set("{id}", $row['id']);
$tpl->set("{site_name}", $row['site_url']);
if ($row['status'] == '1') {
$tpl->set("{status}", 'Сайт работает');
$tpl->set("{icon}", 'Сайт работает');
}
if ($row['status'] == '2') {
$tpl->set("{status}", 'Сайт на модерации');
$tpl->set("{icon}", 'fa fa-eye');
}
if ($row['status'] == '3') {
$tpl->set("{status}", 'Сайт отключен');
$tpl->set("{icon}", 'Сайт работает');
}
$tpl->load_template('main_user.tpl');
$tpl->compile('content');
$tpl->clear();
}
$tpl->load_template('main_user_tfoot.tpl');
$tpl->compile('content');
$tpl->clear();
Создаем файл шаблона
main_user_thead.tpl с таким содержимым:
<div class="panel panel-default">
<!-- Default panel contents -->
<div class="panel-heading">Мои сайты</div>
<!-- Table -->
<table class="table">
<thead>
<tr>
<th>#</th>
<th>Адрес сайта</th>
<th>Статус</th>
<th>Настройки</th>
</tr>
</thead>
<tbody>
Содержимое
main_user.tpl меняем на такое:
<tr>
<td>{number}</td>
<td>{site_name}</td>
<td><i class="{icon}" title="{status}" data-placement="top" data-toggle="tooltip"></i></td>
<td><a href="/cabinet/edit/{id}">Редактировать</a></td>
</tr>
И сооздаем файл шаблона
main_user_tfoot.tpl с таким содержимым:
</tbody>
</table>
</div>
Если бы была информация по классу, экземпларом которого является $tpl, можно было бы сказать больше. Возможно как-то можно передать объекту повторяющиеся данные, и не пришлось бы разбивать шаблон на 3 части.