Уважаемые пользователи, по техническим причинам загрузка файлов временно недоступна. Приносим извинения за временные неудобства.

Запретить посылать личку юзерам, не имеющим к ней доступа

У вас есть идея для расширения функциональности phpBB 3.0.x? Расскажите о ней здесь!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Bortmehanik
phpBB 1.4.2
Сообщения: 56
Стаж: 12 лет 6 месяцев
Откуда: Торонто
Благодарил (а): 16 раз
Поблагодарили: 5 раз

Запретить посылать личку юзерам, не имеющим к ней доступа

Сообщение Bortmehanik »

Закрыл юзерам из группы "Новые пользователи" доступ к личке. Но у них при этом почему-то НЕ исчезли кнопка "ЛС" под аватарой и линк "Послать личное сообщение в профиле. Т.е. послать им личку физически можно, но прочитать они её не смогут (вместо этого им будет показана надпись "У вас нет доступа к чтению личных сообщений").

Нужен мод, делающий невозможной посылку личных сообщения юзерам, которые не смогут их прочитать. Т.е. чтоб у них вообще не было кнопки "ЛС" под аватарой и линка "Послать личное сообщение в профиле. А ещё лучше чтоб эти кнопка и линк были, но при попытке создать сообщение чтоб высвечивался мессидж "Этот пользователь не может получать личные сообщения т.к. ещё не создал 100 сообщений".

Спасибо!
Аватара пользователя
xisp
phpBB 3.0.0 RC7
Сообщения: 1798
Стаж: 14 лет 5 месяцев
Благодарил (а): 152 раза
Поблагодарили: 215 раз
Забанен: Бессрочно

Re: Запретить посылать личку юзерам, не имеющим к ней доступ

Сообщение xisp »

Bortmehanik писал(а):"Этот пользователь не может получать личные сообщения т.к. ещё не создал 100 сообщений".
Лучше без цифры, так как не везде 100, и не везде есть автоперевод по числу сообщений. Некоторые и вручную могут открывать доступ к личке.
А так хорошая, годная идея. Поддерживаю.
phpBBex
Аватара пользователя
Bortmehanik
phpBB 1.4.2
Сообщения: 56
Стаж: 12 лет 6 месяцев
Откуда: Торонто
Благодарил (а): 16 раз
Поблагодарили: 5 раз

Re: Запретить посылать личку юзерам, не имеющим к ней доступ

Сообщение Bortmehanik »

Можно "Этот пользователь новый и ещё не может получать личные сообщения". Ну, это не суть важно - каждый может написать как ему по душе.
Аватара пользователя
xisp
phpBB 3.0.0 RC7
Сообщения: 1798
Стаж: 14 лет 5 месяцев
Благодарил (а): 152 раза
Поблагодарили: 215 раз
Забанен: Бессрочно

Re: Запретить посылать личку юзерам, не имеющим к ней доступ

Сообщение xisp »

Bortmehanik писал(а):Можно "Этот пользователь новый и ещё не может получать личные сообщения"
А если я разрешу только группе "Доверенные"?
Bortmehanik писал(а):Ну, это не суть важно - каждый может написать как ему по душе.
Это да, но лучше делать универсально.
phpBBex
Аватара пользователя
Bortmehanik
phpBB 1.4.2
Сообщения: 56
Стаж: 12 лет 6 месяцев
Откуда: Торонто
Благодарил (а): 16 раз
Поблагодарили: 5 раз

Re: Запретить посылать личку юзерам, не имеющим к ней доступ

Сообщение Bortmehanik »

Можно ли во viewtopic_body.html (в цикле, который создаёт постинги) определить принадлижит ли автор постинга к определённой группе? Если эту задачу решить, то взять кнопку "PM" под условие не составит труда.
Аватара пользователя
Bortmehanik
phpBB 1.4.2
Сообщения: 56
Стаж: 12 лет 6 месяцев
Откуда: Торонто
Благодарил (а): 16 раз
Поблагодарили: 5 раз

Re: Запретить посылать личку юзерам, не имеющим к ней доступ

Сообщение Bortmehanik »

