You are here

我的需求是,如果用户删除头像,就扣减积分?

问题:
我的需求是,如果用户删除头像,就扣减积分,我在RULES里写了一个规则,条件是
profile2:user:profile-membership:field-ms-avatar:file:fid 为空
profile2-unchanged:user:profile-membership:field-ms-avatar:file:fid 不为空

我认为profile2-unchanged是编辑之前的数据
但是,这个规则永远没有触发过

解答:
好像从来没有,删除头像这个事件

问题:
profile2:user:profile-membership:field-ms-avatar:file:fid 为空
profile2-unchanged:user:profile-membership:field-ms-avatar:file:fid 不为空

field-ms-avatar这个字段是头像
值为空,并且unchanged的值不为空,那不就是删除了头像了么?

解答:
你可以尝试一下程序,能否搞定

像这种比较复杂的规则,Rules可能支持的不是很好

不用Rules,使用Drupal自己的钩子函数

这样灵活度更高一些

问题:
hook_profile2_presave?

解答:
可能是这个

而且图片的删除,本身是通过Ajax完成的,所以你实现这个功能确实困难了一些

profile2:user:profile-membership:field-ms-avatar:file:fid 为空
profile2-unchanged:user:profile-membership:field-ms-avatar:file:fid
这个条件永远都不成立

下面不执行也是对的

问题:
我不是在图片删除的时候,而是profile保存的时候

解答:
profile保存的时候
图片已经删除了

问题:
对,按道理,图片删了,那个unchaned的fid应该不空吧
那是原值吧

解答:
图片的删除和节点的更新不是同时发生的

保存profile的时候,图片其实已经删除了,

论坛:

Drupal版本: