X
Skimbu è stato abbandonato, ma è stato sostituito da due grandi progetti: visita ora Tasc.it e Abits.it!
icona
TomTom EuropaApp per iOS69,99 €TomTomNavigazioneDownload

Questo box che vedi qui in alto è il risultato di uno script che, attraverso l’ID dell’applicazione ricavabile dall’URL ( http://itunes.apple.com/it/app/tomtom-europa/id355680531?mt=8 ) è in grado di creare un contenuto HTML che fornisce tutte le informazioni dell’applicazione, come il prezzo, la casa software, il titolo e persino l’icona. È ovviamente un risparmio di tempo in quanto scrivere tutte queste operazioni manualmente richiede almeno 3-4 minuti. In questo articolo scopriremo lo script creato da Skimbu e come integrarlo in WordPress.

Teoria principale

Andremo a creare uno shortcode in WordPress. Uno shortcode è semplicemente la creazione di un tag che, inserito l’ID dell’app ci permetterà di generare il box che poi stilizzerai in CSS (in questo articolo vedremo solo lo script che generà il box). Uno shortcode può essere, ad esempio


[appitunes id="inserire qui l'ID"]

Noi creeremo uno script che, una volta inserito questo shortcode nell’editor di WordPress, nell’articolo apparirà come il box dell’applicazione con l’ID inserito. Purtroppo c’è un problema che dovremo affrontare, ovvero la lentezza dello script. Ricavare le informazioni che andremo a chiedere ad iTunes richiede tempo e se avrete un articolo con 10 box ci vorranno almeno 2-3 secondi per caricare tutti i box, per questo abbiamo elaborato un sistema di cache che dura addirittura un anno e che memorizza ogni box di ogni app in un file txt, all’interno della cartella del tema.

La guida, passo per passo

Tutto lo script dovrà trovarsi nella pagina functions.php del nostro tema. Devi sapere che le informazioni che andremo a ricavare di ogni app sono contenute in una pagina di iTunes che le contiene, noi analizzeremo questa pagina e ritaglieremo tutte le informazioni che ci servono. Definiamo subito la costante con il link di questa pagina che dovrà essere seguito poi dall’ID dell’app:


define("APPSTORESEARCHLINK", "http://ax.phobos.apple.com.edgesuite.net/WebObjects/MZStoreServices.woa/wa/wsLookup?country=it&lang=it&id=");

Creiamo quindi la funzione che, una volta ricevute le informazioni dell’app creerà il box HTML contenente tutte le variabili. In effetti stiamo seguendo un procedimento inverso, prima creiamo le funzioni che ricavano le informazioni e poi le stampano in un contenuto HTML, quindi creeremo lo shortcode che richiamerà queste funzioni.


function createHTMLAppStore($linkImg, $nomeApp, $classe, $descrizione, $autore,$linkautore,$categoriaApp, $prezzoApp, $linkAppStore){

$strHtml = '<div id="review"><div id="rev_img"><img class="'.$classe.'" src="'.$linkImg.'" width="128" height="128" alt="icona" /></div><div id="rev_cont"><span class="title">'.$nomeApp.'</span><span class="subtitle">'.$descrizione.'</span><span class="elemento money">'.$prezzoApp.'</span><span class="elemento house"><a href="'.$linkautore.'">'.$autore.'</a></span><span class="elemento type">'.$categoriaApp.'</span><span class="elemento dwn fff_button"><a href="'.$linkAppStore.'" target="_blank">Download</a></span></div></div>';

 return $strHtml;
}

Ovviamente la variabile $strHtml è quella di Skimbu, quindi troverai la struttura del box di Skimbu che avrà poi il suo stile CSS. Tu sei libero di cambiare il contenuto di $strHtml mettendo poi le variabili al posto giusto. Ad esempio $nomeApp dove vorrai far apparire il nome dell’app ecc.

Ora creiamo la funzione che, ricevuto l’ID dell’app, decodifica l’URL di iTunes e ricava gli array di informazioni dell’app richiesta.


function getContentApp($idApp){

$searchlink = APPSTORESEARCHLINK.$idApp;

$result = @file_get_contents($searchlink);

// Decodifica il contenuto JSON
 $obj = json_decode($result);

return $obj;
}

Per concludere questa prima parte, creiamo la funzione che lavorerà con le due funzioni precedentemente create ed elaborerà le informazioni per poi produrre il contenuto HTML mediante la prima funzione creata. Diciamo che è il motore del nostro script.


function createLinkAppStore($idApp,$atts){

//Ricava gli array con le informazioni dell'app

$obj = getContentApp($idApp);

//Controllo che gli array non siano vuoti e quindi produco le variabili con le informazioni dell'app
 if($obj->{'resultCount'} > 0){
$linkImg = $obj->results[0]->artworkUrl512;

//Controlla se è un'app per Mac o per iOS
 if ($obj->results[0]->kind == "mac-software") {$tipo = 0;} else {$tipo=1;}

//Questa è una particolarità di Skimbu, se è un'app iOs allora aggiungerà la classe CSS all'HTML che servirà per arrotondare le icone
 $classe = "";
 if ($tipo==1) $classe = "rounded";

$nomeApp = $obj->results[0]->trackName;
$categoriaApp = $obj->results[0]->genres[0];
if($obj->results[0]->price > 0) {$prezzoApp = $obj->results[0]->price." €";} else {$prezzoApp = "Gratis";}
//Di seguito genera il link all'App Store. ATTENZIONE! Rimuovere la parte relativa a TradeDoubler per evitare di generare introiti per Skimbu.
$linkAppStore = 'http://clkuk.tradedoubler.com/click?p=24373&a=1972645&g=11695726&url='.$obj->results[0]->trackViewUrl;
$autore = $obj->results[0]->artistName;
$linkautore = $obj->results[0]->sellerUrl;
if ($tipo == 0) {$descrizione = "App per Mac";} else {$descrizione = "App per iOS";}
 // Tolgo il punto e metto la virgola
 $prezzoApp = str_replace(".", ",", $prezzoApp);

 $linkAppStor2 = $linkAppStore;

//Genero il contenuto HTML con le informazioni elaborate
$strHtml = createHTMLAppStore($linkImg, $nomeApp, $classe, $descrizione, $autore,$linkautore,$categoriaApp, $prezzoApp, $linkAppStore);

return $strHtml;
 }
}

Riguardo il commento relativo a TradeDoubler, dove trovi la variabile $linkAppStore puoi decidere se:

  • Eliminare la parte “http://clkuk.tradedoubler.com/click?p=24373&a=1972645&g=11695726&” e magari aggiungere il tuo link di TradeDoubler per guadagnare commissioni sulle app vendute grazie a te
  • Lasciare la parte di TradeDoubler per supportare Skimbu e farci guadagnare commissioni sulle app che farai vendere ad iTunes

Ora che abbiamo creato tutte le funzioni necessarie, è ora di creare lo shortcode.


function appitunes_shortcode( $atts, $content = null ) {
 extract( shortcode_atts( array(
 'titolo' => '',
 'descrizione' => '',
 'img' => '',
 'prezzo' => '',
 'genere' => '',
 'autore' => '',
 'link' => '',
 'linkdownload' => '',
 'id' => ''
 ), $atts ) );
// INIZIO CACHE
$tempurl = get_template_directory();

//Imposto la cartella che conterrà i file di cache, che saranno dentro la cartella apps, che sarà dentro cache che sarà dentro la cartella del tema di wordpress attivato.
$cachefile = $tempurl.'/cache/apps/'.esc_attr($id).'.txt';

//Imposto la cache per un anno
$cachetime = 525600 * 60;
// Se non è scaduto un file, lo servo
if (file_exists($cachefile) && (time() - $cachetime < filemtime($cachefile))) {
$include = include $cachefile;
//esco;
} else {
ob_start(); // Inizia il processo di scrittura
$return = createLinkAppStore(esc_attr($id),$atts); //Inizio la catena di funzioni precedentemente create
$fp = fopen($cachefile, 'w'); // Apro il file per scriverci dentro
fwrite($fp, $return); // Salvo i contenuti nel file
fclose($fp); // chiudo il file
ob_end_flush(); // invio l'output al browser

$include = file_get_contents($cachefile); //Indico il nuovo cache file
}
return $include;
}
add_shortcode('appitunes', 'appitunes_shortcode');

Ed ecco qui, finito tutto! Ricordatevi di creare la cartella cache dentro la cartella del vostro tema WordPress, e all’interno di cache create la cartella apps.

Lo script dovrebbe funzionare, basta incollare, in teoria, uno dopo l’altro gli script che ho messo qui sopra e dovrebbe funzionare. Chiaramente ho dovuto fare delle modifiche perché alcune parti interessavano solo Skimbu. Per qualsiasi dubbio non esitate a commentare e cercheremo di rispondervi nel più breve tempo possibile. Per maggiori informazioni sul sistema di cache usato visita quest’altro articolo.

, 882 articoli pubblicati

Fin da quando ho 7 anni sviluppo siti web, amo l'informatica, la fotografia, la scienza e l'economia. Credo che il segreto del successo stia nel fare cose che altri non fanno. Nel 2008 ho fondato Skimbu, a cui ho voluto fin da subito dare una precisa immagine attraverso una grafica semplice, bella e unica e attraverso articoli di qualità e anch'essi unici. Continuerò Skimbu fino a che avrò voglia, con la passione e la voglia di far apprendere alla gente che esiste qualcosa di più meraviglioso che la televisione o che le solite dichiarazioni dei politici.

Visita il sito web di questo autore

Condividi l'articolo!

  • Manuel Coppotelli

    Molto molto interessante! Complimenti Alberto!

    • http://www.skimbu.it/ Alberto Ziveri

      grazie ;)

  • Claudio24041

    Ciao Alberto,
    io ho fatto passo passo…
    Adesso se vado per creare un nuovo articolo come devo fare per inserirlo??

    Grazie

  • http://www.facebook.com/michele.checola Michele Checola

    Complimenti Alberto, ma non si potrebbe creare un plugin ad Hoc?