Conversation Essentials

Conversation Essentials [Paid] 2.7.7

No permission to buy ($45.00)
I just attempted to move a conversation to a thread for the first time. A new user initiated a conversation when he really should have posted anew thread. I offered to move it to the appropriate forum, but the function failed with this error message recorded in the system errorlog:
Code:
[LIST]
[*]ErrorException: Job SV\ConversationEssentials:ConversationCopier: [E_WARNING] parse_ini_file(./data/osbrowser/uasdata.ini): failed to open stream: No such file or directory
[*]src/addons/Snog/OSBrowser/XF/Service/Thread/Creator.php:27
[*]Generated by: Unknown account
[*]Apr 7, 2022 at 12:40 PM
[/LIST]
[HEADING=2]Stack trace[/HEADING]
#0 [internal function]: XF::handlePhpError(2, '[E_WARNING] par...', '/home/xfnawcc/p...', 27, Array)
#1 src/addons/Snog/OSBrowser/XF/Service/Thread/Creator.php(27): parse_ini_file('./data/osbrowse...', true)
#2 src/XF/Service/ValidateAndSavableTrait.php(40): Snog\OSBrowser\XF\Service\Thread\Creator->_save()
#3 src/addons/SV/ConversationEssentials/Job/ConversationCopier.php(152): XF\Service\Thread\Creator->save()
#4 src/XF.php(479): SV\ConversationEssentials\Job\ConversationCopier->SV\ConversationEssentials\Job\{closure}()
#5 src/addons/SV/ConversationEssentials/Job/ConversationCopier.php(160): XF::asVisitor(Object(MMO\ImpersonateUser\XF\Entity\User), Object(Closure))
#6 src/XF/Job/Manager.php(253): SV\ConversationEssentials\Job\ConversationCopier->run(G)
#7 src/addons/Hampel/JobRunner/XF/Job/Manager.php(95): XF\Job\Manager->runJobInternal(Array, G)
#8 src/XF/Job/Manager.php(195): Hampel\JobRunner\XF\Job\Manager->runJobInternal(Array, G)
#9 src/addons/Hampel/JobRunner/XF/Job/Manager.php(85): XF\Job\Manager->runJobEntry(Array, G)
#10 src/XF/Job/Manager.php(79): Hampel\JobRunner\XF\Job\Manager->runJobEntry(Array, G)
#11 src/addons/Hampel/JobRunner/XF/Job/Manager.php(29): XF\Job\Manager->runQueue(false, 8)
#12 src/addons/Hampel/JobRunner/Cli/Command/RunJobs.php(89): Hampel\JobRunner\XF\Job\Manager->runQueue(false, 8)
#13 src/vendor/symfony/console/Command/Command.php(255): Hampel\JobRunner\Cli\Command\RunJobs->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#14 src/vendor/symfony/console/Application.php(987): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#15 src/vendor/symfony/console/Application.php(255): Symfony\Component\Console\Application->doRunCommand(Object(Hampel\JobRunner\Cli\Command\RunJobs), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#16 src/vendor/symfony/console/Application.php(148): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#17 src/XF/Cli/Runner.php(63): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#18 cmd.php(15): XF\Cli\Runner->run()
#19 {main}
[HEADING=2]Request state[/HEADING]
array(1) {
  ["cli"] => string(64) "/home/xfnawcc/public_html/cmd.php --quiet --time=300 hg:run-jobs"
}
 
@Xon .. I have an account with very high number of private conversations (most of them are automated)..
conversation list page loads in 0.2986s when your addon is disabled and loads in 19.4199s when it is enabled
This query takes 13 seconds
SQL:
SELECT COUNT(*)
FROM `xf_conversation_user`
LEFT JOIN `xf_conversation_master` AS `xf_conversation_master_Master_1` ON (`xf_conversation_master_Master_1`.`conversation_id` = `xf_conversation_user`.`conversation_id`)
LEFT JOIN `xf_conversation_recipient` AS `xf_conversation_recipient_Recipients_4` ON (`xf_conversation_recipient_Recipients_4`.`conversation_id` = `xf_conversation_master_Master_1`.`conversation_id` AND `xf_conversation_recipient_Recipients_4`.`user_id` = '2')
LEFT JOIN `xf_sv_convess_conversation_user` AS `xf_sv_convess_conversation_user_ConvEssUserData_5` ON (`xf_sv_convess_conversation_user_ConvEssUserData_5`.`conversation_id` = `xf_conversation_recipient_Recipients_4`.`conversation_id` AND `xf_sv_convess_conversation_user_ConvEssUserData_5`.`user_id` = `xf_conversation_recipient_Recipients_4`.`user_id`)
WHERE (`xf_conversation_user`.`owner_user_id` = 2) AND ((`xf_sv_convess_conversation_user_ConvEssUserData_5`.`label_id` = 0) OR (`xf_sv_convess_conversation_user_ConvEssUserData_5`.`label_id` IS NULL)) AND ((`xf_sv_convess_conversation_user_ConvEssUserData_5`.`sticky` = 0) OR (`xf_sv_convess_conversation_user_ConvEssUserData_5`.`sticky` IS NULL))

