Ciao a tutti,
vorrei visualizzare tutti i post del mio blog in una nuova pagina,
l'unico problema è che il servizio offerto da google, blogspot, non invia tutti i post.
Quindi sono in cerca di un hack funzionante:
Intanto sto utilizzando lo script Simplepie, per chi non lo sapesse è un semplice script per la gestione degli rss, o meglio un parser. Ti permette inoltre di gestire a propio piacimento l'impaginazione della "news".
In questa lotta contro blogspot ho creato due versioni di script, entrambe non funzionanti. Però rendeno l'idea su come agire su gli rss di blogspot e quali query effettuare, esponendo anche le sue probblematiche.
V. 0.1
Codice PHP:
// con $_POST['numero'], interrogo quanti post ci sono dentro il blog
// in modo da sapere il numero di query da effetuare
if(isSet($_POST['numero'])){
$n = $_POST['numero'];
$n = $n * 1;
//Qui divido il numero di post per 15.
//15 è un numero da me scelto perchè è ne garantisce la visualizzazione di tutte le richieste
//Se il numero ottenuto non è intero(ovvero c'è il resto) aggiungo una pagina.
if(($n % 15) > 0){
$n = (int) ( ( $n - $n % 15 ) / 15 );
$n = $n+1;
} else{
$n = (int) ( ( $n - $n % 15 ) / 15 );
}
$i = 0;
for($i=0; $i<$n; $i++){
if($i===0){
//Qui creo un'array, con il link da interrogare
//nel primo caso dichiaro che voglio il primo post con una visualizzazione
$links[] = "http://dragonsflyracingteam.blogspot.com/feeds/posts/default/?start-index=1&max-results=15";
} else {
$p = ($i * 15)+1;
//Qui i restanti post
$links[] = "http://dragonsflyracingteam.blogspot.com/feeds/posts/default/?start-index=".$p."&max-results=15";
}
}
}
// Avvio la classe
$feed = new SimplePie();
// Setto l'arrai per essere processato
$feed->set_feed_url($links);
// Avvio SimplePie.
$feed->init();
// Passo al parse.
$feed->handle_content_type();
Il risultato però non è quello che speravo di ottenere, infatti ottengo, un post duplicato per il numero di query, con naturalmente il limite di 15 post diversi.
Forse, :master: google riconosce l'unico GET e risponde solo al primo.
Però se io apro 5 pagine per l'equivalente dei miei post nel blog il risultato è corretto.
da 1 a 15
da 16 a 31
da 32 a 47
da 48 a 63
da 64 a 69
Ho provato un'altro sperimento, anche questo fallito.
Ho diviso in due le query, gestendoli da due classi separate. Il risutato è di aver ottenuto sempre la prima pagina duplicata prima e dopo.
V. 0.2
Codice PHP:
//Inizio Simple pie
$feed = new SimplePie();
//Setto la prima query
$feed->set_feed_url(array(
'http://dragonsflyracingteam.blogspot.com/feeds/posts/default/?start-index=1&max-results=15'
));
//Avvio la simplepie
$feed->init();
$feed->handle_content_type();
//Cambio il nome della variabile da feed a feedb
$feedb = new SimplePie();
//mando una stringa diversa
$feedb->set_feed_url(array(
'http://dragonsflyracingteam.blogspot.com/feeds/posts/default/?start-index=16&max-results=15'
));
// Avvio simplepie
$feedb->init();
$feedb->handle_content_type();
Se riuscirò in questa impresa prometto di rilasciare tutto il codice in opensource e di farne un plugin per Simplepie.
Quindi spero nel vostro ingegno e nella vostra voglia di mettervi alla prova.
Grazie in anticipo,
Mauro.
PS: se servisse il blog è:
dragonsflyracingteam.blogspot.com
E l'atom è
dragonsflyracingteam.blogspot.com/feeds/posts/default/
PS: ogni suggerimento è ben accetto.