2010-10-16 59 views
2

我試圖用hook_nodeapi在我的template.php文件中改變麪包屑。我曾試圖改變「如果」的聲明,但它好像Drupal的甚至不使用這個鉤子在我的template.php。hook_nodeapi中的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: Hierarchical taxonomical breadcrumb trail

回答

6

鉤子函數進去模塊,沒有主題,所以這就是爲什麼你的函數不會被調用。在一個快速脫脂,那樣子,如果你將它移動到模塊它應該工作的罰款。要做到這一點,使網站/一個獨特的模塊名稱全部/模塊,例如文件夾「模塊名」,將名爲modulename.info像這樣一個文件:

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

然後創建一個名爲modulename.module開始<?php,然後你的函數文件。啓用該模塊,它應該開始工作。

+0

感謝您的信息。我不知道鉤子不能進入主題。我通過將上面的代碼放在一個模塊中來解決問題。再次感謝! – deckerdev 2010-10-18 15:31:26

+0

我一直在到處找我的原因中的template.php掛鉤實現中被忽略的一個原因。 – donut 2011-09-28 22:47:17

相關問題