VBsupport перешел с домена .ORG на родной .RU
Ура!
Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей
Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже: Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота. Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
Есть 2 юзера - Вася и Петя. Вася хочет читать посты Пети, но не хочет, чтобы Петя видел посты Васи.
Соответственно, нужен хак, который поможет Васе добавить себя в игнор Пете. Причем игнор должен быть удаляем только по желанию Васи.
Есть ли такой хак в природе и если нет, то возьмется ли кто-нибудь за его создание?
дефолтная система игнора воблы - это туча проверок по всему форуму, во всех скриптах, где есть текстовые записи (посты, сообщения профиля, соц. группы, ЛС...)
система плотно интегрирована в движок
есть свои таблицы в БД
==
теперь... нужно написать тоже самое, с точностью до наоборот
все те же проверки, по всему движку, только со своими условиями
+ к этому еще и интерфейс добавления "Васи в игнор к Пете"
хак будет довольно сложный, и как следствие не дешевый
==
просьба, не воспринимать мой пост, как желание взяться за написание продукта
это просто размышлизмы... =)
@vlady
Эксперт
Join Date: Nov 2007
Location: Столица нашей родины
Награды в конкурсах:
Posts: 649
Версия vB: 3.8.x
Reputation:
Professional 675
Репутация в разделе: 50
0
kerk, я не кодер, но с т.з. логики мне кажется, что задача довольно несложная.
1) Когда Вася указывает нежелательных юзеров, каждому такому юзеру Вася прописывается в стандартный вобловский игнор-лист. Одновременно с этим, нежелательный пользователь добавляется Васе в список "нежелательных" - т.е. тех, кто должен его игнорировать (т.е. создаем запись с ID Васи в поле unwanted_users в forum_user).
2) Когда Петя лезет в свой список игнорируемых, проверяем, не отмечен ли в unwanted_users у игнорируемых Петей юзеров Петя, как нежелательный. Не отмечен - выводим юзера в список. Отмечен - не выводим.
В результате, Петя просто не будет видеть у себя в игноре тех, кто отметил его, как нежелательного. А игнорирование будет осуществляться стандартными средствами воблы.
Таким образом, написание хака сводится к 2-м пунктам.
1) создание интерфейса "нежелательные пользователи" по образу "игнорируемые пользователи"
2) создание фильтра для вывода игнориуемых пользователей.
Мне кажется, что всё просто. Или это только кажется? ))
Last edited by vlady : 08-20-2012 at 04:55 AM.
kerk
k0t
Join Date: May 2005
Location: localhost
Posts: 28,711
Версия vB: 3.8.x
Пол:
Reputation:
Гуру 20257
Репутация в разделе: 7723
0
конкретно этот момент специально не отслеживал, но ковыряясь в файлах воблы, постоянно наталкиваюсь на код проверок игнора
хз, нужно отследить логику во всем скрипте, понять основу, потом можно что то говорить конкретно =)
@bafoed
Простоузер
Join Date: Jul 2009
Posts: 20
Версия vB: 1.x.x
Reputation:
Novice 0
Репутация в разделе: 0
0
Вообщем-то вроде ничего сложного, таблица unwanted_users с структурой user_id | unwanted_user.
Потом хукать нужный запрос MySQL (например на вывод топика) и добавлять к нему что-то типа WHERE `user_id` NOT IN (SELECT `unwanted_user` FROM `unwanted_users` WHERE `user_id`='$ID_ТЕКУЩЕГО_ЮЗЕРА')
А какже призумция? Мне кажется Если Петя игнорит Васю, то Вася должен об этом узнать в каком либо сообщении. Лояльность не кому еще не мешало. В таком случае и Вася видя что его игнорят, может запретить читать себя. Ну смысл понятен.
@vlady
Эксперт
Join Date: Nov 2007
Location: Столица нашей родины
Награды в конкурсах:
Posts: 649
Версия vB: 3.8.x
Reputation:
Professional 675
Репутация в разделе: 50
0
Quote:
Originally Posted by artscripts
А какже призумция? Мне кажется Если Петя игнорит Васю, то Вася должен об этом узнать в каком либо сообщении.
artscripts, а сейчас ведь тоже нигде не отображается список пользователей, у которых ты находишься в игноре.
@netwind
Гуру
Join Date: Aug 2005
Location: Рiдна Олбанея
Posts: 3,844
Версия vB: 3.8.x
Reputation:
Гуру 1227
Репутация в разделе: 139
0
Quote:
Originally Posted by bafoed
Потом хукать нужный запрос MySQL
так в vb нет ненужных запросов. хукать придется почти все. Это еще не принимая во внимание насколько испортятся планы запросов после модификации.
Я бы попробовал модифицировать на ходу список идентификаторов для глобального игнора. Это просто опция движка, хранится в переменной и можно имитировать ее изменение для каждой страницы в зависимости от того кто ее загружает. Код обработки такого игнора уже написан и (почти) не приходится сомневаться в его правильности.
@GoDaddy
Человек и пароход
Join Date: Aug 2009
Награды в конкурсах:
Posts: 2,376
Версия vB: 3.8.x
Пол:
Reputation:
Expert 1517
Репутация в разделе: 409
0
Прошу прощения за вопрос: что будет, если юзера игнорят 20 человек а у него 5-10 тыщь постов?
@vlady
Эксперт
Join Date: Nov 2007
Location: Столица нашей родины
Награды в конкурсах:
Posts: 649
Версия vB: 3.8.x
Reputation:
Professional 675
Репутация в разделе: 50
0
GoDaddy, стандартная функция игнорирования как-то же справляется.