<?php
/*
Plugin Name: WP Blogshares Stuff
Plugin URI: http://blog.neofreko.com/
Description: Shows your blogshares's stuff
Author: Akhmad Fathonih
Author URI: http://blog.neofreko.com/
Version: 1.0

Kudos:
- http://www.sitepoint.com/article/php-xml-parsing-rss-1-0
- http://sinexion.com/wp-rss-dfirefox/
- http://id2.php.net/manual/
*/ 

// Config :D
// Adjust your blogshare's user ID here

$blogshare_userid "17468";

// End of Config

$state = array();
$indexer 0;
$parent_tree = array();
$cur_parent = array();
$cur_item = array();
$tag_data "";

function 
wp_myblogshares_startElement($parser$name$attrs) {
    global 
$tag_name$tag_attrs$state$indexer$cur_item$parent_tree$cur_parent;

        
$element $name;//.$indexer++;

        
$cur_item = array(); // reset var
        
$cur_item["tag"] = $element;//$name;
        
$cur_item["attrs"] = $attrs;

        
// save parent
        
array_push($parent_tree$cur_parent);

        
// save item unique name
        
array_push($state$element);

    
$tag_name $name;
        
$tag_attrs $attrs;
}

function 
wp_myblogshares_endElement($parser$name) {
    global 
$tag_name$tag_attrs$state$cur_item$parent_tree$cur_parent$tag_data;
        
$element array_pop($state);

        
$cur_item["tag"] = $element;
        
$cur_item["attrs"] = $tag_attrs;
        
$cur_item["data"] = $tag_data;

        
$cur_parent array_pop($parent_tree);

        
$cur_parent[$element] = $cur_item;
        
$cur_item $cur_parent// reset current intem
        
$tag_data "";
}

function 
wp_myblogshares_characterData($parser$data) {
    global 
$tag_data;

        
$tag_data .= $data;
}

// set up wp plugin magic :D
function wp_myblogshares_stuff() {
    global 
$cur_parent$blogshare_userid;

    
$xml_parser xml_parser_create();
    
xml_set_element_handler($xml_parser"wp_myblogshares_startElement""wp_myblogshares_endElement");
    
xml_set_character_data_handler($xml_parser"wp_myblogshares_characterData");
    
$fp fopen("http://blogshares.com/rss.php?feed=portfolio&user=$blogshare_userid","r")
    
//$fp = fopen("blogshares.xml","r")
            
or die("Error reading RSS data.");
    while (
$data fread($fp4096))
            
xml_parse($xml_parser$datafeof($fp))
                    or die(
sprintf("XML error: %s at line %d"
                            
xml_error_string(xml_get_error_code($xml_parser)), 
                            
xml_get_current_line_number($xml_parser)));
    
fclose($fp);
    
xml_parser_free($xml_parser);

    
ereg('.*\$(.*)'$cur_parent["RDF:RDF"]["CHANNEL"]["DESCRIPTION"]["data"], $reg);
    
//echo trim($reg[1])."\n";
    
$balance number_format(trim($reg[1]), 2);
    echo 
"<a href=\"http://blogshares.com/user.php?id=$blogshare_userid\">B$".$balance."</a>";
}

//wp_myblogshares_stuff();

?>