ProfileLinkX

30 5 000
Доброе время суток, MODX-еры.

На неделе разрабатывал для одного сайта функционал упоминаний пользователей (как это собственно уже реализовано на modx.pro немалое количество времени. Это когда пишешь в посте/комментарии юзернейм через значок @). По ходу дела возникали интересные ньюансы и пожелания по гибкости настроек, в итоге уже начали обрисовываться очертания для полноценного компонента.

Собственно, какое-то время размышлял, стОит ли дооформить и делать компонент платным. Но в свете последних событий, популярность MODX сейчас под вопросом, как и то, что его активно будут использовать для создания всяческого рода комьюнити и платформ с межпользовательским взаимодействием. И решил попробовать собрать на краунде небольшую сумму и выложить компонент в бесплатном доступе. Репозиторий исходников так же будет доступен в public на github.

UPD собрано средств:
1799/5000 ₽
199 @iWatchYouFromAfar
200 @Андрей Шевяков
100 @Arahort
1000 @Andrey
300 @Yar

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

Ну и немного демонстрации

Подсказка юзеров


Выделение совпадений @логинов пользователей в тексте страницы и показ tooltip-ов по наведению (опционально)



А вот собственно доступные настройки



Ну и подробнее про некоторые фичи, дающие гибкость:

Исключения на показ
Возможность с помощью сист.настройки исключить из подсказок либо отдельных служебных юзеров либо целые секретные группы (модераторы, парсеры, агенты ФБР)

Подключение необходимых скриптов на фронте.
С помощью настройки profilelinkx_env установленной в default необходимые JS-библиотеки (tippy.js, textcomplete) подключаются по старинке во время инициализации скрипта, который в свою очередь по классике подключается вызовом сниппета [[!ProfileLinkX]] на нужных страницах/чанках.

Но т.к. в последнее время набирают популярность сборщики для автоматизации/минификации js/css-бандлов (webpack, gulp), то есть возможность переключить эту настройку и ограничиться инициализацией основного скрипта, а нужные libs подключать и собирать самостоятельно.

Подмена в контенте @username на @fullname
По сист.настройке и если такой был задан у юзера в профиле

__
И из используемых зависимостей — jQuery. При должной популярности компонента и потребностях пользователей впоследствии перепишу на чистый современный JS.

P.S. У кого проблемы с сервисом Яндекс.Деньги — пишите в личку, предложу другие варианты задонатить.
tolanych
01 сентября 2019, 15:08
modx.pro
3
628
+14
Поблагодарить автора Отправить деньги

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

Михаил
01 сентября 2019, 16:51
1
0
Т.е. компонент готов, но надо либо взять какую то сумму через сбор либо выложить платно? А какова сумма разработки? А то в статье не указано сколько нужно
    tolanych
    01 сентября 2019, 17:08
    +1
    Ну я описал во 2ом абзаце, что решил идти не по пути платного компонента потому что потому, а набрать сумму и выложить его бесплатно.

    5 000 р, в шапочке указано
    iWatchYouFromAfar
    01 сентября 2019, 17:31
    1
    0
    Я так понял это самодостаточный компонент? Или завязан на Tickets? Т.е. на том компоненте, где есть возможность создавать посты/комментарии?
      tolanych
      01 сентября 2019, 17:44
      +2
      Да, это самодостаточный компонент.

      Подсказка пользователей основана на списке стандартных пользователях из modUser+modUserProfile, повесить её можно на любой тэг textarea

      все встреченные в HTML страницы вхождения @username, если такой username существует и не добавлен в исключения, будут заменяться на паттерн ссылки — для этого используется стандартный MODX-овский event OnWebPagePrerender

      Каким образом уже организовано создание постов/комментариев — не важно, Tickets или самописное решение.

      Если в tooltip-е нужна будет какая-нибудь информация из TicketAuthor (например, рейтинг, количество постов/комментариев), могу доработать компонент, дописать новую настройку, чтобы опционально присоединялась таблица tickets_authors и в чанке были доступны эти поля.

      Не будет это работать со сторонними подключаемыми сервисами, типа Disqus, виджет комментария ВК
        iWatchYouFromAfar
        01 сентября 2019, 18:36
        +1
        Круто! Закинул малеха, авось пригодится когда-нибудь.
      Arahort
      01 сентября 2019, 21:12
      +1
      Закинул символическую сумму дабы просто поддержать развитие Modx компонентов
        Фарит
        01 сентября 2019, 22:36
        0
        А можно теги так же сделать? Типа как вконтакте или инсте
          tolanych
          02 сентября 2019, 05:54
          +1
          по такому же принципу можно и теги, но этот компонент не про это. он заточен под юзеров
            Фарит
            02 сентября 2019, 18:23
            0
            Сделаете?
              srs
              srs
              02 сентября 2019, 21:49
              0
              Я конечно не автор дополнения но думаю это является ответом:
              этот компонент не про это. он заточен под юзеров
                tolanych
                02 сентября 2019, 22:21
                0
                В ближайшие пару месяцев точно нет. Но открою исходники на github, любой сможет либо форкнуть и по образцу сделать под себя нужный функционал, либо прислать PR в репозиторий
            Andrey
            02 сентября 2019, 11:05
            +2
            Лойс, отправлена монетка. Суперполезный инструмент. Если будут донить мало, подумаю о том, что бы в следующем месяце задонить еще. Считаю надо поддерживать авторов таких великолепных подгонов монеткой и чтобы было желание развивать MODX!
              Yar
              Yar
              02 сентября 2019, 12:11
              +2
              тоже копейку закинул. модх должен жить
                elec3c
                02 сентября 2019, 14:47
                0
                Автор, добавь больше способов задонатить. Тоже бы вкинул свою копейку.
                  tolanych
                  02 сентября 2019, 22:19
                  0
                  Пиши в ЛС, какую сумму хочешь задонатить, пришлю в ответ альтернативный вариант
                  Andrey
                  12 сентября 2019, 12:29
                  +1
                  Я не понял, че никто не донит? Ща поправим!

                  UPD
                  Отправлено!
                    tolanych
                    01 октября 2019, 14:49
                    +4
                    Месяц прошел, хоть нужная сумма и не была собрана, но выкладываю компонент в открытый доступ в репозитории и отправил на модерацию в магазин дополнений. Если компонент нужен, активно используется и необходимы будут доработки, не стесняйтесь предлагать финансовую помощь взамен на новые фичи или исправление существующих багов. Спасибо всем, кто поучаствовал.
                      Andrey
                      01 октября 2019, 16:08
                      0
                      не дело, поддержу еще копеечкой в следующем месяце, компонент хороший и нуждается в дальнейшем всевозможном развитии!
                      Андрей Шевяков
                      02 октября 2019, 17:12
                      0
                      Задонатил еще малость! Спасибо за компонент!
                        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                        19