MyBB Community Forums

Full Version: MyConversations: a conversation plugin for MyBB
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5
MyConversations version 1.2.5 has just been released.

New features:
  • A bunch more warnings under PHP 8 have been resolved, along with the minor bugs that some of them revealed. This improves the plugin's compatibility with PHP 8.
  • Improves the responsiveness (mobile-friendliness) of the plugin's pages.
  • Provides better global access to unread counts and related status messages for use in templates, via $mybb->user.
  • Bugfix: A database error was occurring in the PMs->conversations migration due to the failure to supply an entry for the likedby column of the cnv_messages table, which requires a value.
  • Bugfix: Auto-linking of bare URLs in messages was partly broken due to MyConversations mistakenly setting the parser option to allow HTML (which breaks auto-linking in MyBB core)..

Thanks to @HLFadmin for pointing out the PHP 8 warning that inspired me to dig around to check for the others that I found. There's no guarantee they've all been found yet, but we should be close to PHP 8 compatibility. Please let me know of any more that you find, @HLFadmin!
Thanks for the update. It works without problem on live forum still running PHP 7.4, also no errors on test forum on PHP 8, until I get this one.

Warning [2] Undefined variable $cnv_unread_convmsgs - Line: 1276 - File: inc/plugins/converse.php PHP 8.0.27 (Linux)

$mybb->user['cnv_unread_msg_str'] = $cnv_unread_convmsgs;

This happens when not logged in. My forum requires a log in.

I believe I fixed it by adding a line at 1248 to define it.
$cnv_unread_convmsgs = '';

Is it that simple? Define a variable? That variable only appears within the function, so definition stays within the function.
(2023-02-01, 11:04 AM)HLFadmin Wrote: [ -> ]Thanks for the update. It works without problem on live forum still running PHP 7.4, also no errors on test forum on PHP 8, until I get this one.

Warning [2] Undefined variable $cnv_unread_convmsgs - Line: 1276 - File: inc/plugins/converse.php PHP 8.0.27 (Linux)

$mybb->user['cnv_unread_msg_str'] = $cnv_unread_convmsgs;

This happens when not logged in. My forum requires a log in.

Oops. I thought I'd handled that scenario. Apparently not. Am temporarily without access to my main machine, but will examine the code when I'm back to it.

(2023-02-01, 11:04 AM)HLFadmin Wrote: [ -> ]I believe I fixed it by adding a line at 1248 to define it.
$cnv_unread_convmsgs = '';

Is it that simple? Define a variable? That variable only appears within the function, so definition stays within the function.

Without looking at the code to refresh my memory, that *does* seem like a plausible fix. It's the usual fix for that warning message - to make sure that the variable is defined when it's used. The alternative approach is to first *check*, using either isset() or !empty(), that (whether) it's defined before using it.
(2023-02-01, 11:04 AM)HLFadmin Wrote: [ -> ]I believe I fixed it by adding a line at 1248 to define it.
$cnv_unread_convmsgs = '';

Is it that simple? Define a variable? That variable only appears within the function, so definition stays within the function.

The fix turned out to be slightly different - to change line 1276 from:
			$mybb->user['cnv_unread_msg_str'] = $cnv_unread_convmsgs;
to:
			$mybb->user['cnv_unread_msg_str'] = $lang->cnv_avail_to_members_only;

I'd recently added that language key for that purpose, but forgotten to use it.
Can this plug-in be disabled and PMs restored to their old format/structure if I choose to uninstall it and revert back to the native PM system?
Yes.
The plugin converts existing PMs to Conversations which then permits attachments.
Before you uninstall MyConversations, you have an opportunity to convert Conversation messages back to PMs, although the attachments are not supported and get dropped.
Hi mrdeltoid,

I see that you've edited your post, which originally also asked how MyConversations compares to Symposium, and what advantages MyConversations has over Symposium. I'd begun drafting a response to that before I noticed that you'd edited it out, and I don't want to waste that draft, which might be of use to others if not to you, so here's the answer to those edited-out questions, before getting to your remaining question.

