К содержанию

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

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

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

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

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


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

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

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

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

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

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

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

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

Обновлено 13.03.2019


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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