2011-08-27 71 views
0

我使用Drupal的6如何覆蓋Drupal節點的「提交」文本?

在./modules/node/node.module,下面的輸出在節點視圖提交信息:

/** 
* Format the "Submitted by username on date/time" for each node 
* 
* @ingroup themeable 
*/ 
function theme_node_submitted($node) { 
    return t('Submitted by !username on @datetime', 
    array(
     '!username' => theme('username', $node), 
     '@datetime' => format_date($node->created), 
    )); 
} 

很顯然,我不想改變一個核心模塊的代碼,所以我想我想要做的是創建一個新的模塊,通過返回一個空字符串來覆蓋這個函數。我會怎麼做?

或者,更簡單一點,是否有管理方式來刪除節點頁面中的提交設置?

回答

1

當你只是想刪除的文字,那麼你可以說Drupal的不顯示信息:進入管理/建設/主題/設置,並取消選擇您不想要的內容類型顯示該字符串。在屏幕截圖中,「頁面」內容類型沒有顯示「提交者」信息,但顯示其他內容類型。

screenshot

如果你想改變串基礎上的一些標準,並使用(例如)不同的字符串基礎上的內容,那麼你可以改變調用時的Drupal(或模塊)調用的主題函數theme("node_submitted", $node),這意味着你需要實現hook_theme_registry_alter(),使用類似於代碼下列操作之一:

function mymodule_theme_registry_alter(&$theme_registry) { 
    if (isset($theme_registry['node_submitted'])) { 
    $theme_registry['node_submitted']['function'] = 'theme_mymodule_node_submitted'; 
    } 
} 

如果你只需要使用不同的字符串,總是用來代替「由@datetime用戶名提交! ,「有更容易的選擇:

  • 使用字符串覆蓋模塊,您可以將模塊傳遞給t()的任何字符串替換爲您喜歡的另一個字符串。
  • 在settings.php中添加以下代碼,您可以獲得相同的結果。

    $conf['locale_custom_strings_en'] = array(
        'Submitted by !username on @datetime' => 'The string you want to use', 
    ); 
    

第二種方法的好處在於,你並不需要使用另一個模塊,但你需要改變的settings.php,這是不是與第一種方法一樣容易。

的主題使用主題功能,並使用一個模塊,我寧願使用一個模塊,因爲它不需要改變使用的主題之間;在用戶可以爲自己設置主題的情況下,這意味着不會更改所有可選主題。另一個親是,如果你想使用原始字符串,你只需要禁用該模塊。

1

2種方式

1:_node_subbmitted在你的template.php就把[THEME_NAME]()

function [your_theme_name]_node_submitted($node) { 
    return t('blah blah !username on @datetime', 
    array(
     '!username' => theme('username', $node), 
     '@datetime' => format_date($node->created), 
    )); 
} 

2或您的模塊中

function [your_module_name]_node_submitted($node) { 
    return t('blah blah by !username on @datetime', 
    array(
     '!username' => theme('username', $node), 
     '@datetime' => format_date($node->created), 
    )); 
} 

模板當然是更簡單的方法

這裏是exacly你怎麼能做到這一點http://drupal.org/node/11811

2

如果您只是不希望它在節點視圖中顯示,則根據內容類型有一種管理方式可以擺脫它。例如,您可以爲內容類型「產品」或「合作伙伴」禁用它,但保留內容類型爲「博客文章」。該選項可以在admin/build/themes/settings中找到,它被稱爲「顯示發佈信息」