Używam Drupal 7. Obecnie mam nawigację w menu głównym i przełącznik języka, który istnieje w nagłówku mojej witryny. Umieściłem je tam, przechodząc do CMS> Struktura> Bloki i przeciągając bloki do regionu nagłówka.
Jak programowo umieścić te bloki w nagłówku?
block_example_block_info()
wartość „regionu” może być przydatna do przetestowania.Odpowiedzi:
Aby zmienić region, w którym umieszczane są bloki zdefiniowane przez inne moduły, możesz zaimplementować hook_block_info_alter () , który otrzymuje następujące argumenty:
$blocks
(przekazany przez referencję): tablica zawierająca definicje bloków, kluczowana przez moduł i deltę$theme
: temat, dla którego definiowane są bloki$code_blocks
: bloki zdefiniowane na podstawiehook_block_info()
implementacji, zanim ich wartości zostaną zastąpione wartościami uzyskanymi z bazy danychźródło
Uzasadnione jest dodanie tablicy renderowalnej do dowolnego regionu strony w hook_page_build (). Przykład Drupala 7, aby dodać minipanel do regionu stopki.
Jest to ta sama technika, która wykorzystuje moduł kontekstowy.
Uwaga: aby to zadziałało, nie potrzebujesz włączać block.module.
źródło
W D6 tak by było
W D7 tak myślę
ale wciąż nabieram prędkości na D7.
źródło
drupal_add_region_content()
to ślepy zaułek, ponieważ jest przeznaczony do stron instalacyjnych / aktualizacyjnych.Jeśli dodajesz blok niestandardowy, robisz to za pomocą hook_block_info, ustawiając opcję statusu na 1, a opcję regionu na region, w którym chcesz umieścić blok.
Przykład:
Jeśli chcesz zmienić już istniejący blok, użyj zamiast tego hook_block_info_alter (), aktualizując te same opcje, jak pokazano poniżej.
Przykład:
Aby uzyskać więcej informacji, zobacz https://api.drupal.org/api/drupal/modules%21block%21block.api.php/function/hook_block_info/7
źródło
Ten kod jest oparty na kodzie @ jonhattan, ale jego nie renderuje HTML kontenera bloku ani łączy kontekstowych. Podałem również prosty sposób na określenie wszystkich bloków i regionów w jednym miejscu.
Uwaga: W przeciwieństwie do jego kodu, musisz zainstalować moduł block.module.
źródło
To nie jest najlepszą formą, ale można ręcznie umieścić zawartość do tablicy stron jak ten ...
Chociaż powinieneś trzymać się kontekstu lub po prostu bloków rdzenia. Tworzenie nowych wtyczek nie jest tak złe, jak się wydaje. Wystarczy poprawnie nazwać pliki, skonfigurować wyzwalacz i test. przykładem .
źródło
możesz także dostosować bloki w swoim motywie, takie jak:
źródło