Как отключить Теги в определенном типе контенте

На своем проекте в одном типе контента надо отключить теги, а в другом типе оставить. Как это можно сделать? Или можно под каждый тип контента сделать свой уникальный шаблон страницы?

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

0
ИМХО, самый простой вариант — вставить проверку в шаблон на тип контента. Если тип контента такой-то, то выводить поле заполнения тегов, если тип контента иной — не выводить поле заполнения тегов.
Аналогично с дизайном.
0
А можно поподробнее, а то я в коде не супер, да и с движком как неделю работать стал. Еще в структуре даже не очень разобрался.
0
Ищите файл скина:
/templates/skin/mono/actions/ActionContent/add.tpl


В нем строки
<p><label for="topic_tags">{$aLang.topic_create_tags}:</label>
        <input type="text" id="topic_tags" name="topic_tags" value="{$_aRequest.topic_tags}" class="input-text input-width-full autocomplete-tags-sep" />
        <small class="note">{$aLang.topic_create_tags_notice}</small></p>


Добавляете проверку для выведения этих строк в зависимости от типа контента.
0
Что-то долго я тупил, но не могу разобраться. Как правильно прописать проверку?
указал так, но это не правильно
{if $oType->topic_type('video')}
+1
{if $oType->getContentUrl()=='video'}
0
Спасибо большое. Теперь все работает на УРА
0
Что то у меня это не работает.
Пишет вот что
Call to a member function getContentUrl() on a non-object in
+1
{if $oTopic->getType!='my_new_content_type'}
Здесь выводим теги
{/if}
0
Ошибки нету, но все равно выводит в остальный типах
+1
Выложите полный кусок того кода, что у вас и название файла, в котором это делается
0
{if $oTopic->getType!='topic'}
код
{/if}


это я делаю в плагине топик превью field.intro_text-edit.tpl, что бы выводился только в типе topic
Отредактирован:
+1
Нашел сам решение:
{if $oContentType->getContentUrl()=='topic'}
код
{/if}
0
{if $oTopic->getType!='my_new_content_type'}
Андрей, вроди круглых скобок не хватает после getType — не? Может из-за этого у jangle
Ошибки нету, но все равно выводит в остальный типах
+2
Упс, забыл скобки, спасибо ). Отвечу чуть развёрнутее. Поступить можно двумя способами:

Способ 1. Создать собственный шаблон для каждого типа контента. Сейчас контент всех типов выводитмся через три шаблона:
topic.type_default-edit.tpl: шаблон страницы редактирования;
topic.type_default-list.tpl: шаблон элемента списка;
topic.type_default-show.tpl: шаблон страницы топика (контента);
Например, новый тип контента называется «preview», то можно скопировать эти шаблоны и в имени сменить «default» на «preview» что бы получилось так: topic.type_default-edit.tpl и т.д. Затем в этих шаблонах просто удалить вывод тегов. Получится что все типы контента будут выводится через шаблоны «default», а контент типа «preview» через свой специальный шаблон.

Способ 2. В каждом из этих шаблонов поставить проверку на тип при выводе тегов (на примере шаблона experience):
topic.type_default-edit.tpl в строке 98
{if $oContentType->getContentUrl()!='preview'}
    {include file="fields/field.tags-edit.tpl"}
{/if}

topic.type_default-list.tpl в строке 83
{if $oTopic->getType()!='preview'}
    {include file="fields/field.tags-show.tpl"}
{/if}

topic.type_default-show.tpl: в строке 161
{if $oTopic->getType()!='preview'}
    {include file="fields/field.tags-show.tpl"}
{/if}


Как вариант, если типов контентов, в которых не нужно выводить теги несколько, то можно делать проверку так (здесь 'preview', 'note' и 'other' — типы контента где НЕ нужно выводить теги):
{if !in_array($oTopic->getType(), ['preview', 'note', 'other'])}
    {include file="fields/field.tags-show.tpl"}
{/if}
Отредактирован:
0
Люди добрые, подскажите как решить задачу.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.