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.
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.
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.
Jeszcze jedna uwaga: nie przegap wymaganych regionów!
regions[content] = Content
regions[help] = Help
regions[page_top] = Page top
regions[page_bottom] = Page bottom
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.
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:
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ść $help
zmiennej, z której korzysta Drupal 6.
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.
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ą regiony content
, 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 i page_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ę.
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.
<?php if ($page['machine_name_of_your_region']): ?>
<div id="sidebar-first" class="column sidebar"><div class="section">
<?php print render($page['machine_name_of_your_region']); ?>
</div></div> <!-- /.section, /#sidebar-first -->
<?php endif; ?>
Konfiguracja - Wydajność - Wyczyść wszystkie pamięci podręczne
Musisz tylko zdefiniować to w dwóch plikach.
;;;;;;;;;;;;;;;;;;;;;
;; Regions
;;;;;;;;;;;;;;;;;;;;;
regions[navigation] = 'Navigation'
regions[header] = 'Top Bar'
regions[highlighted] = 'Highlighted'
regions[new_region_name] = 'Region Name' ;; Add New Region
Renderuj teraz ten region
<?php if ($page['new_region']): ?>
<div class="new_region_class">
<?php print render($page['new_region']); ?>
</div>
<?php endif; ?>
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