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

Пропадают комментарии при отключении возможности комментирования, что делать?


     03.04.2022    комментарии    Вопросы КЭПу    736

вопрос
Всем привет! Проблема следующая:
В DLE при публикации новости стоит галочка "Разрешить комментарии" (форма добавления комментариев естественно работает, как и задумано).
Пишем несколько комментов, решаем закрыть новость для комментирования (убираем галочку "Разрешить комментарии") и что мы собственно видим?
Кроме формы добавления комментариев, скрываются ещё и сами написанные комментарии.

Это баг DLE и если кто знает, как это исправить, прошу помочь.

Ответил: SX2


Собрал небольшой плагин, пользуемся кому нужно!

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

Dark5ider
Эксперт

Dark5ider - 4 апреля 2022 00:14 -

Пробежался по коду, не пойму, либо так и задумывали разработчики, тогда это надо было назвать не "Разрешить комментарии", а "Выводить комментарии", либо это действительно баг.

Решить это можно, пару нужных условий в engine/modules/show.full.php и вопрос решен.

hippahap
Юзер

hippahap - 4 апреля 2022 01:41 -

Если не сложно, подскажи как это сделать...

Я чё ещё подумал, получается, если выводить таким образом комментарии, то придётся дополнительно скрывать кнопки в теге [reply][/reply].

Короче из одной решенной проблемы вылазит ещё одна не решённая...

SX2
Эксперт

SX2 - 4 апреля 2022 08:41 -

Попробуйте сместить чуть ниже условие:
if( $allow_comments AND $news_found) {

Перед
$tpl->load_template( 'addcomments.tpl' );

Самая сложная часть работы – решиться приступить к ней.

hippahap
Юзер

hippahap - 4 апреля 2022 12:15 -

SX2, спасибо за наводку, там удалил:
if( $allow_comments AND $news_found) {

И добавил перед:
	if ($is_logged AND $config['comments_restricted'] AND (($_TIME - $member_id['reg_date']) < ($config['comments_restricted'] * 86400)) ) {

Вроде проверил, ничего лишнего нигде не пропало и работает как часы!

Там где указали вы, оно попадает во внутрь другого условия и по идеи не будет работать, как следует. Слишком там много конструкций if в друг друге...

Ещё бы теперь сообразить, как реализовать скрытие кнопки "Ответить" в теге [reply][/reply], когда добавление комментариев отключено.

dj-avtosh
PHP-developer

dj-avtosh - 4 апреля 2022 15:15 -

Я думаю придется попотеть, потому как есть еще и lastcomments

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

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

SX2
Эксперт

SX2 - 4 апреля 2022 17:09 -

Для новостей и комментариев используются разные таблицы. В таблице комментариев нет колонки allow_comm. Как вариант, можно добавить в запрос, тем самым далее, можно будет добавить в условие и скрывать кнопки ответить и цитировать. Нужно сидеть разбирается...

Самая сложная часть работы – решиться приступить к ней.

hippahap
Юзер

hippahap - 4 апреля 2022 19:27 -

SX2, реализовал на js достаточно просто, но не знаю насколько это правильно, скорее костыльно.

Нашёл скрипт, который отслеживает на странице нужный блок по классу (у меня это блок добавления комментариев). Дополнительно обернул кнопки Ответить и Цитировать в div с классом и присвоил ему display:none.

Так вот, если на странице находит блок добавления комментариев, то кнопкам добавляется класс со значением display:block, а если блока нет, то ничего не добавляет.

SX2
Эксперт

SX2 - 4 апреля 2022 19:45 -

Как вариант можно и на JS ну по правильному лучше PHP имхо мое мнение...
Напишите скрипт, какой использовали, может кому-то понадобится.

Самая сложная часть работы – решиться приступить к ней.

hippahap
Юзер

hippahap - 4 апреля 2022 19:56 -


 if($('.add_comment').length > 0) { 
  $('.test-1').addClass('show3');
}

Slavchik
Юзер

Slavchik - 6 июня 2022 06:31 -

Чет не хватает

hippahap
Юзер

hippahap - 9 июня 2022 19:11 -

Всё там хватает, это заменили строку на пустоту, чтобы удалить, а потом её добавили в другом месте.

Dark5ider
Эксперт

Dark5ider - 4 апреля 2022 23:11 -

Как раз подтянуть allow_comm от новости при выводе комментариев не сложно, дополнительно в базу добавлять ничего не надо (да и не целесообразно).
В запросе на вывод комментариев lastcomments добавим

SELECT ... p.allow_comm ... LEFT JOIN dle_post p ON p.id=c.post_id

и уже в зависимости от allow_comm скрываем или открываем нужные шаблонные теги

TeraMoune
Эксперт

TeraMoune - 4 апреля 2022 22:42 -

Немного не то. Это если мы глобально отключем комменты, тогда запишет в конфиг. Ему нужно отключать конкретно в новости, а там уже пишет в таблицу post.

А ну да, не сразу понял, что отключение выборочное для определённой новости, а не глобально.

Имхо, пишите все эти претензии на официальный форум разработчика. Чем быстрей и активней будите там излагать свои потребности в использовании cms тем быстрей все эти вещи будут реализованы.

Тестовый репозиторий установки плагинов: teramoune

КЭП
КЭП и его команда

КЭП - 5 апреля 2022 19:54 -

***Комментарий удален***

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

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

наверх