Icewind Conversation Tools [Deleted]

Lawrence

Well-known member
Lawrence submitted a new resource:

Icewind Conversation Tools - Allow admins to prune conversation and adds 3 new user group permissions

Icewind Conversation Tools is a complete re-write of this add-on: Icewind Dale RP Prune Conversations

If you have the above add-on installed, uninstall it first, and remove the files from your server. This is not an upgrade.

What's new:
  • New directory structure
  • Utilizes XenForo's Deferred method when Pruning Conversations:
    • prune conversations that had no replies after X...

Read more about this resource...
 
I am getting a few of these errors:

Server Error Log
Error Info
ErrorException: Array to string conversion - library/Zend/Db/Statement/Mysqli.php:208
Generated By: erokutan, 19 minutes ago
Stack Trace
#0 [internal function]: XenForo_Application::handlePhpError(8, 'Array to string...', '/hackersadvanta...', 208, Array)
#1 /hackersadvantage/forums/library/Zend/Db/Statement/Mysqli.php(208): mysqli_stmt->execute()
#2 /hackersadvantage/forums/library/Zend/Db/Statement.php(297): Zend_Db_Statement_Mysqli->_execute(Array)
#3 /hackersadvantage/forums/library/Zend/Db/Adapter/Abstract.php(479): Zend_Db_Statement->execute(Array)
#4 /hackersadvantage/forums/library/Zend/Db/Adapter/Abstract.php(753): Zend_Db_Adapter_Abstract->query('????SELECT *???...', Array)
#5 /hackersadvantage/forums/library/ConvEss/Model/Conversation.php(273): Zend_Db_Adapter_Abstract->fetchRow('????SELECT *???...', Array)
#6 /hackersadvantage/forums/library/ConvEss/Model/Conversation.php(1724): ConvEss_Model_Conversation->getConvessByConversationUserId(Array, 10988)
#7 /hackersadvantage/forums/library/Icewind/ConversationTools/Extend/Model/Conversation.php(102): ConvEss_Model_Conversation->deleteConversationForUser(Array, 10988, 'delete_ignore')
#8 /hackersadvantage/forums/library/Icewind/ConversationTools/Extend/Model/Conversation.php(19): Icewind_ConversationTools_Extend_Model_Conversation->iwdCTDeleteConversationsForUser(Array, 10988)
#9 /hackersadvantage/forums/library/Icewind/ConversationTools/Extend/ControllerPublic/Conversation.php(7): Icewind_ConversationTools_Extend_Model_Conversation->iwdCTCanRetainConversations()
#10 /hackersadvantage/forums/library/XenForo/FrontController.php(347): Icewind_ConversationTools_Extend_ControllerPublic_Conversation->actionIndex()
#11 /hackersadvantage/forums/library/XenForo/FrontController.php(134): XenForo_FrontController->dispatch(Object(XenForo_RouteMatch))
#12 /hackersadvantage/forums/index.php(13): XenForo_FrontController->run()
#13 {main}
Request State
array(3) {
["url"] => string(67) "http://www.hackersadvantage.com/forums/conversations/slow-aim.3437/"
["_GET"] => array(0) {
}
["_POST"] => array(0) {
}
}
 
@KozmoK I don't have Conversation Essentials installed to properly check the conflict out. Can you enter Development mode and check to see if the Conversation Essentials Add-on uses an Event Hint? If it does, trying decreasing the Callback Execution Order for Icewind Conversations load_class_controller to a low value. If it doesn't, remove the event hint: XenForo_ControllerPublic_Conversation from Icewind Conversations load_class_controller listener and set the execution order to 0, and let me know the results.

The Icewind ConversationTools add-on deletes conversations using XenForo's method, so this does sound like an execution order conflict.
 
Last edited:
Thank you for this it is working well in the test I have been running.

I have imported a lot of PM from vb3.8 and the pruning is working but I tested searching for a conversation and if I click on a new one it works but if I click on an old vb-imported I get this error:
Code:
Server Error

Invalid argument supplied for foreach()

    XenForo_Application::handlePhpError() in Icewind/ConversationTools/ControllerAdmin/User.php at line 144
    Icewind_ConversationTools_ControllerAdmin_User->actionViewConversation() in XenForo/FrontController.php at line 347
    XenForo_FrontController->dispatch() in XenForo/FrontController.php at line 134
    XenForo_FrontController->run() in /home/httpd/name/domain.com/dir/admin.php at line 13

Not a big thing, if I search for conversations in the future I will probably only be interested in xenforo created ones.
 
Thank you for this it is working well in the test I have been running.

I have imported a lot of PM from vb3.8 and the pruning is working but I tested searching for a conversation and if I click on a new one it works but if I click on an old vb-imported I get this error:
Code:
Server Error

