The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
#1
|
|||
|
|||
![]()
okay. I'm writing a tiny widget for the post_legacy template that uses a players $post['field5'] (or their steam id for steam) information to make a html widget with they're associated stats. The only problem im running into is that i cant access the $post['field5'] from the php script that gets included in the template with a plugin.
Any help would be great. |
#2
|
||||
|
||||
![]()
You need to post your exact code that your are using in order for us to help you. Please post your plugin code and let us know the hook location you are using and post any template code you have added also and let us know what template. Please post all code in code/php/html tags.
|
#3
|
|||
|
|||
![]()
Okay should of done that lol.
This is the PHP (stat_widget.php): Code:
<head> <style> #BigBox { color: #fff; padding: 4px 4px; text-decoration: none; -moz-border-radius: 7px; -webkit-border-radius: 7px; -moz-box-shadow: 0 1px 3px rgba(0,0,0,0.5); -webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.5); } </style> </head> <?php //SteamID $steamid=$post['field5']; //GET GAMEME INFORMATION define("CLIENT_API_URL", "http://protf2.gameme.com/api"); //GRAB STATS $tfpxml = new SimpleXMLElement(file_get_contents(CLIENT_API_URL."/playerinfo/tf/".$steamid)); if (count($tfpxml->playerinfo[0]->player) > 0) { $tfplayerdata = array(); $tfplayerdata['name'] = $tfpxml->playerinfo[0]->player[0]->name; $tfplayerdata['cc'] = $tfpxml->playerinfo[0]->player[0]->cc; $tfplayerdata['clanname'] = $tfpxml->playerinfo[0]->player[0]->clanname; $tfplayerdata['id'] = $tfpxml->playerinfo[0]->player[0]->id; $tfplayerdata['time'] = $tfpxml->playerinfo[0]->player[0]->time; $tfplayerdata['rank'] = $tfpxml->playerinfo[0]->player[0]->rank; $tfplayerdata['skill'] = $tfpxml->playerinfo[0]->player[0]->skill; $tfplayerdata['kills'] = $tfpxml->playerinfo[0]->player[0]->kills; $tfplayerdata['deaths'] = $tfpxml->playerinfo[0]->player[0]->deaths; $tfdays= intval($playerdata['time']/60/60/24); $tfhours= intval(($playerdata['time']/60/60)-($days*24)); $tfminutes= intval(($playerdata['time']/60)-($hours*60)-($days*24*60)); $tfseconds= intval(($playerdata['time'])-($hours*60*60)-($days*24*60*60)-($minutes*60)); } //ECHO THE INFO IF ($tfplayerdata['id']<>'') { echo '<table style="float:right; valign:middle; width:170px;">'; echo '<tr></tr>'; echo '<tr><td valign="middle" rowspan="2">'; echo '<table style="z-index:2; padding:0px; width:50px; position:relative; left:+0px; background: black url(http://zurb.com/images/alert-overlay.png) repeat-x; " id="BigBox">'; echo '<tr><td valign="middle" align="center" style="padding: 3px 0px 3px 0px;"><a href="http://protf2.gameme.com/playerinfo/'.$tfplayerdata['id'].'"><img name="TF2 Stats" src="http://forum.specialattack.net/images/icons/tf2.png"/></a></td></tr>'; echo '</table>'; echo '</td></tr>'; echo '<tr><td valign="middle">'; echo '<table height="41" style="position:relative; left:-40px; background: gray url(http://zurb.com/images/alert-overlay.png) repeat-x;" id="BigBox">'; echo '<tr><td style="text-shadow:1px 1px 1px rgba(0,0,0,0.75);padding: 0px 10px 0px 25px;"><b>Rank: </b>'.$tfplayerdata['rank'].'<br><b>Points: </b>'.$tfplayerdata['skill'].'</td></tr>'; echo '</table>'; echo '</td></tr>'; echo '</table>'; } ?> Code:
{vb:raw template_hook.postbit_messagearea_start} <vb:if condition="$post['title'] OR $show['messageicon']"> <vb:if condition="$post['field5']">{vb:raw statswidget}</vb:if> <h2 class="title icon"> <vb:if condition="$show['messageicon']"><img src="{vb:raw post.iconpath}" alt="{vb:raw post.icontitle}" /> </vb:if>{vb:raw post.title} </h2> </vb:if> Code:
ob_start(); require_once('/home/protf2/public_html/stat_widget.php'); $statswidget = ob_get_contents(); ob_end_clean(); vB_Template::preRegister('postbit_legacy',array('statswidget' => $statswidget)); I used this to create the plugin http://www.vbulletin.com/forum/showt...P-or-HTML-File |
#4
|
||||
|
||||
![]()
You cannot have a <head> tag in the code. You are only allowed one <head> tag per page and you are going to cause a problem if you have another.
And, global_start is deprecated - you should not use it. But, besides that, it is at the very beginning of the code when $post is not even defined. If you want to use a $post variable, you need to use a hook that can get this information like a postbit_display_* hook location. |
#5
|
|||
|
|||
![]()
All of that stuff works. And the head tag because the box gets formatted correctly. its just that the data is blank.
I set the hook to postbit_display_complete and it didnt work neither. |
#6
|
||||
|
||||
![]()
And the data will remain blank because you cannot access the $post variable at global_start - it doesn't exist there. $post is the information about the user making the post, so you will have several different $post['field5'] on the page - a different one for each $post. global_start (which is deprecated and will disappear in the future and break any products using it) is called once on the page at the beginning. It does not have any $post data available to it.
|
#7
|
|||
|
|||
![]()
Okay i lied. It works after i set the correct hook location. But the widget only shows up on the first post of each thread.
|
#8
|
||||
|
||||
![]()
What hook location did you change to?
|
#9
|
|||
|
|||
![]()
I set it as postbit_display_complete
|
#10
|
||||
|
||||
![]()
Can we get a link to see this?
|
![]() |
Thread Tools | |
Display Modes | |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
![]() |
|
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|