PDA

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