In rough order of importance, these are the advantages that I'm aware of MyConversations having over Symposium:
  1. MyConversations has vastly reduced storage requirements. It stores each message only once, no matter how many participants there are in the conversation. Symposium uses the core private messages table, which stores each message once per participant. MyConversations thus - both in comparison and absolutely - scales massively in this respect: its storage requirements for a conversation with hundreds of participants are only marginally more than for a conversation with only one participant; under Symposium, the former would require hundreds of times more storage space than the latter. Up to a point, even a MyConversations conversation with very many participants would require less storage than the equivalent Symposium conversation with only two participants, because MyConversations also stores the list of participants only once per conversation, whereas Symposium duplicates them in every copy of every message in the conversation.
  2. MyConversations has greatly superior search functionality. Symposium supports searching only on conversation subjects (i.e., it does not even support searching within conversation messages themselves). MyConversations supports searching:
    • Globally, across all one's accessible conversations, with keywords that can be stipulated to match within conversation subjects and/or within message bodies, and with results returned as conversations and/or messages, plus these additional supported search criteria:
      • Author.
      • Participants.
      • Group.
      • Folder.
    • Within an individual conversation.
    • Within an individual conversation group.
    • Within all conversation groups.
  3. MyConversations supports message attachments, "liking" messages, and quoting messages, with the familiar citation and link-back to the quoted message that is used in MyBB core threads. Symposium supports none of these.
  4. For a given set of participants, MyConversations supports any number of different conversations, and each can have a different subject. Symposium supports only a single conversation for any given set of participants. You can try to start a new one, but Symposium will only append messages to the singular conversation that already exists. In addition: only Symposium conversations with three or more participants can be given a subject; Symposium conversations between only two participants cannot be given a subject. You can "start" a "new" conversation between the same three (or more) participants, and give it a different subject than the first, but, while the new subject will be stored with the new messages in the private message table, that new subject will otherwise be invisible, and the "new" conversation will simply append messages to the preexisting singular conversation, presenting under its original subject.
  5. In addition to its normative listing of conversations, MyConversations retains (mimics) the familiar message folders from the core private messaging system. Symposium does not. With MyConversations, you can view individual messages in individual folders including the normal Inbox, Unread, and Sent Items, plus, you can create/edit/delete custom folders (which are shared with the core private messaging system), and move individual messages between folders.
  6. MyConversations integrates with MyAlerts. Symposium does not.
  7. MyConversations supports a set of five rights for each participant in a conversation (and in a conversation group). Symposium does not.
  8. MyConversations supports conversation groups. Symposium does not.
  9. MyConversations supports conversations with only one participant (yourself) - useful for note-taking or diary-keeping. Symposium does not (it requires a minimum of two participants).
  10. MyConversations has no external dependencies (although it requires the Zip PHP module to be enabled when exporting conversation messages). Symposium depends on PluginLibrary.
  11. MyConversations has (almost entirely?) eliminated warnings under PHP 8. Symposium still generates masses of them.
  12. MyConversations supports the convenient exporting of conversation messages. Messages can be exported under Symposium when it is active, via the normal MyBB core interface, but you have to know and manually enter the link (private.php?action=export) to get access to that interface - it doesn't appear anywhere in the UI as modified by Symposium.
  13. MyConversations is less buggy in minor but annoying ways than Symposium. For example, when Symposium emails notification of a new private message, it uses the same subject for all participants, so, if, say, "Initiator" started a conversation with "Recipient", then the subject of the notification email received by both Initiator and Recipient would be something like: "New private message at YourForum - Conversation with Recipient", whereas the final word in that, "Recipient", should in the email sent to Recipient instead be "Initiator".
  14. MyConversations has better fine-grained control. For example, it allows email notifications to be turned on/off per-user per-conversation. Symposium only allows them to be turned off per-user for all conversations (via turning off emailed PM notifications in the UCP via the normal core setting).
(2023-02-23, 10:56 PM)mrdeltoid Wrote: [ -> ]Can this plug-in be disabled and PMs restored to their old format/structure if I choose to uninstall it and revert back to the native PM system?

"Yes" isn't quite the right answer because there is strictly speaking no "restoration" required: MyConversations makes no changes to the core PM table in the first place - unless you run the reverse-migration tool (MyConversations messages => core private messages).

That reverse-migration tool migrates (via insertions into the core private messages table) only any MyConversations messages that were not originally present in the core private messages table when the original migration was performed.

"Migration" isn't quite the right word either, because the original data, when going in either direction, isn't deleted. In the forward direction, it is not duplicated either. In the reverse direction, it is, but this is fine because this migration is expected to be performed when MyConversations is to be uninstalled and its data deleted anyway.

As HLFadmin rightly points out, the reverse migration drops attachments, because they are not supported in the core PM system. It also drops likes and conversation groups, for the same reason.

For more detail on migrations either way, and the associated database structures, please see the first section of the earlier post #16 in this thread, the fourth section in post #26, as well as posts #28 and #29.
MyConversations version 1.2.7 has just been released (1.2.6 was not released publicly).

New features:
  • Resolves even more PHP 8 warnings and any minor bugs they indicated.
  • Bugfix: The collapse/expand functionality in the UserCP left sidebar menu was broken.
  • Bugfix: Messages hard-deleted by a member were showing up in his/her search results.
  • Bugfix: {$cnv_ucp_options} was not being removed from the usercp_options template on plugin deactivation.
  • Bugfix: The incorrect redirect function was called when clicking "No" at the uninstallation warning.
  • Bugfix: When participants were removed from a group, they were not removed from group conversations in which their rights had been customised.
  • Bugfix: The database table prefix was hard-coded to the default mybb_ in some generated SQL.
  • Adds admin logging of the migration procedures.
  • Adds better redirection from "Send PM" links: now, they link to the conversation-starting form with the member in question as a pre-filled recipient.
  • Improves the presentation of member profile contact details: sometimes, they weren't shown when they ought to have been, and, even when MyConversations was active, the link to send a PM was shown.
  • Adds better handling of absolute paths when removing attachment files and directories.
  • Fixes some hook parameters.
  • Reduces the length of the key on the attachname column of the attachments table for broader MySQL/MariaDB compatibility.
  • Improves and hardens error-handling around folder IDs and names.
  • Makes various other minor improvements and resolves various other minor issues/bugs.

A big thanks to @HLFadmin for his help in identifying and resolving issues.
(2020-06-17, 03:52 AM)Laird Wrote: [ -> ]MyConversations is a conversation plugin for MyBB 1.8.x that replaces the default private message (PM) system. But why replace that system? Because in it, messages are displayed individually and in isolation, so that if participants in a private exchange want to reconstruct the full conversation, they have to laboriously switch between their Inbox and Sent Items folders, tracking down each message in the exchange one at a time, sometimes pages apart.

MyConversations instead displays exchanges of private messages in the same way in which public forum threads are displayed: as a continuous, time-ordered sequence of messages split over consecutive pages.

Pricing
  • AUD 30 for a single-site licence. (Roughly USD 20.55 at current exchange rates).
  • AUD 45 for a two-to-three-site licence. (Roughly USD 30.82 at current exchange rates).
  • AUD 60 for an unlimited site licence. (Roughly USD 41.10 at current exchange rates).
Purchase with PayPal via the MyConversations home page.

Purchases entitle the buyer to ongoing access to new releases via emailed download links.

Try it before you buy it

MyConversations can be tested on the creativeandcritical.net forums.

Key features
  • Conversations, supporting from one to any number of participants.
  • Conversation messages, stored once each in the DB versus once for each participant in the default PM system.
  • Integration with the User CP.
  • Folders, as for the default PM system.
  • Attachments, with the same interface as for post attachments.
  • Quoting of messages, including link-back arrows.
  • Likes.
  • MyAlerts integration.
  • Email notifications.
  • Conversation groups.
  • A system of rights, with support for five basic rights.
  • Conversation and group listing pages.
  • Searchability by subject, message, author, participants, group, and folder.
  • Additional options in the User CP.
  • [For admins] A migration tool to convert private messages to conversations.
  • [For admins] A reverse-migration (anti-lock-in) tool to convert conversations to private messages.
  • [For admins] Several other miscellaneous features.
Screenshots

Starting a conversation:

[Image: 03-myconversations-compose-new-conversat...mbnail.png]s

A conversation view:

[Image: 13-myconversations-three-message-convers...mbnail.png]

A view of unread conversations:

[Image: 25-myconversations-unread-conversations-...mbnail.png]

More on the plugin's homepage.

Following up on a couple of posts in the thread [Services Request] MyBB Conversations Plugin, which Omar G. asked to be moved to a dedicated thread:

(2020-06-15, 05:29 PM)EHRA Wrote: [ -> ]This is spectacular, it seems to be a very well done job. I didn't notice on the screens, but it would be interesting to add multipage in conversations from a certain number of messages that can be configured in AdminCP. Thank you for developing this plugin for MyBB.

Yes, multipage is supported, just as for public forum threads. It just isn't visible in any of the screenshots because none of those conversations had more than ten messages, the hard-coded value of messages per page the number of messages per page stipulated by the core MyBB setting "Posts Per Page", which MyConversations currently treats as its "Messages Per Page" setting. You are right that it would be best if this were separately configurable in the ACP - I've added that to my TODO list for major release #2.

And you're welcome.

(2020-06-15, 07:28 PM)Supryk Wrote: [ -> ]Awesome
Do you have live demo?

Thanks, and yes, as per my above post, MyConversations can be tested on the creativeandcritical.net forums.

Could you make the messages scrollable like instagram messaging? I can pay you for the customization.
Pages: 1 2 3 4 5