私はDrupal 7を初めて使用し、フロントページのデフォルトのmain content block
をビューから生成された同等のブロックに置き換えようとしています(そうすることで、ブロックをより詳細に制御できます)。
ビューで新しいフロントページブロックを正常に生成してコンテンツセクションに追加しましたが、ホームページには元のビューブロックと新しいビューブロックの両方が表示されます。
main content block
に表示されないように設定して<front>
を削除しようとしても機能しません。現在のところ、私が見つけた唯一の回避策は次のCSSです。
.front #block-system-main {
display:none;
}
私はハックのようなソリューションを好まないでしょう。誰でも提案できますか?
申し訳ありませんが、その方法ではありません。
ビューでブロック表示を作成する代わりに、ページ表示を作成します。ビューページのパス(「ホーム」など)を選択して、ビューを保存します。次に、/ admin/config/system/site-informationに移動して、「デフォルトのフロントページ」(おそらく「ノード」と表示されています)の値をビューに選択したパス(「ホーム」)に変更します。
このアプローチに従うと、フロントページのメインコンテンツはbeビューになります。
まず、デフォルトのホームコンテンツを削除する必要があります。これを行う方法は次のとおりです。
<?php
function MYTHEME_OR_MODULE_preprocess_page(&$variables) {
if ($variables['is_front']) {
$variables['title'] = '';
unset($variables['page']['content']['system_main']['default_message']);
}
}
次に、目的のブロックビューを作成します。次に、ブロックに移動します。この「ブロックビュー」を「コンテンツ」領域に表示し、このコンテンツを「次のページのみ」に制限して、<front>
それでおしまい
一般的なアプローチではありませんが、フロントページのメインコンテンツブロックとしてビューを埋め込むことができます。ビューには、ウィンクでどちらの方法でもそれを行う柔軟性があります。あなたが試みていたブロック削除手順を誤って設定したか、同じ結果を得るために キャッシュをクリア する必要があっただけだと思います。
受け入れられた答えを公平にするために、そのアプローチはそれを行う通常の方法です。最終結果は同じです。