Как мне отобразить ключ массива пути в Drupal 7, где тип поля = ссылка на узел - PullRequest
1 голос
/ 11 октября 2011

У меня есть поле ссылки на узел, которое я могу вывести с помощью echo render( $content['field_link'] );

Это хорошо для одной ситуации в узле, но мне также нужно вывести только путь этого узла.Я могу вывести его, используя echo $node->field_link['und'][0]['node']->uri['path'], но я не хочу жестко кодировать ключи массива 'und' и '0'. Вероятно, есть способ сделать это с помощью render().

Если кто-томог бы указать мне правильное направление, это было бы здорово, спасибо.

Бен

1 Ответ

1 голос
/ 11 октября 2011

Вы не можете сделать это с помощью render, но вам не нужно жестко кодировать код языка, вы можете получить его из глобальных переменных:

global $language;
echo $node->field_link[$language->language][0]['node']->uri['path']

Вы не сможете обойтись с помощью клавиши 0, все поля хранятся с возможностью быть кратным, поэтому вам всегда нужно будет «выбрать», какой элемент вы хотите получить.

Если количество элементов вашего поля равно 1, вы всегда можете предположить, что искомый элемент находится в field_link[$language->language][0]. Если нет, вам нужно будет пройти через каждый элемент в массиве und и решить, какой из них отображать.

EDIT

Вы также можете использовать константу LANGUAGE_NONE (которая обычно возвращает 'und', но в любом случае будет правильным языковым кодом для содержимого по умолчанию).

...