2011-07-20 20 views
8

Próbuję dodać klasę .clearfix do mojego regionu stopki w Drupal 7. Czy jest jakiś sposób to zrobić?Jak dodać klasę do regionu Drupal 7?

Obecnie używam następujących czynności, aby wydrukować mój region stopki:

<?php print render($page['footer']); ?> 

które wyjścia:

<div class="region region-footer"> 
    <div id="block-1>....</div> 
    <div id="block-2>....</div> 
</div> 
+0

Czy jesteś po prostu staramy się zmienić css, albo starasz dołączyć jakiś php? –

Odpowiedz

6

Skopiuj plik region.tpl.php (znajdujący się w katalogu modules/system) do katalogu kompozycji. Następnie skopiuj wszystko wewnątrz i utwórz nowy plik. Wklej do tego pliku i wprowadź dowolne zmiany do szablonu. Po zakończeniu zapisz go jako region - footer.tpl.php i wyczyść pamięć podręczną w swojej witrynie, aby zobaczyć zmiany.

region.tpl.php zawiera (wraz z wieloma uwagami wyjaśniającymi możliwych zmiennych):

<?php if ($content): ?> 
    <div class="<?php print $classes; ?>"> 
    <?php print $content; ?> 
    </div> 
<?php endif; ?> 

Więc trzeba by zrobić, to dodać klasę na tym DIV.

+0

Doskonałe, nie wiedziałem, że możesz skopiować szablony systemowe do własnego folderu tematycznego. Dzięki Laxman13! –

+0

Przepraszam, że pytam, zrobiłem to samo i to działa. Ale usuwa niektóre elementy div (# footer-wrapper, # footer-inner) z obszaru stopki. I usuwa również stopkę id z elementu div, w którym klasy są dodawane. Czy to jest poprawne? lub ma coś wspólnego z niestandardowym motywem, którego używam. –

+0

Zgaduję, że ma to związek z niestandardowym motywem, którego używasz. Może mieć własne szablony regionów (w szczególności stopkę). W takim przypadku możesz zmienić ten szablon. – Laxman13

0

spróbuj dodać to do pliku footer.php.tpl. Być może będziesz musiał go stworzyć.

32

Oto fragment kodu:

function MY_THEME_NAME_preprocess_region(&$variables, $hook) { 
    if($variables['region'] == "MY_REGION_NAME"){ 
     $variables['classes_array'][] = 'MY_CLASS_NAME'; 
    } 
} 

Lub jeśli wolisz wstawić klasę na wszystkich regionach:

function MY_THEME_NAME_preprocess_region(&$variables, $hook) { 
    $variables['classes_array'][] = 'MY_CLASS_NAME'; 
} 
+3

To jest najbardziej skuteczny i prawidłowy sposób. – jpshayes