Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Хаки » Как реализовать вывод логина, на чей комментарий был ответ?

Как реализовать вывод логина, на чей комментарий был ответ?


     04.02.2019    Все вопросы » Хаки    1156

вопрос
Добрый день! Подскажите пожалуйста, как реализовать вывод имени человек, на чей комментарий был ответ?

Как реализовать вывод логина, на чей комментарий был ответ?


Искал, так ничего и не нашёл в интернете. Здесь на сайте был как то такой вопрос очень давно, так никто и не ответил им, может мне повезет?

Ответил: dj-avtosh


Держите готовый плагин.

10 комментариев

alex_kokorin
Юзер

alex_kokorin - 4 февраля 2019 15:15 -

По идеи, такой вывод уже есть, только не там, где мне нужно.
Если включить упрощенный ответ на комментарии, и нажать ответить, то там будет такая фраза
"Введите Ваш ответ на комментарий пользователя (Комментатор)".
В кавычках он как раз выводит имя комментатора, которому отвечают.

Razilator
Юзер

Razilator - 4 февраля 2019 17:50 -

Поддерживаю, тоже хотелось бы знать ответ на этот вопрос.
Потому что ответ по нику не работает в 13.1, потому что полноценный ответ работает через Ajax.

dj-avtosh
PHP-developer

dj-avtosh - 4 февраля 2019 18:43 -

Можно сделать, если предоставите тестовую площадку с DLE.

https://elkhan.ru
По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

TeraMoune
Эксперт

TeraMoune - 4 февраля 2019 22:26 -

Каждый комментарий содержит parent id. но не содержит имени. Тут либо писать функцию и всякий раз вытягивать из базы имя кому принадлежит комментарий по id либо проще, добавить еще одно поле рядом с parent/
Добавить поле parent_name и при ответе на комментарий добавлять ник кому отвечают.
В comments.class.php в функции compile_comment добавить.

if( $row['parent'] && $row['parent_name'] ) {	
	$tpl->set( '{answer}', $row['parent_name'] );	
} else $tpl->set( '{answer}', '' );

В шаблоне в нужное место comments.tpl вставить {answer}.

Это, что касается вывода.
Далее надо сделать при добавлении комментария если существует parent, то рядышком в запрос подставить parent_name и ник адресата.

dj-avtosh
PHP-developer

dj-avtosh - 5 февраля 2019 18:54 -




Если кому-то нужно: я написал для автора плагин (нужно распаковать и залить в админке в управлении плагинами). В шаблоне comments.tpl тег {name_for_answer} внутрь блока [childrencomments][/childrencomments]

https://elkhan.ru
По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

alex_kokorin
Юзер

alex_kokorin - 5 февраля 2019 19:07 -

Спасибо большое Эльхану!
Все прекрасно работает.
Если кому то ответ был полезен, не забудьте поблагодарить автора.
Данные в его профиле.

TeraMoune
Эксперт

TeraMoune - 6 февраля 2019 02:26 -

Вот говорил о лишних запросах, а избежать этого, Эльхан, ну никак ?) Лол еще о донате упоминает. Да задействуй больше правок, в файлах но если можно избежать ненужного sql запроса его нужно избежать. А это халтура какая-та, за чашкой кофе в перерыве на обед.

Мой вариант подхватить не судьба. Супер крутой программист :D

dj-avtosh
PHP-developer

dj-avtosh - 6 февраля 2019 10:58 -

Я посмотрел на архитектуру, и получилось так, что если постоянно пересобирать массив, то нужно это делать для каждого нового случая (бывают обычные комменты, бывают кастом-комменты). Если предложишь решение лучше - дерзай. В моем случае добавляется один запрос на всю выборку (и то если включено кэширование mysql - то он уже возьмет его из кэша), а тебе наверно показалось, что каждый раз юзается новый запрос в цикле. Так?

https://elkhan.ru
По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

dj-avtosh
PHP-developer

dj-avtosh - 6 февраля 2019 12:51 -

UPD: я заюзал подход ленивой инициализации на ранее выполненный запрос. Это не должно повлиять как-то на нагрузку. Разве дешевле 10 раз рекурсию перебирать?

Очень жду твой вариант решения. И что бы работало при добавлении комментария на ajax тоже.

https://elkhan.ru
По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

TeraMoune
Эксперт

TeraMoune - 6 февраля 2019 20:02 -

Выложу позже, вариант без вообще каких либо sql. Без переборов и лишних телодвижений.

Нет в начале я думал да, есть два варианта либо мой либо функция которая каждый раз для каждого комментария делает запрос. В начале подумал у вас так же, но у вас всего один запрос и получается у нас есть целых 3 варианта. Но так или думал о том, чтобы исключить вообще переборы чего либо и лишние запросы.

Единственная ручная правка в моём случае это будет небольшая правка самих javascript функций который отправляют ответы.

P.S. только в прошлый раз когда я выкладывал обрезку и загрузку аватарки у меня не получилось загрузить ни архив ни xml. Были ошибки, надеюсь получиться загрузить. Ну или ссылку на диск оставлю.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

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

наверх