web-dev-qa-db-ja.com

フロントページのメインコンテンツブロックを削除しています

私はDrupal 7を初めて使用し、フロントページのデフォルトのmain content blockをビューから生成された同等のブロックに置き換えようとしています(そうすることで、ブロックをより詳細に制御できます)。

ビューで新しいフロントページブロックを正常に生成してコンテンツセクションに追加しましたが、ホームページには元のビューブロックと新しいビューブロックの両方が表示されます。

main content blockに表示されないように設定して<front>を削除しようとしても機能しません。現在のところ、私が見つけた唯一の回避策は次のCSSです。

.front #block-system-main {
  display:none;
}

私はハックのようなソリューションを好まないでしょう。誰でも提案できますか?

16
irishbuzz

申し訳ありませんが、その方法ではありません。

ビューでブロック表示を作成する代わりに、ページ表示を作成します。ビューページのパス(「ホーム」など)を選択して、ビューを保存します。次に、/ admin/config/system/site-informationに移動して、「デフォルトのフロントページ」(おそらく「ノード」と表示されています)の値をビューに選択したパス(「ホーム」)に変更します。

このアプローチに従うと、フロントページのメインコンテンツはbeビューになります。

24
marcvangend

まず、デフォルトのホームコンテンツを削除する必要があります。これを行う方法は次のとおりです。

<?php
function MYTHEME_OR_MODULE_preprocess_page(&$variables) {
  if ($variables['is_front']) {
    $variables['title'] = '';
    unset($variables['page']['content']['system_main']['default_message']);
  }
}

ホームページのデフォルトコンテンツを削除

次に、目的のブロックビューを作成します。次に、ブロックに移動します。この「ブロックビュー」を「コンテンツ」領域に表示し、このコンテンツを「次のページのみ」に制限して、<front>

それでおしまい


2
Tareq Assaf

一般的なアプローチではありませんが、フロントページのメインコンテンツブロックとしてビューを埋め込むことができます。ビューには、ウィンクでどちらの方法でもそれを行う柔軟性があります。あなたが試みていたブロック削除手順を誤って設定したか、同じ結果を得るために キャッシュをクリア する必要があっただけだと思います。

受け入れられた答えを公平にするために、そのアプローチはそれを行う通常の方法です。最終結果は同じです。

0
stefgosselin