Bagaimana cara mengubah beranda saya berdasarkan waktu hari?

8

Saya telah mencari tinggi dan rendah untuk ini. Bagaimana cara mengubah beranda saya berdasarkan waktu hari? Untuk menjadi sangat eksplisit, saya ingin:

  1. Antara pukul 08.00 dan 19.00 - Beranda 1 (simpul / 4)
  2. Antara pukul 19.00 dan 08.00 - Beranda 2 (simpul / 5)

Jadi saya ingin merancang dua homepage yang sama sekali berbeda dan kemudian mereka berubah berdasarkan waktu.

Saya mencoba beberapa kode tetapi sepertinya tidak melakukan pekerjaan:

$current_front = variable_get('site_frontpage');

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

Catatan : Saya bukan jagoan kode jadi tidak akan tahu harus mulai dari mana dengan kait dan saya jutaan tahun lagi untuk membuat modul saya sendiri.

Rich Stevens
sumber
1
lihat pertanyaan ini ( drupal.stackexchange.com/questions/1884/… ) untuk informasi lebih lanjut tentang mengubah halaman depan secara terprogram.
Geoff

Jawaban:

6

Pertimbangkan menggunakan modul Aturan untuk mengatur simpul yang sesuai sebagai halaman depan Anda.

Berdasarkan sampel dalam pertanyaan, saya berasumsi bahwa simpul / 4 adalah apa nilainya site_frontpage. Berikut adalah aturan aktual yang bisa dibuat yang bisa digunakan dalam kasus Anda:

  1. Buat aturan baru
  2. Event = Konten dilihat
  3. Kondisi: perbandingan data -> node:nidsama dengan4
  4. Tambahkan kondisi ekstra untuk memeriksa apakah waktu saat ini adalah antara 19:00 dan 08:00.
  5. Tindakan: pengalihan halaman ke node/5

Bagi siapa pun yang tidak terbiasa (cukup / belum) dengan Aturan , checkout tutorial video 32 (!!!) yang hebat (+ gratis) Pelajari kerangka Aturan . Mungkin juga kumpulan 8 video tutorial serupa tentang modul Bendera , yang sering dianggap sebagai pelengkap alami untuk modul Aturan. Mungkin juga meninjau 30 tutorial video tentang modul Views ... Keakraban dengan hanya 3 modul ( Tampilan , Aturan , dan Bendera ) dapat membuat Anda cukup jauh di sebagian besar situs Drupal (sebagai pembuat situs).

Pierre
sumber
Tidak yakin saya memiliki keterampilan untuk itu, tetapi terima kasih. Saya memang menemukan ini yang sepertinya berfungsi sebagai aturan seleksi di panel: code$ now = time (); $ day = date ("D", $ now); return $ day == "Sel"; codeSaya hanya perlu ini antara jam 8 pagi sampai 7 malam sekarang, jika ada yang tahu bagaimana saya bisa melakukan itu, saya akan berterima kasih.
Rich Stevens
Akhirnya berhasil; menambahkan ini ke aturan pemilihan panel saya: code$ now = time (); $ day = date ("G", $ now); mengembalikan $ hari <"15"; codeBagi siapa pun yang tidak berguna seperti saya, ini berarti saya memeriksa apakah waktunya sebelum jam 15.00, jika sudah maka peraturan ini terlewati sehingga panel saya menunjukkan. Terima kasih.
Rich Stevens
3

Saya akan menyarankan modul khusus dengan beberapa kait cron (dalam satu fungsi hook_cron ).

  • Atur satu kait cron (A) untuk mengubah halaman depan ke simpul / 4.
  • Atur kait cron lainnya (B) untuk mengubah halaman depan ke simpul / 5.
  • Instal Ultimate Cron , dan gunakan penjadwal Crontab.
  • Atur kait A ke * 8 * * *
  • Atur kait B ke * 19 * * *

Tentu saja, itu hanya akan bekerja berdasarkan jam server Anda, dan tidak akan berubah berdasarkan zona waktu pengguna. Jika Anda ingin itu akan lebih rumit.

Darvanen
sumber
Sayangnya saya bukan jagoan kode jadi tidak akan tahu harus mulai dari mana dengan kait ini. Sepertinya saya harus membayar seseorang. Bagaimanapun, terima kasih atas jawaban Anda, mungkin membantu seseorang yang lebih berbakat secara teknis!
Rich Stevens
Anda tidak harus jagoan, Drupal dan PHP cukup mudah dipelajari. Membayar seseorang adalah sebuah pilihan, tetapi juga belajar bagaimana membuat modul khusus =)
Darvanen
Saya tidak tahu apa artinya ini 'Tetapkan satu kait cron (A) untuk mengubah halaman depan ke simpul / 4.' Saya sejuta tahun lagi dari membuat modul saya sendiri.
Rich Stevens
Cukup adil, ada baiknya mengetahui keterbatasan Anda.
Darvanen
3

Lihatlah modul Kunci Tema . Beberapa detail lebih lanjut tentang itu, dari halaman proyeknya:

ThemeKey memungkinkan Anda untuk menentukan aturan pengalihan tema yang sederhana atau canggih yang memungkinkan pemilihan otomatis tema tergantung pada jalur saat ini, istilah taksonomi, bahasa, tipe-simpul, dan banyak, banyak properti lainnya. Itu juga dapat dengan mudah diperluas untuk mendukung properti tambahan yang diekspos oleh modul lain. Dalam kombinasi dengan warisan tema Drupal, Anda dapat dengan mudah mencapai fitur seperti:

  • saluran bergaya individual
  • layar halaman depan / "percikan"
  • tema Natal tanggal / waktu yang dipilih
  • tema seluler untuk berbagai perangkat seluler yang terdeteksi otomatis
  • tema khusus untuk peramban "terbatas" atau "lama"
  • konten, pengguna, atau peran - tema khusus
  • menunjukkan lingkungan Anda (produksi, pementasan, pengujian, kotak pasir, ...)
  • menguji desain ulang Anda dengan aman di server langsung
Mike Barkas
sumber