View Single Post
  #1  
Old 08-09-2005, 02:38 PM
Cyricx Cyricx is offline
 
Join Date: Aug 2002
Location: Missouri
Posts: 1,144
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Showthread Query Hook

Okay, so I've been fiddling around with this hook to add more info into the postbit for the inferno rpg without adding a query.

This is what the showthread.php file looks like in that spot.

Code:
 $hook_query_fields = $hook_query_joins = $hook_query_where = '';
 ($hook = vBulletinHook::fetch_hook('showthread_query')) ? eval($hook) : false;
 $posts = $db->query_read("
  SELECT
   post.*, post.username AS postusername, post.ipaddress AS ip, IF(post.visible = 2, 1, 0) AS isdeleted,
   user.*, userfield.*, usertextfield.*,
	" . iif($forum['allowicons'], 'icon.title as icontitle, icon.iconpath,') . "
   " . iif($vbulletin->options['avatarenabled'], 'avatar.avatarpath, NOT ISNULL(customavatar.filedata) AS hascustomavatar, customavatar.dateline AS avatardateline,customavatar.width AS avwidth,customavatar.height AS avheight,') . "
   " . iif($vbulletin->options['reputationenable'], 'level,') . "
   " . iif($deljoin, 'deletionlog.userid AS del_userid, deletionlog.username AS del_username, deletionlog.reason AS del_reason,') . "
   editlog.userid AS edit_userid, editlog.username AS edit_username, editlog.dateline AS edit_dateline,
   editlog.reason AS edit_reason,
   post_parsed.pagetext_html, post_parsed.hasimages,
   IF(displaygroupid=0, user.usergroupid, displaygroupid) AS displaygroupid
   " . iif(!($permissions['genericpermissions'] & $vbulletin->bf_ugp_genericpermissions['canseehiddencustomfields']), $vbulletin->hidprofilecache) . "
   $hook_query_fields
  FROM " . TABLE_PREFIX . "post AS post
  LEFT JOIN " . TABLE_PREFIX . "user AS user ON(user.userid = post.userid)
  LEFT JOIN " . TABLE_PREFIX . "userfield AS userfield ON(userfield.userid = user.userid)
  LEFT JOIN " . TABLE_PREFIX . "usertextfield AS usertextfield ON(usertextfield.userid = user.userid)
  " . iif($forum['allowicons'], "LEFT JOIN " . TABLE_PREFIX . "icon AS icon ON(icon.iconid = post.iconid)") . "
  " . iif($vbulletin->options['avatarenabled'], "LEFT JOIN " . TABLE_PREFIX . "avatar AS avatar ON(avatar.avatarid = user.avatarid) LEFT JOIN " . TABLE_PREFIX . "customavatar AS customavatar ON(customavatar.userid = user.userid)") .
   iif($vbulletin->options['reputationenable'], " LEFT JOIN " . TABLE_PREFIX . "reputationlevel AS reputationlevel ON(user.reputationlevelid = reputationlevel.reputationlevelid)") . "
   $deljoin
  LEFT JOIN " . TABLE_PREFIX . "editlog AS editlog ON(editlog.postid = post.postid)
  LEFT JOIN " . TABLE_PREFIX . "post_parsed AS post_parsed ON(post_parsed.postid = post.postid AND post_parsed.styleid_code = " . $vbulletin->bbcode_style['code'] . " AND post_parsed.styleid_html = " . $vbulletin->bbcode_style['html'] . " AND post_parsed.styleid_php = " . $vbulletin->bbcode_style['php'] . " AND post_parsed.styleid_quote = " . $vbulletin->bbcode_style['quote'] . ")
   $hook_query_joins
  WHERE $postids $hook_query_where
  ORDER BY post.dateline $postorder
 ");
So I made a plugin using the showthread_query hook with this code -

Code:
$hook_query_fields = ",inferno_user.*, inferno_jobs.*, inferno_element.*, inferno_clan.*";
$hook_query_joins = "		LEFT JOIN inferno_user AS inferno_user ON(inferno_user.rid = user.userid)
		LEFT JOIN inferno_jobs AS inferno_jobs ON(inferno_jobs.jname = inferno_user.class)
		LEFT JOIN inferno_element AS inferno_element ON(inferno_element.eid = inferno_user.element)
		LEFT JOIN inferno_clan AS inferno_clan ON(inferno_clan.cid = inferno_user.inclan)";
This works flawlessly ofcourse.. my concern however is..

If a future modification uses that hook, won't my code overwrite theirs or vice versa?

Am I using the hook wrong?

Thanks for any help gang
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.02244 seconds
  • Memory Usage 1,778KB
  • Queries Executed 11 (?)
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
  • (2)bbcode_code
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (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
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • showpost_complete