Упоминание пользователей

Привет друзья!

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

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

Примерно так:


Честно говоря, я не совсем доволен плагином этой всплывашки, у него есть проблемы с позиционированием, но для начала сойдёт (может, в комментариях кто-то предложит что получше). Заменил на Textcomplete.

Дальше, при публикации топика или комментария, тем людям, кого вы упомянули, уйдёт почтовое уведомление об этом радостном событии. При редактировании это тоже работает, поэтому в БД создаются записи об упоминаниях, чтобы не отправлять их повторно. Заодно потом сможем подсчитать самых упоминаемых людей, и даже включить это в рейтинг.

На сайте ссылкой отображается полное имя пользователя, а в БД оно хранится как username. Сделано это потому, что имена обычно с пробелом, и понять, что вы всё еще набираете имя затруднительно. Но автопоиск ищет и по логину, и по имени — с этим проблем нет. Советую всем написать своё полное имя, потому что искать нужного «Алексей» немного утомительно.

Упоминания работают и в предпросмотрах, так что с их помощью можно проверить, всё ли верно.

В связи с новым функционалом, отключена возможность менять логин, чтобы не вводить друг друга в заблуждения неверными ссылками и упоминаниями. Если кому нужно его срочно поменять (а ранее, очевидно, было недосуг) — пишите мне через форму обратной связи.

Заодно и сброс пароля теперь не присылает сам пароль, а просто даёт ссылку для одноразовой авторизации, после чего вы можете зайти в профиль и поменять его. Соответствие GDPR, все дела.

Есть еще мысль почистить старые аккаунты, которые не заходили в сообщество больше года, чтобы не мешались в поиске. И поубирать email из некоторых username, чтобы не светились. Но это чуть позже.

В общем, тестируем, пишем отзывы, и упоминаем друг друга. Начнём с @Илья Уткин!

Обновлено 13.03.2019


Почистил старые неактивные аккаунты и привёл в порядок все username, чтобы их можно было показывать и использовать в ссылках.
Василий Наумкин
12 марта 2019, 16:26
2
616
+19
Поблагодарить автора Отправить деньги

Комментарии: 27

Илья Уткин
12 марта 2019, 16:29
+3
Уау! Вот это да! Круто! @Михаил — ты следующий)
Николай Савин
12 марта 2019, 17:08
0
@Василий Наумкин Вась а упоминание компонентов сделаешь? Тоже об этом говорили же.
    Василий Наумкин
    12 марта 2019, 17:28
    0
    Оно и сейчас работает — справа есть ссылки, но чтобы отправлять уведомления нужно знать, кто их автор (то есть, брать данные с магазина) и сделать возможность отключения этого дела (ибо меня задолбают одним miniShop2, как минимум).

    В общем, когда-нибудь, но не сейчас точно.
      Николай Савин
      12 марта 2019, 17:30
      0
      В профиле поставить разрешение на отправку подобных уведомлений. Если уж разгуляться то по каждому компоненту поставить отдельное разрешение, чтобы мониторить отзывы на свежие компоненты.
        Василий Наумкин
        12 марта 2019, 17:33
        0
        Ты же понимаешь, что компоненты — они в магазине? А сообщество — это вот тут, отдельный сайт?

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

        Будет настроение — сделаю, но пока его нет и обещать ничего могу.
          Николай Савин
          12 марта 2019, 17:40
          0
          Пф. Я понимаю что это одна общая экосистема, сделанная и поддерживаемая одним человеком, для которого не составит труда подобное реализовать. И связей таких уже куча. Тот же рейтинг взять.

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

          В качестве альтернативы, поднимающей настроение — может какой то сбор организуем, если ты озвучишь цену на подобную доработку? Патреон или что-то еще. Возможно я не прав, но авторам было бы интересно.
Николай
12 марта 2019, 17:14
0
Может быть будет удобнее в профиле пользователя, и рядом со ссылкой на его профиль в комменте, сделать якорь на его «хештег», т.е. просто скопировал-вставил ссылку без долгого листания списка пользователей (тем более логин можешь и не знать, не запоминающийся например). А при ответе как в ВК можно автоматом подставлять хештег в форму. А в дальнейшем можно выводить кучей ответы данному юзеру от других в профиле. Т.е. можно будет посмотреть кто что кому отвечает)

