To, co zainstalowałem na mojej stronie, to Entity API i moduły Entityform. Moduł Entityform pozwala mi tworzyć formularze, które każdy użytkownik może przesłać, a pola formularzy są dla mnie dostępne w widokach, podobnie jak działałby typ zawartości.
Zwykle, aby pobrać wartość pola z węzła do mojego szablonu za pomocą php, zrobiłbym następujące:
<?php echo $node->field_name[$node->language][0]['value']; ?>
Nie działa to jednak z formularzami / jednostkami encji.
Czy ktoś wie, jak to zrobić dla pola w formie jednostki? Niektórzy sugerowali użycie devel i funkcji dpm (), ale nie mam pojęcia, jak z nich korzystać.
Niektóre konkretne przykłady, w jaki sposób mogę uzyskać wartość tego pola, bardzo by mi pomogły.
:)
Bez użycia modułu Entity API, aby uzyskać wartość pola powiązanego z bytem, używasz field_get_items () ; przekazujesz po prostu typ encji, obiekt encji i nazwę pola.
Na przykład, aby uzyskać treść komentarza, użyj następującego kodu.
Aby uzyskać treść węzła, możesz użyć następującego kodu.
Obiekt encji to obiekt zwracany z encji_load () lub określonej funkcji ładowania dla tej encji, takiej jak node_load () , comment_load () lub taxonomy_term_load () . W Drupal 8 te funkcje są opakowaniami
entity_load()
.Jeśli chcesz wyświetlić zawartość pola, powinieneś użyć field_view_field () .
źródło
Zwykle możesz uzyskać właściwości $ node, ponieważ ty lub jakiś kod, którego używasz, wywołuje wcześniej node_load ().
Musisz w pełni załadować byt, zanim będziesz mógł uzyskać jego właściwości.
Użyj entity_load () http://api.drupal.org/api/drupal/include%21common.inc/function/entity_load/7
Wtedy faktycznie będziesz mieć załadowany obiekt obiektu, który możesz uzyskać w polach.
Użycie dpm () jest takie samo, jak każdej innej funkcji, wystarczy zainstalować moduł devel.
Zrób więc coś takiego:
źródło
Próbować:
To powinno wydrukować wartość pola.
Jeśli to tablica, spróbuj tego:
Pamiętaj, że jest to wynik wyjściowy i, w zależności od tego, skąd pochodzi wartość, może być konieczne ręczne oczyszczenie wartości tutaj.
Zobacz: function field_get_items
źródło
Umieść to w jednym z modułów i przejdź do strony formularza, a znajdziesz informacje, których szukasz.
źródło
Zamiast używać dpm i instalować ten moduł, używam:
Mamy nadzieję, że pomoże ci to docenić wartość.
źródło