1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Icewind Conversation Tools [Deleted]

Discussion in 'Add-on Releases' started by Lawrence, Feb 18, 2014.

  1. Lawrence

    Lawrence Well-Known Member

    Lawrence submitted a new resource:

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

    Read more about this resource...
    51463 likes this.
  2. RoldanLT

    RoldanLT Well-Known Member

  3. KozmoK

    KozmoK Active Member

    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) {
  4. Lawrence

    Lawrence Well-Known Member

    @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: Feb 23, 2014
  5. ge66

    ge66 Active Member

    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:
    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.
    Lawrence likes this.
  6. Lawrence

    Lawrence Well-Known Member

    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.
    ge66 likes this.
  7. Lawrence

    Lawrence Well-Known Member

    Compatible with XF 1.4 (Beta).

    Also fixed a bug that conflicted with the conversations essentials add-on. Just haven't uploaded it yet, :oops:
    maszd and Mian Shahid like this.
  8. Mian Shahid

    Mian Shahid Well-Known Member

    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

  9. Lawrence

    Lawrence Well-Known Member

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

    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.
    Mian Shahid likes this.
  10. Mian Shahid

    Mian Shahid Well-Known Member

    Kindly let me know where is this "Delete All Found" Button in below image:

  11. Lawrence

    Lawrence Well-Known Member

    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.
    maszd and Mian Shahid like this.
  12. Mian Shahid

    Mian Shahid Well-Known Member

    Will this delete only 2 conversations?

  13. Lawrence

    Lawrence Well-Known Member

    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).
    Mian Shahid likes this.
  14. Mian Shahid

    Mian Shahid Well-Known Member

    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 :)
  15. Lawrence

    Lawrence Well-Known Member

    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.
    Mian Shahid likes this.
  16. Disciple of Nagash

    Disciple of Nagash Active Member


    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?
  17. Lawrence

    Lawrence Well-Known Member

    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?
  18. Disciple of Nagash

    Disciple of Nagash Active Member

    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).
  19. Disciple of Nagash

    Disciple of Nagash Active Member

    @Lawrence - do you think the requested changes will be possible?
  20. Lawrence

    Lawrence Well-Known Member

    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.

Share This Page