對於每個節點預覽,我想在頂部有小標誌圖標代表可用翻譯。我看到了語言切換器代碼,但它始終輸出所有語言。這很煩人,因爲人們會點擊他們的語言,然後發現該頁面只有英文版本(我有一個網站有很多種語言的文章)。儘管我已經看到了這一點。我對Drupal編程比較陌生。任何人都可以給我一個指針?Drupal 6:爲節點翻譯顯示標誌
謝謝!
對於每個節點預覽,我想在頂部有小標誌圖標代表可用翻譯。我看到了語言切換器代碼,但它始終輸出所有語言。這很煩人,因爲人們會點擊他們的語言,然後發現該頁面只有英文版本(我有一個網站有很多種語言的文章)。儘管我已經看到了這一點。我對Drupal編程比較陌生。任何人都可以給我一個指針?Drupal 6:爲節點翻譯顯示標誌
謝謝!
自己弄明白了,在這裏注意它,因爲我知道我不是唯一有這個問題的人。
我工作過的模板被稱爲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;
}
我希望我的經驗將幫助別人同樣的問題。