Единый форум поддержки

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Единый форум поддержки » Сделаем сервис лучше » Отображение часового пояса пользователя в профиле


Отображение часового пояса пользователя в профиле

Сообщений 1 страница 17 из 17

1

starling написал(а):

Считаю максимально удобным то, что заполнены поля с часовыми поясами: то, чего на майбб вообще указать нельзя.

starling написал(а):

Я про то, что было бы лично мне удобнее, если бы информация о часовом поясе человека была в общем доступе и показывалась в его профиле. Это какие-то мои личные загоны, но мне, условно говоря, спокойнее, когда я отправила лс на форуме человеку и вижу, что у него уже за полночь, так что ответ можно и не ждать. А не сидеть в каком-то лёгком нервяке и ждать, когда же мне ответят, особенно если вопрос важный.
Другое дело, что заполнять такие пункты будут, наверно, единицы. Хотя это может иногда упростить коммуникацию.

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

@kernel если это не сложно, можно было б выводить часовой пояс юзера в качестве поля профиля?

+3

2

Герда написал(а):

можно было б выводить часовой пояс юзера в качестве поля профиля?

через api можно получить эту инфу, пример:

Код:
https://forum.mybb.ru/api.php?method=users.get&user_id=27499&fields=user_id,timezone_offset   - это часовой пояс kozhilya
https://forum.mybb.ru/api.php?method=users.get&user_id=16803&fields=user_id,timezone_offset     - это твой

и есть скрипт с применением подобного запроса - Скрипты от пользователей 3

+1

3

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

+2

4

Deff написал(а):

лучше ввести часовой  пояс в ява скрипт переменные

а не будет ли эта переменная видна только обладателю?

Герда написал(а):

можно было б выводить часовой пояс юзера в качестве поля профиля?

в общем скрипт реально сделать, например, при клике на флаг пользователя в титле появится кроме названия страны и его таймзона

0

5

Romych
Ну для скриптов и нужно именно на обладателе корректировать время( часто к московскому)

Скрипты которые чот массово тестят пояс у пользователей пока не видел (Ну и для таких вариантов от запроса к API никуда не деться) Но насущно пока именно на текущем

0

6

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

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

посмотрим, что @kernel скажет, когда появится свободная минутка на рассмотрение инноваций.

0

7

