Разный текст материала для зарегестрированных и для незарегестрированных пользователей

голоса: +2
Есть запись в блоге. Как сделать, чтобы для зарегистрированных пользователей выдавалась одна информация в тексте записи, а для не зарегистрированных - другая? Т.е. основной текст записи будет доступен всем, а каккой-то определённый абзац, часть текста только зарегистрированным?
Адрес сайта http://allroxette.ru/blog/
| Автор: | Категория: Блог (дневник)

Ответов: 2

голоса: +3
 
Лучший ответ
<?if($USER_LOGGED_IN$)?>тут текст только для зарегестрированных<?endif?>
| Автор:
Выбор ответа лучшим | | Автор: Администратор сайта
К сожалению, код <?if($USER_LOGGED_IN$)?> в тексте записи не работает. Уже пробовал - он выводит информацию, не зависимо от того зарегистрирован или нет.
Код <?if($USER_LOGGED_IN$)?> работает у меня в правом верхнем углу - если человек не зарегистрирован, то показывает "регистрация" и "вход", если зарегистрирован - то "профиль" и "выход".
В тексте самой записс блога это не работает.
Условие будет работать только в режиме html редактора при написании текста блога.
Да, всё так и делаю. Например, в конце текста записи пишу:
<?if($USER_LOGGED_IN$)?>1 - зарегистрирован<?else?>2 - не зарегистрирован<?endif?>
В результате должно получиться: если пользователь зарегистрирован, то показывается "1 - зарегистрирован", а если гость, то "2 - не зарегистрирован"
А у нас получается: 1 - зарегистрирован2 - не зарегистрирован
Ссылка на запись (текст в конце записи, перед блоком тегов):
http://allroxette.ru/blog/roxette_na_youtube/2015-03-20-260
А зачем вы закоментировали условие?
<!--?if($USER_LOGGED_IN$)?-->
1 - зарегистрирован
<!--?else?-->
2 - не зарегистрирован
<!--?endif?-->
В смысле закоментировал?
Если вставить этот код в текст записи, то должно в конце записи для зарегистрированных показываться "1 - зарегистрирован", а для не зарегистрированных - "2 - не зарегистрирован"
Но этот код не работает, показвается "1 - зарегистрирован2 - не зарегистрирован" не зависимо от того зарегестрирован пользователь или нет

Вот эти символы не нужны

<!--?if($USER_LOGGED_IN$)?-->
1 - зарегистрирован
<!--?else?-->
2 - не зарегистрирован
<!--?endif?-->

Так у меня этих символов и нет в коде. Вот полный html-код записи в блоге:
<strong>Пер Гессле</strong> и <strong>Мари Фредрикссон</strong> приглашают всех на свой <a href="http://www.youtube.com/user/roxetteofficial/" target="_blank">канал на YouTube</a>. Подписывайтесь и смотрите видео!<br />
<iframe width="830" height="467" src="https://www.youtube.com/embed/QpjJ9JTMov4?rel=0" frameborder="0" allowfullscreen></iframe>
<?if($USER_LOGGED_IN$)?>1 - зарегистрирован<?else?>2 - не зарегистрирован<?endif?>
Действительно, сист. переменная не хочет работать, но можно схитрить...
В "страница материала и комментариев к нему" перед кодом $MESSAGE$ вставляем такое условие
<?if($USER_LOGGED_IN$)?><?else?><style>.hide{display:none;}</style><?endif?>
далее при написании статьи в режиме html перед текстом для не зарегистрированных ставим это <span class="hide">тут текст</span>.
голоса: 0
Нельзя использовать условные операторы в материалах.

Для решения вашего вопроса можно воспользоваться не стандартным решением:

Используйте для вывода "скрытой" информации дополнительное поле/поля.

При этом в шаблоне материала, уже используя код $USER_LOGGED_IN$ - скрывайте информацию из поля от незарегистрированных.

Есть свои минусы, но вариант надёжный.
| Автор:
Спасибо, Роман! Жаль, что в материалах использовать условные операторы нельзя. Хотя не понимаю в чём проблема. Можно же использовать, например, $IMAGE$. Почему другие коды нельзя использовать - не понятно.
Думал уже применить доп.поля, но там тоже ограничение: размер текста в доп.поле ограничен, можно написать несколько слов, но абзац уже не влезает. Не хватает ещё доп.поля типа краткого описания
...