Вопрос о доступе под кат

Уважаемое сообщество, помогите мне разобраться с таким вопросом. На моем сайте открытый режим работы, но я хотел бы простимулировать людей регистрироваться. Поэтому я хочу сделать некоторые ограничения для неавторизированных пользователей. Например, доступ под кат (т.е. к полному тексту топика) я хочу дать только зарегистрированным и авторизованным пользователям. Как это можно сделать?

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

avatar
topic.tpl
вставить условие {if $oUserCurrent}кусок кода с показом текста топика{/if}
  • xyz
  • +1
avatar
А поточнее можно? C примером.
avatar
Да куда уж тут поточнее. Оборачиваем код тега cut в условие, которое написал xyz. Получается код такого вида:
{if $oUserCurrent}
					{if $oTopic->getTextShort()!=$oTopic->getText()}
      					

( <a href="{$oTopic->getUrl()}" title="{$aLang.topic_read_more}">
      					{if $oTopic->getCutText()}
      						{$oTopic->getCutText()}
      					{else}
      						{$aLang.topic_read_more}
      					{/if}
      					</a> )
      				{/if}
                    {/if}

Но так как во внутрь новости можно зайди и через заголовок, то код заголовка статьи h1 меняем на такой вид:
<h1 class="title">
					{if $oUserCurrent}
                        <a href="{if $oTopic->getType()=='link'}{router page='link'}go/{$oTopic->getId()}/{else}{$oTopic->getUrl()}{/if}">{$oTopic->getTitle()|escape:'html'}</a>
                    {else}
                        {$oTopic->getTitle()|escape:'html'}
                    {/if}
				</h1>
avatar
Сделал так, как вы указали, при этом пропадает содержимое топика, только комментарии остаются. Что-то не так делаю, скорее всего. Нельзя ли выложить уже правильно правленный файл topic.tpl?
avatar
Спасибо всем вам за помощь! Пока я сделал так: в файле topic_list.tpl предложенный bamboo код я отредактировал следующим образом:

{if $oTopic->getTextShort()!=$oTopic->getText()}
   <li><img src="{cfg name='path.static.skin'}/images/more.png" width="26" /></li>   
   {if $oUserCurrent}
      <li><a href="{$oTopic->getUrl()}" title="{$aLang.topic_read_more}">{$aLang.topic_read_more}</a></li>
   {else}
      <li><a href="http://site.ru/login/">Войдите</a>, чтобы читать дальше</li>
   {/if}
{/if}

Таким образом, отсутствует ссылка «Читать дальше», если нету тега , а в случае, если он есть, ссылка на полную часть предоставляется только авторизованным пользователям.
Мне остается ещё убрать ссылку из заголовка для незарегистрированных пользователей. Тогда доступ к полным текстам и комментариям останется только у аудитории сайта
avatar
в topic.tpl так же надо сделать, а то умный юзер может ручками ссылку вбить
avatar
а у меня street spirit. я меняю в папке самого скина файл topic_list tpl, просто очищаю старый и пишу новый, результата 0))) ХЕЛП!!!
avatar
а есть ли какое-нибудь решение для того, что бы закрыть чтение всего текста топиков для какого-то заданного блога, а не для всех?
avatar
Как делали выше(только я бы предпочел делать условие в топике), но вместо проверки авторизованности пользователя проверять id блога с нужным вам. Костыльно и не гибко, но другого просто ручками и не получите.
avatar
Данную строку заменить на:
{if $bTopicList or $oTopic->getBlog()->getId() == 12345}
avatar
Ну и естественно во всех других типов топиков такое же провернуть. Все таки у каждого типа топика свой tpl'ка.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.