Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Шаблоны (TPL) Как разрешить комментировать только определённую категорию?

Как разрешить комментировать только определённую категорию?


     30.04.2015    Шаблоны (TPL), Общие вопросы по PHP    1150

вопрос
Всем привет. Столкнулся с такой проблемой:
Два .tpl файла полной новости (для разных категорий). В одной категории можно оставлять комментарии, в другой нет. Решил попробовать сделать это следующим образом:

[category=1]{addcomments}[/category]

Но текст [category=1] и [/category] просто обволакивает форму добавления комментариев и отображается на странице.

Причём в одном fullstory.tpl присутствует {addcoments}, а во втором нет, но всё равно отображается форма добавления комментариев.

Пробовал очистить fullstory.tpl и создал такой же с другим названием и указал для какой категории, но ничего не изменилось.

Ответа пока нет


Комментарии пользователей (7)

vitnet
218

2171 | 930

vitnet - 30 апреля 2015 12:52 - Эксперт

А так?
[catlist=1]{addcomments}[/catlist]

Jeka778
8

Jeka778 - 30 апреля 2015 12:58 - Юзер

тег не отображается, но теперь комментарии сверху, а форма для добавления комментариев ниже
[not-catlist] и [/not-catlist] - тоже пробовал, ничего...

Jeka778
8

Jeka778 - 30 апреля 2015 13:37 - Юзер

Может можно как-то по этому примеру сделать, чтоб форма не отображалась?
Хотя странно, что она вообще отображается, ведь во втором файле .tpl нет {comments} и {addcomments}, получается они ставятся автоматически движком?..

sanderart
36 | 6

sanderart - 30 апреля 2015 14:31 - Юзер

Да, они (теги {comments} и {addcomments}) автоматически ставятся движком в конце полной новости, если вручную не прописать. Поэтому как вариант предлагаю:
<div [catlist=1]style="display:none;"[/catlist]>{comments}{addcomments}</div>

Jeka778
8

Jeka778 - 30 апреля 2015 15:27 - Юзер

На этом пока и остановился, но если серьёзно - не самый лучший вариант. Нужно думать...

FastFud
50

1599 | 588

FastFud - 30 апреля 2015 19:50 - Юзер

Попробуйте
/engine/modules/show.full.php найти
$tpl->compile( 'addcomments' );
$tpl->clear();
if ( strpos ( $tpl->result['content'], "<!--dleaddcomments-->" ) !== false ) {
    $tpl->result['content'] = str_replace ( "<!--dleaddcomments-->", $tpl->result['addcomments'], $tpl->result['content'] );
} else {
    $tpl->result['content'] .= $tpl->result['addcomments'];
}
и закомментируйте/удалите
else {
    $tpl->result['content'] .= $tpl->result['addcomments'];
}

Jeka778
8

Jeka778 - 1 мая 2015 14:02 - Юзер

FastFud, Спасибо, помогло!

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

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