Удаление основного блока контента на главной странице

17

Я новичок в Drupal 7 и ищу замену по умолчанию на главной странице main content blockэквивалентным блоком, сгенерированным из Views (получая при этом больший контроль над блоком).

Я успешно сгенерировал новый блок главной страницы в Views и добавил его в раздел контента, однако теперь на главной странице отображается как оригинальный, так и новый блок views.

Попытка удалить main content block, настроив его так, чтобы он не отображался <front>, не работает, и на данный момент единственный найденный мной обходной путь - это следующий CSS:

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

Я бы предпочел менее взломанное решение. Кто-нибудь может предложить один?

irishbuzz
источник
У меня точно такая же проблема.
JW.
У меня недостаточно репутации, чтобы ответить на этот вопрос. Но я хотел 2 «просмотреть списки как блоки» и никакого другого контента, поэтому здесь есть альтернативное решение: drupal.org/node/2089911#comment-7868495 (затем показать список или списки как блоки)
JW.

Ответы:

24

Извините, но это не способ сделать это.

Вместо создания отображения блока в представлениях создайте отображение страницы. Выберите путь для вашей страницы просмотров, например «home», и сохраните вид. Затем вы идете в / admin / config / system / site-information и меняете значение для «Основной страницы по умолчанию» (теперь оно, вероятно, говорит «узел») на путь, который вы выбрали для своего представления («home»).

Когда вы будете следовать этому подходу, основное содержание на вашей странице передней будет иметь вид.

marcvangend
источник
Ах, я понимаю. Я попробовал ваше предложение, оно работает отлично и кажется очень очевидным. Спасибо, Марк.
irishbuzz
Пожалуйста, рад, что я мог помочь.
marcvangend
Спасибо, определенно самое чистое решение здесь! Другие говорили о копании в основном коде или настройке таблиц стилей. Я знал, что должен быть более легкий путь.
Organiccat
1
@MarioAwad технически, да. Вот как работает настройка главной страницы Drupal. Однако, если все модули правильно построить URL, и ссылки с url()и l()функциями, Drupal будет заботиться о нем и ссылки на www.example.com , когда www.example.com/path/to/view дается. Если хотите, модуль Global Redirect перенаправит на первую страницу в случае, если кто-то явно запросит полный путь.
marcvangend
1
@marcvangend спасибо за дополнительные разъяснения и указатель на Global Redirect, который решает проблему двойного пути. Приветствия.
Марио Авад
2

Прежде всего вы должны удалить домашний контент по умолчанию, вот способ сделать это:

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

Удалить содержимое домашней страницы по умолчанию

Затем создайте представление блока, которое вы хотите .. затем перейдите к блокам .. покажите это представление блока в области "содержимого" ... и ограничьте это содержимое "только следующими страницами" и напишите <front>

это оно


Тарек Ассаф
источник
0

Хотя это и не обычный подход, вы можете встроить представление в качестве основного блока контента на главной странице. Представления могут сделать это в любой момент. Я подозреваю, что вы неправильно настроили шаг удаления блока, который вы пытались, или ... просто должны были очистить кеш, чтобы получить тот же результат.

Чтобы быть справедливым в отношении принятого ответа, такой подход является обычным способом сделать это. Конечный результат идентичен.

stefgosselin
источник
Я думаю, что это ошибка в Drupal, потому что я тоже пробовал этот «шаг удаления блока», и он просто не работал.
JW.