Blocco che mostri teaser di un nodo scelto a caso.

15 contenuti / 0 new
Ultimo contenuto
Blocco che mostri teaser di un nodo scelto a caso.

Sapete cosa mi piacerebbe per uno dei miei blog?!

Un bel blocco che mi mostri il teaser di un nodo scelto a caso, che lo mostri per un giorno (un tempo impostabile) che sia selezionato a caso tra i nodi di diversi content_type selezionabili e che partendo da un immagine inserita nel content (quindi niente nodi immagini) possa consentire di impostare un ridimensionamento (a video) in modo tale da poter inserire tale blocco anche in una colonna stretta.

Non necessariamente deve avere tutte queste caratteristiche, cominciamo da quelle base.

Sapete dirmi come fare? :)

non è che per questa cosa, almeno per le funzioni base (cioè avere il blocco a caso) devo usare View?... mmmmmmm

Certo che puoi usare views.
selezioni global:random come criterio di ordinamento.
Il problema è che in questo modo il contenuto della view cambia ad ogni page load.
Ho perso uno snippet da inserire in views (validazione dell'argomento) che permetteva di impostare il tempo di validità della view.
Non lo trovo più neanche su d.o.
Ma continuo a cercare, visto che serve anche a me.
Esiste il modulo http://drupal.org/project/daily
ma sembra quasi abbandonato, troppo complesso e pieno di bug.

@bohz: non è che ti riferisci al caching delle views? dalla 2.6 dovrebbe essere al'interno della relase di views di default.

Ciao
Marco
--
My blog
Working at @agavee

no, mi riferivo proprio a uno snippet da inserire nella validazione dell'argument nodeID.
il caching è stato il primo workaround che ho provato... purtroppo è impostabile solo ad intervalli di 1,5,30 min, 1,6 ore o 6 giorni.
Alla fine ho patchato views/plugins/views_plugin_cache_time.inc aggiungendo il valore di 86400 (1 giorno) all'array in riga 14.
Non ho ancora testato se il blocco sia effettivamente cambiato dopo 1 giorno, però.
Bisogna vedere come si comporta la cache per gli utenti anonimi...

la cache E' per gli utenti anonimi..

Ciao
Marco
--
My blog
Working at @agavee

Chè il sistema di caching (per pagina) si rifersce agli utenti anonimi, se poi si passa al caching per blocchi o di altri elementi si può arrivare ad avaere caching più granulare.

Ciao
Marco
--
My blog
Working at @agavee

Chè il sistema di caching (per pagina) si rifersce agli utenti anonimi, se poi si passa al caching per blocchi o di altri elementi si può arrivare ad avaere caching più granulare.

Ciao
Marco
--
My blog
Working at @agavee

@mavimo: era proprio quello che intendevo, ovvero non avevo (ancora non ho) idea di come si sarebbe comportata la cache "base" di drupal nei confronti del caching di quella view in particolare. Se ho una cache impostata per essere pulita ogni 30 minuti, ed imposto la cache della view ad 1 giorno (vedi #4), quest'ultima verrà rispettata? se si, solo per gli anonimi o anche per i loggati?
Grazie e auguri

Il caching della views utilizza le tabelle cache_views dove storare i dati del risultato della views, e questi dati vengono usati per poi popolare blocchi/pagine, che a loro volta hanno un tempo di caching. Se il tempo di caching della views è molto maggiore di quello delle pagine SOLITAMENTE non si percepisce il problema dells cahdenza delle cache delle views.
La cache della views viene rigenerata alla successiva generazione della pagina, quindi con il tuo esempio:

  • caching della views 24 h = (24*60) 1440 min
  • caching della pagina 5min

Viene richiamata la prima pagina che contiene la tua views, viene fatta la richiesta alla views che finisce in cache per i successivi 1440min, nel contempo la pagina viene generata e messa in cache (per i successivi 5 min). Allo scadere della validità della cache della pagina viene fatta richiesta del risultato della views, dato che la sua cache non è ancora scaduta viene restituito il risultato della cache e così via.. ad un certo punto alla richeista della views la sua cache sarà scaduta e quindi verrà rigenrata.

Al contrario la cosa (ovviamente) non funziona, perché se la pagina è cachata non si avrebe al rigenerazione (con conseguente richiesta dei risultati della views).

So che l'orario non è ideal e la mia risposta contorta, ma spero si sia capito :D

Ciao
Marco
--
My blog
Working at @agavee

è chiarissimo, invece. Grazie
Un'ultima cosa: lo scenario che hai descritto è valido in modo analogo anche per gli utenti loggati?
ri-grazie

per gli utenti loggati di default la cache delle pagine non esiste, quindi non è proprio così, poi ci sono sistemi di caching che aggiungono alcune funzionalità, ma dipende da cosa usi.

Ciao
Marco
--
My blog
Working at @agavee

Si, lo so. Io mi riferivo al dubbio: per gli utenti loggati come si comporta la cache della view che dicevo in #4?
si comporta come per gli utenti anonimi o proprio non viene creata?
In ultima analisi, quella benedetta impostazione di cacheare la view per 1 giorno, puo' essere usata per ottenere quanto richiesto dall'OP ovvero avere un blocco che cambia contenuto una volta al giorno, sia per gli anonimi che per i loggati?

ri-grazie

Le views non cachano di default, ma è possibile impostare il caching di ogni views in diversi modi (a partire dalla 2.5, mi pare), poi sinceramente io non mi affiderei al caching per una cosa che è ricihiesta come funzionalità del portale, cosa succede se per qualche motifo il sistema di caching viene cancellato (un banale flush_all_cache, lanciato da qualche modulo)? Verrebbe ricreata la views aggiornata e quindi non sarebbe più corretto.. IMHO la soluzione è un sistema che butti in nodequeue un nodo random ogni giorno e una views che esponga il primo nodo della queue..

Ciao
Marco
--
My blog
Working at @agavee

...mi pare la soluzione più elegante.
Grazie e buon 2010!