29
li.
2007
palikowski

Blok widoczny w zależności od ścieżki oraz typu segmentu

Porada zaczerpnięta z http://drupal.org/node/42802

Czasem potrzeba zrobić blok widoczny przy jakimś typie zawartości oraz dodatkowo na kilku podstronach o dowolnych ścieżkach.

Przykładowo mamy formularz wyszukujący nam restauracje i wrzucamy go do bloku. Chcemy aby był widoczny w dziale z artykułami o jedzeniu (http://naszastrona.pl/jedzenie), w wynikach wyszukiwania (http://naszastrona.pl/szukaj-lokalu) oraz przy każdym segmencie będącym typu 'lokal'.

Jak to zrobić? Wystarczy stworzyć odpowiedni blok z formularzem, a następnie ustawić mu na samym dole (w części *Pokazuj blok na określonych stronach*) opcję *Wyświetlaj, jeśli poniższy kod PHP zwraca prawdę - TRUE (tryb PHP, tylko dla ekspertów).*

i wstawić w pole poniżej następujący kod, dostosowując go do naszych warunków:

bc. <?php
if (arg(0) == 'szukaj-lokalu' || arg(0) == 'jedzenie') {
return TRUE;
// pokaż jeśli w ścieżce występuje jedzenie lub szukaj lokalu
}
if (arg(0) == 'node' && ctype_digit(arg(1))) {
$node = node_load(arg(1));
if ($node->type == 'lokal') {
return TRUE;
// pokaż jeśli wyświetlany segment jest typu 'lokal'
}
}
return FALSE;
?>

miłego drupalowania!