drupal-7 - 在新节点 create 上,Drupal 给出错误消息“可能未引用图像字段中使用的文件。”
问题描述
当我要创建一个类型的新节点,然后上传图像字段时,它显示错误“图像字段中使用的文件可能未引用。”。我已经实现了 hook_file_insert 函数,它被告知使用 file_usage_add。我的代码如下:
function mymodule_file_insert($file){
if($file->source=="field_image_und_0" || $file->source=="field_twitter_image_und_0"){
mymodule_manage_file($file);
}
}
/**
* implements file manage
*/
function mymodule_manage_file($file){
if($file->fid){
mymodule_save_file($file->fid);
}
}
/**
* implements save file
*/
function mymodule_save_file($file_id){
$file = file_load($file_id);
$file->status = FILE_STATUS_PERMANENT;
file_save($file);
file_usage_add($file, 'file', 'node', $nid);
}
创建新节点时,我在这里得到了nid?
解决方案
您正在传递 $nid,它没有价值。我认为这应该有效:
function mymodule_file_insert($file){
if($file->source=="field_image_und_0" || $file->source=="field_twitter_image_und_0"){
mymodule_manage_file($file);
}
}
/**
* implements file manage
*/
function mymodule_manage_file($file){
if($file->fid){
mymodule_save_file($file->fid);
}
}
/**
* implements save file
*/
function mymodule_save_file($file_id, $nid){
$file = file_load($file_id);
if (isset($nid)) {
file_usage_add($file, 'file', 'node', $nid);
}else {
$file->status = FILE_STATUS_PERMANENT;
file_save($file);
}
}
/**
* Implements hook_node_insert().
*/
function mymodule_node_insert($node) {
mymodule_save_file($node->field_name[LANGUAGE_NONE][0]['fid'],
$node->nid);
}
推荐阅读
- android - 如何使用已知的屏幕密码自动解锁手机?
- sql-server - 表上的自动索引
- sharepoint-2013 - 使用 CSOM 的 SharePoint Office365 登录问题
- javascript - Artyom.js 立即禁用自身
- haskell - <*> 在 addRecip xy = fmap (+) (recipMay x) <*> recipMay y 中做了什么?
- javascript - CSS文本颜色过渡到多个值
- javascript - 添加范围滑块
- javascript - 404 未找到(webpack 图片)
- python-2.7 - 如何识别用户名和密码字段以使用 Selenium 和 Python 登录 USPS.com
- express - 可以在 Express 中间件中添加路由吗?