Перейти к содержанию

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


Solovei

Рекомендуемые сообщения

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

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

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

 

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

Изменено пользователем Solovei
Ссылка на комментарий
Поделиться на другие сайты

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

 

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


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

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

 

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

 

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

Изменено пользователем Viktar83
Ссылка на комментарий
Поделиться на другие сайты

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

post-10642-0-02571700-1424862677.jpg

Изменено пользователем Solovei
Ссылка на комментарий
Поделиться на другие сайты

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

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

А:

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

 

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

 

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

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

 

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

 

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

 

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


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

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

 

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

 

Б:

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

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

 

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

 

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

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

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

 

А:

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

 

Б:

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

 

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

Изменено пользователем Viktar83
Ссылка на комментарий
Поделиться на другие сайты

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

 

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

<if> ipb_member group = 2 </if>

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

 

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

Изменено пользователем Rebound
Ссылка на комментарий
Поделиться на другие сайты

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

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

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

 

---

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

Изменено пользователем Viktar83
Ссылка на комментарий
Поделиться на другие сайты

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

 

 

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

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

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

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

 

 

 

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

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

 

Ссылка на комментарий
Поделиться на другие сайты

Уже нашел.

 

Редактировать шаблоны --> темы --> 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 ). Всё работает.

 

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

 

---

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

Изменено пользователем Viktar83
Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...