Скрыть ссылку или текст в статьях от незарегистрированных пользователей

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО

Нужно скрыть от незарегистрированных пользователей текст в статье!

#1 19 марта 2013 в 22:16
Добрый день всем участникам сообщества!
Столкнулся с проблемой, которая многократно поднималась на форумах, но решения я так и не нашел!
Как известно, в статьях тэги [hide] не работают.
Существует ли способ подобным образом скрывать текст в статьях?
Возможно облегчу задачу (но возможно и усложню) — я пользуюсь фильтром {СКАЧАТЬ=...} — в идеале — изменить его так, чтобы ссылка показывалась только зарегистрированным пользователям!
Ну в принципе также интересует и более общее решение!
Двиг — 1.9
Заранее всем признателен!
#2 20 марта 2013 в 12:30
Можно также привязать к группам
#3 20 марта 2013 в 12:39
Александр Корн, встречал подобное на ранние версии системы — кажется в блогах…
#4 20 марта 2013 в 12:44
Madmax, находил много на форумах но не нашел решения. Если попадется решеник — киньте пожалуйста ссылку
#5 20 марта 2013 в 13:31
Незнаю на сколько правильно, но примерно полагаю так
В файле /filters/f_filelink/filter.php
есть строчка
  1. $link .= '<td width=""><a href="/load/url='.$file.'" alt="Скачать">'.basename($file).'</a></td>';
Нужно ограничить на примере наверное этого кода, но не для админа а для зарегистрированного
  1.  
  2. if (!$inUser->id){
  3. <td width="">Скрытый текст могут видеть только зарегистрированные пользователи</td>
  4. else {
  5. $link .= '<td width=""><a href="/load/url='.$file.'" alt="Скачать">'.basename($file).'</a></td>';
  6. }
  7.  
С кодом коенчно накосячил, ну так я не спец, подправить нужно вывод
#6 20 марта 2013 в 15:23
Clear, Я как то так и хотел сделать, но не нашел подобного примера в котором что то скрывается от незарегистрированных пользователей
#7 20 марта 2013 в 21:52
Условие проверки незарегистрированных пользователей
  1. if (!$inUser->id) { ... }
Правильно? Почему то срабатывает на всех пользователей!
#8 20 марта 2013 в 22:46
Кодеры! Подскажите пожалуйста!
#9 21 марта 2013 в 06:03


Кодеры! Подскажите пожалуйста!

Александр Корн

добавьте
  1. $inUser = cmsUser::getInstance();
если
  1. if (file_exists($filefull)){
выполняется

т.е
  1.  
  2. if (file_exists($filefull)){
  3. $inUser = cmsUser::getInstance();
  4. ...
  5. }
  6. else{
  7. ...
  8. }
  9.  
#10 21 марта 2013 в 06:42
kir, огромное спасибо! Не понял, что Вы написали, но увидел, что я забыл очень важную строчку

добавьте
Код PHP:
$inUser = cmsUser::getInstance();

kir
Вставил и все заработало как надо!
#11 21 марта 2013 в 06:43
Madmax, Clear, kir, ОГРОМНОЕ ВАМ СПАСИБО!
#12 21 марта 2013 в 06:54
Итак… Конечное решение...
Открываем /filters/f_filelink/filter.php
После строки
$inCore = cmsCore::getInstance();
Вставляем
$inUser = cmsUser::getInstance();
Затем перед строкой
return $link;
Вставляем
if (!$inUser->id) { $link ='<div class="bb_tag_hide">Скачивание файлов доступно только <a href="/registration">зарегистрированным</a> пользователям</div>'; }

Теперь все файлы, оформленные в виде {СКАЧАТЬ=file} будут доступны для скачивания только зарегистрированным пользователям!
Всем спасибо, тема закрыта!

PS: Возможно имеет смысл это оформить в виде блога, потому что встречал много незакрытых тем на форуме на подобные темы! Если кто-то считает также, пишите в личку или можете сами это сделать!
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.