Blocchi, come fare a schedularne l'attivazione e la disattivazione?

10 contenuti / 0 new
Ultimo contenuto
Blocchi, come fare a schedularne l'attivazione e la disattivazione?

Salve, esiste un modo per schedulare l'attivazione o la disattivazione di un blocco, quindi renderlo visibile da una data fino ad un'altra data?

Non l'ho provato ma forse (dico forse) una combinazione di Scheduler e Node As Block?

Più imparo, più dubito.

Anche io cercavo una cosa simile e non ho trovato nulla.. avevo provato node as block ma fa il suo lavoro solo con i nodi trasformati in blocco (ma va? il nome nn è caso.. hihihi :) ) .. il problema viene invece quando si deve fare uno scheduling su un blocco "puro".. qua mi sa che toccherebbe creare un modulino ad hoc..

Peccato!... Se qualcuno scova una soluzione... che la posti cortesemente!

Non si potrebbero usare le impostazioni PHP di visibilità del blocco?
ho provato questo semplice sript

<?php
if(date('i') % 2) {
        return
FALSE;
} else {
        return
TRUE;
}
?>

e il blocco appare solo nei minuti dispari (hehe).

con una logica un po' più sensata, magari con una funzione configurabile (anche indirettamente) da modulo
mi sembra che si possa fare...

<a href="mailto:[email protected]" rel="nofollow">[email protected]</a> wrote:
Non si potrebbero usare le impostazioni PHP di visibilità del blocco?
ho provato questo semplice sript
<?php
if(date('i') % 2) {
        return
FALSE;
} else {
        return
TRUE;
}
?>

e il blocco appare solo nei minuti dispari (hehe).

con una logica un po' più sensata, magari con una funzione configurabile (anche indirettamente) da modulo
mi sembra che si possa fare...

Beh in effetti anche questa è una soluzione :-)!
Io non ci avevo pensato, anche perchè ho già funzioni php sparse in giro per i blocchi... tanto che preferirei ridurle + che aumentarle. PErò questa è una soluzione molto semplice e valida, soprattutto per la disattivazione.

Se vogliamo seguire la pista programmatica, qualche consiglio...

<a href="mailto:[email protected]" rel="nofollow">[email protected]</a> wrote:
Non si potrebbero usare le impostazioni PHP di visibilità del blocco?
ho provato questo semplice script
<?php
if(date('i') % 2) {
        return
FALSE;
} else {
        return
TRUE;
}
?>

e il blocco appare solo nei minuti dispari (hehe).
con una logica un po' più sensata, magari con una funzione configurabile (anche indirettamente) da modulo
mi sembra che si possa fare...

Certo, ma time() è probabilmente la strada migliore.
Esiste anche l'operatore ternary per questi test 'se vero, se non falso', una meraviglia per risparmiare i polsi, quindi si può ridurre a:
<?php
 
return ((time() / 60) % 2) ? TRUE : FALSE;
?>

e se (come credo, avendo visto il codice di block.module) non è proprio necessario il TRUE e FALSE (ma un semplice espressione booleano) si riduce a:
<?php
 
return ((time() / 60) % 2);
?>

Sto invertendo il risultato, cioè visibile minuti dispari, ma basta invertire TRUE e FALSE nel primo esempio, o aggiungere un ! prima del primo parentesi nel secondo esempio. Carlo, il tuo blocco è visibile nei minuti pari credo, non dispari.
jscm wrote:
Beh in effetti anche questa è una soluzione :-)!
Io non ci avevo pensato, anche perchè ho già funzioni php sparse in giro per i blocchi... tanto che preferirei ridurle + che aumentarle. PErò questa è una soluzione molto semplice e valida, soprattutto per la disattivazione.

Hai funzioni sparso per i blocchi? Cioè nel DB? Meglio chiamata a funzioni, con il codice in un modulo, n'est pas? Così eviti duplicazione di codice (taglia e incolla non è tuo amico), e guadagni Version control del sorgente, unit testing, code refactoring, e così via.

Più imparo, più dubito.

Quote:
il tuo blocco è visibile nei minuti pari credo, non dispari.

è possibile, non ho controllato ;)
Grazie per l'ottimizzazione del codice!

jhl.verona wrote:
Se vogliamo seguire la pista programmatica, qualche consiglio...
<a href="mailto:[email protected]" rel="nofollow">[email protected]</a> wrote:
Non si potrebbero usare le impostazioni PHP di visibilità del blocco?
ho provato questo semplice script
<?php
if(date('i') % 2) {
        return
FALSE;
} else {
        return
TRUE;
}
?>

e il blocco appare solo nei minuti dispari (hehe).
con una logica un po' più sensata, magari con una funzione configurabile (anche indirettamente) da modulo
mi sembra che si possa fare...

Certo, ma time() è probabilmente la strada migliore.
Esiste anche l'operatore ternary per questi test 'se vero, se non falso', una meraviglia per risparmiare i polsi, quindi si può ridurre a:
<?php
 
return ((time() / 60) % 2) ? TRUE : FALSE;
?>

e se (come credo, avendo visto il codice di block.module) non è proprio necessario il TRUE e FALSE (ma un semplice espressione booleano) si riduce a:
<?php
 
return ((time() / 60) % 2);
?>

Sto invertendo il risultato, cioè visibile minuti dispari, ma basta invertire TRUE e FALSE nel primo esempio, o aggiungere un ! prima del primo parentesi nel secondo esempio. Carlo, il tuo blocco è visibile nei minuti pari credo, non dispari.
jscm wrote:
Beh in effetti anche questa è una soluzione :-)!
Io non ci avevo pensato, anche perchè ho già funzioni php sparse in giro per i blocchi... tanto che preferirei ridurle + che aumentarle. PErò questa è una soluzione molto semplice e valida, soprattutto per la disattivazione.

Hai funzioni sparso per i blocchi? Cioè nel DB? Meglio chiamata a funzioni, con il codice in un modulo, n'est pas? Così eviti duplicazione di codice (taglia e incolla non è tuo amico), e guadagni Version control del sorgente, unit testing, code refactoring, e così via.

certamente... ho chiamate a funzioni in giro.

Cmq a me basterebbe un fuonzi che mi disabilita il blocco alla mezzanotte di un dato giono da impostare (meglio se non con tempo in fomato unix).

@bohz prego.

jscm wrote:
...Cmq a me basterebbe un fuonzi che mi disabilita il blocco alla mezzanotte di un dato giono da impostare (meglio se non con tempo in fomato unix).

Su un sistema Linux, sarà dura trovare un sistema diverso al unix epoch...
Per un esempio vedi http://api.drupal.org/api/function/system_block/6, puoi anche 'inserire' la chiamata alla funziona usando 'visibility' e 'pages'. Per la 'view', puoi magari caricare un nodo...

Più imparo, più dubito.