Run Time: 13.077180
Select TypeTableTypePossible KeysKeyKey LenRefRowsExtra
SIMPLExf_conversation_userrefowner_user_id_last_message_date,owner_user_id_is_unread,owner_starred_dateowner_user_id_is_unread4const2384700Using index
SIMPLExf_conversation_master_Master_1eq_refPRIMARYPRIMARY4dbname.xf_conversation_user.conversation_id1Using index
SIMPLExf_conversation_recipient_Recipients_4eq_refPRIMARY,user_idPRIMARY8dbname.xf_conversation_master_Master_1.conversation_id,const1Using index
SIMPLExf_sv_convess_conversation_user_ConvEssUserData_5eq_refPRIMARY,user_idPRIMARY8dbname.xf_conversation_recipient_Recipients_4.conversation_id,dbname.xf_conversation_recipient_Recipients_4.user_id1Using where

and this takes 6 seconds

SQL:
SELECT `xf_conversation_user`.*, `xf_conversation_master_Master_1`.*, `xf_conversation_recipient_Recipient_2`.*, `xf_user_Starter_3`.*, `xf_conversation_recipient_Recipients_4`.*, `xf_sv_convess_conversation_user_ConvEssUserData_5`.*, `xf_user_User_6`.*
FROM `xf_conversation_user`
LEFT JOIN `xf_conversation_master` AS `xf_conversation_master_Master_1` ON (`xf_conversation_master_Master_1`.`conversation_id` = `xf_conversation_user`.`conversation_id`)
LEFT JOIN `xf_conversation_recipient` AS `xf_conversation_recipient_Recipient_2` ON (`xf_conversation_recipient_Recipient_2`.`conversation_id` = `xf_conversation_user`.`conversation_id` AND `xf_conversation_recipient_Recipient_2`.`user_id` = `xf_conversation_user`.`owner_user_id`)
LEFT JOIN `xf_user` AS `xf_user_Starter_3` ON (`xf_user_Starter_3`.`user_id` = `xf_conversation_master_Master_1`.`user_id`)
LEFT JOIN `xf_conversation_recipient` AS `xf_conversation_recipient_Recipients_4` ON (`xf_conversation_recipient_Recipients_4`.`conversation_id` = `xf_conversation_master_Master_1`.`conversation_id` AND `xf_conversation_recipient_Recipients_4`.`user_id` = '2')
LEFT JOIN `xf_sv_convess_conversation_user` AS `xf_sv_convess_conversation_user_ConvEssUserData_5` ON (`xf_sv_convess_conversation_user_ConvEssUserData_5`.`conversation_id` = `xf_conversation_recipient_Recipients_4`.`conversation_id` AND `xf_sv_convess_conversation_user_ConvEssUserData_5`.`user_id` = `xf_conversation_recipient_Recipients_4`.`user_id`)
LEFT JOIN `xf_user` AS `xf_user_User_6` ON (`xf_user_User_6`.`user_id` = `xf_conversation_recipient_Recipients_4`.`user_id`)
WHERE (`xf_conversation_user`.`owner_user_id` = 2) AND (`xf_sv_convess_conversation_user_ConvEssUserData_5`.`sticky` = 1) AND ((`xf_sv_convess_conversation_user_ConvEssUserData_5`.`label_id` = 0) OR (`xf_sv_convess_conversation_user_ConvEssUserData_5`.`label_id` IS NULL))
ORDER BY `xf_conversation_user`.`last_message_date` DESC
Run Time: 6.214348
Select TypeTableTypePossible KeysKeyKey LenRefRowsExtra
SIMPLExf_sv_convess_conversation_user_ConvEssUserData_5refPRIMARY,label,user_iduser_id4const987322Using index condition; Using where; Using temporary; Using filesort
SIMPLExf_conversation_master_Master_1eq_refPRIMARYPRIMARY4dbname.xf_sv_convess_conversation_user_ConvEssUserData_5.conversation_id1
SIMPLExf_conversation_usereq_refPRIMARY,owner_user_id_last_message_date,owner_user_id_is_unread,owner_starred_datePRIMARY8dbname.xf_sv_convess_conversation_user_ConvEssUserData_5.conversation_id,const1
SIMPLExf_conversation_recipient_Recipient_2eq_refPRIMARY,user_idPRIMARY8dbname.xf_sv_convess_conversation_user_ConvEssUserData_5.conversation_id,const1
SIMPLExf_user_Starter_3eq_refPRIMARYPRIMARY4dbname.xf_conversation_master_Master_1.user_id1
SIMPLExf_conversation_recipient_Recipients_4eq_refPRIMARY,user_idPRIMARY8dbname.xf_sv_convess_conversation_user_ConvEssUserData_5.conversation_id,const1Using where
SIMPLExf_user_User_6eq_refPRIMARYPRIMARY4dbname.xf_sv_convess_conversation_user_ConvEssUserData_5.user_id1
 
