Mark Threads As 'Solved'

MobileHacks

New Member
What is this!?
This modification will allow you & your members (based on usergroup permissions) to mark a thread as "Solved". It will add the prefix "[SOLVED]" to the thread title, and if set in the admincp - it will also close the thread.

Current Version

1.1.0 - You can find the 3.6.x version

Features flagged for future version(s):

  • Thread starter can choose to solve a thread, and input the username of who solved it - that user would recieve rep. points. (admin-configurable amount of rep. points)
  • Given the above - include count of threads a user has solved in postbit & profile
  • Possibly figure out a way to automate everything on install - so there are no template edits.
And anything else that is suggested

Will this work on x.x.x ??

Unless otherwise stated, this will work on all 3.7 - 3.8 versions.

Sounds cool. How do I install?

  1. Extract the zip, you should have the following directories/files:
    PHP:
    /
    |_ install.html
    |_ product-solvedthread.xml
    
    /upload/
    |_ solved.php
    
        /upload/images/
            /buttons/
            |_ marksolved.gif
    
        /upload/includes/
            /xml/
            |_ bitfield_solvedthread.xml
  2. Upload the files/folders that are in the "upload" folder, to your forum root.
  3. Import the product, product-solvedthread.xml
  4. Make the following template edits:
    SHOWTHREAD
    Find:
    PHP:
            <if condition="$show['addpoll']">
                <div><img class="inlineimg" src="$stylevar[imgdir_button]/addpoll.gif" alt="$vbphrase[add_a_poll]" vspace="1" /> <a rel="nofollow" href="poll.php?$session[sessionurl]do=newpoll&t=$threadinfo[threadid]">$vbphrase[add_a_poll_to_this_thread]</a></div>
            </if>
        </div>
        <!-- / thread tools -->
    Replace with:
    PHP:
            <if condition="$show['addpoll']">
                <div><img class="inlineimg" src="$stylevar[imgdir_button]/addpoll.gif" alt="$vbphrase[add_a_poll]" vspace="1" /> <a rel="nofollow" href="poll.php?$session[sessionurl]do=newpoll&t=$threadinfo[threadid]">$vbphrase[add_a_poll_to_this_thread]</a></div>
            </if>
            <if condition="$show['solvedthread']">
                <div><img class="inlineimg" src="$stylevar[imgdir_button]/marksolved.gif" alt="$vbphrase[solvedthread_marksolved]" vspace="1" /> <a rel="nofollow" href="solved.php?$session[sessionurl]do=marksolved&t=$threadinfo[threadid]">$vbphrase[solvedthread_marksolved]</a></div>
            <else />
                <if condition="$show['solvedthread_unsolve']">
                <div><img class="inlineimg" src="$stylevar[imgdir_button]/marksolved.gif" alt="$vbphrase[solvedthread_markunsolved]" vspace="1" /> <a rel="nofollow" href="solved.php?$session[sessionurl]do=markunsolved&t=$threadinfo[threadid]">$vbphrase[solvedthread_markunsolved]</a></div>
            </if>
        </if>
        </div>
        <!-- / thread tools -->
    Find:
    PHP:
        <if condition="$show['addpoll']">
        <tr>
            <td class="vbmenu_option"><img class="inlineimg" src="$stylevar[imgdir_button]/addpoll.gif" alt="$vbphrase[add_a_poll]" /> <a rel="nofollow" href="poll.php?$session[sessionurl]do=newpoll&t=$threadinfo[threadid]">$vbphrase[add_a_poll_to_this_thread]</a></td>
        </tr>
        </if>
        <if condition="$show['adminoptions']">
    Replace with:
    PHP:
        <if condition="$show['addpoll']">
        <tr>
            <td class="vbmenu_option"><img class="inlineimg" src="$stylevar[imgdir_button]/addpoll.gif" alt="$vbphrase[add_a_poll]" /> <a rel="nofollow" href="poll.php?$session[sessionurl]do=newpoll&t=$threadinfo[threadid]">$vbphrase[add_a_poll_to_this_thread]</a></td>
        </tr>
        </if>
        <if condition="$show['solvedthread']">
        <tr>
            <td class="vbmenu_option"><img class="inlineimg" src="$stylevar[imgdir_button]/marksolved.gif" alt="$vbphrase[solvedthread_marksolved]" /> <a rel="nofollow" href="solved.php?$session[sessionurl]do=marksolved&t=$threadinfo[threadid]">$vbphrase[solvedthread_marksolved]</a></td>
        </tr>
            <else />
                <if condition="$show['solvedthread_unsolve']">
        <tr>
            <td class="vbmenu_option"><img class="inlineimg" src="$stylevar[imgdir_button]/marksolved.gif" alt="$vbphrase[solvedthread_markunsolved]" /> <a rel="nofollow" href="solved.php?$session[sessionurl]do=markunsolved&t=$threadinfo[threadid]">$vbphrase[solvedthread_markunsolved]</a></td>
        </tr>
            </if>
        </if>
        <if condition="$show['adminoptions']">
  5. Set options in AdminCP > vBulletin Options > Solved Threads
  6. Edit Post / Thread Permissions > Can Mark Threads as Solved for each usergroup.
