hook_nodeapi в template.php - PullRequest
       1

hook_nodeapi в template.php

2 голосов
/ 17 октября 2010

Я пытаюсь использовать hook_nodeapi в моем файле template.php, чтобы изменить крошку. Я попытался изменить оператор if, но кажется, что Drupal даже не использует этот хук в моем template.php.

function gh_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
  $productNodeType = 'product';
  $tid = preg_replace('#[^\d+]#i', '', $_GET['bc']);
  if ($node->type==$productNodeType && $op=='view' && $tid) {
    $breadcrumb[] = l(t('Home'), NULL);
    if ($parents = taxonomy_get_parents_all($tid)) {
      $parents = array_reverse($parents);
      foreach ($parents as $p) {
        $breadcrumb[] = l($p->name, 'taxonomy/term/'. $p->tid);
      }
    }
    drupal_set_breadcrumb($breadcrumb);
  }
}

Я нашел эту функцию (и немного ее изменил) из Drupal: иерархическая таксономическая цепочка крошек

1 Ответ

6 голосов
/ 17 октября 2010

функции-ловушки идут в модулях, а не в темах, поэтому ваша функция не вызывается.При быстром просмотре, похоже, что он должен работать нормально, если вы переместите его в модуль.Для этого создайте папку в sites / all / modules с уникальным именем модуля, например, «modulename», создайте файл с именем modulename.info примерно так:

name = Module Name
description = A module to set breadcrumbs on a product.
core = 6.x

И затем создайте файл с именем modulename.module, начиная с <?php, а затем ваша функция.Включите модуль, и он должен начать работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...