@K a M a L please ensure you've got the latest version of the add-on installed.

@Xon .. I have an account with very high number of private conversations (most of them are automated)..
conversation list page loads in 0.2986s when your addon is disabled and loads in 19.4199s when it is enabled
This query takes 13 seconds
SQL:
SELECT COUNT(*)
FROM `xf_conversation_user`
LEFT JOIN `xf_conversation_master` AS `xf_conversation_master_Master_1` ON (`xf_conversation_master_Master_1`.`conversation_id` = `xf_conversation_user`.`conversation_id`)
LEFT JOIN `xf_conversation_recipient` AS `xf_conversation_recipient_Recipients_4` ON (`xf_conversation_recipient_Recipients_4`.`conversation_id` = `xf_conversation_master_Master_1`.`conversation_id` AND `xf_conversation_recipient_Recipients_4`.`user_id` = '2')
LEFT JOIN `xf_sv_convess_conversation_user` AS `xf_sv_convess_conversation_user_ConvEssUserData_5` ON (`xf_sv_convess_conversation_user_ConvEssUserData_5`.`conversation_id` = `xf_conversation_recipient_Recipients_4`.`conversation_id` AND `xf_sv_convess_conversation_user_ConvEssUserData_5`.`user_id` = `xf_conversation_recipient_Recipients_4`.`user_id`)
WHERE (`xf_conversation_user`.`owner_user_id` = 2) AND ((`xf_sv_convess_conversation_user_ConvEssUserData_5`.`label_id` = 0) OR (`xf_sv_convess_conversation_user_ConvEssUserData_5`.`label_id` IS NULL)) AND ((`xf_sv_convess_conversation_user_ConvEssUserData_5`.`sticky` = 0) OR (`xf_sv_convess_conversation_user_ConvEssUserData_5`.`sticky` IS NULL))

Run Time: 13.077180
Select TypeTableTypePossible KeysKeyKey LenRefRowsExtra
SIMPLExf_conversation_userrefowner_user_id_last_message_date,owner_user_id_is_unread,owner_starred_dateowner_user_id_is_unread4const2384700Using index
SIMPLExf_conversation_master_Master_1eq_refPRIMARYPRIMARY4dbname.xf_conversation_user.conversation_id1Using index
SIMPLExf_conversation_recipient_Recipients_4eq_refPRIMARY,user_idPRIMARY8dbname.xf_conversation_master_Master_1.conversation_id,const1Using index
SIMPLExf_sv_convess_conversation_user_ConvEssUserData_5eq_refPRIMARY,user_idPRIMARY8dbname.xf_conversation_recipient_Recipients_4.conversation_id,dbname.xf_conversation_recipient_Recipients_4.user_id1Using where

and this takes 6 seconds

