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

17

Je suis nouveau sur Drupal 7 et je cherche à remplacer la valeur main content blockpar défaut de la page d'accueil par 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.

Tenter de supprimer le main content blocken le configurant pour qu'il ne s'affiche pas <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?

irishbuzz
la source
J'ai exactement le même problème.
JW.
Je n'ai pas assez de réputation pour répondre à cette question. Mais je voulais 2 'afficher les listes sous forme de blocs' et aucun autre contenu, voici donc une solution alternative: drupal.org/node/2089911#comment-7868495 (puis afficher la ou les listes sous forme de blocs)
JW.

Réponses:

24

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 être la vue.

marcvangend
la source
Ah je vois. J'ai essayé votre suggestion, cela fonctionne parfaitement et semble très évident maintenant. Merci marc.
irishbuzz
Je vous en prie, heureux d'avoir pu vous aider.
marcvangend
Merci, certainement la solution la plus propre ici! D'autres parlaient de contourner le code de base ou de créer des feuilles de style. Je savais qu'il devait y avoir un moyen plus simple.
Organiccat
1
@MarioAwad techniquement, oui. Voilà comment fonctionne le paramètre de page d'accueil Drupal. Cependant, si tous les modules construisent correctement les URL et les liens avec les fonctions url()et l(), Drupal s'en chargera et liera à www.example.com chaque fois que www.example.com/path/to/view est donné. Si vous le souhaitez, le module de redirection globale redirigera vers la page d'accueil dans le cas où quelqu'un demanderait explicitement le chemin complet.
marcvangend
1
@marcvangend merci pour les clarifications supplémentaires et le pointeur vers Global Redirect qui résout le problème du double chemin. À votre santé.
Mario Awad
2

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

Ensuite, créez la vue de bloc que vous souhaitez .. puis allez dans les blocs .. affichez cette vue de bloc dans la région "contenu" .. et limitez ce contenu à "uniquement les pages suivantes" et écrivez <front>

C'est ça


Tareq Assaf
la source
0

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 page d'accueil. Views a la possibilité de le faire dans un sens ou dans l'autre. 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.

stefgosselin
la source
Je pense que c'est un bogue dans Drupal parce que moi aussi, j'ai essayé cette «étape de suppression de bloc» et cela n'a tout simplement pas fonctionné.
JW.