Drupal - отображать блокировку, если страница терминов не имеет теговых узлов и дочерних терминов? - PullRequest
0 голосов
/ 20 сентября 2011

Как я могу показать блок на страницах терминов, если ни один из узлов не помечен этим термином, а также нет дочерних терминов?

Я использую Drupal 6. Спасибо

1 Ответ

0 голосов
/ 20 сентября 2011

Сложно, но вы можете использовать собственный 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...