時刻に基づいてホームページを変更するにはどうすればよいですか?


8

私はこれについて高低を検索しました。時刻に基づいてホームページを変更するにはどうすればよいですか?完全に明確にするために、私は欲しい:

  1. 午前8時から午後7時-ホームページ1(node / 4)
  2. 午後7時から午前8時-ホームページ2(ノード/ 5)

だから私は二つの完全に異なるホームページをデザインしたいのですが、それらは時間帯に応じて変化します。

私はいくつかのコードを試しましたが、それはうまくいかないようです:

$current_front = variable_get('site_frontpage');

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

:私はコードの専門家ではないので、どこからフックを開始すればよいかわからないので、自分のモジュールを作成するのには数百万年もかかります。


1
フロントページのプログラムによる変更の詳細については、この(drupal.stackexchange.com/questions/1884/…)質問を参照してください。
ジェフ2015

回答:


6

ルールモジュールを使用して、適切なノードをフロントページとして設定することを検討してください。

質問のサンプルに基づいて、node / 4が値であると想定していますsite_frontpage。あなたのケースで機能する実際に作成されるルールは次のとおりです。

  1. 新しいルールを作成する
  2. イベント=コンテンツが表示された
  3. 条件:データ比較-> node:nid等しい4
  4. 追加の条件を追加して、現在の時間が午後7時から午前8時の間かどうかを確認します。
  5. アクション:ページのリダイレクト先 node/5

Rulesに慣れていない(まだ/まだ)場合は、32(!!!)のすばらしい(+無料の)ビデオチュートリアルをご覧ください。また、フラグモジュールに関する8つのビデオチュートリアルの同様のセットも、おそらくルールモジュールの自然な補完物と見なされます。Viewsモジュールに関する30のビデオチュートリアルのセットを確認することもできます。これらの3つのモジュール(ViewsRulesFlag)だけに慣れれば、ほとんどすべてのDrupalサイト(サイトビルダーとして)でかなり遠くまで到達できます。


そのスキルがあるかどうかはわかりませんが、ありがとうございます。パネルで選択ルールとして機能するように見えるこれを見つけました:code$ now = time(); $ day = date( "D"、$ now); return $ day == "Tue"; codeこれが午前8時から午後7時の間である必要があるだけです。私がそれを行う方法を知っている人がいたら、私は感謝します。ありがとう
Rich Stevens

最後にそれを解決しました。これをパネル選択ルールに追加しました:code$ now = time(); $ day = date( "G"、$ now); $ day <"15"を返す; code私と同じくらい役に立たない人にとって、これは時間が15.00時間より前かどうかをチェックしていることを意味します。ありがとう。
リッチスティーブンス、

3

いくつかのcronフック(1つのhook_cron関数内)を持つカスタムモジュールをお勧めします。

  • 1つのcronフック(A)を設定して、フロントページをnode / 4に変更します。
  • もう1つのcronフック(B)を設定して、フロントページをnode / 5に変更します。
  • Ultimate Cronをインストールし、Crontabスケジューラーを使用します。
  • フックAを * 8 * * *
  • フックBを * 19 * * *

もちろん、これはサーバーのクロックに基づいてのみ機能し、ユーザーのタイムゾーンに基づいて変更されることはありません。あなたがそれを望むなら、それはよりトリッキーになるでしょう。


残念ながら、私はコードの専門家ではないので、これらのフックからどこから始めればよいかわかりません。誰かに支払う必要があるようです。どんな場合でもあなたの答えをありがとう、より技術的に才能のある人を助けるかもしれません!
リッチスティーブンス、

DrupalとPHPは簡単に習得できます。誰かに支払うことはオプションですが、カスタムモジュールの作成方法を学ぶこともできます =)
Darvanen

これが「フロントページをnode / 4に変更するために1つのcronフック(A)を設定する」の意味がわかりません。私は自分のモジュールを作成するのに100万年もかかります。
リッチスティーブンス

十分に公正で、あなたの限界を知るのは良いことです。
Darvanen

3

見ていテーマキーモジュールを。プロジェクトページからの詳細:

ThemeKeyを使用すると、現在のパス、分類用語、言語、ノードタイプ、およびその他の多くのプロパティに応じてテーマを自動的に選択できる、シンプルまたは高度なテーマ切り替えルールを定義できます。また、他のモジュールによって公開される追加のプロパティをサポートするように簡単に拡張できます。Drupalのテーマ継承と組み合わせると、次のような機能を簡単に実現できます。

  • 個別スタイルのチャネル
  • フロントページ/「スプラッシュ」画面
  • 日付/時刻が選択されたクリスマスのテーマ
  • さまざまな自動検出モバイルデバイスのモバイルテーマ
  • 「限定」または「古い」ブラウザ用の特別なテーマ
  • コンテンツ、ユーザー、またはロール固有のテーマ
  • 環境を示す(本番、ステージング、テスト、サンドボックスなど)
  • 稼働中のサーバーで再設計を安全にテストする
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.