Invalid argument supplied for foreach()

    XenForo_Application::handlePhpError() in Icewind/ConversationTools/ControllerAdmin/User.php at line 144
    Icewind_ConversationTools_ControllerAdmin_User->actionViewConversation() in XenForo/FrontController.php at line 347
    XenForo_FrontController->dispatch() in XenForo/FrontController.php at line 134
    XenForo_FrontController->run() in /home/httpd/name/domain.com/dir/admin.php at line 13

Not a big thing, if I search for conversations in the future I will probably only be interested in xenforo created ones.

I believe I have this fixed now, and will release an update after I have time to take a peek at the importer for PM's, to be sure. Thanks for reporting it.
 
Excellent, it solved my big problem, we imported a large number of PM's from VB, which users are still replying, which generating lot of emails.
Thanks for such a nice & handy Add-on.

1 suggestion: kindly add "Select Box" in each row and "Prune Selected" buttons at bottom of below image

v6JASAq.png
 
Excellent, it solved my big problem, we imported a large number of PM's from VB, which users are still replying, which generating lot of emails.
Thanks for such a nice & handy Add-on.

Thanks. I have an update for this that fixes, I believe, the bug mentioned above and a compatibility issue with one other add-on.

1 suggestion: kindly add "Select Box" in each row and "Prune Selected" buttons at bottom of below image

There is a "Delete All Found" by user option. I didn't add in a delete by title key words because I thought that could lead to an Admin accidentally deleting numerous PC's by mistake. I may look at adding in the check boxes as you suggested, though.
 
There is a "Delete All Found" by user option. I didn't add in a delete by title key words because I thought that could lead to an Admin accidentally deleting numerous PC's by mistake. I may look at adding in the check boxes as you suggested, though.
Kindly let me know where is this "Delete All Found" Button in below image:

hhBdq9t.png
 
Kindly let me know where is this "Delete All Found" Button in below image

If you use search by User Name, the button will show. OR, if you search by thread title key words, and click on one to take you to the view conversation screen, on that screen in the top right corner is a button to allow you to find all PC's started by that user, this will show the button. In your case if you search for "earning program", click on one to view it, and then select the Find all by User on the screen, then the button to delete all will show (assuming one person started a lot of them, it may be useful).

Also, if you go to Prune Conversations, in your case, you may want to see if pruning PC's whose last reply date was X days ago would be helpful to you.
 
This will delete all conversations started by Doctor (and it looks like 403 pages worth, :eek:).

The filter items has no effect on the number that will be deleted. Its only useful if you want to singularly delete specific conversations by that user that contain certain words in the title (by using the X on the right side).
 
This will delete all conversations started by Doctor (and it looks like 403 pages worth, :eek:).

The filter items has no effect on the number that will be deleted. Its only useful if you want to singularly delete specific conversations by that user that contain certain words in the title (by using the X on the right side).
So , then my idea is better, adding "Delete Selected" button is useful, because when we delete single PC, screen will refresh to starting page, then we need to again search and reach at the point where we delete single PC, this is very hard if we need to delete 50PC out of 4500 of a user then :eek: we may do this 50 times?

So better is, we may select those 50 PC and then press "Delete Selected" button once :)
 
I never added that because this add-on wasn't meant for it. The goal was to allow admins to clean up old conversations and mass delete PC's from spammers that were never reported. However, I do see a use to your suggestion and will look in to adding it in.
 
Hi,

Would it be possible to prune by limit? For example allow users (or even better specific usergroups) to have X amount of conversations, and then run a pruner that deletes any that are over this?
 
Hi,

Would it be possible to prune by limit? For example allow users (or even better specific usergroups) to have X amount of conversations, and then run a pruner that deletes any that are over this?

I'm not sure how beneficial that would be as you can set the limit of started conversations per time frame. Or, are you referring to pruning the oldest conversation when a new started one puts them over the limit, to maintain their limit?
 
I am thinking without the time limit.

So for example I set 100 max conversations can be started per user. Any over that it stops any more being created and they have to delete some. That would work going forward, however I would still be left with the problem I have now, in that where I previously didn't have a limit the conversations on my site are 300MB alone on my database. My personal conversations run to over 11,000 pages!

So ideally it would be good to be able to set the limit per user group, and then run the pruner to delete conversations over the specified number (it would for example leave the 50 newest conversations).
 
@Lawrence - do you think the requested changes will be possible?

Setting a limit and then having a member delete some when they reached their limit was an option I was originally going to add, but I chose to go with a limit per time frame, though I can't remember why. I'll take a look at adding this in after I finish with another add-on.

With the amount of conversations you have, you should take a look at pruning some; set the pruning tool to look for last replies that are a few years old and see how many it will delete... if it seems like a really lot, go even further back until you hit a decent number. When it is finished, check for last relies over say 2 years ago. If you continue doing that you should be able to get your number down over time without putting too much strain on your server.
 
Top Bottom