|
appendTitle( "<".$name );
foreach ($attributes as $n => $v)
$news_array[$cur_news_item]->appendTitle( " ".$n."=\"".$v."\"" );
$news_array[$cur_news_item]->appendTitle( ">" );
}
elseif( !strcasecmp($cur_xml_tag,"content"))
{
$news_array[$cur_news_item]->appendContent( "<".$name );
foreach ($attributes as $n => $v)
$news_array[$cur_news_item]->appendContent( " ".$n."=\"".$v."\"" );
$news_array[$cur_news_item]->appendContent( ">" );
}
}
}
function newsEndElement( $parser, $name )
{
global $news_array;
global $cur_news_item;
global $cur_xml_tag;
if (!strcasecmp($name,"news"))
;
elseif (!strcasecmp($name,"title"))
;
elseif (!strcasecmp($name,"date"))
;
elseif (!strcasecmp($name,"content"))
;
elseif (!strcasecmp($name,"year"))
;
else
{
if ( !strcasecmp($cur_xml_tag,"title"))
$news_array[$cur_news_item]->appendTitle( "".$name.">" );
elseif (!strcasecmp($cur_xml_tag,"content"))
$news_array[$cur_news_item]->appendContent( "".$name.">" );
}
}
function newsCData( $parser, $data )
{
global $num;
global $cur_news_item;
global $news_array;
global $cur_xml_tag;
if (!strcasecmp($cur_xml_tag,"title"))
$news_array[$cur_news_item]->appendTitle($data);
elseif (!strcasecmp($cur_xml_tag, "date"))
$news_array[$cur_news_item]->appendDate($data);
elseif (!strcasecmp($cur_xml_tag, "content"))
$news_array[$cur_news_item]->appendContent($data);
}
// Parse the XML file;
$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "newsStartElement", "newsEndElement");
xml_set_character_data_handler($xml_parser, "newsCData");
if (!$fp = fopen($xml_file, "r"))
echo("Could not open news file: ".$xml_file);
else
{
while ($data = fread($fp, 4096))
{
if (!xml_parse($xml_parser, $data, feof($fp)))
die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser)));
}
}
xml_parser_free($xml_parser);
// See if there are more news items than will be currently displayed
$prev = $next = false;
if ($first > 1)
$next = true;
if (($first-1+$num) <= $cur_news_item)
$prev = true;
// Display prev/next buttons
if (($prev == true) || ($next == true))
{
if ($next == true)
echo(" " ); else echo("prev >> "); } // Display the news for ($i = $first-1; $i < $first+$num-1; $i++) { $news_item = $news_array[$i]; if ( $news_item != "") $news_item->draw(); } // Display prev/next buttons if (($prev == true) || ($next == true)) { if ($next == true) echo(" " ); else echo("prev >> "); } //if ($first > 1) // echo("" ); //if (($first-1+$num) <= $cur_news_item) // echo("" ); ?> |