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

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


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

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

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

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

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

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

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


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

vitnet
PHP-developer

vitnet - 30 апреля 2015 12:52 -

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

Jeka778
Юзер

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

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

Jeka778
Юзер

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

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

sanderart
Юзер

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

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

Jeka778
Юзер

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

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

FastFud
Юзер

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
Юзер

Jeka778 - 1 мая 2015 14:02 -

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

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

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

наверх