2012-04-15 53 views
0

對於每個節點預覽,我想在頂部有小標誌圖標代表可用翻譯。我看到了語言切換器代碼,但它始終輸出所有語言。這很煩人,因爲人們會點擊他們的語言,然後發現該頁面只有英文版本(我有一個網站有很多種語言的文章)。儘管我已經看到了這一點。我對Drupal編程比較陌生。任何人都可以給我一個指針?Drupal 6:爲節點翻譯顯示標誌

謝謝!

回答

0

自己弄明白了,在這裏注意它,因爲我知道我不是唯一有這個問題的人。

我工作過的模板被稱爲scaccarium,讓我去/themes/scaccarium/template.php和增加了以下功能:

function scaccarium_preprocess_node(&$vars) { 
    $node = $vars['node']; 
    $translationlinks = array(); 
    // Move translation links into separate variable 
    foreach ($node->links as $key => $value) { 
    if ($value['attributes']['class'] == 'translation-link') { 
     $translationlinks[$key] = $value; 
     // unset($vars['node']->links[$key]); 
    } 
    } 
    $vars['translationlinks'] = theme('links', $translationlinks, array('class' => 'links translationlinks inline')); 
} 

如果您的模板被稱爲別的東西,你應該明顯地去到另一個文件夾,並且改變函數名的第一個單詞。如果您的主題帶有現有的_preprocess_node函數,請仔細修改它。

然後,我去我的模板的node.tpl.php和我說

<?php if ($translationlinks) { 
      print $translationlinks; 
     } ?> 

旁邊的標題。

然後我不得不清除緩存的Drupal(即使高速緩存被禁用!)在性能>緩存爲了得到這個工作。

完成!

... 以全節點的頂部添加語言鏈接,我不得不添加另一個「打印$ translationlinks」在node.tpl.php不同的地方爲好,如H3標題的事情只是爲了節點預覽。然後,爲了移除完整節點底部的冗餘語言鏈接,我嘗試了在template.php中看到註釋的未設置行 - 我發現即使其他網站推薦它也沒有效果。所以,我最後是用這個CSS做,添加以下到我的模板的CSS文件:

.node-links .translation-link { 
    display: none; 
} 

我希望我的經驗將幫助別人同樣的問題。

相關問題