视图全局PHP过滤器不适用于重写字段

时间:2019-02-25 03:55:38

标签: php drupal-7 drupal-views

我在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字段计算得出的值。

任何帮助将不胜感激,我不知道我在这里缺少什么,但它非常令人沮丧。预先谢谢你。

0 个答案:

没有答案