Всем привет! Сломал мозг уже... Написал рекурсивный метод, работает правильно, выводит div-ы с комментариями, и с помощью костыля margin, даже получается дерево комментариев. Но никак не могу изменить код так, чтобы добавить туда теги
<ul>
и
<li>
, чтобы получилось так.
<ul>
<li>коммент 1
<ul>
<li>Коммент 1.1</li>
<li>Коммент 1.2</li>
</ul>
</li>
<li>Коммент 2</li>
</ul>
Понимаю, что по этому куску кода сложно что-то подсказать, поэтому не пинайте. Но авось... может я просто не вижу чего-то элементарного...
в массиве
$this->comments
уже лежат данные вытянутые из базы вот в таком формате.:
$this->comments[$row['parent_id']][$row['id']] = $row;
Вот код самого метода.
public function ShowComments($parent_id = 0, $level = 0){
if(count($this->comments) > 0 && isset($this->comments[$parent_id])){
foreach($this->comments[$parent_id] as $val){
// шаблонизатор, там обычный div комментария.
$this->tpl->assign_block_vars('comment.tpl', array(
"ID" => $val['id'],
"CLASS" => $this->GetVoteClass($val['vote']),
"USER" => ShowText(empty($val['name']) ? $val['login'] : $val['name']),
"LOGIN" => $val['login'],
"FOTO" => GetPhoto($val['foto']),
"DATE" => rdate("M d H:i", strtotime($val['date'])),
"VOTE" => $val['vote'],
"TEXT" => ShowText($val['text']),
"MARGIN"=> $level * 20
));
$this->ShowComments($val['id'], ++$level);
$level--;
}
}else return null;
return $this;
}