никак не разберусь как вывести значение поля в Views PHP
вывожу заголовок так, возвращает значение, всё нормально.
<?php
print $row->title;
?>
вывожу body или cck field таким же образом, возвращает id ноды.
<?php
print $row->body;
?>
<?php
print $row->field_video_code;
?>
нифига не соображу как вывести значение поля
Комментарии
На сколько помню, $row - это объект, являющийся результатом SQL запроса views, т.е. $row = db_fetch_object($result);, какие поля у него бывают смотрите в самом SQL запросе.
print $data->ima pola pormotri v tokenah
Available variables
$view: The view object.
$handler: The handler object.
$static: A variable that can be used to store reusable data per row.
$row: Contains the retrieved record from the database (e.g. $data->nid).
$row->field_video_code: Content: video_code
$row->php: Global: PHP
$row->title: Content: Title
$row->body: Content: Body
$data: Contains the retrieved record from the database (e.g. $data->nid).
$value: Value of this field.
вот эти переменные выдаёт вьюха, но body и field_video_code которые мне нужны, возвращают айди ноды.
я же написал, как выводить - print $data->field_name
print $data->field_video_code;
так вообще ничего не возвращает
Тут же написано, что $data содержит результат запроса, соответственно, как у него называются поля можно посмотреть в самом запросе, скажем если запрос SELECT node_nid, node_field_video_code....(к примеру) то Вам понадобится $data->node_field_video_code, смотрите какой запрос строит Ваша вьюха.
В крайнем случае print_r
FROM
{node} node
WHERE (( (node.status = '1') AND (node.type IN ('video')) AND (node.language IN ('en')) ))
ORDER BY node_created DESC
print $data->field_data_field_video_code_node_entity_type; возвращает "node"
print_r - выдаёт ошибку
т.е. запрос возвращает индекс, заголовок, дату, типы сущностей и все, добавьте туда необходимые поля - т.е. добавляете сами поля к вьюхе и исключаете их из вывода, в этом случае они будут включены в запрос, но не учтутся при рендеринге, что собственно и нужно.
поле дополнительное одно и выведено, и исключено из вывода. если вывожу через обычные поля (без PHP) с использованием тегов подстановки[field_video_code] всё отображается
такое возможно, если данные поля тянутся дополнительным select запросом по nid(обычно не на прямую, а чем-то вроде node_load и прочим), проверить это можно либо логами devel(можно увидеть сам запрос) или в исходниках вьювс(можно найти функцию, вызывающую этот запрос)
это поле должно быть добавлено во вьюхе и расположено выше пхп-поля, тогда будет выводить. Ставьте девел и dprint_r($data)
спасибо за devel
в итоге вывел вот так
<?php
print ($data->field_field_video_code[0]['raw']['value']);
?>
Пытался таким способом вывести [path]. Посмотрел через dprint_r($data) - нету его значения там. В итоге, нашел способ на друпал.орг через функцию:
<?php
$postpath = drupal_lookup_path('alias',"node/".$data->nid);
echo $postpath;
?>
В этом случае нет необходимости выводить поле [path] перед полем php.