Eccoci con un nuovo appuntamento dell’iSpazio LastMinute, la nostra rubrica in cui vi elenchiamo le migliori applicazioni dell’AppStore che vengono scontate per un periodo di tempo limitato. E’ possibile che nel corso della giornata vengano aggiunti nuovi titoli per cui cliccate qui e scaricate iSpazio Push App per seguire le evoluzioni dell’articolo.

[lastminute_307727765] Runner-game verticale nel quale troveremo un alieno capace di colpire i nemici con una sorta di piccola proboscide. Un gioco non impegnativo ma decisamente spassoso. [finelm 0.99]
[lastminute_455650341] Picchiaduro ambientato in un non lontano futuro dove robot di giganteschi si affrontano in match senza esclusione di colpi fino alla morte. Real Steel è caratterizzato da un gioco molto avvincente, grazie alle modalità Torneo e Sopravvivenza con il tempo non perderai mai l’interesse, diverse le modalità di gioco: Doppio, Sfide, Torneo, Sopravvivenza, e Sparring. [finelm 4.99]
[lastminute_977242839] La più famosa storia di Perroult ricalcata da questa app interessante che porterà voi e i vostri piccoli in un mondo splendidamente disegnato e animato e vi farà vivere la storia di una bambina, sua nonna, i loro amici animaletti e un lupo affamato. Niente paura in questa storia nessuno mangia nessuno! Splendida narrazione, grafica e minigiochi. [finelm 0.89]
[lastminute_554072547] Un puzzle-game per gli amanti dei rompicapi. un puzzle intricato ti aspetta in ognuno dei livelli del gioco. Un puzzle 3D costituito da blocchi intrecciati che apparentemente sono impossibili da separare. Il tuo obbiettivo sarà smontare il blocco contando solo sul tuo intelletto. [finelm 0.99]
[lastminute_791331531] Un’avventura decisamente complessa e destabilizzante. Perloo gioca con la fisica, la meccanica quantistica, la filosofia, l’ottica e la percezione per creare un mondo con regole proprie. Una breve serie di puzzle geniali, brillanti e fuori dagli schemi. [finelm 2.99]
[lastminute_698009737] Un action-game divertente ma non troppo impegnativo. Gioca nel ruolo di Signore dei non morti e guida, dopo averlo assemblato, il tuo esercito di zombie alla conquista dei regni del mondo magico e alla distruzione degli esseri umani. [finelm 0.99]
[lastminute_431534775] Set completo di strumenti per aggiungere e dar vita alle vostre immagini. L’applicazione offre set di ottimi strumenti necessari per modificare le immagini in movimento. Dai filtri alle texture, agli istogrammi ai livelli, Iris possiede anche 9 modalità di regolazione automatica per migliorare le vostre immagini con un semplice clic. Perfetta per chi ama modificare le immagini. [finelm 4.99]
[lastminute_608899141] Viaggia indietro nel tempo assieme al simpaticissimo Om Nom per far mangiare bonbon ai suoi antenati. Cut the Rope: Time Travel è un’avventura nuova piena d’azione basata sulla fisica. [finelm 0.99]
[lastminute_331441694] Nota: Essendo “offerte da prendere al volo”, i prezzi indicati nell’articolo risultano veritieri nel momento in cui viene scritto ma è possibile che durante la giornata, o dopo qualche minuto, questi cambino e le applicazioni tornino a pagamento. Vi consigliamo di scaricare iSpazio Push App dall’AppStore in maniera tale da essere avvertiti tramite una notifica push non appena pubblicheremo i nostri LastMinute quotidiani.[finelm 0.00]
Fateci sapere quali scaricate in maniera tale da riuscire a trarre uno spunto per una recensione più completa ed accurata.
// Logica completa dello shortcode 'app' function appstore_shortcode_logic($atts, $content = null) { // Attributi di default $atts = shortcode_atts(array( 'id' => '', 'img' => '', 'nome' => '', 'sottotitolo' => '', 'prezzo' => '', 'link' => '', 'store' => 'App Store', 'template' => '', 'inapp' => '', 'background' => '', 'link_icon' => '', ), $atts, 'card'); // Verifica del valore dell'attributo 'stile' $template_class = !empty($atts['template']) ? sanitize_html_class($atts['template']) : ''; // Verifica se il file JSON della cache esiste $cache_dir = '/srv/www/ispazio.net/www/wp-content/plugins/appstore_ispazio/app_cache/'; $cache_file = $cache_dir . "app_" . sanitize_key($atts['id']) . ".json"; // Determina se la cache è valida: JSON esiste, non scaduto E icona principale esiste sul disco $_app_id_check = sanitize_key($atts['id']); $_img_main_path = $cache_dir . "icon250_" . $_app_id_check . ".jpg"; $_cache_valid = file_exists($cache_file) && filesize($cache_file) > 0 && time() - filemtime($cache_file) < 31557600 && file_exists($_img_main_path); if ($_cache_valid) { $json = file_get_contents($cache_file); } else { // Interroga l'API di App Store e scarica il JSON utilizzando cURL $itunes_api_base = "https://itunes.apple.com/lookup?id=" . sanitize_key($atts['id']); $country_list = ['IT', 'US']; // puoi aggiungere altri paesi se vuoi $json = ''; $data = []; foreach ($country_list as $country) { $itunes_api_url = $itunes_api_base . "&country=" . $country; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $itunes_api_url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0"); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json')); $json = curl_exec($ch); curl_close($ch); $data = json_decode($json, true); if (!empty($data['results'])) { break; // abbiamo trovato un risultato valido, fermiamo il ciclo } } if (isset($data['results'][0]['artworkUrl100'])) { $original_image_url = $data['results'][0]['artworkUrl100']; $new_image_url = str_replace('100x100bb.jpg', '250x250bb.jpg', $original_image_url); // Scarica e salva l'immagine dell'artwork sul tuo server $image_id = sanitize_key($atts['id']); $image_path = $cache_dir . "icon250_" . $image_id . ".jpg"; file_put_contents($image_path, file_get_contents($new_image_url)); if (function_exists('ispazio_convert_to_modern')) ispazio_convert_to_modern($image_path); // Modifica il JSON con l'URL dell'immagine dell'artwork sul tuo server $data['results'][0]['artworkUrl100'] = "https://www.ispazio.net/wp-content/plugins/appstore_ispazio/app_cache/icon250_" . $image_id . ".jpg"; // Crea anche versione 140px per template mini (retina 2x per 70x70) $icon140_path = $cache_dir . "icon140_" . $image_id . ".jpg"; if ( ! file_exists( $icon140_path ) && function_exists( 'imagecreatefromjpeg' ) ) { $src_img = @imagecreatefromjpeg( $image_path ); if ( $src_img ) { $dst_img = imagecreatetruecolor( 140, 140 ); imagecopyresampled( $dst_img, $src_img, 0, 0, 0, 0, 140, 140, imagesx( $src_img ), imagesy( $src_img ) ); imagejpeg( $dst_img, $icon140_path, 85 ); imagedestroy( $src_img ); imagedestroy( $dst_img ); if (function_exists('ispazio_convert_to_modern')) ispazio_convert_to_modern($icon140_path); } } // Sostituisci anche gli URL delle prime 4 immagini degli screenshot if (isset($data['results'][0]['screenshotUrls'])) { $screenshotUrls = $data['results'][0]['screenshotUrls']; $screenshotUrlsOnServer = array(); for ($i = 0; $i < min(count($screenshotUrls), 4); $i++) { $screenshotUrl = $screenshotUrls[$i]; $screenshotFilename = basename($screenshotUrl); $screenshotSavePath = $cache_dir . "screenshot_" . $image_id . "_" . $i . ".jpg"; // Scarica e salva l'immagine dello screenshot sul tuo server file_put_contents($screenshotSavePath, file_get_contents($screenshotUrl)); if (function_exists('ispazio_convert_to_modern')) ispazio_convert_to_modern($screenshotSavePath); // Modifica il JSON con l'URL dell'immagine dello screenshot sul tuo server $screenshotUrlsOnServer[] = "https://www.ispazio.net/wp-content/plugins/appstore_ispazio/app_cache/screenshot_" . $image_id . "_" . $i . ".jpg"; } // Aggiorna il JSON con gli URL delle immagini degli screenshot sul tuo server $data['results'][0]['screenshotUrls'] = $screenshotUrlsOnServer; } } // Salva il JSON nella cache solo se non è vuoto if (!empty($json)) { file_put_contents($cache_file, json_encode($data)); } } // Decodifica il JSON $data = json_decode($json, true); // Se il "nome" non è specificato nell'attributo, usa il trackName dal JSON $nome = isset($atts['nome']) && !empty($atts['nome']) ? $atts['nome'] : ($data['results'][0]['trackName'] ?? 'Scarica da App Store'); // Se il "sottotitolo" non è specificato nell'attributo, usa artistName dal JSON $sottotitolo = isset($atts['sottotitolo']) && !empty($atts['sottotitolo']) ? $atts['sottotitolo'] : ($data['results'][0]['artistName'] ?? ''); // Se il "prezzo" non è specificato nell'attributo, usa il formattedPrice dal JSON $formattedPrice = !empty($data['results'][0]['formattedPrice']) ? $data['results'][0]['formattedPrice'] : null; $prezzo = !empty($atts['prezzo']) ? $atts['prezzo'] : (!empty($formattedPrice) ? $formattedPrice : (!empty(trim($content)) ? trim($content) : 'OTTIENI')); // Se l'URL dell'immagine non è specificato nell'attributo, usa quello dal JSON $hide_image_class = ''; $card_body_style = ''; $container_style = ''; $container_extra_class = ''; if (isset($atts['img']) && trim($atts['img']) === 'scontiamolo') { $img = 'https://www.ispazio.net/wp-content/plugins/appstore_ispazio/app_cache/icon250_1506946624.jpg'; $container_extra_class = 'scontiamolo-mode'; } elseif (!empty($atts['img'])) { $img = $atts['img']; } else { $img = $data['results'][0]['artworkUrl100'] ?? "https://www.ispazio.net/wp-content/uploads/2022/10/appstore_icon.png"; } // Per template mini usa icon140 (70x70 retina) invece di icon250 if ( $template_class === 'mini' ) { $img = str_replace( 'icon250_', 'icon140_', $img ); } // Genera il link dell'app su App Store $link = !empty($atts['link']) ? $atts['link'] : "https://apps.apple.com/it/app/id" . $atts['id'] . "?platform=iphone"; $link_icon = !empty($atts['link_icon']) ? $atts['link_icon'] : $link; // HTML immagine con o senza effetto rotazione (in base a template) $img_html = ''; if (!empty($img)) { if ($template_class === 'striscia') { $img_html = '

































































































































































































































I commenti sono chiusi per questo articolo.
0 Commenti