以编程方式根据其分类术语过滤节点

时间:2013-03-05 21:07:17

标签: drupal location field taxonomy

我有一个包含不断变化的城市名称的会话变量。

示例 - $ _Session ['Toronto'];

我还有一个包含大量字段的未过滤节点列表。最重要的是,他们有一个名为“城市”的分类学术语。

我需要能够只显示与$ _Session ['Toronto']匹配的分类术语的节点。

示例 - 节点9和10具有“多伦多”和“渥太华”的分类术语。我只希望在页面上显示名为“Toronto”的节点。

任何帮助?

1 个答案:

答案 0 :(得分:1)

使用视图,您可以使用hook_views_query_alter

D7示例

function YOURMODULE_views_query_alter(&$view, &$query){

  switch ( $view->name ){
    case 'YOURVIEWNAME':    
      $query->where[1]['conditions'][] = array(
        'field' => 'term_field_name', //your term name in the sql query
        'value' => $_Session['Toronto'],
        'operator' => '='
      );
      break;
  }
}