Usuwanie głównego bloku treści na stronie głównej

17

Jestem nowy w Drupal 7 i szukam zamiany domyślnej strony głównej na main content blockrównoważny blok wygenerowany z widoków (zyskując w ten sposób większą kontrolę nad tym blokiem).

Z powodzeniem wygenerowałem nowy blok strony głównej w Widoku i dodałem go do sekcji zawartości, ale teraz strona główna wyświetla zarówno oryginalny, jak i nowy blok widoków.

Próba usunięcia pliku main content blockprzez skonfigurowanie go tak, aby nie wyświetlał się <front>, nie działa, a na razie jedynym obejściem, które znalazłem, jest następujący CSS:

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

Wolałbym mniej hackowe rozwiązanie. Czy ktoś może coś zasugerować?

irishbuzz
źródło
Mam dokładnie ten sam problem.
JW.
Nie mam wystarczającej reputacji, aby odpowiedzieć na to pytanie. Chciałem jednak 2 „wyświetlić listy jako bloki” i żadnej innej zawartości, więc oto alternatywne rozwiązanie: drupal.org/node/2089911#comment-7868495 (następnie pokaż listę lub listy jako bloki)
JW.

Odpowiedzi:

24

Przepraszam, ale nie tak to zrobić.

Zamiast tworzyć wyświetlanie bloku w widokach, utwórz wyświetlanie strony. Wybierz ścieżkę do strony wyświetleń, na przykład „dom” i zapisz widok. Następnie przejdź do / admin / config / system / site-information i zmień wartość „Domyślna strona główna” (prawdopodobnie mówi teraz „węzeł”) na ścieżkę, którą wybrałeś dla swojego widoku („strona główna”).

Po wykonaniu tego podejścia, główną treść na swojej stronie przedniej będą mieć widok.

marcvangend
źródło
Ach, rozumiem. Próbowałem twojej sugestii, że działa idealnie i wydaje się teraz bardzo oczywista. Dzięki marc.
irishbuzz
Nie ma za co, cieszę się, że mogłem pomóc.
marcvangend
Dzięki, zdecydowanie najczystsze rozwiązanie tutaj! Inni mówili o przeszukiwaniu podstawowego kodu lub tworzeniu arkuszy stylów. Wiedziałem, że musi być prostszy sposób.
Organiccat
1
@MarioAwad technicznie tak. Tak działa ustawienie na pierwszej stronie Drupala. Jednakże, jeśli wszystkie moduły poprawnie zbudują adresy URL i linki z funkcjami url()i l(), Drupal zajmie się tym i link do www.example.com za każdym razem, gdy podany zostanie www.example.com/path/to/view. Jeśli chcesz, moduł Global Redirect przekieruje na pierwszą stronę, na wypadek gdyby ktoś wyraźnie zażądał pełnej ścieżki.
marcvangend,
1
@marcvangend dzięki za dodatkowe wyjaśnienia i wskaźnik w kierunku globalnego przekierowania, który rozwiązuje problem podwójnej ścieżki. Twoje zdrowie.
Mario Awad,
2

Przede wszystkim musisz usunąć domyślną treść domową, oto jak to zrobić:

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

Usuń domyślną zawartość strony głównej

Następnie utwórz widok bloku, który chcesz .. następnie przejdź do bloków .. pokaż ten widok bloku w regionie „treść” i ogranicz tę treść do „tylko następujących stron” i napisz <front>

Otóż ​​to


Tareq Assaf
źródło
0

Chociaż nie wspólnego podejścia, to można osadzić widok jako głównego bloku zawartości na Pierwsza. Widoki mogą to zrobić w mgnieniu oka. Podejrzewam, że źle skonfigurowałeś krok usuwania bloku, który próbujesz lub ... po prostu musiałeś wyczyścić pamięć podręczną, aby uzyskać ten sam wynik.

Aby być uczciwym wobec przyjętej odpowiedzi, takie podejście jest zwykle sposobem na zrobienie tego. Wynik końcowy jest identyczny.

stefgosselin
źródło
Myślę, że jest to błąd w Drupal, ponieważ ja również próbowałem tego „kroku usuwania bloku” i po prostu nie działało.
JW.