2012-04-25 44 views
0

我正在使用drupal 7.首先請參考我的屏幕截圖以獲取我正在談論的內容。 http://www.karya.gisla.in/scr.pngDrupal - 如何更改默認視圖/編輯操作內容類型的名稱

可以說我的內容類型是文章。當我們創建一篇文章時,對於通過身份驗證的用戶,節點將顯示主要選項卡,即:查看和編輯。我只是想改變/編輯它來說:查看文章和編輯文章。

注意:僅限特定內容類型。即其他內容類型,例如頁面將顯示爲默認值:查看和編輯。

任何想法如何實現這一點。

任何幫助將不勝感激。

回答

1

下面的代碼沒有辦法。將其粘貼到主題template.php中,並將YOURTHEMENAME更改爲...主題名稱。 也許在這個函數中使用dpm($ vars)來查看$ vars中的哪些類型的信息。這應該有助於您下次更快地達到這一點。

[編輯:] 感謝本指出! 這裏有一個更新的版本:

function YOURTHEMENAME_preprocess_page(&$vars) { 
    if ($vars['node']->type == 'article') { 
    foreach($vars['tabs']['#primary'] AS $index => $tab) { 
     if($tab['#link']['title'] == t('View')) { 
     $vars['tabs']['#primary'][$index]['#link']['title'] = t('View Article'); 
     } 

     if($tab['#link']['title'] == t('Edit')) { 
     $vars['tabs']['#primary'][$index]['#link']['title'] = t('Edit Article'); 
     } 
    } 
    } 
} 

玩得開心,馬丁

+0

這假設在查看或編輯之前沒有模塊添加鏈接(因此改變鍵「0」和「1」)意味着其他標籤可以被覆蓋。 – 2012-04-25 15:41:19

+0

謝謝。它的工作。 @ ben-swinburne:你說得對,但現在我沒有這樣的模塊。 – 2012-04-25 16:25:14

+0

這是否適用於Drupal 7? – Jayaram 2012-10-19 21:43:13

0

您可以將以下函數放入主題的模板文件中,並用主題名稱替換YOURTHEME以更改選項卡鏈接。

$nodes是一個多維數組,其中第一級鍵是您希望替換標籤的內容類型,第二級鍵值組合分別是路徑和替換模式。將替換模式設置爲''將刪除該選項卡。

/** 
* Implements hook_menu_local_tasks_alter(). 
*/ 
function YOURTHEME_menu_local_tasks_alter(&$data, $router_item, $root_path) { 
    $nodes = array(
     'article' => array(
      'node/%/view' => 'View Article', 
      'node/%/edit' => 'Edit Article' 
     ) 
    ); 

    foreach ($router_item['page_arguments'] as $key => $argument) { 
     if (is_object($argument) && array_key_exists($router_item['page_arguments'][$key]->type, $nodes)) { 
      foreach($nodes[$router_item['page_arguments'][$key]->type] as $path => $new_title) { 
       foreach ($data['tabs'][0]['output'] as $key => $value) { 
        if ($value['#link']['path'] == $path) { 
         if(!$new_title) { 
          unset($data['tabs'][0]['output'][$key]); 
         } else { 
          $data['tabs'][0]['output'][$key]['#link']['title'] = $new_title; 
         } 
        } 
       } 
      } 
     } 
    } 
} 
+0

嗨,你能解釋一下你的代碼專門foreach循環。正如您在下面的評論中所說的那樣「假設在查看或編輯之前沒有模塊添加鏈接」。我很想實施它。但是請稍微解釋一下我的代碼,這樣我就不會忘記它。 – 2012-04-25 16:29:39

相關問題