Запрет на просмотр изображений незарегистрированным пользователям

#1 27 июля 2012 в 11:43
Может кто знает как это реализовать (НА ФОРУМЕ)? чтобы показывался текст: Войдите или зарегистрируйтесь для просмтра изображений (там где стоит изображение)
Штука нужная вообщем-то, по себе знаю, что рано или поздно приводит к регистрации пользователя laugh
#2 27 июля 2012 в 12:30
Присоединяюсь, очень полезная вещь, принуждающая людей регистрироваться и из читателей, превращаться в участников форума.
#3 27 июля 2012 в 14:39
в форумском фронтенде можно обработать поле content из cms_forum_posts в которой содержится текст поста. Переменная $p['content']
Чтобы не показывать картинки не авторизованным юзерам можно, например, заменить в ней
  1. [IMG]***[/IMG]
на
  1. [IMG]/images/nopick.jpg[/IMG]
Ну само собой, делать это нужно при условии что $inUser->id == 0
#4 27 июля 2012 в 18:47
Ленивый, спасибо, но немного не то. будет очень некрасиво, если в теме допустим много изображений и вместо них загрузится много нопиков "nopick.jpg", лучше, если в каждом посте, где изображения есть будет прописываться строчка Войдите или зарегистрируйтесь для просмотра изображений, ведущая на авторизацию и регистрацию
#5 27 июля 2012 в 19:46
в этом случае надо заменять
  1. [IMG]***[/IMG]
на пустой символ, при этом считая, сколько замен было сделано. А после проверка: если кол-во замен > 0 то вставляем в начало поста

Войдите или зарегистрируйтесь для просмотра изображений

Female
Ну или в конец — это уже по вкусу!
#6 27 июля 2012 в 19:47
Ленивый, а можно подробнее? что куда и как angel
#7 28 июля 2012 в 15:29

Ленивый, а можно подробнее? что куда и как

Female
Сегодня по расписанию ЛЕТО-речка-загорать-речка-речка-перекус-передых-речка-позагорать…
:)
Завтра будет поподробнее
#8 28 июля 2012 в 18:48
давайте тогда в понедельник! потому что завтра воскресенье и тоже лето)))а с рабочих дней приступим))я буду очень вас ждать)))
#9 31 июля 2012 в 06:37
Female, нашёл тему в закладках. Ещё актуально или справились уже??
#10 1 августа 2012 в 05:08
актуально конечно))
#11 1 августа 2012 в 18:37
Привет,… (как зовут? smile)

попробуйте в форумский фронтенд, со строки 597
то есть МЕЖДУ
echo '</td></tr></table>';
и
echo '<div class="post_content">'.$p['content'].'</div>';

ВСТАВИТЬ:

  1. if($inUser->id > 0){
  2. $dlina1=strlen($p['content']);
  3. $p['content'] = preg_replace('~[IMG].*?[/IMG]~is','',$p['content']);
  4. $p['content'] = str_replace('Изображение уменьшено. Щелкните, чтобы увидеть оригинал.','',$p['content']);
  5. $dlina2=strlen($p['content']);
  6. if($dlina2<$dlina1){$p['content']='<b>Зарегистрируйтесь для просмотра картинок</b><br>'.$p['content'];}
  7. }

И посмотрите, что получится.
(СМОТРЕТЬ гостем)
#12 1 августа 2012 в 18:38
допускаю, что это можно сделать более изящным способом, но мне уже было Лень копаться!!!
laugh
#13 3 августа 2012 в 10:18
Ленивый, спасибо огромное за помощь! пока не пробовала, но надеюсь то что нужно
#14 5 августа 2012 в 09:45
не работает((((
#15 5 августа 2012 в 10:44

не работает((((

Female

)))))
не знаю как так получилось —
if($inUser->id > 0){
ИСПРАВИТЬ НА
if(!$inUser->id > 0){
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.