p.s. Кстати, что-то с позиционированием списка у меня в мозилле. Кеш обновлял Ctrl+F5:

    Николай
    12 марта 2019, 17:22
    0
    А, чем ближе @ к началу строки, тем адекватнее список пользователей отображается. Я пробовал после длинного абзаца вставить, и аж скролл появился.
    Василий Наумкин
    12 марта 2019, 17:30
    0
    Кстати, что-то с позиционированием списка у меня в мозилле
    Скажи сразу, заметку не читал, да?

    Насчёт всего остального — мы же не Вконтакте, тут более профессиональное сообщество. У каждого юзера есть прямая ссылка, и она легко копируется.
      Николай
      12 марта 2019, 18:02
      0
      Скажи сразу, заметку не читал, да?
      Читал, перечитал ещё раз, и вспомнилось видео про девочку и грибы))

      У каждого юзера есть прямая ссылка, и она легко копируется.
      Ну вот её же недостаточно вставить как хештег, а было бы удобно. Допустим, у одного логин abcd1 и имя Николай, а у другого abcd11 и тоже имя Николай, их может быть 10 человек, проблематично будет выбрать правильный, если ещё в попыхах это делаешь. А ссылку скопировал и 100% всё ок. И можно от списка вообще избавиться. Тем более логичнее, видишь юзера в комменте — копируешь ссылку. А тут получается видишь юзера, ищешь его в списке всех 100500 юзеров.
        Илья Уткин
        13 марта 2019, 07:02
        0
        Почему не работает? Вроде, всё ок, если вот так сделать:
        <a href="https://modx.pro/users/alroniks">Ваня</a>, подтверди, что тебе пришло уведомление

        Ваня, подтверди, что тебе пришло уведомление
          Василий Наумкин
          13 марта 2019, 07:16
          0
          Не, так-то точно не придёт, ты чего?

          Только через @ можно упоминать.
            Илья Уткин
            13 марта 2019, 07:18
            0
            Просто не у всех логин в адресе стоит. По ID можно упоминать? @Николай

            Ух-ты, можно)) Вот так —
              Николай
              13 марта 2019, 14:19
              0
              Просто не у всех логин в адресе стоит. По ID можно упоминать? @Николай
              Круто, но придётся постоянно вырезать из ссылки логин или id, лишние манипуляции. Если удобное копирование сделать, как вот тут напротив заголовков якорь, то будет вообще отлично. А если ещё по клику js-скриптом, чтобы нажал нажал на якорь и скопировал хештег, то ещё оперативнее)
                Василий Наумкин
                13 марта 2019, 14:22
                0
                А для кого автоподсказки-то сделаны?

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


                Короче, не буду я делать то, что ты просишь, даже не уговаривай.
                  Николай
                  13 марта 2019, 14:41
                  0
                  Не то чтобы я настаиваю) Но Николаев высветилось куча, чтобы узнать какой правильный, нужно в любом случае найти ссылку на его профиль, или зайти в профиль, и подсмотреть ещё и логин) Хорошо если имя и фамилия указаны, и логин читабельный, тогда ок, а если безфамильный, или, скажем, от балды часто указывают Николай Николаев, или Иван Иванович, то таких пруд пруди со временем будет в списке. А в перемешку с кривыми логинами ещё сложнее)
                    Николай
                    13 марта 2019, 14:49
                    0
                    Короче, дискриминация высшим сословием простых Николаев, неприметных, без аватарки, громкого имени, личного бренда, обычных рабов божьих, в лаптях и с крестом на груди))
Кудашев Сергей
12 марта 2019, 18:49
0
@Василий Наумкин Как то странно работает для некоторый пользователей, например начинаю поиск по «Илья Александрович», в выпадающем списке он появляется, выбираю его и вместо пользователя в редакторе получается вот такая вещь (она же остается в таком виде и после сохранения): @Илья Александрович@gmail.com

Ссылка на пользователя не активна, уведомления скорее всего не уходят. Мне кажется это связано с почтой в имени.
    Василий Наумкин
    12 марта 2019, 20:10
    0
    Ествественно, второя собачка мешается — надо чистить эти записи, завтра займусь.
Fi1osof
15 марта 2019, 10:59
+1
Бага: ссылка вида https://домен/topics/modx-klub-2.14.0-filtry-by-@prisma-cms/filters.html разбивается на две части. Ты выше писал, почему так происходит, но это не оправдание, надо проверять маской /(^| )\@/ или типа того, то есть упоминание должно работать только если символ @ в начале строки или после пробела. Все остальное не должно восприниматься как упоминание.
Даблбага: если на произвольном тексте создавать ссылку через кнопочку и вставлять такую ссылку с собачкой в середине строки, ссылка формируется на отправку почты.
    Павел Гвоздь
    15 марта 2019, 11:06
    0
    /(^| )\@/
    А я и не знал, что так можно было указывать проверку начало строки или что-то ещё. Думал, что это строго ^ в начале регулярного выражения. Благодарю!

    Даблбага
    А эт уже давно. =)
      Fi1osof
      15 марта 2019, 11:16
      +1
      Не за что.
      Так же и конец строки можно проверять /(.+|$)/
        Павел Гвоздь
        15 марта 2019, 11:18
        0
        Так же и конец строки можно проверять /(.+|$)/
        Ну как бы оно уже понятно))
    Василий Наумкин
    20 марта 2019, 10:41
    +1
    Это не мои баги — это Jevix так работает со ссылками.

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