vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB4 General Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=251)
-   -   Access $post variables in external php (https://vborg.vbsupport.ru/showthread.php?t=259491)

CampinCarl 02-26-2011 04:01 PM

Access $post variables in external php
 
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.

Lynne 02-26-2011 04:03 PM

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.

CampinCarl 02-26-2011 04:20 PM

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>';
        }
?>

This is a snip from the template where I modded it (postbit_legacy)
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>

And then this is the plugin: (hook location: global_start)
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

Lynne 02-26-2011 05:02 PM

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.

CampinCarl 02-26-2011 06:15 PM

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.

Lynne 02-26-2011 06:21 PM

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.

CampinCarl 02-26-2011 06:33 PM

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.

Lynne 02-26-2011 07:47 PM

What hook location did you change to?

CampinCarl 02-26-2011 07:59 PM

I set it as postbit_display_complete

Lynne 02-26-2011 08:43 PM

Can we get a link to see this?


All times are GMT. The time now is 01:12 AM.

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.01230 seconds
  • Memory Usage 1,747KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (3)bbcode_code_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (1)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (10)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.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/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.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
  • printthread_start
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete