Drupal 7 需要更改节点';s到CCK值的路径
我有一个内容类型,它已经变成了一个名为“地球新闻”的特写。它包括一个名为“源URL”的可选CCK字段。当这个CCK字段不是空的时候,我希望站点访问者能够点击这个提示并直接进入那个URL 我已将以下预处理函数添加到此功能的.module文件中:Drupal 7 需要更改节点';s到CCK值的路径,drupal-7,drupal-modules,Drupal 7,Drupal Modules,我有一个内容类型,它已经变成了一个名为“地球新闻”的特写。它包括一个名为“源URL”的可选CCK字段。当这个CCK字段不是空的时候,我希望站点访问者能够点击这个提示并直接进入那个URL 我已将以下预处理函数添加到此功能的.module文件中: function earth_news_preprocess_node(&$vars) { $node = node_load($vars['nid']); $path = drupal_lookup_path('alias','node/
function earth_news_preprocess_node(&$vars) {
$node = node_load($vars['nid']);
$path = drupal_lookup_path('alias','node/' . $node->nid);
$url = $node->field_se_news_source['und'][0]['url'];
path_save(array($path,$url));
}
保存的路径“”引发了一个致命错误:
Only variables can be passed by reference
我走对了吗?那个错误是怎么回事
谢谢 该错误是由以下事实引起的:您希望通过引用传递单个参数。在这种情况下,不能使用文字数组;可以传递包含数组的变量,也可以传递由返回引用的函数返回的值,但预期作为参数的值必须是包含以下键的关联数组:
- 来源:内部系统路径
- 别名:URL别名
- pid:(可选)唯一路径别名标识符
- 语言:(可选)别名的语言
function earth_news_preprocess_node(&$vars) {
$node = $vars['node'];
$path = array(
'alias' => drupal_lookup_path('alias','node/' . $node->nid),
// You can also use the following line instead of the previous one.
// 'alias' => drupal_get_path_alias('node/' . $node->nid),
'source' => $node->field_se_news_source['und'][0]['url'],
);
path_save($path);
}
作为旁注,将节点对象设置为$vars['node']
;无需加载节点