Upgrading
To 1.1.0

  • Re-import the product, product-solvedthreads.xml, with "Allow Overwrite" set to yes
  • Upload the files/folders in the "upload" folder, allowing it to overwrite the old files.
  • Currently do not have a way you can remove the old prefix/data, will try to soon.
Changelog
1.1.0 - April 12, 2009
- Updated for 3.7 & 3.8
- Now uses the built-in Thread Prefix system
- Instead of 'excluding' forums, since using the Thread Prefix system, you can choose which forums this will be shown in.

1.0.1 - July 12, 2007
- Added the ability to unsolve a thread.
- Added the ability to exclude this in certain forums
- Added the ability to change the prefix in that acp

1.0.0 - June 8, 2007
- Initial release.
 

Error 404

New Member
Aight mane, working on my forum ;) altho, i chose different picture than that ugly one..

Whoever want to use tha "ticked" picture use the one that is in my Attachement, unless you want to use tha ugly one that is in MobileHack's Attachment.

lol, sorry Mobile ))



P.S. - just rename the file extension from .png to .gif and that will work ;)
 

Pixel3

New Member
Code:
Fatal error: Existing data passed is not an array
Called set_existing in [path]/admincp/plugin.php(1522) : eval()'d code on line 42
Called eval in [path]/admincp/plugin.php on line 1522
in [path]/includes/class_dm.php on line 235
#0 vb_error_handler(256, Existing data passed is not an array
Called set_existing in /home/gotjuked/public_html/admincp/plugin.php(1522) : eval()'d code on line 42
Called eval in /home/gotjuked/public_html/admincp/plugin.php on line 1522
, /home/gotjuked/public_html/includes/class_dm.php, 235, Array ([existing] => ,[line] =>
Called set_existing in /home/gotjuked/public_html/admincp/plugin.php(1522) : eval()'d code on line 42
Called eval in /home/gotjuked/public_html/admincp/plugin.php on line 1522
,[trace] => Array ([0] => Array ([file] => /home/gotjuked/public_html/admincp/plugin.php(1522) : eval()'d code,[line] => 42,[function] => set_existing,[class] => vB_DataManager,[object] => vB_DataManager_Prefix Object ([validfields] => Array ([prefixid] => Array ([0] => 7,[1] => 1,[2] => _-_mEtHoD_-_),[prefixsetid] => Array ([0] => 7,[1] => 1),[displayorder] => Array ([0] => 3,[1] => 1)),[condition_construct] => Array ([0] => prefixid = '%1$s',[1] => prefixid),[table] => prefix,[prefix] => Array (),[info] => Array ([title_plain] => ,[title_rich] => ),[bitfields] => Array (),[setfields] => Array (),[rawfields] => Array (),[registry] => vB_Registry Object ([datastore] => vB_Datastore Object ([defaultitems] => Array ([0] => options,[1] => bitfields,[2] => attachmentcache,[3] => forumcache,[4] => usergroupcache,[5] => stylecache,[6] => languagecache,[7] => products,[8] => pluginlist,[9] => cron,[10] => profilefield,[11] => loadcache,[12] => noticecache),[itemarray] => Array (),[registry] => vB_Registry Object ( *RECURSION*,[dbobject] => vB_Database Object ([functions] => Array ([connect] => mysql_connect,[pconnect] => mysql_pconnect,[select_db] => mysql_select_db,[query] => mysql_query,[query_unbuffered] => mysql_unbuffered_query,[fetch_row] => mysql_fetch_row,[fetch_array] => mysql_fetch_array,[fetch_field] => mysql_fetch_field,[free_result] => mysql_free_result,[data_seek] => mysql_data_seek,[error] => mysql_error,[errno] => mysql_errno,[affected_rows] => mysql_affected_rows,[num_rows] => mysql_num_rows,[num_fields] => mysql_num_fields,[field_name] => mysql_field_name,[insert_id] => mysql_insert_id,[escape_string] => mysql_escape_string,[real_escape_string] => mysql_real_escape_string,[close] => mysql_close,[client_encoding] => mysql_client_encoding),[registry] => vB_Registry Object ( *RECURSION*,[fetchtypes] => Array ([2] => 2,[1] => 1,[0] => 3),[appname] => vBulletin,[appshortname] => vBulletin,[database] => gotjuked_forums,[connection_master] => Resource id #7,[connection_slave] => Resource id #7,[connection_recent] => Resource id #7,[multiserver] => ,[shutdownqueries] => Array ([lastvisit] => UPDATE gj_user SET lastactivity = 1240073059 WHERE userid = 1 ,[0] => INSERT INTO gj_adminlog(userid, dateline, script, action, extrainfo, ipaddress) VALUES (1, 1240073059, 'plugin.php', 'productkill', '', '96.22.109.123') ),[sql] => ,[reporterror] => ,[error] => ,[errno] => ,[maxpacket] => 0,[locked] => ,[querycount] => 37,[rows] => 1),[prefix] => ),[input] => vB_Input_Cleaner Object ([shortvars] => Array ([f] => forumid,[t] => threadid,[p] => postid,[u] => userid,[a] => announcementid,[c] => calendarid,[e] => eventid,[q] => query,[pp] => perpage,[page] => pagenumber,[sort] => sortfield,[order] => sortorder),[superglobal_lookup] => Array ([g] => _GET,[p] => _POST,[r] => _REQUEST,[c] => _COOKIE,[s] => _SERVER,[e] => _ENV,[f] => _FILES),[scriptpath] => ,[reloadurl] => ,[wolpath] => ,[url] => ,[ipaddress] => ,[alt_ip] => ,[registry] => vB_Registry Object ( *RECURSION*,[cleaned_vars] => Array ([vbulletin_collapse] => 7,[bbreferrerid] => 3,[bbuserid] => 3,[bbpassword] => 7,[bblastvisit] => 3,[bblastactivity] => 3,[bbthreadedmode] => 9,[bbsessionhash] => 9,[bbstyleid] => 3,[bblanguageid] => 3,[s] => 9,[styleid] => 2,[langid] => 2,[adminhash] => 7,[bbcpsession] => 7,[pluginid] => 3,[productid] => 7)),[db] => vB_Database Object ([functions] => Array ([connect] => mysql_connect,[pconnect] => mysql_pconnect,[select_db] => mysql_select_db,[query] => mysql_query,[query_unbuffered] => mysql_unbuffered_query,[fetch_row] => mysql_fetch_row,[fetch_array] => mysql_fetch_array,[fetch_field] => mysql_fetch_field,[free_result] => mysql_free_result,[data_seek] => mysql_data_seek,[error] => mysql_error,[errno] => mysql_errno,[affected_rows] => mysql_affected_rows,[num_rows] => mysql_num_rows,[num_fields] => mysql_num_fields,[field_name] => mysql_field_name,[insert_id] => mysql_insert_id,[escape_string] => mysql_escape_string,[real_escape_string] => mysql_real_escape_string,[close] => mysql_close,[client_encoding] => mysql_client_encoding),[registry] => vB_Registry Object ( *RECURSION*,[fetchtypes] => Array ([2] => 2,[1] => 1,[0] => 3),[appname] => vBulletin,[appshortname] => vBulletin,[database] => gotjuked_forums,[connection_master] => Resource id #7,[connection_slave] => Resource id #7,[connection_recent] => Resource id #7,[multiserver] => ,[shutdownqueries] => Array ([lastvisit] => UPDATE gj_user SET lastactivity = 1240073059 WHERE userid = 1 ,[0] => INSERT INTO gj_adminlog(userid, dateline, script, action, extrainfo, ipaddress) VALUES (1, 1240073059, 'plugin.php', 'productkill', '', '96.22.109.123') ),[sql] => ,[reporterror] => ,[error] => ,[errno] => ,[maxpacket] => 0,[locked] => ,[querycount] => 37,[rows] => 1),[userinfo] => Array ([userid] => 1,[adminpermissions] => 491516,[navprefs] => ,[cssprefs] => vBulletin_BlackandBlue_8,[notes] => ,[dismissednews] => ,[languageid] => 0,[temp] => ,[field2] => Canada,[field5] => STEAM_0:0:18882918,[field6] => ,[field7] => ,[field8] => ,[field9] => ,[field10] => ,[field11] => ,[field12] => ,[field13] => ,[subfolders] => ,[pmfolders] => ,[buddylist] => 3 4 5 6 9 18 21 35 45 53 58 103 140 150 177 212 220 226 227 234 346 360 361,[ignorelist] => ,[signature] => [img]http://www.fasterdl.com/weed/Sigs.png[/img],[searchprefs] => ,[rank] => Active Website MemberActive Server Member




when uninstalling this shitty thing....
 

iAMamazing

New Member
Pixel3 said:
Code:
Fatal error: Existing data passed is not an array
Called set_existing in [path]/admincp/plugin.php(1522) : eval()'d code on line 42
Called eval in [path]/admincp/plugin.php on line 1522
in [path]/includes/class_dm.php on line 235
#0 vb_error_handler(256, Existing data passed is not an array
Called set_existing in /home/gotjuked/public_html/admincp/plugin.php(1522) : eval()'d code on line 42
Called eval in /home/gotjuked/public_html/admincp/plugin.php on line 1522
, /home/gotjuked/public_html/includes/class_dm.php, 235, Array ([existing] => ,[line] =>
Called set_existing in /home/gotjuked/public_html/admincp/plugin.php(1522) : eval()'d code on line 42
Called eval in /home/gotjuked/public_html/admincp/plugin.php on line 1522
,[trace] => Array ([0] => Array ([file] => /home/gotjuked/public_html/admincp/plugin.php(1522) : eval()'d code,[line] => 42,[function] => set_existing,[class] => vB_DataManager,[object] => vB_DataManager_Prefix Object ([validfields] => Array ([prefixid] => Array ([0] => 7,[1] => 1,[2] => _-_mEtHoD_-_),[prefixsetid] => Array ([0] => 7,[1] => 1),[displayorder] => Array ([0] => 3,[1] => 1)),[condition_construct] => Array ([0] => prefixid = '%1$s',[1] => prefixid),[table] => prefix,[prefix] => Array (),[info] => Array ([title_plain] => ,[title_rich] => ),[bitfields] => Array (),[setfields] => Array (),[rawfields] => Array (),[registry] => vB_Registry Object ([datastore] => vB_Datastore Object ([defaultitems] => Array ([0] => options,[1] => bitfields,[2] => attachmentcache,[3] => forumcache,[4] => usergroupcache,[5] => stylecache,[6] => languagecache,[7] => products,[8] => pluginlist,[9] => cron,[10] => profilefield,[11] => loadcache,[12] => noticecache),[itemarray] => Array (),[registry] => vB_Registry Object ( *RECURSION*,[dbobject] => vB_Database Object ([functions] => Array ([connect] => mysql_connect,[pconnect] => mysql_pconnect,[select_db] => mysql_select_db,[query] => mysql_query,[query_unbuffered] => mysql_unbuffered_query,[fetch_row] => mysql_fetch_row,[fetch_array] => mysql_fetch_array,[fetch_field] => mysql_fetch_field,[free_result] => mysql_free_result,[data_seek] => mysql_data_seek,[error] => mysql_error,[errno] => mysql_errno,[affected_rows] => mysql_affected_rows,[num_rows] => mysql_num_rows,[num_fields] => mysql_num_fields,[field_name] => mysql_field_name,[insert_id] => mysql_insert_id,[escape_string] => mysql_escape_string,[real_escape_string] => mysql_real_escape_string,[close] => mysql_close,[client_encoding] => mysql_client_encoding),[registry] => vB_Registry Object ( *RECURSION*,[fetchtypes] => Array ([2] => 2,[1] => 1,[0] => 3),[appname] => vBulletin,[appshortname] => vBulletin,[database] => gotjuked_forums,[connection_master] => Resource id #7,[connection_slave] => Resource id #7,[connection_recent] => Resource id #7,[multiserver] => ,[shutdownqueries] => Array ([lastvisit] => UPDATE gj_user SET lastactivity = 1240073059 WHERE userid = 1 ,[0] => INSERT INTO gj_adminlog(userid, dateline, script, action, extrainfo, ipaddress) VALUES (1, 1240073059, 'plugin.php', 'productkill', '', '96.22.109.123') ),[sql] => ,[reporterror] => ,[error] => ,[errno] => ,[maxpacket] => 0,[locked] => ,[querycount] => 37,[rows] => 1),[prefix] => ),[input] => vB_Input_Cleaner Object ([shortvars] => Array ([f] => forumid,[t] => threadid,[p] => postid,[u] => userid,[a] => announcementid,[c] => calendarid,[e] => eventid,[q] => query,[pp] => perpage,[page] => pagenumber,[sort] => sortfield,[order] => sortorder),[superglobal_lookup] => Array ([g] => _GET,[p] => _POST,[r] => _REQUEST,[c] => _COOKIE,[s] => _SERVER,[e] => _ENV,[f] => _FILES),[scriptpath] => ,[reloadurl] => ,[wolpath] => ,[url] => ,[ipaddress] => ,[alt_ip] => ,[registry] => vB_Registry Object ( *RECURSION*,[cleaned_vars] => Array ([vbulletin_collapse] => 7,[bbreferrerid] => 3,[bbuserid] => 3,[bbpassword] => 7,[bblastvisit] => 3,[bblastactivity] => 3,[bbthreadedmode] => 9,[bbsessionhash] => 9,[bbstyleid] => 3,[bblanguageid] => 3,[s] => 9,[styleid] => 2,[langid] => 2,[adminhash] => 7,[bbcpsession] => 7,[pluginid] => 3,[productid] => 7)),[db] => vB_Database Object ([functions] => Array ([connect] => mysql_connect,[pconnect] => mysql_pconnect,[select_db] => mysql_select_db,[query] => mysql_query,[query_unbuffered] => mysql_unbuffered_query,[fetch_row] => mysql_fetch_row,[fetch_array] => mysql_fetch_array,[fetch_field] => mysql_fetch_field,[free_result] => mysql_free_result,[data_seek] => mysql_data_seek,[error] => mysql_error,[errno] => mysql_errno,[affected_rows] => mysql_affected_rows,[num_rows] => mysql_num_rows,[num_fields] => mysql_num_fields,[field_name] => mysql_field_name,[insert_id] => mysql_insert_id,[escape_string] => mysql_escape_string,[real_escape_string] => mysql_real_escape_string,[close] => mysql_close,[client_encoding] => mysql_client_encoding),[registry] => vB_Registry Object ( *RECURSION*,[fetchtypes] => Array ([2] => 2,[1] => 1,[0] => 3),[appname] => vBulletin,[appshortname] => vBulletin,[database] => gotjuked_forums,[connection_master] => Resource id #7,[connection_slave] => Resource id #7,[connection_recent] => Resource id #7,[multiserver] => ,[shutdownqueries] => Array ([lastvisit] => UPDATE gj_user SET lastactivity = 1240073059 WHERE userid = 1 ,[0] => INSERT INTO gj_adminlog(userid, dateline, script, action, extrainfo, ipaddress) VALUES (1, 1240073059, 'plugin.php', 'productkill', '', '96.22.109.123') ),[sql] => ,[reporterror] => ,[error] => ,[errno] => ,[maxpacket] => 0,[locked] => ,[querycount] => 37,[rows] => 1),[userinfo] => Array ([userid] => 1,[adminpermissions] => 491516,[navprefs] => ,[cssprefs] => vBulletin_BlackandBlue_8,[notes] => ,[dismissednews] => ,[languageid] => 0,[temp] => ,[field2] => Canada,[field5] => STEAM_0:0:18882918,[field6] => ,[field7] => ,[field8] => ,[field9] => ,[field10] => ,[field11] => ,[field12] => ,[field13] => ,[subfolders] => ,[pmfolders] => ,[buddylist] => 3 4 5 6 9 18 21 35 45 53 58 103 140 150 177 212 220 226 227 234 346 360 361,[ignorelist] => ,[signature] => [img]http://www.fasterdl.com/weed/Sigs.png[/img],[searchprefs] => ,[rank] => Active Website MemberActive Server Member




when uninstalling this shitty thing....

Same here. This is so frustrating.
 
Top