1 (edited by PunBB 2018.03.20 16:44)

Topic: Способы хранения данных о непрочитанных сообщениях

Какой способ хранения данных о новых непрочитанных сообщениях вы считаете самым удобным и эффективным?

Какие есть предложения для будущей версии?

2

Re: Способы хранения данных о непрочитанных сообщениях

https://punbb.softplaza.net/uploads/images/2018/03/927e8c4c22d66fb432f3b72b8506219c.jpg

3

Re: Способы хранения данных о непрочитанных сообщениях

В принципе, то что оно отмечается жирно выделенным на это особого внимания никто не обращает. Это факт.
Но я тут имею ввиду саму систему ведения записи о новых сообщениях на форуме. Может неправильно выразился, сейчас переформулирую. То есть, какие есть реализации, может у других CMS какие либо эффективные и не повернутые решения.

Если писать в бд, не будет ли сильно снижена производительность?

4 (edited by sempai 2018.03.20 18:37)

Re: Способы хранения данных о непрочитанных сообщениях

У меня была как то идея реализовать уведомления - аля "push browser notifications", сами пусш уведомления отбрасываем, так как там поддерживается только протокол HTTPS (HTTP гуляет лесом), а вот принцип можно позаимствовать.

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

Если получателю не интересен собеседник, ткнул на крест - закрыл ненужное окно, наоборот, если интересен, ткнул в тело окна - перешел к сообщению.

Как то, так...


P.S. походу не о том написал. Я имел ввиду способ уведомления а не записи и хранения. PunBB_INFO_ICQ/scratch


Запись в базу наверное самый надежный способ, ибо "печеньки" на каждом устройстве свои. А что бы сервер не уставал от запросов, нужно это дело совмещать. Зашел клиент, проверяем "печеньку" на существование, если есть, порядок, читаем данные с нее, если нет - запрос в базу и сохраняем "печеньку"!  PunBB_INFO_ICQ/yes

5 (edited by 2018.03.20 19:29)

Re: Способы хранения данных о непрочитанных сообщениях

Ты имеешь ввиду типа  как на фейсбуке? У меня на бегете от сапорта так приходит уведомление. Расширением это сделать реально?

$matches[2]
$matches[2]

Вообще то эту тему я создал для  поиска лучшего решения, чем есть сейчас. Я имею ввиду хранения и записи данных о непро,итанных темах самим ядром.

6 (edited by sempai 2018.03.20 20:59)

Re: Способы хранения данных о непрочитанных сообщениях

PunBB, имеешь ввиду - "push browser notifications"?
Реально, но не нужно ибо требования к реализации там будь здоров:

Включённые расширения PHP: GMP и OpenSSL.
HTTPS должен быть включён.
Push-уведомления будут приходить только в поддерживаемых браузерах.

Да, есть еще люди сидящие на HTTP (это я о себе  PunBB_INFO_ICQ/jokingly).

Можно сделать что то на подобие, но не используя этот протокол! PunBB_INFO_ICQ/yes

Что бы места эти сообщения на экране много не занимали, сделать минимальную высоту (скажем 1см), ну и длину что бы вместить: Имя отправителя, Время отправления, ну крест - закрывашку. (думаю 15-20см).

7

Re: Способы хранения данных о непрочитанных сообщениях

Не, тогда это не наш вариант PunBB_INFO_ICQ/bigsmile
Наша цель остается той же: реактивность, легкость, простота в пользовании и управлении  PunBB_INFO_ICQ/cool

Я перелопатил кучу статей в интернете, но по сравнению с ними в punbb реализация просто совершенна, за исключением, что в разных браузерах не отмечаются они.

Есть такой вот вариант: добавить поле в таблицу пользователей, по типу того как устроено расширение Трекед Топикс, и функцию определяющую использование юзером более одного браузера, либо включать чекбоксом. Потому что переписывать функцию придется, да и ничего лучшего вобщем то пока и нет PunBB_INFO_ICQ/pardon

8 (edited by sempai 2018.03.20 21:45)

Re: Способы хранения данных о непрочитанных сообщениях

функцию определяющую использование юзером более одного браузера

Есть  вариант лучше, я о нем уже писал выше:

Запись в базу наверное самый надежный способ, ибо "печеньки" на каждом устройстве свои. А что бы сервер не уставал от запросов, нужно это дело совмещать. Зашел клиент, проверяем "печеньку" на существование, если есть, порядок, читаем данные с нее, если нет - запрос в базу и сохраняем "печеньку"! 

9

Re: Способы хранения данных о непрочитанных сообщениях

sempai wrote:

Зашел клиент, проверяем "печеньку" на существование, если есть, порядок, читаем данные с нее, если нет - запрос в базу и сохраняем "печеньку"!

что ты подразумеваешь под "печенькой"? что то после болезни не могу ссоразить  PunBB_INFO_ICQ/whipped

10

Re: Способы хранения данных о непрочитанных сообщениях

COOKIES  PunBB_INFO_ICQ/crasy

11

Re: Способы хранения данных о непрочитанных сообщениях

PunBB wrote:

Если писать в бд, не будет ли сильно снижена производительность?

Снижается - факт. По крайней мере с существующим расширением db  track или как там его.

12

Re: Способы хранения данных о непрочитанных сообщениях

COOKIES

PunBB_INFO_ICQ/whipped  PunBB_INFO_ICQ/whipped  PunBB_INFO_ICQ/whipped
Получается на данный момент в движке самый лучший вариант, но только нежно научить его определять устройства, иначе юзеры по сто раз будут перечитывать одни и те же сообщения. Проблем особенно актуальна, когда юзер пользуется 5-8ю устройствами! Бывает и такое PunBB_INFO_ICQ/bigsmile

Слушайте, когда уствновлено то расширение, track topics, не лучше ли вначале проверять значение переменной массива $forum_user['tracked_topics'], если пусто то уже не трогать и печеньки и функции не вызывать?

13

Re: Способы хранения данных о непрочитанных сообщениях

PunBB wrote:

Слушайте, когда уствновлено то расширение, track topics, не лучше ли вначале проверять значение переменной массива $forum_user['tracked_topics'], если пусто то уже не трогать и печеньки и функции не...

Надо пробовать, я движок до конца не изучал как там все. Где бы структуру полностью посмотреть чтобы понять куда к чему, так как сидеть и копать времени просто нет.

14

Re: Способы хранения данных о непрочитанных сообщениях

kirpich, структуру хорошо видно на GitHub у версии punbb 1.4.4.

Сейчас в связке с расширением Tracked Topics все работает идеально, учитывая, что в новую версию мы добавили пометку прочитанного только на той странице, где находятся новые сообщения.
$matches[2]

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

$matches[2]

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

$matches[2]

Пока используем как заплатку в виде расширения, но встроить функционал нужно.
И если до выпуска 1.4.6  функционал пройдет успешную обкатку, то в будущем внесем поле и эту реализацию в ядро.

15 (edited by kisa 2018.03.23 06:25)

Re: Способы хранения данных о непрочитанных сообщениях

Я эту гадость уже могу спровоцировать по желанию. Хочешь, дам пароль от "куклы" для тренировки модераторов и прочих тестов на кроководе - посмотришь.  Нужно завести аккаунт, не заходить им на форум с недельку, а потом интенсивно попросматривать новые темы. В какой-то момент все ещё непрочитанные темы становятся прочитанными.
Надпись "новые сообщения" тоже реагирует совместно с индикацией пометками. В какой-то момент исчезает с нечитанных тем. Может это поможет диагностике.

Такое ощущение, что у системы в какой-то момент не хватает места, чтоб всё запомнить.