我正在使用Views PHP重写Views中的字段。我可以访问所有具有构建模式的变量,但可以访问所有变量。就我而言,我有Content:Node字段(可以根据任何显示来构建),应该使用变量可以访问它$row->nodefield。但是,该变量的内容始终为空。我尝试了其他变量,并且不会在Views PHP中呈现具有构建模式的每个字段。

这是设计问题还是我缺少什么?
我正在使用Drupal 7和Views 3
编辑
在可用值上使用dpm()返回以下内容:
dpm($行)

dpm($数据)

我正在使用Views PHP重写Views中的字段。我可以访问所有具有构建模式的变量,但可以访问所有变量。就我而言,我有Content:Node字段(可以根据任何显示来构建),应该使用变量可以访问它$row->nodefield。但是,该变量的内容始终为空。我尝试了其他变量,并且不会在Views PHP中呈现具有构建模式的每个字段。

这是设计问题还是我缺少什么?
我正在使用Drupal 7和Views 3
编辑
在可用值上使用dpm()返回以下内容:
dpm($行)

dpm($数据)

Answers:
在“输出代码”部分上方,应检查$data“值”字段中的变量。
通常我只是dpm($data)找到我需要的领域。然后,您可以将其保存到$static['myvalue']变量中,以在“输出代码”字段中使用。
这很令人困惑,但是由于某些原因,如果您只尝试$row->xxx“输出代码”部分中的变量,则这些变量为空或设置为node-id。
$row视图中的“可用变量” 项对于获取字段值毫无用处。但是您不需要使用它noad_load来获取所需的数据。首先,像往常一样,隐藏要重写的字段的输出,然后在PHP字段的Output Code字段中使用$data如下代码:
<?php echo check_markup($data->field_field_body[0]['rendered']['#markup'], 'nitf_body'); ?>
在这种情况下,我要剥离不允许的标签并从内容中分配属性以用于NITF导出。如果您不确定里面有什么$data,当然print_r($data)可以看看。
$data->field_field_body[0]['raw']['value']用来获取原始值。
附加提示:$ data数组确实包含原始节点数据,可以打印。但是要正确渲染它,我们需要使用诸如field_view_field之类的函数来处理字段。
您是否要在视图内部执行此操作?为什么不只是将视图模板本身作为主题,而不是使用PHP全局呢?我不确定print_r是否可以在视图字段中使用。如果是我,我只需单击主题->信息,您将看到views-view-field--MyViewName.tpl.php之类的内容
(编辑,说明)在views模块主题文件夹下,复制“ views-view-field.tpl.php”,然后将其重命名为“ views-view-field--MyViewName.tpl.php”,并将其放在/ templates文件夹下在您的网站上。在文件中,您会看到类似
<?php print $output; ?>
您可以删除它并手动添加所有字段,例如
<div class="MyPrettyTitle"><?php print $row->_field_data['nid']['entity']->title; ?></div>
<div class="MyNodeBody">
<?php print $row->_field_data['nid']['entity']->body['und'][0]['value'];?>
</div>
等等。或者将$ output包装为所需的任何内容。
另外,我从来没有对DEVEL感到好运,我总是使用:
<?php print var_dump($row);?>
然后查看页面的源以获取变量。也许我只是在错误地使用DEVEL,但是我发现使用常规的旧PHP var_dump可以更轻松地获取每一行的变量。
我花了两天时间找到解决方案。最简单的方法是将“ Views Php Module”更新为7.x-2.x-dev。维护者在其2.x版本中解决了此问题。
您可以从此处下载(请确保下载7.x-2.x-dev):https : //www.drupal.org/project/views_php
希望可以帮助某人。
您永远不要将PHP代码存储在数据库中(使用View PHP则可以)。改用Views挂钩修改结果。
dpm($data)