Web4Web.IT - Community Forums
Mostare risultati casuali - Versione stampabile

+- Web4Web.IT - Community Forums (https://www.web4web.it/forum)
+-- Forum: Supporto Tecnico (/forum-21.html)
+--- Forum: Programmazione & Design (/forum-23.html)
+---- Forum: PHP (/forum-24.html)
+---- Discussione: Mostare risultati casuali (/thread-211.html)

1 2


Mostare risultati casuali - srpd - 08-04-2010 17:11

Allora lo script in questione è questo:

Codice PHP:
$rss fetch_feed('link');
$thumb 'square';
$full 'medium';

// Figure out how many total items there are, but limit it to 5. 
$maxitems $rss->get_item_quantity(10); 

// Build an array of all the items, starting with element 0 (first element).
$rss_items $rss->get_items(0$maxitems); 
?>

<?php if ($maxitems == 0) echo '<li>No items.</li>';
else

// Loop through each feed item and display each item as a hyperlink.
foreach ( $rss_items as $item ):
  
$url flickr::find_photo($item->get_description());
  
$title flickr::cleanup($item->get_title());
  
$full_url flickr::photo($url$full);
  
$thumb_url flickr::photo($url$thumb);
?>
 
<a href="<?php echo $item->get_permalink(); ?>" class="your-image-class" title="<?php echo $item->get_title(); ?>">
     <img src="<?php echo $thumb_url?>" alt="<?php echo $item->get_title(); ?>" />
</a>
 
<?php endforeach; ?>

e serve per mostrare thumb di un account di flickr in un altro sito, in questo caso wordpress. La domanda è è possibile fare in modo che il ciclo mostri si 10 risultati come impostato però non in ordine cronologico ma a caso?


RE: Mostare risultati casuali - Gandalf - 08-04-2010 17:19

Non ho guardato il codice, ma se le thumb sono dentro un array, guarda la funzione shuffle di php che ordina random un array.


RE: Mostare risultati casuali - Pirosauro - 08-04-2010 17:28

è possibile con qualche modifica, ma è limitato sempre al numero di elementi del feed

Codice PHP:
$rss fetch_feed('link');
$thumb 'square';
$full 'medium';

// Figure out how many total items there are, but limit it to 5. 
$maxitems $rss->get_item_quantity(); 

// Build an array of all the items, starting with element 0 (first element).
?>

<?php if ($maxitems == 0) echo '<li>No items.</li>';
else

// Loop through each feed item and display each item as a hyperlink.

for ( $i 1$i <= 10$i++ ):
  
$item $rss->get_itemrand0$maxitems ) );
  
$url flickr::find_photo($item->get_description());
  
$title flickr::cleanup($item->get_title());
  
$full_url flickr::photo($url$full);
  
$thumb_url flickr::photo($url$thumb);
?>
 
<a href="<?php echo $item->get_permalink(); ?>" class="your-image-class" title="<?php echo $item->get_title(); ?>">
     <img src="<?php echo $thumb_url?>" alt="<?php echo $item->get_title(); ?>" />
</a>
 
<?php endfor; ?>



RE: Mostare risultati casuali - srpd - 08-04-2010 17:28

adesso ci guardo subito. thanks for hint Big Grin

edit: ecco non avevo visto anche la tua risposta piro! grazie mille ad entrambi, sempre gentilissimi.


RE: Mostare risultati casuali - Pirosauro - 08-04-2010 17:30

(08-04-2010 17:19)Gandalf Ha scritto:  : https://www.web4web.it/forum/post-1638.html#pid1638Non ho guardato il codice, ma se le thumb sono dentro un array, guarda la funzione shuffle di php che ordina random un array.

non credo che faccia al caso suo, l'array ha gli ultimi 10 risultati, anche se li mescoli sono sempre gli ultimi 10, quindi non propriamente "a caso"


RE: Mostare risultati casuali - srpd - 08-04-2010 17:33

si infatti esatto, a me non serve mescolare gli ultimi 10, ma mostrarne dieci a caso, non tra gli ultimi...
però mentre pensavo questo pensavo anche che come operazione è macchinosa, nel senso ad ogni refresh di pagina deve pescare 10 item differenti. Non è pesante come operazione? considerando ovviamente che non è l'unica funzione ad essere richiamata.

ps: il code funziona, unica pecca però è che pescando a caso capita che un item venga ripetuto N volte all'interno del ciclo. Non c'è un modo al volo per ovviare a ciò? Big Grin


RE: Mostare risultati casuali - Pirosauro - 08-04-2010 18:30

A livello di memoria utilizzata dipende da quanto grande è il feed. A livello di potenza di calcolo non molto, le operazioni sono piuttosto semplici.

ero consapevole del problema da te riscontrato, ma se avessi scritto un codice perfetto avrei dovuto chiederti dei soldi Big Grin
Seriamente, l'unico modo per ovviare è lavorare con gli array, il che richiede un po' più dei 20 secondi che ho impiegato a scriverti Tongue
Potresti provare una combinazione di range() e shuffle(), oppure ancora stipare in un array i valori già usati ed eseguire dei controlli ...


RE: Mostare risultati casuali - srpd - 09-04-2010 00:30

ehehehehe e potevi chiedermeli i soldi Big Grin
Scherzi a parte, ci stro provando ma credo che che opterò per mostrare le ultime foto inserite in modo da sfruttare la cache e non appesantire troppo. Grazie mille comunque.


RE: Mostare risultati casuali - Gandalf - 09-04-2010 08:54

(08-04-2010 17:30)Pirosauro Ha scritto:  : https://www.web4web.it/forum/post-1641.html#pid1641non credo che faccia al caso suo, l'array ha gli ultimi 10 risultati, anche se li mescoli sono sempre gli ultimi 10, quindi non propriamente "a caso"

Pensavo si volesse solo cambiare l'ordine di visualizzazione.
E come ho scritto, non ho nemmeno guardato il codice. Smile


RE: Mostare risultati casuali - Pirosauro - 09-04-2010 09:59

(09-04-2010 08:54)Gandalf Ha scritto:  : https://www.web4web.it/forum/post-1648.html#pid1648Pensavo si volesse solo cambiare l'ordine di visualizzazione.
E come ho scritto, non ho nemmeno guardato il codice. Smile

tutte scuse Big Grin Big Grin
lo dicevo per l'utente, non per criticarti Angel