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

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


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

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

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


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

Ответил: dj-avtosh


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

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

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.

По заказам пишем сюда: @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]

По заказам пишем сюда: @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 - то он уже возьмет его из кэша), а тебе наверно показалось, что каждый раз юзается новый запрос в цикле. Так?

По заказам пишем сюда: @Rud00y

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

dj-avtosh
PHP-developer

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

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

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

По заказам пишем сюда: @Rud00y

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

TeraMoune
Эксперт

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

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

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

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

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

Принимаю оплату только на карту Мир. Крипту меньше трёхзначной цифры не принимаю.

souz21
Юзер

souz21 - 4 февраля 2025 19:43 -

На 17.1 не работает если кому интересно.

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

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

наверх