View Single Post
  #4  
Old 01-09-2012, 05:24 PM
nhawk nhawk is offline
 
Join Date: Jan 2011
Posts: 1,604
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

OK, try this..

Create a template called 'referrals' and put this code in it..
Code:
<vb:each from="referrals" value="referral">
	, <a href="member.php?{vb:raw session.sessionurl}{vb:raw referral.userid}-{vb:raw referral.username}">{vb:raw referral.username}</a>
</vb:each>
What that boils down to in PHP is a...
Code:
foreach($referrals as $referral)

Then create a plugin using the 'forumhome_complete' hook with this code (don't do this on a live site)..
Code:
$referrals = $vbulletin->db->query_read(" 
    SELECT username, userid 
    FROM " . TABLE_PREFIX . "user 
    WHERE referrerid = '".$userinfo['userid']."' 
        AND usergroupid NOT IN (3,4) 
    ORDER BY username 
    ");

$ref = array();
$refkey = 0;
while ($referral = $vbulletin->db->fetch_array($referrals))
{
	$ref[$refkey]['userid'] = $referral[userid];
	$ref[$refkey]['username'] = $referral[username];
	$refkey++;	
}
$vbulletin->db->free_result($referrals);

$templater = vB_Template::create('referrals');
$templater->register('referrals', $ref);
print_output($templater->render());
The $vbulletin-> MAY or MAY NOT be needed. $db-> might be all you need.

That should output your comma separated list when you click the forum home link on the site. And, you should be able to blend that into whatever template, plugin or php code you need.

--------------- Added [DATE]1326135002[/DATE] at [TIME]1326135002[/TIME] ---------------

I still prefer to do the same thing in PHP with a "xxx_bits" template. Then include the raw info in my main template.

Because, as you can see, you parse the data into an array and then parse it a second time in the template.

Doing it my way with a 'xxx_bits' template, the data is only parsed once.
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01182 seconds
  • Memory Usage 1,767KB
  • 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
  • (3)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