jaka jest różnica między render () a drupal_render ()?

26

Jaka jest różnica między render()i drupal_render()tak? Czy istnieje powód, aby używać tylko drupal_render ()?

Pan Chrono
źródło

Odpowiedzi:

31

Dokumenty render()wyjaśniają to całkiem dobrze:

Ta funkcja renderuje element za pomocą drupal_render (). Element najwyższego poziomu jest wyświetlany za pomocą show () przed renderowaniem, więc zawsze będzie renderowany, nawet jeśli wcześniej użyto w nim hide ().

render()jest w zasadzie tylko opakowaniem drupal_render(), z tą różnicą, że upewnia się, że przekazywany element jest ustawiony tak, aby był pokazywany po przekazaniu do drupal_render().

Daje również pewność, że przekazany element jest tablicą (wszystko drupal_render()można zaakceptować). Jeśli tak nie jest, element jest zwracany w niezmienionej postaci. Zapewnia to trochę siatki bezpieczeństwa, jeśli chcesz.

Jeśli z jakiegoś powodu masz zmienną, którą musisz wyrenderować, i nie wiesz, czy jest to ciąg znaków, czy tablica renderowania, możesz przekazać ją render()bez konieczności samodzielnego testowania typu zmiennej.

W niektórych rzeczywistych przykładach tego rodzaju sytuacji można przejrzeć listę połączeń dorender() ciebie.

Clive
źródło