Hauptinhaltsblock auf der Startseite entfernen


17

Ich bin neu in Drupal 7 und möchte die Standardeinstellungen der Startseite main content blockdurch einen äquivalenten Block ersetzen, der aus Ansichten generiert wird (und dadurch mehr Kontrolle über den Block erhält).

Ich habe den neuen Frontpage-Block in Views erfolgreich generiert und zum Content-Bereich hinzugefügt. Jetzt zeigt die Homepage sowohl den ursprünglichen als auch den neuen Views-Block an.

Der Versuch, das zu entfernen, main content blockindem Sie es so konfigurieren, dass es nicht angezeigt wird, <front>funktioniert nicht. Die einzige Problemumgehung, die ich gefunden habe, ist das folgende CSS:

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

Ich würde eine weniger hackartige Lösung bevorzugen. Kann mir jemand einen vorschlagen?


Ich habe genau das gleiche Problem.
Zeugen Jehovas.

Ich habe nicht genug Ruf, um diese Frage zu beantworten. Aber ich wollte 2 'Ansichtslisten als Blöcke' und keinen anderen Inhalt, deshalb hier eine alternative Lösung: drupal.org/node/2089911#comment-7868495 (dann Liste oder Listen als Blöcke anzeigen )
JW.

Antworten:


24

Sorry, aber so geht das nicht.

Erstellen Sie eine Seitenanzeige, anstatt eine Blockanzeige in Ansichten zu erstellen. Wählen Sie einen Pfad für Ihre Ansichten-Seite, zum Beispiel "home", und speichern Sie die Ansicht. Als nächstes gehen Sie zu / admin / config / system / site-information und ändern den Wert für 'Default front page' (dort steht wahrscheinlich jetzt "node") in den Pfad, den Sie für Ihre Ansicht gewählt haben ("home").

Wenn Sie diesen Ansatz folgen, wird der Hauptinhalt auf Ihrer Titelseite sein die Aussicht.


Ich habe Ihren Vorschlag ausprobiert, er funktioniert perfekt und scheint jetzt sehr offensichtlich zu sein. Danke Marc.
Irishbuzz

Gern geschehen, froh, dass ich helfen konnte.
Marcvangend

Danke, auf jeden Fall die sauberste Lösung hier! Andere sprachen davon, im Kerncode herumzuspielen oder Stylesheets einzurichten. Ich wusste, dass es einen einfacheren Weg geben musste.
Organiccat

1
@ MarioAwad technisch ja. So funktioniert die Einstellung der Drupal-Startseite. Wenn jedoch alle Module URLs und Links mit den Funktionen url()und korrekt erstellen l(), kümmert sich Drupal darum und verlinkt auf www.example.com, sobald www.example.com/path/to/view angegeben wird. Wenn Sie möchten , wird das Global Redirect- Modul auf die Startseite umgeleitet, falls jemand explizit den vollständigen Pfad anfordert.
Marcvangend

1
@marcvangend bedankt sich für die zusätzlichen Erläuterungen und den Hinweis auf Global Redirect, mit dem das Problem des doppelten Pfades gelöst wird. Prost.
Mario Awad

2

Zunächst müssen Sie den Standard-Home-Inhalt entfernen. Dies können Sie folgendermaßen tun:

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

Entfernen Sie den Standardinhalt der Startseite

Erstellen Sie dann die gewünschte Blockansicht. Wechseln Sie dann zu den Blöcken. Zeigen Sie diese Blockansicht im Bereich "Inhalt" an. Beschränken Sie diesen Inhalt auf "nur die folgenden Seiten" und schreiben Sie <front>

Das ist es



0

Obwohl es nicht ein gemeinsames Konzept, Sie können einen Blick als Hauptinhaltsblock auf der Startseite einbetten. Views hat die Flexibilität, dies in einem Augenzwinkern zu tun. Ich vermute, Sie haben den Blockentfernungsschritt, den Sie versucht haben, falsch konfiguriert oder ... mussten lediglich den Cache leeren , um das gleiche Ergebnis zu erhalten.

Um der akzeptierten Antwort gerecht zu werden, ist dieser Ansatz die übliche Vorgehensweise. Endergebnis ist identisch.


Ich denke, es ist ein Fehler in Drupal, weil auch ich diesen 'Block-Entfernungsschritt' ausprobiert habe und es einfach nicht funktioniert hat.
Zeugen Jehovas.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.