Jump to content

Скрыть комментарии на ipb

Featured Replies

Posted
comment_81225

Всем привет, ребят, довольно интересная затея.

Подскажите как можно скрыть комментарии в темах от гостей.

Буду очень благодарен! Очень нужно! у самого мозгов не хватает для реализации.

 

Главное что бы пс яд не реагировал на то что закрыты от гостей комменты и что бы в место комментов была табличка - зарегаться или что то типо того)))

Edited by Solovei

comment_81538

А первое сообщение в теме должен видеть?

 

ПС: нашёл в настройках группы только "запретить пользователям смотреть ВЕСЬ сайт" и в настройках прав отдельного форума "гости не могут читать темы" (но тогда Гость не видит списка тем)


ППС: вот это скорее всего попробуй:

forums.ibresource.ru/topic/65259-polzovatel-mozhet-prosmatrivat-tolko-svoiu/

 

А если гость должен видеть первое сообщение, но не видеть все остальные комментарии - это надо в шаблоне формирования поста ставить условие по id группы ( если не гость - показываем комментарии, если гость - выводим сообщение о регистрации ) и при этом назначить поисковым ботам группу пользователи, а не гость.

 

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

Edited by Viktar83

  • Author
comment_81863

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

post-10642-0-02571700-1424862677.jpg

Edited by Solovei

comment_81904

Странно, все открывает. Вкратце: настройки как скрыть темы от гостей но оставить возможность гостям просматривать список тем.

Может, кому пригодиться:

А:

Хочу сделать такое: Пользователь может просматривать только свою тему

 

Я так понял, чтобы сделать такую фичу есть в форуме 2 функции:

 

1) Разрешить авторам просматривать темы других пользователей (да/нет)

тут все понятно, если "да", то пользователь будет просматривать только свою тему, других тем не будет видно.

 

2) Разрешить пользователям видеть названия тем в списке, но запретить им просмотр содержимого этих тем? (да/нет)

 

Вот это как раз мне надо! Т.е. я так понял: пользователь видит все темы в форуме, но просматривать может только свою. (или определенную тему). 

 

Но почему-то это функция не работает. Или объясните мне как она вообще работает? И как мне сделать так как я хочу? Спасибо. 


По идее как правильно получается:

Если отключить "Разрешить авторам просматривать темы других пользователей", и включить "Разрешить пользователям видеть названия тем в списке, но запретить им просмотр содержимого этих тем?", то пользователь видит все темы пользователей, а просматривать может только свою тему.

 

Если отключить "Разрешить авторам просматривать темы других пользователей", и отключить "Разрешить пользователям видеть названия тем в списке, но запретить им просмотр содержимого этих тем?", то пользователь видит и просматривает только свои темы.

 

Б:

1."Разрешить пользователям видеть названия тем в списке, но запретить им просмотр содержимого этих тем?"

Если это выключено, то при правах на форум, но отсутствии прав на просмотр темы, пользователь не сможет войти в форум. В том числе и своих.

 

2."Разрешить авторам просматривать темы других пользователей"
Исключает из списка чужие темы. Работает независимо от предыдущей настройки. Но она именно исключает чужие, а не включает свои. Т.е. при прочих настройках и правах, разрешающих пользователю просмотр тем в форуме, отключение этой настройки запретит просмотр чужих тем. 

 

Получается при отсутствии прав на чтение тем картина такая:
1.откл 2 не важно - ошибка при входе в раздел
1.вкл 2.откл - в разделе пользователь видит только свою тему, при входе  видит ошибку доступа
1.вкл 2.вкл - в разделе видны все темы, но при входе в тему ошибка
 

При наличии прав на чтение тем:
1.не важно 2. откл - видны только свои темы, можно читать. Чужие темы не видны и недоступны по прямой ссылке.

1.не важно 2. вкл - видны все темы, во все можно войти

 

А:

Другими словами настройка 1 должна быть включена при отсутствии прав и неважна при наличии? Полезная получается настройка.

 

Б:

Если настройка 1 выключена, пользователь заходит в форум и видит ошибку, но при этом сам форум в списке форумов он видит. Надо еще посмотреть, что будет, если есть подфорумы, может и их юзер увидит. Но настройку я бы переназвал - "Разрешить пользователям просматривать список тем при отсутствии прав на чтение самих тем" 

 

Но если, как Вы говорите, видеть только первое сообщение - можно написать хук или захардкорить небольшой код в шаблон

Edited by Viktar83

comment_81905
Но если, как Вы говорите, видеть только первое сообщение - можно написать хук или захардкорить небольшой код в шаблон

 

Как-то так надо нахардкодить:

<if> ipb_member group = 2 </if>

Чтобы это давало display:none;

 

Тем самым код будет виден поисковикам, но не будет виден обычным гостям (пользователям)

Edited by Rebound

comment_81907

Тогда уж вот так:

<if test="$this->memberData['member_group_id'] == 2">

А с display:none; интересная идея, сейчас подумаю...

 

---

В принципе, не сложно, но я не пойму , как мне первое сообщение вычленить

Edited by Viktar83

comment_81918

_community.invisionpower.com/files/file/5723-hide-posts

 

 

Тоже на этом завис.

Странно слышать это от человека, который:

- в свое время искал уязвимости в ipb;

- пишет свои движки с нуля.

 

 

 

В принципе, не сложно, но я не пойму , как мне первое сообщение вычленить

А где ищите этот первый пост?

 

comment_81919

Уже нашел.

 

Редактировать шаблоны --> темы --> post:

 

найти:

<div class='post_wrap' <if test="isNotIgnoring:|:$post['post']['_ignored'] == 1 || $post['post']['_repignored'] == 1">style='display: none'</if>>

заменить на:

<div class='post_wrap' <if test="isNotIgnoring:|:$post['post']['_ignored'] == 1 || $post['post']['_repignored'] == 1 || ($this->memberData['member_group_id'] == 2 && $post['post']['post_count'] != 1 )">style='display: none'</if>>

Т.е. я дописал условие: если "гость" ( $this->memberData['member_group_id'] == 2 ) и "сообщение не первое в теме" ( $post['post']['post_count'] != 1 ). Всё работает.

 

Конечно, оно просто прячет сообщения, а нам нужно вывести текст с сообщением о необходимости регистрации для просмотра комментариев. Ну тут уже немного по другому надо поколдовать ).

 

---

ПС: за хук спасибо ). Это лучший вариант решения вопроса

Edited by Viktar83

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.


Guest
Ответить в этой теме...

Последние посетители 0

  • No registered users viewing this page.