В общем, решение найдено - сразу говорю, что кривоватое, но работает - и слава богу, а то у меня на форуме уже началось: "Я послала вам личку!" - "У меня нет доступа!"... (если кто предложит лучшее решение - спасибо!). Основано оно на принадлежности не к группе, а к форумному званию (которое, к счастью, имеется в виде переменной postrow.RANK_TITLE в цикле, рисующем посты темы).

У меня личка закрыта для новичков, ещё не оставивших 100 сообщений, поэтому я создал форумное звание "Новичок", которое заменяется на другое по достижении 100 постов. Если вы используете несколько ступеней званий (например, до 10 постов, затем до 50, затем до 100), то замените условие "IF postrow.RANK_TITLE == 'Новичок'" на более сложное, соединяя условия для званий через OR.

Я решил не скрывать кнопку, а при нажатии оной показывать пользователям сообщение, объясняющее ситуацию - чтобы в будущем избежать шквала вопросов "Ой, а где кнопка ЛС?".

В общем, действия таковы:

1. Открыть viewtopic_body.html.

2. Найти

Код: Выделить всё

<a href="{postrow.U_PM}" title="{L_PRIVATE_MESSAGE}"><span>{L_PRIVATE_MESSAGE}</span></a>
3. Заменить найденный фрагмент на следующий:

Код: Выделить всё

<a href="{postrow.U_PM}" <!-- IF postrow.RANK_TITLE == 'Новичок' -->onclick="alert('Этому пользователю нельзя посылать личные сообщения т.к. он ещё не создал на форуме 100 постов и поэтому не имеет доступа к личке.'); return false;"<!-- ENDIF --> title="{L_PRIVATE_MESSAGE}"><span>{L_PRIVATE_MESSAGE}</span></a>
4. Открыть memberlist_view.html (это нужно чтоб предотвратить посылание лички новичку из его профиля).

5. Найти

Код: Выделить всё

<a href="{U_PM}">{L_SEND_PRIVATE_MESSAGE}</a>
6. Заменить найденный фрагмент на следующий:

Код: Выделить всё

<a href="{U_PM}" <!-- IF RANK_TITLE == 'Новичок' -->onclick="alert('Этому пользователю нельзя посылать личные сообщения т.к. он ещё не создал на форуме 100 постов и поэтому не имеет доступа к личке.'); return false;"<!-- ENDIF -->>{L_SEND_PRIVATE_MESSAGE}</a>
Меня вполне устраивает вписывание текста сообщения в код (т.е. язык на форуме только русский, и стиль только один), но если кто-то создаст переменную (заполняемую значением в языковом файле) - будет более качественно (я, честно говоря, просто боюсь лезть в эту область).

Конечно, всё это не 100-процентная преграда т.к. ничто не мешает ручками состряпать урлу "<адрес форума>/ucp.php?i=pm&mode=compose&u=<номер пользователя>", но, думаю вполне достаточная (вряд-ли кто-то захочет посылать личку зная, что её не смогут прочесть).
Последний раз редактировалось Bortmehanik 10.05.2014 2:06, всего редактировалось 1 раз.
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11372
Стаж: 16 лет 9 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

Re: Запретить посылать личку юзерам, не имеющим к ней доступ

Сообщение Пчелкин »

Плюсанул за старание и найденный выход, но языковые переменные всеж надо... Не айс в коде прописывать фразы...
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70
Аватара пользователя
Bortmehanik
phpBB 1.4.2
Сообщения: 56
Стаж: 12 лет 6 месяцев
Откуда: Торонто
Благодарил (а): 16 раз
Поблагодарили: 5 раз

Re: Запретить посылать личку юзерам, не имеющим к ней доступ

Сообщение Bortmehanik »

Собсна, идею подсказали здесь, я лишь подогнал под свои нужды.
Аватара пользователя
xisp
phpBB 3.0.0 RC7
Сообщения: 1798
Стаж: 14 лет 5 месяцев
Благодарил (а): 152 раза
Поблагодарили: 215 раз
Забанен: Бессрочно

Re: Запретить посылать личку юзерам, не имеющим к ней доступ

Сообщение xisp »

Bortmehanik писал(а):В общем, решение найдено - сразу говорю, что кривоватое,
Можно попытаться допилить. С такой сторон я как- то и не подумал. Сегодня- завтра поэкспериментирую, может, найду что понадёжнее и универсальнее.
phpBBex

Вернуться в «Запросы модов для phpBB 3.0.x»