Come cambiare la mia homepage in base all'ora del giorno?


8

Ho cercato in alto e in basso per questo. Come posso cambiare la mia homepage in base all'ora del giorno? Per essere assolutamente esplicito, voglio:

  1. Tra le 8:00 e le 19:00 - Pagina iniziale 1 (nodo / 4)
  2. Tra le 19:00 e le 8:00 - Pagina iniziale 2 (nodo / 5)

Quindi voglio progettare due homepage completamente diverse e poi cambiano in base all'ora del giorno.

Ho provato un po 'di codice ma non sembra fare il lavoro:

$current_front = variable_get('site_frontpage');

if($current_front== 'node/4'){
    variable_set('site_frontpage','node/5');
}else{
    variable_set('site_frontpage','node/4');
}

Nota : non sono un mago del codice, quindi non saprei da dove cominciare con gli hook e sono a un milione di anni dalla creazione dei miei moduli.


1
vedere questa domanda ( drupal.stackexchange.com/questions/1884/… ) per ulteriori informazioni sulla modifica programmatica della prima pagina.
Geoff,

Risposte:


6

Prendi in considerazione l'utilizzo del modulo Regole per impostare il nodo appropriato come prima pagina.

Sulla base del campione nella domanda, presumo che il nodo / 4 sia il valore di site_frontpage. Ecco la regola effettiva da creare che potrebbe funzionare nel tuo caso:

  1. Crea una nuova regola
  2. Evento = Il contenuto è visualizzato
  3. Condizione: confronto dei dati -> node:niduguale a4
  4. Aggiungi una condizione aggiuntiva per verificare se l'ora corrente è tra le 19:00 e le 08:00.
  5. Azione: reindirizzamento della pagina a node/5

Per chiunque non abbia familiarità (abbastanza / ancora) con le Regole , dai un'occhiata ai 32 (!!!) fantastici (+ gratuiti) tutorial video Impara il framework delle Regole . Forse anche il set simile di 8 tutorial video sul modulo Flag , spesso considerato un complemento naturale al modulo Regole. Forse rivedi anche il set di 30 tutorial video sul modulo Views ... La familiarità con solo quei 3 moduli ( Views , Rules and Flag ) può portarti abbastanza lontano in quasi tutti i siti Drupal (come site builder).


Non sono sicuro di avere le competenze per farlo, ma grazie. Ho trovato questo che sembra funzionare come una regola di selezione in un pannello: code$ now = time (); $ giorno = data ("D", $ ora); return $ day == "Mar"; codeho solo bisogno che sia tra le 8 e le 19 ora, se qualcuno sa come posso farlo, te ne sarei grato. Grazie.
Rich Stevens,

Finalmente ha funzionato; aggiunto questo alla mia regola di selezione del pannello: code$ now = time (); $ giorno = data ("G", $ ora); return $ day <"15"; codePer chiunque sia inutile come me, questo significa che sto controllando se il tempo è prima delle 15.00, se è allora questa regola passa così il mio pannello mostra. Grazie.
Rich Stevens,

3

Vorrei suggerire un modulo personalizzato con un paio di cron hook (in una funzione hook_cron ).

  • Impostare un hook cron (A) per cambiare la pagina iniziale in nodo / 4.
  • Imposta l'altro cron hook (B) per cambiare la pagina iniziale in nodo / 5.
  • Installa Ultimate Cron e usa lo scheduler Crontab.
  • Impostare il gancio A su * 8 * * *
  • Impostare il gancio B su * 19 * * *

Naturalmente, funzionerà solo in base all'orologio del tuo server e non cambierà in base al fuso orario dell'utente. Se lo desideri, sarà più complicato.


Sfortunatamente non sono un mago del codice, quindi non saprei da dove cominciare con questi hook. Sembra che dovrò pagare qualcuno. Grazie per la risposta in ogni caso, potrebbe aiutare qualcuno più tecnicamente dotato!
Rich Stevens,

Non devi essere un mago, Drupal e PHP sono abbastanza facili da imparare. Pagare qualcuno è un'opzione, ma lo è anche imparare a creare moduli personalizzati =)
Darvanen,

Non so cosa significhi "Imposta un hook cron (A) per cambiare la prima pagina in nodo / 4". Sono a un milione di anni dalla creazione dei miei moduli.
Rich Stevens,

Abbastanza giusto, è bene conoscere i tuoi limiti.
Darvanen,

3

Dai un'occhiata al modulo Chiave tematica . Alcuni ulteriori dettagli a riguardo, dalla sua pagina del progetto:

ThemeKey consente di definire regole di commutazione del tema semplici o sofisticate che consentono la selezione automatica di un tema in base al percorso corrente, ai termini della tassonomia, alla lingua, al tipo di nodo e a molte altre proprietà. Può anche essere facilmente esteso per supportare proprietà aggiuntive esposte da altri moduli. In combinazione con l'eredità del tema di Drupal puoi facilmente ottenere funzionalità come:

  • canali in stile individuale
  • una schermata di prima pagina / "splash"
  • un tema natalizio selezionato per data / ora
  • temi mobili per diversi dispositivi mobili rilevati automaticamente
  • temi speciali per browser "limitati" o "vecchi"
  • temi specifici per contenuto, utente o ruolo
  • indicando il tuo ambiente (produzione, messa in scena, test, sandbox, ...)
  • testare la riprogettazione in modo sicuro su un server live
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.