array( 'iso3166' => 'AR' , 'code' => 143505 , 'country' => 'Argentina' ) ,
array( 'iso3166' => 'AU' , 'code' => 143460 , 'country' => 'Australia' ) ,
array( 'iso3166' => 'AT' , 'code' => 143445 , 'country' => 'Austria' ) ,
array( 'iso3166' => 'BE' , 'code' => 143446 , 'country' => 'Belgium' ) ,
array( 'iso3166' => 'BR' , 'code' => 143503 , 'country' => 'Brazil' ) ,
array( 'iso3166' => 'CA' , 'code' => 143455 , 'country' => 'Canada' ) ,
array( 'iso3166' => 'CL' , 'code' => 143483 , 'country' => 'Chile' ) ,
array( 'iso3166' => 'CN' , 'code' => 143465 , 'country' => 'China' ) ,
array( 'iso3166' => 'CO' , 'code' => 143501 , 'country' => 'Colombia' ) ,
array( 'iso3166' => 'CR' , 'code' => 143495 , 'country' => 'Costa Rica' ) ,
array( 'iso3166' => 'HR' , 'code' => 143494 , 'country' => 'Croatia' ) ,
array( 'iso3166' => 'CZ' , 'code' => 143189 , 'country' => 'Czech Reoublic' ) ,
array( 'iso3166' => 'DK' , 'code' => 143458 , 'country' => 'Denmark' ) ,
array( 'iso3166' => 'SV' , 'code' => 143506 , 'country' => 'El Salvador' ) ,
array( 'iso3166' => 'FI' , 'code' => 143447 , 'country' => 'Finland' ) ,
array( 'iso3166' => 'FR' , 'code' => 143442 , 'country' => 'France' ) ,
array( 'iso3166' => 'DE' , 'code' => 143443 , 'country' => 'Germany' ) ,
array( 'iso3166' => 'GR' , 'code' => 143448 , 'country' => 'Greece' ) ,
array( 'iso3166' => 'GT' , 'code' => 143504 , 'country' => 'Guatemala' ) ,
array( 'iso3166' => 'HK' , 'code' => 143463 , 'country' => 'Honk Kong' ) ,
array( 'iso3166' => 'HU' , 'code' => 143482 , 'country' => 'Hungary' ) ,
array( 'iso3166' => 'IN' , 'code' => 143467 , 'country' => 'India' ) ,
array( 'iso3166' => 'ID' , 'code' => 143476 , 'country' => 'Indonesia' ) ,
array( 'iso3166' => 'IE' , 'code' => 143449 , 'country' => 'Ireland' ) ,
array( 'iso3166' => 'IL' , 'code' => 143491 , 'country' => 'Israel' ) ,
array( 'iso3166' => 'IT' , 'code' => 143450 , 'country' => 'Italy' ) ,
array( 'iso3166' => 'JP' , 'code' => 143462 , 'country' => 'Japan' ) ,
array( 'iso3166' => 'KR' , 'code' => 143466 , 'country' => 'South Korea' ) ,
array( 'iso3166' => 'KW' , 'code' => 143493 , 'country' => 'Kuwait' ) ,
array( 'iso3166' => 'LB' , 'code' => 143497 , 'country' => 'Lebanon' ) ,
array( 'iso3166' => 'LU' , 'code' => 143451 , 'country' => 'Luxembourg' ) ,
array( 'iso3166' => 'MY' , 'code' => 143473 , 'country' => 'Malaysia' ) ,
array( 'iso3166' => 'MX' , 'code' => 143468 , 'country' => 'Mexico' ) ,
array( 'iso3166' => 'NL' , 'code' => 143452 , 'country' => 'Netherlands' ) ,
array( 'iso3166' => 'NZ' , 'code' => 143461 , 'country' => 'New Zealand' ) ,
array( 'iso3166' => 'NO' , 'code' => 143457 , 'country' => 'Norway' ) ,
array( 'iso3166' => 'PK' , 'code' => 143477 , 'country' => 'Pakistan' ) ,
array( 'iso3166' => 'PA' , 'code' => 143485 , 'country' => 'Panama' ) ,
array( 'iso3166' => 'PE' , 'code' => 143507 , 'country' => 'Peru' ) ,
array( 'iso3166' => 'PH' , 'code' => 143474 , 'country' => 'Philippines' ) ,
array( 'iso3166' => 'PL' , 'code' => 143478 , 'country' => 'Poland' ) ,
array( 'iso3166' => 'PT' , 'code' => 143453 , 'country' => 'Portugal' ) ,
array( 'iso3166' => 'QA' , 'code' => 143498 , 'country' => 'Qatar' ) ,
array( 'iso3166' => 'RO' , 'code' => 143487 , 'country' => 'Romania' ) ,
array( 'iso3166' => 'RU' , 'code' => 143469 , 'country' => 'Russia' ) ,
array( 'iso3166' => 'SA' , 'code' => 143479 , 'country' => 'Saudi Arabia' ) ,
array( 'iso3166' => 'SG' , 'code' => 143464 , 'country' => 'Singapore' ) ,
array( 'iso3166' => 'SK' , 'code' => 143496 , 'country' => 'Slovakia' ) ,
array( 'iso3166' => 'SI' , 'code' => 143499 , 'country' => 'Slovenia' ) ,
array( 'iso3166' => 'ZA' , 'code' => 143472 , 'country' => 'South Africa' ) ,
array( 'iso3166' => 'ES' , 'code' => 143454 , 'country' => 'Spain' ) ,
array( 'iso3166' => 'LK' , 'code' => 143486 , 'country' => 'Sri Lanka' ) ,
array( 'iso3166' => 'SE' , 'code' => 143456 , 'country' => 'Sweden' ) ,
array( 'iso3166' => 'CH' , 'code' => 143459 , 'country' => 'Switzerland' ) ,
array( 'iso3166' => 'TW' , 'code' => 143470 , 'country' => 'Taiwan' ) ,
array( 'iso3166' => 'TH' , 'code' => 143475 , 'country' => 'Thailand' ) ,
array( 'iso3166' => 'TR' , 'code' => 143480 , 'country' => 'Turkey' ) ,
array( 'iso3166' => 'GB' , 'code' => 143444 , 'country' => 'UK' ) ,
array( 'iso3166' => 'US' , 'code' => 143441 , 'country' => 'USA' ) ,
array( 'iso3166' => 'AE' , 'code' => 143481 , 'country' => 'United Arab Emirates' ) ,
array( 'iso3166' => 'VE' , 'code' => 143502 , 'country' => 'Venezuela' ) ,
array( 'iso3166' => 'VN' , 'code' => 143471 , 'country' => 'Vietnam' ) );
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// THEMES
function icwTap_theme_default($icwTap_link){
$doc = new DOMDocument();
$doc->load($icwTap_link);
foreach ($doc->getElementsByTagName('entry') as $node) {
$app_title = htmlspecialchars($node->getElementsByTagName('name')->item(0)->nodeValue);
$app_image = utf8_encode($node->getElementsByTagName('image')->item(0)->nodeValue);
$app_price = htmlspecialchars($node->getElementsByTagName('price')->item(0)->nodeValue);
$app_category = htmlspecialchars($node->getElementsByTagName('category')->item(0)->getAttribute('label'));
$app_artist = htmlspecialchars($node->getElementsByTagName('artist')->item(0)->nodeValue);
$app_link = htmlspecialchars($node->getElementsByTagName('link')->item(0)->getAttribute('href'));
echo "
";
echo "";
echo "  ";
echo " ";
echo " ";
echo " " . $app_artist . " ";
echo " " . $app_category . " ";
echo " " . $app_price . " ";
echo " ";
echo " ";
echo " |
";
}
}
function icwTap_theme_onlyimg($icwTap_link){
$doc = new DOMDocument();
$doc->load($icwTap_link);
foreach ($doc->getElementsByTagName('entry') as $node) {
$app_image = utf8_encode($node->getElementsByTagName('image')->item(0)->nodeValue);
$app_link = htmlspecialchars($node->getElementsByTagName('link')->item(0)->getAttribute('href'));
echo "
";
}
}
function icwTap_theme_appstore($icwTap_link){
$doc = new DOMDocument();
$doc->load($icwTap_link);
$counterKey = 1;
foreach ($doc->getElementsByTagName('entry') as $node) {
$app_title = htmlspecialchars($node->getElementsByTagName('name')->item(0)->nodeValue);
$app_image = utf8_encode($node->getElementsByTagName('image')->item(2)->nodeValue);
$app_price = htmlspecialchars($node->getElementsByTagName('price')->item(0)->nodeValue);
$app_category = htmlspecialchars($node->getElementsByTagName('category')->item(0)->getAttribute('label'));
$app_link = htmlspecialchars($node->getElementsByTagName('link')->item(0)->getAttribute('href'));
if($counterKey == 1){
echo "
";
}
echo "";
echo "
".$counterKey.".
";
echo "
";
echo "
";
echo "" . $app_price . "
";
echo "
";
echo "
" . $app_category . "
";
echo "
";
echo "
";
$counterKey++;
}
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function icwTap_content($instance){
global $country_data;
// Link Creation
$list_type = $instance['list_type'] . "/";
$country_iso = $instance['country'];
if($country_iso == "geo"){
$ipAddress = $_SERVER['REMOTE_ADDR'];
$url = "http://api.hostip.info/country.php?ip=" . $ipAddress;
$country_iso = file_get_contents($url);
}
$country_control = 0;
foreach( $country_data as $id_country => $country ){
if($country['iso3166'] == $country_iso){
$country_control = 1;
$country_code = $country['code'];
}
}
if($country_control != 1){
$country_code = "143441";
}
$country_code = "sf=" . $country_code . "/";
$list_limit = $instance['number'];
$list_limit = "limit=" . $list_limit . "/";
$category = $instance['category'];
if($category != ""){
$category = "genre=" . $category . "/";
}
else{
$category = "";
}
$icwTap_link = "http://ax.itunes.apple.com/WebObjects/MZStoreServices.woa/ws/RSS/" . $list_type . $country_code . $list_limit . $category . "xml";
switch ($instance['theme']){
case 'default':
icwTap_theme_default($icwTap_link);
break;
case 'onlyimg':
icwTap_theme_onlyimg($icwTap_link);
break;
case 'appstore':
icwTap_theme_appstore($icwTap_link);
break;
default:
icwTap_theme_default($icwTap_link);
break;
}
}
function icwTap_list_type_select($instance){
echo "";
echo "";
echo "";
echo "";
echo "";
echo "";
}
function icwTap_category_select($instance){
echo "";
echo "";
echo "";
echo "";
echo "";
echo "";
echo "";
echo "";
echo "";
echo "";
echo "";
echo "";
echo "";
echo "";
echo "";
echo "";
echo "";
echo "";
echo "";
echo "";
echo "";
}
function icwTap_number_select($instance){
echo "";
echo "";
echo "";
echo "";
echo "";
}
function icwTap_theme_select($instance){
echo "";
echo "";
echo "";
}
function icwTap_country_select($instance){
global $country_data;
echo "";
foreach( $country_data as $id_country => $country ){
echo "";
}
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
class icwTap extends WP_Widget {
function icwTap(){
$widget_ops = array( 'classname' => 'app-store-topcharts', 'description' => 'A widget to show the top lists of the App Store.' );
$this->WP_Widget( 'app-store-topcharts', 'App Store TopCharts', $widget_ops );
}
function widget( $args,$instance ) {
extract( $args );
$title = apply_filters('widget_title',$instance['title']);
echo $before_widget;
echo $before_title . $title . $after_title;
icwTap_content($instance);
echo $after_widget;
}
function update( $new_instance, $old_instance ) {
$instance = $old_instance;
// Istance Update
$instance['title'] = strip_tags( $new_instance['title'] );
$instance['list_type'] = $new_instance['list_type'];
$instance['category'] = $new_instance['category'];
$instance['country'] = $new_instance['country'];
$instance['number'] = $new_instance['number'];
$instance['theme'] = $new_instance['theme'];
return $instance;
}
function form($instance){
$defaults = array( 'title' => 'App Store TopCharts' , 'list_type' => 'topfreeapplications' , 'category' => '' , 'country' => 'geo' , 'number' => '10' , 'theme' => 'default' );
$instance = wp_parse_args( (array) $instance, $defaults );
echo "";
echo "get_field_id( 'title' )."\" name=\"".$this->get_field_name( 'title' )."\" value=\"".$instance['title']."\" style=\"width:213px;margin-bottom:10px;\" />";
echo "";
echo "";
echo "";
echo "";
echo "";
echo "";
echo "";
echo "";
echo "";
echo "";
}
}
function icwTap_reg() {
register_widget( 'icwTap' );
}
add_action( 'widgets_init', 'icwTap_reg' );
?>