我在Drupal 7中有一个用于房地产列表的自定义内容类型。该自定义内容中有两个字段用于属性值和货币。
因此,当某人在创建新的属性列表时,在小数点文本字段中输入值时,在其旁边会出现一个选择列表,其中显示3种货币百克卢比,美元和英镑。
保存列表并与其他列表一起显示在“视图”页面中时,“全局PHP”字段首先确定属性的值,然后根据客户保存的首选货币计算当前货币汇率。
因此,“观看次数”页面会根据网站访问者的偏好显示通过会话定义的客户的首选币种。
此刻已经手动输入了货币的价值/转换率,除了一件事以外,其他一切都正常,当我尝试使用计算货币的Global PHP字段重写Currency的Value字段时,它显示正常但是新值不会反映在“视图过滤条件”中。
因此,当我尝试根据价格过滤内容时,该价格值的“视图过滤器”以默认货币(即GBP / USD或PKR)返回原始值,而不是通过替换模式根据重写后的“价格”字段返回原始值全球PHP代码。
field_v 是值字段,而 field_currency 是作者选择的货币类型,都已保存在数据库中。
以下是“视图PHP”字段的“输出代码”部分中使用的“全局PHP”字段代码:
_field_data ['nid'] ['entity']-> field_currency [und] [0] ['value'] ==“美国 美元“){$ rateusd = $ data-> _ field_data ['nid'] ['entity']-> field_v [und] [0] ['value'] * 140; 回声$ rateusd; } if($ data-> _ field_data ['nid'] ['entity']-> field_currency [und] [0] ['value'] ==“英国 磅”){$ rategbp = $ data-> _ field_data ['nid'] ['entity']-> field_v [und] [0] ['value'] * 180; echo $ rategbp; } if($ data-> _ field_data ['nid'] ['entity']-> field_currency [und] [0] ['value'] ==“朴 卢比“){$ ratepkr = $ data-> _ field_data ['nid'] ['entity']-> field_v [und] [0] ['value'] * 1; 回声$ ratepkr; }?>
然后通过替换模式[PHP_1]重写field_v的值,并在视图显示页面上正确显示结果,但是与之关联的过滤器根据客户的预算搜索属性,反映了field_v的原始值而不是根据PHP字段计算得出的值。
任何帮助将不胜感激,我不知道我在这里缺少什么,但它非常令人沮丧。预先谢谢你。