Thread: Show Thread Enhancements - [AJAX] Post Thank You Hack
View Single Post
  #1534  
Old 05-17-2011, 01:17 PM
channelfuse's Avatar
channelfuse channelfuse is offline
 
Join Date: Nov 2008
Posts: 10
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Here's the fix for the searching. Replace post_thanks.php with this file.

What was wrong:
It was looking in an old table 'search' for the results. This no longer works.

What was fixed:
I have the initial SQL statement grab the thread IDs and post IDs:
PHP Code:
$posts $db->query_read("
            SELECT postid, post.threadid as threadid 
Then, we need to throw them into an array:
PHP Code:
while ($post $db->fetch_array($posts))
        {
            
$orderedids[] = array("1"$post['postid'], $post['threadid']);
        } 
The old code is commented out in other areas.

Then, we need to create our query to match the way vB 4.x wants it.
PHP Code:
$scriteria $search_core->create_criteria(vB_Search_Core::SEARCH_ADVANCED);
        
$scriteria->set_advanced_typeid($vbulletin->GPC['contenttypeid']);
        
$scriteria->set_grouped(vB_Search_Core::GROUP_NO);
        
$crit "'" $db->escape_string(serialize($scriteria)) . "'";
        
$hash "'" $db->escape_string($scriteria->get_hash()) . "'";
                    
//results, confirmed, groups_seen, groups_rejected
        
$sresults serialize(array($orderedids"0", array(), array()));
        
$db->query_write("
            INSERT INTO " 
TABLE_PREFIX "searchlog (userid, ipaddress, searchhash, sortby, sortorder, searchtime, dateline, completed, criteria, results)
            VALUES (" 
$vbulletin->userinfo['userid'] . ", '" $db->escape_string(IPADDRESS) . "', $hash, 'groupdateline', 'desc', '0.999', UNIX_TIMESTAMP(NOW()), 1, $crit, '$sresults')");
        
$searchid $db->insert_id(); 
We create our search criteria, serialize it and then get the hash of it. We then serialize our IDs. The way vB's results.php wants the results is ordered such as:

array of threadIDs/postIDs
number of 'confirmed' posts (No idea what this is, left it as 0).
array of groups seen (No idea on this, just make an empty array).
array of groups denied (Again, no clue. Just made an empty array).

We then insert the data into the searchlog table and use that to generate the search results. I also included some various files at the beginning and setup a variable for the whole search thing:
PHP Code:
require_once(DIR "/vb/search/core.php");
require_once(
DIR "/vb/search/resultsview.php");

$search_core vB_Search_Core::get_instance(); 
That's it. Searching via User CP should work.
Attached Files
File Type: php post_thanks.php (19.6 KB, 321 views)
Reply With Quote
3 благодарности(ей) от:
Hippy, Juggernaut, michal72
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01427 seconds
  • Memory Usage 1,818KB
  • Queries Executed 12 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (4)bbcode_php
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (3)post_thanks_box_bit
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_attachment
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • fetch_musername
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • post_thanks_function_fetch_thanks_bit_start
  • post_thanks_function_show_thanks_date_start
  • post_thanks_function_show_thanks_date_end
  • post_thanks_function_fetch_thanks_bit_end
  • post_thanks_function_fetch_post_thanks_template_start
  • post_thanks_function_fetch_post_thanks_template_end
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_attachment
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • showpost_complete