您在這裡

node 的 Tab 編輯 如何修改他的 URL or 隱藏他??

Ricky5678's 的頭像
Ricky5678 在 2009-02-09 (週一) 21:34 發表

請教大家:

如圖檔, 那上面的 編輯 URL 我想改變 or 隱藏他~ 請問有人知道他在哪個 php 檔嗎 ??

附加檔案大小
Image icon q1.jpg72.8 KB

小弟找到隱藏的方法,在 template.php 裡修改 or 加一段
function phptemplate_menu_local_tasks() {
$output = '';
$node = new stdClass();
if (arg(0) == 'node' && is_numeric(arg(1))) {
$node = node_load(arg(1));
}
if (in_array($node->type, array('page', 'image'))) {
return;
}
if ($primary = menu_primary_local_tasks()) {
$output .= "

    \n". $primary ."

\n";
}
if ($secondary = menu_secondary_local_tasks()) {
$output .= "

    \n". $secondary ."

\n";
}

return $output;
}
就會隱藏起來了

小弟找到修改他的方法,也是在 template.php 加一些東西
原理是利用 API menu_item_link 去取得目前畫面的所有 menu_item_link 再加以分析其 Path
1. 將 node/111/edit => nid =111 找出來。
2. 將 nid 去 db_query 取得我想要的一些內容。(小弟是針對某些 node_type 才變更,所以需要 node type 來判斷)
3. 用 menu_item_link 重設 Path
步驟:
setp1 . 自訂 function
function get_node_info($nid)
{
$result= db_query( ("Select n.type,t.tid from {node} n INNER JOIN {term_node} t on n.nid=t.nid where n.nid=%d"), $nid);
return $result;
}

setp2.
function phptemplate_menu_item_link($item, $link_item) {
//如果 Path 是 node 開頭且為 edit 的話
if (strpos($link_item['path'], 'node') == 0 && strpos($link_item['path'], 'edit') > 0) {
//切割字串將 nid 取出
$vnid = substr($link_item['path'] , strpos($link_item['path'], '/')+1 , strrpos($link_item['path'], '/')-1-strpos($link_item['path'], '/'));
// 呼叫自訂 function 取得 node_type & node_term_tid
$vnode = db_fetch_object(get_node_info($vnid));
// 如果 node_type 符合的話
if (in_array($vnode->type, array('nodetype1','nodetype2','nodetype3'))) {
//將 Path 變更
$link_item['path'] = $link_item['path'] . "/" .$vnode->tid;
}
}
return l($item['title'], $link_item['path'], !empty($item['description']) ? array('title' => $item['description']) : array(), isset($item['query']) ? $item['query'] : NULL);
}

以下是搜尋到的資料參考連結:
menu_item_link() overwrite => http://drupal.org/node/249864
Custom Node Type {note} Module with parent nodes => http://drupal.org/node/195335
View - Edit - Bio: How can I change the display name of the tabs => http://drupal.org/node/215019
Menu links - drupal is converting ? and = to %3F %3D => http://drupal.org/node/212267