web-dev-qa-db-ja.com

モバイルデバイスで使用する場合は、別のテンプレートファイルを使用する

現在page-front.tpl.phpを使用して、ビューにBlogコンテンツタイプを表示しています。ユーザーがモバイルデバイスを使用していて、モバイルビューにリダイレクトするか、Drupalテーマレイヤーで別のテンプレートを使用するようにする場合は、別のテンプレートを使用します。

2
albo

これを行うには、モバイルデバイスからの使用であるかどうかを検出するいくつかのメソッドを設定し、その後、template.phpファイルに関数を追加してモバイルテンプレートに切り替える必要があります。

モバイル検出には、これに使用できるモジュールがいくつかありますが、この特定のユースケースでは、特定の変数を提供するため、 モバイルスイッチ をお勧めしますテーマでのテストに使用できます(モバイルツールなどの他のツールも同様ですが、これは私が以前に使用したものの1つにすぎません)。ドキュメントから:

Development with Mobile Switch.

The module provides four system variables:

1. mobile_switch_ismobiledevice
2. mobile_switch_istablet
3. mobile_switch_ismobiletheme
4. theme_mobile

ここから、この変数を使用してpreprocess_page関数を介して テンプレートの提案をテーマ に追加するだけです。例:

function YOURTHEME_preprocess_page(&$variables) {

  global $mobile_switch_ismobiledevice;

  if ((request_path() == 'YOUR_PATH') && $mobile_switch_ismobiledevice) {
    $variables['template_file'] = 'mobile-YOURTEMPLATE';
  }

}

この方法では、別のモバイルテーマを使用したい場合に、2つのテンプレートファイルを明確に切り替える必要があると想定しています。

2
schnippy

BrowscapMobile Switch の組み合わせを使用できるはずです。

Browscap

Browscapは、PHPのget_browser()関数の改良版を提供します。

Get_browser()関数を使用して、訪問者のブラウザが何ができるかを知ることができます[...]

モバイルスイッチ

モバイルスイッチモジュールは、BrowscapまたはMobile Detectによって検出されたモバイルデバイス用のシンプルな自動テーマスイッチ機能を提供します。

コードを通じてそれを実行したい場合(たとえば、既存の_tpl.php_に何かを入れたい場合)、Browscapは便利な browscap_get_browser() 関数を提供しますPHP function get_browser() の代わりとなるため、次のようなコードを実行できます(疑似コード):

_$browser = browscap_get_browser();

if ($browser == "MOBILE_BROWSER") {
 print $MY_MOBILE_VIEW;
}
else {
 print $MY_DESKTOP_VIEW;
}
_
1
Chapabu