Как убрать надпись, если комментарии отключены у конкретной страницы

голоса: 0

Здравствуйте. На странице с материалом в каталоге файлов есть код, который отвечает за добавление и отображение добавленных комментариев.

<?if($COM_IS_ACTIVE$)?>
<div class="entry_comm_outer">
<div class="entry_comm_otziv">Уважаемые коллеги! Автор ждёт Ваши отзывы! Оставьте своё мнение о разработке!</div>
Всего комментариев: <b>$COM_NUM_ENTRIES$</b>
$COM_BODY$
<div align="center">$COM_PAGE_SELECTOR1$</div>
</div>
<?if($COM_CAN_ADD$)?>$COM_ADD_FORM$<?endif?>
<?endif?>

Добавлять комментарии могут только зарегистрированные пользователи, смотреть могут все. Но если человек зашел как гость или если комментарии отключены вручную у какого то одного материала, то надпись "Уважаемые коллеги! Автор ждёт Ваши отзывы! Оставьте своё мнение о разработке! Всего комментариев: 0" всё равно отображается. Как сделать так, чтобы она не отображалась для гостей и для всех, если комментарии отключены у конкретного материала?

Пример страницы с включёнными комментариями https://www.uchportal.ru/load/76-1-0-87280

Пример страницы с отключенными комментариями у конкретного материала https://www.uchportal.ru/load/310-1-0-87284

Адрес сайта https://www.uchportal.ru/
| Автор: | Категория: Дизайн сайта

Ответов: 2

голоса: 0

Для гостей можно убрать если завернуть в условие:

<?if($USER_LOGGED_IN$)?>
здесь содержимое которое нужно убрать от гостя
<?endif?>

Если комментарии отключены, пробуйте использовать подобное условие:

<?ifnot($COM_IS_ACTIVE$)?>   
здесь содержимое которое нужно скрывать если комментарии отключены
<?endif?>

| Автор:

Здравствуйте, Юрий. В первом случае помогает для гостей. Но сейчас пока убрал. Меня больше второй случай интересует. 

<?ifnot($COM_IS_ACTIVE$)?>
здесь содержимое которое нужно скрывать если комментарии отключены
<?endif?>

Если так обернуть, то надпись исчезает для всех, даже если комментарии включены.

Евгений Никитенко,

Не получится написать такое условие так как показывает общее доступна ли функция комментариев для модуля, а не для материала, в итоге условия подобно:

<?if($COM_IS_ACTIVE$=="1")?>Комментарии активны<?endif?>
<?if($COM_IS_ACTIVE$=="0")?>Комментарии не активны<?endif?>

сработают лишь для всего модуля, а не отдельных материалов. Для отдельных материалов нельзя написать условие активных или не активных комментариев так как нет отдельного оператора.

Евгений Никитенко,

Максимально, что можно сделать, это проверять есть ли комментарии у материала, и если их 0, тогда убирать ненужное. Делается подобным условием:

<?ifnot($COM_NUM_ENTRIES$=="0")?>здесь содержимое которое нужно скрывать если комментариев к материалу нет<?endif?>

голоса: 0

Так попробуйте

<?if($COM_IS_ACTIVE$ or $COM_CAN_ADD$)?>
<div class="entry_comm_outer">
<div class="entry_comm_otziv">Уважаемые коллеги! Автор ждёт Ваши отзывы! Оставьте своё мнение о разработке!</div>
Всего комментариев: <b>$COM_NUM_ENTRIES$</b>
$COM_BODY$
<div align="center">$COM_PAGE_SELECTOR1$</div>
</div>
<?if($COM_CAN_ADD$)?>$COM_ADD_FORM$<?endif?>
<?endif?>

| Автор:
...