Chcę dodać nowy obszar, który będzie obejmował całą witrynę. Opisz proces wprowadzania tego nowego regionu do mojego motywu, jeśli to możliwe, uogólnij go, dodając nowy, niestandardowy region.
Następnie musisz umieścić odpowiednie tagi szablonu w pliku page.tpl.php.
Na przykład, jeśli zdefiniowałeś region sidebarw pliku .info motywów, wówczas <?php print render($page['sidebar']); ?>dodałbyś : w odpowiednim miejscu w page.tpl.php.
Aby wyjaśnić tę kwestię: jeśli definiujesz własne regiony, musisz zdefiniować wszystko, czego używasz, w tym te, które są wymagane. Innymi słowy, nie możesz po prostu zdefiniować dodatkowych regionów: jeśli je zdefiniujesz, musisz zdefiniować je wszystkie.
Tworzenie regionu dla motywu Drupal 7 nie różni się od tworzenia regionu dla regionu Drupal 6; różnice między Drupalem 7 a poprzednimi wersjami są zasadniczo:
Regiony nie są zdefiniowane za pomocą mytheme_regions()funkcji, jak to zrobiono w Drupal 5, ale są zdefiniowane w mytheme.info za pomocą regions[]dyrektyw, podobnie jak w przypadku motywów Drupal 6.
Regiony są renderowane przy użyciu funkcji Drupal render(), zamiast drukowania zawartości zmiennej.
Domyślne regiony Drupal 7 to:
regions[header] = Header
regions[highlighted] = Highlighted
regions[help] = Help
regions[content] = Content
regions[sidebar_first] = Left sidebar
regions[sidebar_second] = Right sidebar
regions[footer] = Footer
Główne tematy Drupala 7 obejmują teraz region o nazwie „podświetlony”, który używa tego samego wyświetlacza co obszar deklaracji misji w Drupal 6; zawierają również region o nazwie „pomoc”, który domyślnie ma tę samą zawartość $helpzmiennej, z której korzysta Drupal 6.
Regiony kompozycji są zdefiniowane w pliku .info kompozycji - patrz dokumentacja . Wystarczy dodać linię, regions[corner] = Corneraby uzyskać region Corner.
Następnie musisz edytować plik page.tpl.php i dodać miejsce, w <php print render($corner); ?>którym region ma się wyświetlać. Jeśli twój motyw nie ma page.tpl.php, skopiuj z motywu podstawowego lub z modułu systemowego.
Typowe pułapki:
Jeśli plik theme.info nie ma zadeklarowanych regionów, używa domyślnych regionów Drupal. Jeśli chcesz dodać, musisz ponownie zadeklarować regiony domyślne. Możesz oczywiście usunąć dowolny region, ale poprzyj wymagane regiony. Zobacz ponownie dokumenty .
Zmiany w pliku .info lub dodawanie nowych plików do kompozycji (np. Page.tpl.php) zostaną zauważone dopiero po wyczyszczeniu pamięci podręcznej.
Omega, bardzo popularny motyw podstawowy, nie potrzebuje żadnych zmian w page.tpl.php, tylko w pliku .info. Musisz jednak odwiedzić ustawienia motywu w interfejsie użytkownika i przypisać region do strefy.
To jest podsumowanie odpowiedzi z typowymi pułapkami.
Capi Etheriel,
Czy regions[content] = Contentjedyny wymagany region w D7? drupal.org/node/171205#regions zdaje się sugerować, ale potem drupal.org/node/171224 mówi, że wymagane są regiony content, help, page_topipage_bottom
Jim Garrison
Nie wiem, czy Drupal sprawdza którykolwiek z regionów, ale contentjest to na pewno bardzo ważne. helpjest obsługiwany przez rdzeń (do wyprowadzania komunikatów pomocy), page_bottomprawdopodobnie jest tam, gdzie drukowane jest dolne js i page_topwydaje się być używane w paskach nawigacyjnych, takich jak podstawowe paski narzędzi.
Capi Etheriel
2
Wykonaj poniższe kroki, aby utworzyć niestandardowy region w swoim motywie:
Przejdź do pliku theme.info i dodaj tę linię.
regions[machine_name_of_your_region]=Name of your region
Chociaż możesz także wywoływać bloki regionu również w szablonie węzła, zazwyczaj dodajesz region do szablonu strony motywu. Zwykle jest to page.tpl.php lub jeśli masz niestandardowe pliki szablonów dla różnych stron, edytuj je również. Nowy region pojawi się tylko na stronach zbudowanych wokół szablonu, do którego dodajesz nowy region. Wklej go tam, gdzie chcesz, aby pojawił się nowy region.
Odpowiedzi:
Regiony określasz w pliku .info kompozycji. Zobacz: Struktura pliku .info
Następnie musisz umieścić odpowiednie tagi szablonu w pliku page.tpl.php.
Na przykład, jeśli zdefiniowałeś region
sidebar
w pliku .info motywów, wówczas<?php print render($page['sidebar']); ?>
dodałbyś : w odpowiednim miejscu w page.tpl.php.źródło
Jeszcze jedna uwaga: nie przegap wymaganych regionów!
Więcej na ten temat można znaleźć na stronie http://drupal.org/update/themes/6/7#closure .
Aby wyjaśnić tę kwestię: jeśli definiujesz własne regiony, musisz zdefiniować wszystko, czego używasz, w tym te, które są wymagane. Innymi słowy, nie możesz po prostu zdefiniować dodatkowych regionów: jeśli je zdefiniujesz, musisz zdefiniować je wszystkie.
źródło
Tworzenie regionu dla motywu Drupal 7 nie różni się od tworzenia regionu dla regionu Drupal 6; różnice między Drupalem 7 a poprzednimi wersjami są zasadniczo:
mytheme_regions()
funkcji, jak to zrobiono w Drupal 5, ale są zdefiniowane w mytheme.info za pomocąregions[]
dyrektyw, podobnie jak w przypadku motywów Drupal 6.render()
, zamiast drukowania zawartości zmiennej.Domyślne regiony Drupal 7 to:
Główne tematy Drupala 7 obejmują teraz region o nazwie „podświetlony”, który używa tego samego wyświetlacza co obszar deklaracji misji w Drupal 6; zawierają również region o nazwie „pomoc”, który domyślnie ma tę samą zawartość
$help
zmiennej, z której korzysta Drupal 6.źródło
Regiony kompozycji są zdefiniowane w pliku .info kompozycji - patrz dokumentacja . Wystarczy dodać linię,
regions[corner] = Corner
aby uzyskać region Corner.Następnie musisz edytować plik page.tpl.php i dodać miejsce, w
<php print render($corner); ?>
którym region ma się wyświetlać. Jeśli twój motyw nie ma page.tpl.php, skopiuj z motywu podstawowego lub z modułu systemowego.Typowe pułapki:
Jeśli plik theme.info nie ma zadeklarowanych regionów, używa domyślnych regionów Drupal. Jeśli chcesz dodać, musisz ponownie zadeklarować regiony domyślne. Możesz oczywiście usunąć dowolny region, ale poprzyj wymagane regiony. Zobacz ponownie dokumenty .
Zmiany w pliku .info lub dodawanie nowych plików do kompozycji (np. Page.tpl.php) zostaną zauważone dopiero po wyczyszczeniu pamięci podręcznej.
Omega, bardzo popularny motyw podstawowy, nie potrzebuje żadnych zmian w page.tpl.php, tylko w pliku .info. Musisz jednak odwiedzić ustawienia motywu w interfejsie użytkownika i przypisać region do strefy.
źródło
regions[content] = Content
jedyny wymagany region w D7? drupal.org/node/171205#regions zdaje się sugerować, ale potem drupal.org/node/171224 mówi, że wymagane są regionycontent
,help
,page_top
ipage_bottom
content
jest to na pewno bardzo ważne.help
jest obsługiwany przez rdzeń (do wyprowadzania komunikatów pomocy),page_bottom
prawdopodobnie jest tam, gdzie drukowane jest dolne js ipage_top
wydaje się być używane w paskach nawigacyjnych, takich jak podstawowe paski narzędzi.Wykonaj poniższe kroki, aby utworzyć niestandardowy region w swoim motywie:
Przejdź do pliku theme.info i dodaj tę linię.
Chociaż możesz także wywoływać bloki regionu również w szablonie węzła, zazwyczaj dodajesz region do szablonu strony motywu. Zwykle jest to page.tpl.php lub jeśli masz niestandardowe pliki szablonów dla różnych stron, edytuj je również. Nowy region pojawi się tylko na stronach zbudowanych wokół szablonu, do którego dodajesz nowy region. Wklej go tam, gdzie chcesz, aby pojawił się nowy region.
Konfiguracja - Wydajność - Wyczyść wszystkie pamięci podręczne
źródło
Utwórz nowy region w motywie
Musisz tylko zdefiniować to w dwóch plikach.
Theme.info
Page.tpl.php
Renderuj teraz ten region
Teraz Wyczyść całą pamięć podręczną, proszę bardzo, masz nowy region w swoim motywie. Możesz to zobaczyć na stronie konfiguracji bloku.
Więcej informacji na stronie http://drupal.org/node/171205
źródło