Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 08-23-2006, 04:25 PM
minorgod's Avatar
minorgod minorgod is offline
 
Join Date: Aug 2006
Posts: 23
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Problem writing a plugin to modify lastposter on forum homepage.

I'm in the process of writing plugins to modify the displayed username of anyone who has an email address in their username. I have it working fine in several places, but I'm stuck on how to get it working on the "Last Post" part of the main forum listing on the homepage. I've tried every variation on the following code that I can find. The code works and properly modifies the variables I'm targeting, but no matter what I do, the templates still display the unmodified version of the lastposter username.

I've got the following code attached to the "forumbit_display" hook...
Code:
if($pos=strpos($lastpostinfo['lastposter'],"@"))
{
$lastpostinfo['lastposter']= substr($lastpostinfo['lastposter'],0,$pos);
}
I've also tried modifying the $vbulletin object variables and every other variable I can think of and tried several other hooks, but I'm getting nowhere. The variables are modified properly in every place I've done it, but they still don't display modified in the templates. I will worship whoever can figure this out! In the meantime, I've written a dirty hack that just does a preg_replace on the $forumbits...
Code:
// Attached this dirty code to forumhome_complete hook.
//There's got to be a better way than doing this preg_replace
$forumbits=preg_replace("/([a-zA-Z0-9]+)(@)([a-zA-Z_\-.]+)/","$1",$forumbits);
It's working, but I'd rather find the proper variable to modify and alter the values before they are added to the $forumbits.


EDIT: I've got it working properly now!!! I could have sworn I tried this already, but I attached the following code to the "forumbits_display" hook and suddenly it works:
Code:
foreach($vbulletin->forumcache as $k=>$v)
{
   if($pos=strpos($v['lastposter'],"@"))
   {
      $vbulletin->forumcache[$k]['lastposter']= substr($v['lastposter'],0,$pos);
   }
}
Strange. Maybe I was having caching issues last time I tried the code. I'm having a really hard time figuring out which variables to tweak to get things to show up in the templates. There seems to be quite a bit of duplicate variables with the same data in different places. For this hack I was messing with $forum['lastposter'], $lastpostinfo, and $vbulletin (among others). I wish there was just a single location I could go to tweak the values. I'm still trying to figure out if $vbulletin->forumcache is just a cached version of the forums or if it is updated on every page load. I'm going to assume it is the main forum datastore for the rest of my plugin work unless someone sets me straight.
Reply With Quote
  #2  
Old 08-25-2006, 07:54 PM
minorgod's Avatar
minorgod minorgod is offline
 
Join Date: Aug 2006
Posts: 23
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Still making progress, but it's slow going. I'm stuck in the displaythread.php plugin that rewrites post usernames in the list of post links in hybrid and threaded views. I've got the username rewriting properly in the actual posts themselves, but I can't figure out what hook to use to rewrite the post usernames in the box of links above the posts. Anyone? I just need to know where the $links variable that is used in the template actually gets its data from.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 03:35 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.05648 seconds
  • Memory Usage 2,170KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (3)bbcode_code
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (2)post_thanks_box
  • (2)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (2)post_thanks_postbit_info
  • (2)postbit
  • (2)postbit_onlinestatus
  • (2)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • 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
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete