web-dev-qa-db-fra.com

Suppression du bloc de contenu principal sur la première page

Je suis nouveau sur Drupal 7 et je cherche à remplacer la valeur par défaut de la page d'accueil main content block avec un bloc équivalent généré à partir de Views (ce qui permet de mieux contrôler le bloc).

J'ai réussi à générer le nouveau bloc de page d'accueil dans les vues et à l'ajouter à la section de contenu, mais maintenant, la page d'accueil affiche à la fois l'original et le nouveau bloc de vues.

Tentative de suppression du main content block en le configurant pour ne pas s'afficher sur <front> ne fonctionne pas et pour l'instant la seule solution de contournement que j'ai trouvée est le CSS suivant:

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

Je préférerais une solution moins piratée. Quelqu'un peut-il en proposer un?

16
irishbuzz

Désolé, mais ce n'est pas la façon de procéder.

Au lieu de créer un affichage de bloc dans les vues, créez un affichage de page. Choisissez un chemin pour votre page de vues, par exemple "home", et enregistrez la vue. Ensuite, allez dans/admin/config/system/site-information et changez la valeur de 'Default front page' (il dit probablement "node" maintenant) au chemin que vous avez choisi pour votre vue ("home").

Lorsque vous suivez cette approche, le contenu principal de votre page d'accueil sera la vue .

24
marcvangend

Tout d'abord, vous devez supprimer le contenu d'accueil par défaut, voici la façon de le faire:

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

Supprimer le contenu par défaut de la page d'accueil

Créez ensuite la vue de bloc que vous souhaitez .. puis allez dans les blocs .. affichez cette vue de bloc dans la zone "contenu" .. et limitez ce contenu à "uniquement les pages suivantes" et écrivez <front>

C'est ça


2
Tareq Assaf

Bien qu'il ne s'agisse pas d'une approche courante, vous pouvez intégrer une vue en tant que bloc de contenu principal sur la première page. Views a la possibilité de le faire de toute façon en un clin d'œil. Je soupçonne que vous avez mal configuré l'étape de suppression de bloc que vous tentiez ou ... avez simplement dû vider le cache pour obtenir le même résultat.

Pour être juste sur la réponse acceptée, cette approche est la façon habituelle de le faire. Le résultat final est identique.

0
stefgosselin