Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Drupal视图提取字段值的PHP代码_Php_Drupal_Drupal 7 - Fatal编程技术网

Drupal视图提取字段值的PHP代码

Drupal视图提取字段值的PHP代码,php,drupal,drupal-7,Php,Drupal,Drupal 7,我正在使用Drupal Commerce和Views作为电子商务网站。我已经显示了一个产品,我希望能够显示共享同一参考字段的相关产品,即共享同一商店的所有产品(例如存储在每个产品的“商店”字段下) 我最大的问题是为我当前查看的产品提取某个字段值,这样我就可以在视图中使用上下文过滤器进行过滤 任何帮助都将不胜感激。以下是我发现的有效方法: $nodeid = explode('/', request_uri()); $a = commerce_product_load_by_sku($nodeid

我正在使用Drupal Commerce和Views作为电子商务网站。我已经显示了一个产品,我希望能够显示共享同一参考字段的相关产品,即共享同一商店的所有产品(例如存储在每个产品的“商店”字段下)

我最大的问题是为我当前查看的产品提取某个字段值,这样我就可以在视图中使用上下文过滤器进行过滤


任何帮助都将不胜感激。

以下是我发现的有效方法:

$nodeid = explode('/', request_uri());
$a = commerce_product_load_by_sku($nodeid[2]);
$b = get_object_vars($a);
$c = $product['commerce_store'][und][0][entity];
$d = get_object_vars($c);
$product2 = $d[store_id]; 
return $product2;

这取决于要提取特定字段值的位置

e、 g.如果要提取节点模板中的字段值,可以在node.tpl.php中打印$node变量,如下所示:

print "<pre>";
print_r($node);
print "<pre>";
exit();
获取整个节点及其字段和值的另一个好方法是-这将返回与当前显示的页面关联的对象。如果代码是在Drupal显示example.com/node/1页面时执行的,那么menu_get_object()将返回节点ID等于1的节点的节点对象;如果显示的页面为example.com/user/1,则菜单“获取”对象(“用户”)将返回用户ID等于1的用户的用户对象


希望这些信息对您有所帮助。

您是如何使用这些信息的?是否要在同一页上显示相关产品?您是否使用视图附件或面板将其组合在一起?嗨,Quint,假设我有一个带有url的页面:希望能够提取末尾的数字并搜索数据库中的产品,然后从同一行获取存储字段值。从那里我应该很好,因为我使用的是视图,并且在store上设置了上下文过滤器,所以一旦我返回store字段值,从那里应该非常简单。
if (arg(0) == 'node') {
  $nid = arg(1);
  $node = node_load($nid);
}