SQL:
SELECT `xf_conversation_user`.*, `xf_conversation_master_Master_1`.*, `xf_conversation_recipient_Recipient_2`.*, `xf_user_Starter_3`.*, `xf_conversation_recipient_Recipients_4`.*, `xf_sv_convess_conversation_user_ConvEssUserData_5`.*, `xf_user_User_6`.*
FROM `xf_conversation_user`
LEFT JOIN `xf_conversation_master` AS `xf_conversation_master_Master_1` ON (`xf_conversation_master_Master_1`.`conversation_id` = `xf_conversation_user`.`conversation_id`)
LEFT JOIN `xf_conversation_recipient` AS `xf_conversation_recipient_Recipient_2` ON (`xf_conversation_recipient_Recipient_2`.`conversation_id` = `xf_conversation_user`.`conversation_id` AND `xf_conversation_recipient_Recipient_2`.`user_id` = `xf_conversation_user`.`owner_user_id`)
LEFT JOIN `xf_user` AS `xf_user_Starter_3` ON (`xf_user_Starter_3`.`user_id` = `xf_conversation_master_Master_1`.`user_id`)
LEFT JOIN `xf_conversation_recipient` AS `xf_conversation_recipient_Recipients_4` ON (`xf_conversation_recipient_Recipients_4`.`conversation_id` = `xf_conversation_master_Master_1`.`conversation_id` AND `xf_conversation_recipient_Recipients_4`.`user_id` = '2')
LEFT JOIN `xf_sv_convess_conversation_user` AS `xf_sv_convess_conversation_user_ConvEssUserData_5` ON (`xf_sv_convess_conversation_user_ConvEssUserData_5`.`conversation_id` = `xf_conversation_recipient_Recipients_4`.`conversation_id` AND `xf_sv_convess_conversation_user_ConvEssUserData_5`.`user_id` = `xf_conversation_recipient_Recipients_4`.`user_id`)
LEFT JOIN `xf_user` AS `xf_user_User_6` ON (`xf_user_User_6`.`user_id` = `xf_conversation_recipient_Recipients_4`.`user_id`)
WHERE (`xf_conversation_user`.`owner_user_id` = 2) AND (`xf_sv_convess_conversation_user_ConvEssUserData_5`.`sticky` = 1) AND ((`xf_sv_convess_conversation_user_ConvEssUserData_5`.`label_id` = 0) OR (`xf_sv_convess_conversation_user_ConvEssUserData_5`.`label_id` IS NULL))
ORDER BY `xf_conversation_user`.`last_message_date` DESC
Run Time: 6.214348
Select TypeTableTypePossible KeysKeyKey LenRefRowsExtra
SIMPLExf_sv_convess_conversation_user_ConvEssUserData_5refPRIMARY,label,user_iduser_id4const987322Using index condition; Using where; Using temporary; Using filesort
SIMPLExf_conversation_master_Master_1eq_refPRIMARYPRIMARY4dbname.xf_sv_convess_conversation_user_ConvEssUserData_5.conversation_id1
SIMPLExf_conversation_usereq_refPRIMARY,owner_user_id_last_message_date,owner_user_id_is_unread,owner_starred_datePRIMARY8dbname.xf_sv_convess_conversation_user_ConvEssUserData_5.conversation_id,const1
SIMPLExf_conversation_recipient_Recipient_2eq_refPRIMARY,user_idPRIMARY8dbname.xf_sv_convess_conversation_user_ConvEssUserData_5.conversation_id,const1
SIMPLExf_user_Starter_3eq_refPRIMARYPRIMARY4dbname.xf_conversation_master_Master_1.user_id1
SIMPLExf_conversation_recipient_Recipients_4eq_refPRIMARY,user_idPRIMARY8dbname.xf_sv_convess_conversation_user_ConvEssUserData_5.conversation_id,const1Using where
SIMPLExf_user_User_6eq_refPRIMARYPRIMARY4dbname.xf_sv_convess_conversation_user_ConvEssUserData_5.user_id1
Please open a ticket on my site; https://atelieraphelion.com/

This will require getting you to run a number of queries manually to identify what is happening.
 
Hi everyone,
I would like to authorize my moderators to send conversations to people who do not authorize conversations.
It would allow moderator to contact members privately even if members refuse that.
Is it feasible with this add-on?
Thanks
 
Trying tom export c conversations, but waiting a very long time fo =r the alert to download. is it normal to wait an hour or more? Thanks
 
Trying tom export c conversations, but waiting a very long time fo =r the alert to download. is it normal to wait an hour or more? Thanks
Try the latest update, there where some bugs where the conversation export could complete but you can't see it
 
Have not checked it now; client has sent mail with:

Error: Call to undefined method XF\Mvc\Reply\Error::validate() in src/XF/Pub/Controller/Conversation.php at line 323
XF\Pub\Controller\Conversation->actionAdd() in src/addons/SV/ConversationEssentials/XF/Pub/Controller/Conversation.php at line 70

Update:
The problem is in another add-on, sorry.
 
Last edited:
Does the inbox size limit applies to number of conversations (thread) or the messages itself?
Say we set it to 10, would that prevent any user from creating their 11th overall message?
Or would they be able to create 1 million messages in a single conversation as long as their conversation thread count is below 10?
 
There are two options for the inbox size limit. Number of conversations or number of conversation messages.
 
Top Bottom