问题:
我的需求是,如果用户删除头像,就扣减积分,我在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的时候,图片其实已经删除了,