Welcome to the Question2Answer Q&A. There's also a demo if you just want to try it out.
+12 votes
in Plugins by

As I usually say in these kind of posts, I'd like to compare Q2A with StackOverflow.com, which is the kind of platform I believe Q2A should aim to become, and try to see what makes it better to steal some ideas. Clearly, user mentions, in the form of @user, with a UI-friendly solution came up so I decided to create a nicely looking plugin that would take care of this.

This should sum everything up:

The animated sequence shows how typing an @ character followed by a couple of additional characters triggers the display of a popup to select users. The admin can configure this popup to be filled with only the users involved in the question thread or every user in the site.

Mentioning a user not only creates a link to the user's profile but also can notify them about the mention. The admin can configure two kinds of notifications. One is an email notification. The other one is a notification by means of the On-Site Notifications plugin. This notification system is very useful when trying to involve other users into a thread.

One additional feature that is worth mentioning is that the admin can set a minimum user level that will be allowed to create mentions to other users. That way the admin can restrict the feature just to Editors and above.

Here is a complete list of features:

  • Easily transform a username into a clickable link when writing a post (mention)
  • Users can be selected from a popup list of matched users
  • An additional user field can be displayed in the popup (e.g. the full name of the user)
  • Mentions can be used in questions, answers and comments
  • Full and basic editors can be selected for each kind post
  • On-Site Notifications plugin integration that allows receiving a notification to mentioned users
  • The admin can choose to enable sending email notifications to mentioned users
  • User permits can be configured to allow a minimum user level allowed to generate mentions
  • Does not require any core hack and does not modify the core tables structure

If you are interested in reading more about the plugin you can check the plugin page. There, you'll find some additional features, screenshots and how to order it. You can also find a plugin demo here.

Reminds me of the problem that usernames can be changed and all references would be obsolete. Would be great if the mentioning has a userid instead the username!
@Ami Thank you! It's nice to see you are back :)

@q2apro Well, that's how the core works :( For some reason (maybe related to non-integer user IDs used by external users) the core is too dependent on the handle (much more than the user IDs itself). According to the roadmap, that is expected to be added to Q2A 1.9.0 (https://github.com/q2a/question2answer/issues/209)... whether it is added or not, that is something you should discuss with Scott
So it doesn't work with markdown editor only when editing posts?
You cannot use the WYSIWYG editor to edit markdown posts (or viceversa). This editor works just like the WYSIWYG one: both use CKEditor. Converting posts between formats is a feature that's not implemented in Q2A yet: https://github.com/q2a/question2answer/issues/331

2 Answers

+1 vote
is this plugin is working with Sama55's notification pro plugin too? :) if yes, I will buy it. How much? :)
Hey Piotr! Sama55's notifications plugin code is not public and, as far as I know, it has been discontinued. So I can not integrate it. q2apro's on-site notifications is public so I could suggest some changes to it to allow notifications from ALL plugins, not just this one. See here: https://github.com/q2apro/q2apro-on-site-notifications/pull/25

As a side note, bear in mind you have a Q2A 1.7.x release, and this plugin's compatibility starts with 1.8.0, as I mentioned in the wiki. Furthermore, your site uses it's own and extremely customized ad-hoc editor. That would mean you would have to revert back to the CKEditor that almost everyone uses and I guess you won't like that.

PS: you never replied my email :)
true, but on-site notifications has less functions than sama's unfortunately :(
I will answer on your email today, sorry :) busy time :D

But if you can add notification pro support for me, i will buy this plugin too :)
What mechanism is sama55 exposing in his notifications plugin in order to allow other plugins to register new notifications?

Example of the answer to the previous question for the on-site notifications plugin: https://github.com/q2apro/q2apro-on-site-notifications#for-developers
@sama55 can You please answer pupi1985's question ? :)
I can send You notification pro plugin to check this on Your own too ?
Ironically, sama55 won't be notified after the mention attempt in your last comment :P

Even if there is a way to integrate with that plugin... how would you fulfill the Q2A v1.8.0+ requirement if you have a lower Q2A version with so many core hacks?

You'll have to find a way to remove all core hacks. They are blocking your ability to upgrade and holding you back to an old 1.7.x minor Q2A version. Note this is actually general advice, not just a requirement to install the plugin.
+1 vote
Hello pupi,

This is an awesome feature in Q2A. But with a reasonable sized forum, this is more a curse than blessing because some active users gets mentioned a lot. So, there should be some way to both allow and disallow users to be mentioned by any user. For example, say all those a user follows can mention him (this is the simplest user specific userlist in Q2A I guess). Now, I think if we modify the following function this can be done and I'm happy to try it unless you are having a better plan.

getBasicUserDataFromHandleString($handleString, $includeField = null, $excludedUserIds = array())
Yes. I think feature wise favorite is quite similar to follow.
Mentioning only from thread -- that beats the main purpose. Because those people will anyway get comment notice unless they have chosen so.
true. I feel for now use favorite feature and once follow feature is supported then use that.
It's an interesting feature. I will consider adding it in a future version of the plugin.

I haven't taken a deep look at it yet but most likely modifying that function so that the queries join the ^userfavorites table is the right approach. Of course, this will require the current user ID to be used in the query.
Thank you ProThoughts.
@Pupi Thank you. Yes, I plan to do the same. Since it is the current logged in user, will try to use get_current_logged_in_userid function and see who all this user can mention. I'll maintain a list of users a particular user can mention.