Was ich auf meiner Site installiert habe, sind die Entity API- und Entityform-Module. Mit dem Entityform-Modul kann ich Formulare erstellen, die jeder Benutzer senden kann, und die Formularfelder können in Ansichten verwendet werden, ähnlich wie ein Inhaltstyp funktionieren würde.
Normalerweise würde ich Folgendes tun, um den Wert eines Feldes mit PHP von einem Knoten in meine Vorlage zu ziehen:
<?php echo $node->field_name[$node->language][0]['value']; ?>
Dies funktioniert jedoch nicht mit Entityforms / Entities.
Kennt jemand eine Möglichkeit, dies für ein Feld innerhalb einer Entitätsform zu tun? Einige Leute haben vorgeschlagen, devel und die Funktion dpm () zu verwenden, aber ich habe auch keine Ahnung, wie man diese verwendet.
Einige konkrete Beispiele, wie ich den Wert dieses Feldes ermitteln kann, würden mir sehr helfen.
:)
Ohne das Entity-API-Modul zu verwenden, verwenden Sie field_get_items () , um den Wert eines mit einer Entität verknüpften Felds abzurufen . Sie übergeben nur den Entitätstyp, das Entitätsobjekt und den Feldnamen.
Um beispielsweise den Text eines Kommentars abzurufen, verwenden Sie den folgenden Code.
Um den Hauptteil eines Knotens abzurufen, können Sie den folgenden Code verwenden.
Das Entitätsobjekt ist das von entity_load () zurückgegebene Objekt oder eine bestimmte Ladefunktion für diese Entität, z. B. node_load () , comment_load () oder taxonomy_term_load () . In Drupal 8 sind diese Funktionen Wrapper für
entity_load()
.Wenn Sie den Inhalt des Feldes anzeigen möchten, sollten Sie field_view_field () verwenden .
quelle
Normalerweise können Sie auf $ node-Eigenschaften zugreifen, da Sie oder ein von Ihnen verwendeter Code zuvor node_load () aufrufen.
Sie müssen eine Entität vollständig laden, bevor Sie zu ihren Eigenschaften gelangen können.
Verwenden Sie entity_load () http://api.drupal.org/api/drupal/includes%21common.inc/function/entity_load/7
Dann haben Sie tatsächlich ein geladenes Entitätsobjekt, das Sie in den Feldern von erhalten können.
Die Verwendung von dpm () ist mit jeder anderen Funktion identisch. Sie müssen lediglich das Entwicklungsmodul installieren.
Also mach so etwas:
quelle
Versuchen:
Dies sollte den Wert des Feldes drucken.
Wenn es sich um ein Array handelt, versuchen Sie Folgendes:
Denken Sie daran, dass dies die Rohausgabe ist. Je nachdem, woher der Wert stammt, müssen Sie den Wert hier möglicherweise manuell bereinigen.
Siehe: Funktion field_get_items
quelle
Platzieren Sie diese in einem Ihrer Module und gehen Sie zur Seite des Formulars. Dort finden Sie die Informationen, nach denen Sie suchen.
quelle
Anstatt dpm zu verwenden und dieses Modul zu installieren, verwende ich:
Hoffentlich hilft Ihnen dies dabei, den Wert herauszufinden.
quelle