0

サイトのノード テンプレートからノード配列のデータにアクセスしようとしています。ログインすると、これはすべて正常に機能します。ただし、ログアウトするとすぐに配列構造が変更されます。少し掘り下げた後、ログアウトするたびに「und」配列が表示されるためであることがわかりました。

を使用したり、配列を[$node->language]介してデータにアクセスしようとしたり、無駄に使用したりするなど、多くのソリューションを試しました。どちらの場合でも機能させる唯一の方法は、途中に「und」が存在するかどうかを確認することです。これは、単純なブール値またはその他のデータポイントを取得するだけでは少し面倒です。#itemsfield_get_items

4

2 に答える 2

0

このようなことを試してください。何にアクセスしようとしているのか正確にはわかりませんが、これにより、レンダリングされているノードの言語に基づいてフィールド値が取得されます。

ノードの言語を取得します。

$node_language = field_language("node", $form["#node"], "field_YOUR_FIELD");

デフォルトのフィールド値:

$field_value = $form["field_YOUR_FIELD"][$node_language][0]["CHECK_ARRAY_FOR_VALUE"]["#default_value"];

保存されたフィールド値の場合:

$field_value = $form["#node"]->field_YOUR_FIELD[$node_language][0]["CHECK_ARRAY_FOR_VALUE"];    
于 2013-04-09T19:51:22.223 に答える
0

私にとって、この種の動作は、いくつかのテスト目的で page.tpl.php(!) を使用すると、ノード テンプレートの特定のフィールド (すべてではない) で発生します。

dsm($node);

(モジュール Devel 7.x-1.5 を使用)。その行を取り除くと、再び期待どおりに機能します。

于 2015-01-27T19:13:06.633 に答える