[Drupal/Views] Programistyczne ukrywanie pól w widokach

Data dodania wpisu: 25-08-2011

Tym razem coś z serii "Programowanie Viewsów".

 

Przydatne, gdy tworzymy integrację własnych modułów z modułem Views i dochodzimy do sytuacji, gdy określone pola widoku są renderowane poprzez łączenie różnych pól, a pola z danymi (np. argumenty funkcji) nie są nam potrzebne w wyświetlanym widoku.

 

Przykład? "Widokowa" analogia do Drupalowego Watchdoga - wartość message przechowuje string z danymi oraz placeholdery do przechwytywania zmiennych, które mogą być podstawione przez argumenty przechowywane w innej zmiennej, za to ta zmienna nie powinna być wyświetlania w kodzie HTML widoku.

 

Czego użyć, aby wyciągnięte z bazy pole posłużyło do wygenerowania innego pola, a samo zostało ukryte / usunięte z widoku? Można uzbroić się w kilka linijek napisanych z użyciem hook_views_post_build() :)

 

function MyModule_views_post_build(&$view) {
    if ($view->name == 'nazwa_widoku') {
        unset($view->display['id_widoku']->handler->view->field['kod_pola']);
    }
}

 

Gdzie po kolei, nazwa_widoku to nazwa (kod) nadana podczas tworzenia widoku (całego zbioru) w polu View name:

 

 

id_widoku to nic innego jak Machine name konkretnego widoku w całym zbiorze,

 

 

a kod_pola - chyba wiadomo ;)

Komentarze

Ten wpis nie posiada jeszcze komentarzy

Comments closed...