Герда
Туть палка отрёх концах - впихивание в профиль создаёт лишний объем страницы(а занчит и долгую более долгую её загрузку, особенно при многопостах на странице, нагрузку на сервер, хотя сейчас эта фича вообще не востребована ни в каких скриптах,
2-е Если даже будет востребована - однозначно не на всех страницах топика - т.е. 90% затрат на создание - впустую - лишь лишняя нагрузка на серв и пользователя

3-е с другой стороны запрос к API от скрипта для получения инфы несложный - в одну строчку и делается только в тот момент, когда нужен, помимо этого этим же запросом можно получить и другие данные

board_id
board_cat
founded
timezone_offset
title
total_users
total_topics
total_posts
num_categories
num_forums
last_registered_user_id
last_registered_username
active_guests
active_users
active_users_record
active_users_record_datetime
users_24h_record
users_24h_record_datetime
o_default_style
o_user_style
o_foundation
o_announcement
o_show_user_info
o_show_users_online
o_show_24h_users
o_show_birthdays
o_show_other_statistics
o_search_forums
o_post_rating
o_avatars
o_subscriptions
o_relation
o_relation_type
o_positive
o_registration
o_registration_by_invitation
o_limit_post_count

+2

8

Герда написал(а):

я, как человек, в скриптах разбирающийся посредственно

ну, вот простой вариант по клику на флаг, хотя клик можно заменить например на наведение курсора (mouseenter)

Код:
//старый способ c img
<script>
$('li.pa-author img').on('click', function() {
let u_nm = $(this).next('a[href=^"javascript:to"]').text(),tt = $(this).attr('original-title'),sel = $(this);
$.getJSON('/api.php?method=users.get&username=' +u_nm+ '&fields=timezone_offset', function (d){
var x = d.response.users;
for (var i in x){$(sel).attr('title', tt+' '+x[i].timezone_offset);}
});});
</script>

//новый, как на этом форуме с svg
<script>
$('li.pa-author>span.flag-i').on('click', function() {
let u_nm = $(this).next('a[href=^"javascript:to"]').text(),tt = $(this).attr('title'),sel = $(this);
$.getJSON('/api.php?method=users.get&username='+u_nm+'&fields=timezone_offset', function (d){
var x = d.response.users;
for (var i in x){$(sel).attr('title', tt+' '+x[i].timezone_offset);}
});});
</script>

2 разных селектора, на всех форумах флаг вроде img пока что, а на этом уже svg масшатабируемый

+2

9

Deff написал(а):

Туть палка отрёх концах - впихивание в профиль создаёт лишний объем страницы(а занчит и долгую более долгую её загрузку, особенно при многопостах на странице, нагрузку на сервер, хотя сейчас эта фича вообще не востребована ни в каких скриптах,

уточнение - я не предлагаю в поля профиля в топике пихать
предлагаю на страницу профиля.
там есть много пунктов, например "о себе", которые не отображаются в топиках - и вроде как ничего страшного.

+1

10

Deff написал(а):

а kernel потихонечку ужесточает ограничения

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

Герда написал(а):

@kernel если это не сложно, можно было б выводить часовой пояс юзера в качестве поля профиля?

Выводить не сложно. Но, в идеале неплохо бы иметь в настройках форума опцию скрытия и в настройках профиля, а это уже достаточно сложно сделать )

+3

11

kernel написал(а):

Нет такого. И непонятна связь ограничений и вылетом из аккаунта,

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

0

12

kernel
Ну а можно часовой пояс текущего пользователя  вывести в ява скрипт переменные ? Дабы не делать запрос к API или Профиль ?

0

13

Del

0

14

Deff написал(а):

Ну а можно часовой пояс текущего пользователя  вывести в ява скрипт переменные ?

ты про эти?
https://forumupload.ru/uploads/0000/14/1c/15964/t539633.jpg
если да, то всё никак не могу понять, как этой переменной можно воспользоваться, если тебе будет отображаться только переменная с твоим часовым поясом? ведь каждый видит переменные со своими данными, а чтоб узнать часовой пояс твоего собеседника всё равно придётся сделать запрос к серверу или я чего-то не догоняю?

+1

15

Romych написал(а):

если да, то всё никак не могу понять, как этой переменной можно воспользоваться, если тебе будет отображаться только переменная с твоим часовым

рассказываю:
Типично создают таблицы ( к примеру число игровых постов за день, за неделю и месяц с привязкой к единому времени ( ибо понедельник во владивостоке и москве - начинаются и кончаются в разное время(соответственно и начало-конец недели, месяца и т.д), зная смещение я могу привести время отправки к единому( типично москва или лондон)

+3

16

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

Причём это, мне кажется, нужно добавить и в JS-переменные форума, и в API...


kernel (тагну, так как это отдельный баг)
Пока копал, я заметил одно критическое нарушение в формате ATOM.
У нас сейчас генерируется такой код: https://kozhilya.userforum.ru/export.ph … &tid=1

Код:
<entry>
	<title type="html">Это сообщение отправлено в: - 13:54...</title>
	<link rel="alternate" href="https://kozhilya.userforum.ru/viewtopic.php?pid=618#p618"/>
	<content type="html">&lt;p&gt;Это сообщение отправлено в:&lt;br /&gt;- 13:54 по Ульяновскому времени&lt;br /&gt;- 12:54 по Московскому времени&lt;br /&gt;- 09:54 GMT&lt;/p&gt;</content>
	<author>
<name>kozhilya</name>
	</author>
	<updated>2023-05-08T12:54:47Z</updated>
	<id>https://kozhilya.userforum.ru/viewtopic.php?pid=618#p618</id>
</entry>

Отмечу, что хоть GMT и UTC фактически совпадают, должно всё-таки быть не конкретный часовой пояс GMT, а отметка о стандартизированном времени UTC, но это всё семантика

Обращу внимание на <updated>2023-05-08T12:54:47Z</updated>. Здесь должна быть строка, при этом ATOM требует использование формата RFC3339 [1], который, в свою очередь, определяет формат этой строки [2].

Здесь, в разделе 2. Definitions даётся вполне конкретное определение для часового пояса:

Z           A suffix which, when applied to a time, denotes a UTC
                  offset of 00:00; often spoken "Zulu" from the ICAO
                  phonetic alphabet representation of the letter "Z".

То есть если в строке используется суффикс Z, то время должно быть указано в UTC. Однако, как видно в примере выше, время в генерируемом ATOM указано не в UTC, а UTC+3, то есть по московскому времени, который стоит по умолчанию на всех форумах.

При этом, RSS генерируется корректно, с указанием часового пояса:

Код:
<item>
	<title>Это сообщение отправлено в: - 13:54...</title>
	<link>https://kozhilya.userforum.ru/viewtopic.php?pid=618#p618</link>
	<description>&lt;p&gt;Это сообщение отправлено в:&lt;br /&gt;- 13:54 по Ульяновскому времени&lt;br /&gt;- 12:54 по Московскому времени&lt;br /&gt;- 09:54 GMT&lt;/p&gt;</description>
	<author>mybb@mybb.ru (kozhilya)</author>
	<pubDate>Mon, 08 May 2023 12:54:47 +0300</pubDate>
	<guid>https://kozhilya.userforum.ru/viewtopic.php?pid=618#p618</guid>
</item>

Чёрт знает, что там происходит (у меня сейчас нет возможности глянуть в исходники), так как в PHP (new DateTime())->format(DateTimeInterface::ATOM) должен генерировать время с часовым поясом.

+4

17

kozhilya
Поменял.

+2


Вы здесь » Единый форум поддержки » Сделаем сервис лучше » Отображение часового пояса пользователя в профиле