ProfileLinkX
30
5 000
Доброе время суток, MODX-еры.
На неделе разрабатывал для одного сайта функционал упоминаний пользователей (как это собственно уже реализовано на modx.pro немалое количество времени. Это когда пишешь в посте/комментарии юзернейм через значок @). По ходу дела возникали интересные ньюансы и пожелания по гибкости настроек, в итоге уже начали обрисовываться очертания для полноценного компонента.
Собственно, какое-то время размышлял, стОит ли дооформить и делать компонент платным. Но в свете последних событий, популярность MODX сейчас под вопросом, как и то, что его активно будут использовать для создания всяческого рода комьюнити и платформ с межпользовательским взаимодействием. И решил попробовать собрать на краунде небольшую сумму и выложить компонент в бесплатном доступе. Репозиторий исходников так же будет доступен в public на github.
UPD собрано средств:
1799/5000 ₽
199 @iWatchYouFromAfar
200 @Андрей Шевяков
100 @Arahort
1000 @Andrey
300 @brioni
UPD 01.10.2019 месяц прошел, хоть нужная сумма и не была собрана, но выкладываю компонент в открытый доступ в репозитории и отправил на модерацию в магазин дополнений. Если компонент нужен, активно используется и необходимы будут доработки, не стесняйтесь предлагать финансовую помощь взамен на новые фичи или исправление существующих багов. Спасибо всем, кто поучаствовал.
Ну и немного демонстрации
Подсказка юзеров

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

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

Ну и подробнее про некоторые фичи, дающие гибкость:
Исключения на показ
Возможность с помощью сист.настройки исключить из подсказок либо отдельных служебных юзеров либо целые секретные группы (модераторы, парсеры, агенты ФБР)
Подключение необходимых скриптов на фронте.
С помощью настройки profilelinkx_env установленной в default необходимые JS-библиотеки (tippy.js, textcomplete) подключаются по старинке во время инициализации скрипта, который в свою очередь по классике подключается вызовом сниппета [[!ProfileLinkX]] на нужных страницах/чанках.
Но т.к. в последнее время набирают популярность сборщики для автоматизации/минификации js/css-бандлов (webpack, gulp), то есть возможность переключить эту настройку и ограничиться инициализацией основного скрипта, а нужные libs подключать и собирать самостоятельно.
Подмена в контенте @username на @fullname
По сист.настройке и если такой был задан у юзера в профиле
__
И из используемых зависимостей — jQuery. При должной популярности компонента и потребностях пользователей впоследствии перепишу на чистый современный JS.
P.S. У кого проблемы с сервисом Яндекс.Деньги — пишите в личку, предложу другие варианты задонатить.
На неделе разрабатывал для одного сайта функционал упоминаний пользователей (как это собственно уже реализовано на modx.pro немалое количество времени. Это когда пишешь в посте/комментарии юзернейм через значок @). По ходу дела возникали интересные ньюансы и пожелания по гибкости настроек, в итоге уже начали обрисовываться очертания для полноценного компонента.
Собственно, какое-то время размышлял, стОит ли дооформить и делать компонент платным. Но в свете последних событий, популярность MODX сейчас под вопросом, как и то, что его активно будут использовать для создания всяческого рода комьюнити и платформ с межпользовательским взаимодействием. И решил попробовать собрать на краунде небольшую сумму и выложить компонент в бесплатном доступе. Репозиторий исходников так же будет доступен в public на github.
UPD собрано средств:
1799/5000 ₽
199 @iWatchYouFromAfar
200 @Андрей Шевяков
100 @Arahort
1000 @Andrey
300 @brioni
UPD 01.10.2019 месяц прошел, хоть нужная сумма и не была собрана, но выкладываю компонент в открытый доступ в репозитории и отправил на модерацию в магазин дополнений. Если компонент нужен, активно используется и необходимы будут доработки, не стесняйтесь предлагать финансовую помощь взамен на новые фичи или исправление существующих багов. Спасибо всем, кто поучаствовал.
Ну и немного демонстрации
Подсказка юзеров

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

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

Ну и подробнее про некоторые фичи, дающие гибкость:
Исключения на показ
Возможность с помощью сист.настройки исключить из подсказок либо отдельных служебных юзеров либо целые секретные группы (модераторы, парсеры, агенты ФБР)
Подключение необходимых скриптов на фронте.
С помощью настройки profilelinkx_env установленной в default необходимые JS-библиотеки (tippy.js, textcomplete) подключаются по старинке во время инициализации скрипта, который в свою очередь по классике подключается вызовом сниппета [[!ProfileLinkX]] на нужных страницах/чанках.
Но т.к. в последнее время набирают популярность сборщики для автоматизации/минификации js/css-бандлов (webpack, gulp), то есть возможность переключить эту настройку и ограничиться инициализацией основного скрипта, а нужные libs подключать и собирать самостоятельно.
Подмена в контенте @username на @fullname
По сист.настройке и если такой был задан у юзера в профиле
__
И из используемых зависимостей — jQuery. При должной популярности компонента и потребностях пользователей впоследствии перепишу на чистый современный JS.
P.S. У кого проблемы с сервисом Яндекс.Деньги — пишите в личку, предложу другие варианты задонатить.
Комментарии: 19
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
5 000 р, в шапочке указано
Подсказка пользователей основана на списке стандартных пользователях из modUser+modUserProfile, повесить её можно на любой тэг textarea
все встреченные в HTML страницы вхождения @username, если такой username существует и не добавлен в исключения, будут заменяться на паттерн ссылки — для этого используется стандартный MODX-овский event OnWebPagePrerender
Каким образом уже организовано создание постов/комментариев — не важно, Tickets или самописное решение.
Если в tooltip-е нужна будет какая-нибудь информация из TicketAuthor (например, рейтинг, количество постов/комментариев), могу доработать компонент, дописать новую настройку, чтобы опционально присоединялась таблица tickets_authors и в чанке были доступны эти поля.
Не будет это работать со сторонними подключаемыми сервисами, типа Disqus, виджет комментария ВК
ФаритФаритUPD
Отправлено!