View Full Version : Adding PHP to the header
rootnik
12-04-2005, 05:26 AM
I have a set of PHP scripts that formats and displays dynamic xml data in nice little HTML tables...
I want to include these in my header.
I've searched around and found how to add the PHP to templates, but I can't find the actual PHP file the header is in.
If I read everything correctly I want to add this:
<?php
ob_start();
include 'displayxml.php';
$displayxml = ob_get_contents();
ob_end_clean()
?>
to WHAT file?
(and then place $displayxml in my header template)
Marco van Herwaarden
12-04-2005, 06:55 AM
You can put this in a plugin (except the php open and close tags) in the 'global_start' hook location.
rootnik
12-04-2005, 02:32 PM
Hi,
Thanks for the lead.
This is what I have right now as a plugin (in global_start):
ob_start();
$xml_file = "/home/path/to/info/data.xml";
echo "<table border=0 cellpadding=5>";
function startElement($parser_instance, $element_name, $attrs) {
switch($element_name) {
case "LABELONE" : echo "<tr><td>";
break;
case "VALUE" : echo "<td>";
break;
case "LABELTWO" : echo "<a";
break;
}
}
function characterData($parser_instance, $xml_data) {
echo $xml_data;
}
function endElement($parser_instance, $element_name) {
switch($element_name) {
case "LABELONE" : echo "";
break;
case "VALUE" : echo "</td>";
break;
case "LABELTWO" : echo "></a></td></tr>";
break;
}
}
$parser = xml_parser_create();
xml_set_element_handler($parser, "startElement", "endElement");
xml_set_character_data_handler($parser, "characterData");
if (!($filehandler = fopen($xml_file, "r"))) {
die("could not open XML input");
}
while ($data = fread($filehandler, 4096)) {
if (!xml_parse($parser, $data, feof($filehandler))) {
die(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($parser)),
xml_get_current_line_number($parser)));
}
}
fclose($filehandler);
xml_parser_free($parser);
echo "</table>";
$displayxml = ob_get_contents();
ob_end_clean()
Now I should be able to put $displayxml in the header template and it will spit out my html, correct? Because it isn't showing anything at all...
The PHP works standalone, or if I include it in one of my own pages. If you are interested in seeing what this ugly mess of code spits out, it is right here ;) http://www.friendcodes.com/forums/temp/xml/mod_mkdsTOP5.php
Marco van Herwaarden
12-04-2005, 04:20 PM
Try putting a 'global $displayxml;' somewhere in your script (before the assignment of $displayxml).
rootnik
12-04-2005, 04:39 PM
That was it!
Thank you so much
vBulletin® v3.8.12 by vBS, Copyright ©2000-2024, vBulletin Solutions Inc.