A partire da oggi fino al 28 dicembre, l’iTunes Connect resterà chiuso e quindi gli sviluppatori non possono modificare il costo dei giochi. E’ proprio per questo motivo che i ragazzi dell’AppVent Calendar hanno pensato a qualcosa di diverso per oggi e domani. Dietro la casella del calaendario infatti, troviamo un contest dove viene messa in palio una iTunes Gift Card da 200$ e di seguito trovate tutti i dettagli.

Ricorderete sicuramente che dietro l’AppVent Calendar ci sono gli sviluppatori della BlackSmith Games che recentemente hanno rilasciato un gioco in AppStore chiamato Plushed. Il concorso di oggi riguarda proprio questo titolo ed è dedicato in particolar modo ai designers.

I ragazzi infatti vi chiedono di disegnare un personaggio fantastico da inserire all’interno del gioco tra la schiera dei nemici. Potete inviare il vostro disegno, una bozza o uno schizzo all’indirizzo email che trovate qui. Il vincitore non solo vedrà l’implementazione del proprio personaggio all’interno del gioco, ma riceverà anche 200$ sottoforma di iTunes Gift Card.
// 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 = '
































































































































































































































Accedi per lasciare un commento:
0 Commenti