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 "
" . $app_title . "
"; 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' ); ?>