Drupal - 如果术语页面没有标记节点且没有子术语,则显示块?

时间:2011-09-20 11:56:37

标签: drupal-6

如果没有节点标记该术语且没有子术语,我如何在术语页面上显示一个块?

我正在使用Drupal 6。 谢谢

1 个答案:

答案 0 :(得分:0)

棘手但你可以使用自定义PHP代码进行块显示,就像这样(假设Drupal 6在这里):

if (strstr($_GET['q'], 'taxonomy/term/')) {
  $parts = explode('/', $_GET['q']);
  $term = taxonomy_get_term($parts(2));
  if ($term && $term->tid) {
    $node_count = db_result(db_query('SELECT COUNT(nid) FROM {term_node} WHERE tid = %d', $term->tid));
    if ($node_count == 0) {
      return FALSE;
    }
    if (count(taxonomy_get_children($term->tid)) == 0) {
      return FALSE;
    }
    return TRUE;
  }
}

return TRUE;

对于Drupal 7:

if (arg(0) == 'taxonomy' && arg(1) == 'term' && is_numeric($arg(2))) {
  $term = taxonomy_term_load(arg(2));
  if ($term && $term->tid) {
    if (db_query('SELECT COUNT(nid) FROM {taxonomy_index} WHERE tid = :tid', array(':tid' => $term->tid))->fetchField() == 0) {
      return FALSE;
    }
    if (count(taxonomy_get_children($term->tid)) == 0) {
      return FALSE;
    }
    return TRUE;
  }
}
return TRUE;