Как пользователь, я не хочу знать о существовании участника Х. Добавляю его в список игнорируемых. Ожидаю, что форум станет выглядеть так, будто участника Х никогда не существовало.
Ранее факт существования игнорируемых аккаунтов можно было заметить только если их цитировали другие участники форума. Сейчас я вижу пустые плашки сообщений ингорируемых пользователей, но без тела. Сейчас это выглядит как баг, типа нулевое visibility не убирает сообщение из списка, а только отключает отображение тела. Если это не баг, а фича, то она токсичная 😃
Если полностью скрывать, возникает слишком много скользких моментов. Отображение последнего автора в теме, пометки тем непрочитанными, выборки для трекера и т.п.
Поэтому сейчас сделано иначе:
Игнорируемый не сможет писать в диалог.
Не будет уведомлений на почту при ответе на ваш пост.
Контент показывается в свернутом виде.
Полностью скрыть, сохранив везде целостность и не превращая код в ад, не получится. Поэтому такой компромиссный вариант.
Спасибо за ответ.
Имхо, если сделать исключение только для сценария “отображение сообщений в теме” - уже станет лучше. Ну, чтоб их невидно было именно при отображении темы. Если при этом не обрабатывать краевые случаи типа типа “последнее сообщение в теме” - ок, всё равно это лучше, т.к это менее частый сценарий.
Сам во фронте не силён, код не видел, насколько это реально реализовать - не знаю. Просто набрасываю, как юзер.
Пробовали уже делать полное выпиливание, чесное пионерское. Там от месяца к месяцу становилось грустнее и грустнее. В итоге, когда вылезли очередные пропущенные краевые условия, решили плюнуть и выпилить нахрен.
С точки зрения пользователя:
С тем же “отображением последнего” - если на это положить, то потом мне в суппорт полетят вопросы, “а почему в теме ничего нет, но она подсвечивается как новая?”.
Или вот на старом форуме, заигнорили кучу людей, заходите на страницу, а она пустая. Особенно на последней шаблон рвет.
Или когда тему создал заигноренный юзер, если первый пост убрать, то бред получится.
Сам во фронте не силён, код не видел, насколько это реально реализовать - не знаю. Просто набрасываю, как юзер.
Всё правильно делаете. Это первый этап - предварительная постановка задачи. Следующий этап - проработка деталей, и корректировка начальных условий (при необходимости).
Вот я пытаюсь объяснить, что “очевидные на первый взгляд” вещи при проработке могут посыпаться, вплоть до фатальных нестыковок. Конкретно игноры с полным скрытием - посыпались. Пришлось химичить с начальными условиями (делать скрытие не полным).
Короче, прошу “понять и простить” (с). Я не знаю как сделать лучше без серьезных побочных эффектов. И я пользовался phpbb, где игноры сделаны аналогично. По личным ощущениям - не идеал, но вполне приемлимо.
{"assets_hash":"a8b26fa7f6e768b07a72c8c9aadb9422","page_data":{"users":{"39c21abc3df9550077797d18":{"_id":"39c21abc3df9550077797d18","hid":349,"name":"Vitaly","nick":"Vitaly","avatar_id":null,"css":""},"3fa272503df9550077795a19":{"_id":"3fa272503df9550077795a19","hid":2392,"name":"dron=","nick":"dron=","avatar_id":null,"css":""}},"settings":{"can_see_ip":false,"can_report_abuse":false,"can_see_hellbanned":false,"forum_can_view":true,"forum_can_reply":false,"forum_edit_max_time":30,"forum_can_close_topic":false,"forum_show_ignored":false,"forum_mod_can_delete_topics":false,"forum_mod_can_hard_delete_topics":false,"forum_mod_can_see_hard_deleted_topics":false,"forum_mod_can_edit_posts":false,"forum_mod_can_pin_topic":false,"forum_mod_can_edit_titles":false,"forum_mod_can_close_topic":false,"can_vote":false,"forum_mod_can_add_infractions":false,"forum_topic_title_min_length":10,"forum_reply_old_post_threshold":30,"votes_add_max_time":168,"forum_show_post_interval":7,"can_see_deleted_users":false},"section":{"_id":"61c9a54c3df9550077bb511a","hid":49,"title":"Пыльный чулан","parent":"61c9a54c3df9550077bb50c6","description":"Решенные вопросы / потерявшие актуальность / то чем никто не собирается заниматься / что накрылось медным тазом. Для истории.","is_category":false,"is_votable":true,"is_writable":false,"cache":{"topic_count":1150,"post_count":9668,"last_post":"63b9a721563b07d603ea9a67","last_topic":"63b558ee5050bcde79aafb48","last_topic_hid":571698,"last_topic_title":"Не могу отредактировать пост в блоге","last_ts":"2023-01-07T17:08:49.356Z","last_user":"3bc09af03df9550077797e57"}},"topic":{"_id":"61d5c5e05098d90098d624bc","hid":570548,"title":"Логика отображения сообщений игнорируемых пользователей","views_count":708,"last_post_counter":4,"cache":{"post_count":4,"first_post":"61d5c5e05098d90098d624bd","first_ts":"2022-01-05T16:22:56.338Z","first_user":"3fa272503df9550077795a19","last_post":"61d744597689dc008b88e764","last_ts":"2022-01-06T19:34:49.402Z","last_post_hid":4,"last_user":"39c21abc3df9550077797d18"},"st":1,"section":"61c9a54c3df9550077bb511a"},"subscription":null,"pagination":{"total":4,"per_page":25,"chunk_offset":0},"posts_list_before_post":["paginator","datediff"]},"locale":"en-US","user_id":"000000000000000000000000","user_hid":0,"user_name":"","user_nick":"","user_avatar":null,"is_member":false,"settings":{"can_access_acp":false,"can_use_dialogs":false,"hide_heavy_content":false},"unread_dialogs":false,"footer":{"rules":{"to":"common.rules"},"contacts":{"to":"rco-nodeca.contacts"}},"navbar":{"tracker":{"to":"users.tracker","autoselect":false,"priority":10},"forum":{"to":"forum.index"},"blogs":{"to":"blogs.index"},"clubs":{"to":"clubs.index"},"market":{"to":"market.index.buy"}},"recaptcha":{"public_key":"6LcyTs0dAAAAADW_1wxPfl0IHuXxBG7vMSSX26Z4"},"layout":"common.layout"}
We use cookies and web analytics services. By continuing to use our
website, you consent to the use of cookies or similar technologies on
this website, including third-party statistics and web analytics services,
which may in some cases collect and process information about your visit
and activity. To find out more, see rules of this website.