1

モバイルテーマではレンダリングされないブロックがたくさんあるサイドバーがあります。しかし、モバイル テーマのカスタム リージョンでそれらのいくつかをレンダリングする必要があります。試した:

mytheme_preprocess_block(&$vars) {
  $vars['block']->region = 'my_region';
}

my page.tpl.php の $my_region 変数が何らかの理由で空です。ブロックにはコンテンツがあり、領域が定義され有効です。ブロックの位置を切り替える解決策は何ですか? どうもありがとう!

4

1 に答える 1

0

このように表示する必要がありますか?

my_region にカスタム モジュールと hook_block() を使用してブロックを追加します。

モジュール自体からのモバイル テーマの条件に応じて、内部のカスタム php コードを使用してすべてのブロック コンテンツを表示します。

ブロックのタイプがビューの場合、以下のコードを使用してビューの内容を出力します。

    

    $view = views_get_view('ビュー名');
    $view->set_display('block_1'); //またはビュー内のブロック ID
    $view_block = $view->execute_display('block_1', array());
    // 2 番目の引数に引数があれば、それを渡します
    print $view_block['content'];

タイプがブロックのみの場合は、次を使用します。

    $block = module_invoke('module_name[Web インターフェイスから作成されたブロックの "block"]', 'block', 'view', 'delta');

    print $block['content'];

これが紛らわしい場合はお知らせください。

于 2012-05-24T18:47:43.943 に答える