@junart

Как вывести вложенные комментарии в потоке с родителями в PHP?

Есть рекурсивная функция:

private function SortBranch($data, $parent = 0, $level = 0){
}


В ней происходит проверка на то, есть ли для комментариев дочерние комментарии (ответ на комментарий):
if(isset($data[$arr[$i]->{$this->comment_fields['id']}])) {
	$this->SortBranch($data, $arr[$i]->{$this->comment_fields['id']}, $this->deepCounter);
}


В этой же функции SortBranch() формируется шаблон HTML для комментариев:

if ($parent > 0){
						$this->rewievs.= '<div class="commentReviewAnswer">
						    <div class="userPhoto"><img src="'.$this->user_photo.'"></div>
						                        <div class="name"><a href="#">'.$this->user_name.'</a></div>
						                        <div class="date" data-livestamp="'.$this->time.'"></div>
						                    <div class="commentText">
						                       '.$this->comment.'
						                    </div>
						                </div>';
						               

				} else {

									$this->comments.= '<div class="commentList">
							            <div class="photo"><a href="/user/'.$this->id_user.'"><img src="'.$this->user_photo.'"></a></div>
							            <div class="contentPost">
							                <div class="rghtBlock">
							                    <div class="name"><a href="/user/'.$this->id_user.'">'.$this->user_name.'</a><div class="settings">'.$this->IsCommentYou($this->authIdUsrer, $this->type, $this->id, $this->id_user).'</div></div>
							                </div>
							                <div class="text">'.$this->comment.'</div>
							            </div>
							            <div class="infoPost">
							                <div class="date" data-livestamp="'.$this->time.'"></div>
							                <div class="answer"><a href="#" class="answer" data="'.HashDataView(array('id' => $this->id, 'is_user'=> $this->id_user, 'type' => $this->type)).'">Answer</a></div>
							                <div class="like">
							                	<div class="total"><span>'.$this->CountLikes.'</span></div>
							                    <div class="up"><span data="'.LikeHash($this->to, 1, $this->type).'"></span>'.$this->likes['like_total'].'</div>
							                    <div class="down"><span data="'.LikeHash($this->to, 0, $this->type).'"></span>'.$this->likes['like_total'].'</div>
							                </div>
							            </div>
							          ВСТАВИТЬ ЗДЕСЬ ВСЕ ДОЧЕРНИЕ КОММЕНТАРИИ
							        </div>';
							       
				}


Вопрос в том, как мне в одном потоке сформировать шаблон HTML, в котором будет комментарий родитель и все дочерние (ответа) в месте "ВСТАВИТЬ ЗДЕСЬ ВСЕ ДОЧЕРНИЕ КОММЕНТАРИИ".

В функции SortBranch сейчас я проверяю переменную $parent на > 0. Тем самым определяю, где родительский комментарий, а где дочерние к нему. Таким разделением сейчас создается 2 html шаблона (2 строки). Второй (дочерние комментарии) нужно вставить в первый (родительский комментарий)
  • Вопрос задан
  • 2469 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы