您在這裡

關於styling localizer switch block

adrianmak's 的頭像
adrianmak 在 2007-05-25 (週五) 18:47 發表

我用 drupal 5.1. 安裝了localizer 作多語言content.

看了一下產生出來的source code,localizer 會generate

問題是這樣的html 好像做不到我要的樣子, 如

(個語言是兩個images 的)
因此我希望html code 會是


每個 li 會有個unique class , class名就是語言自己的 $lang

那我可以css 完成customize. 像這樣

div.item-list ul {
text-indent:-999em;
overflow:hidden;
}
div.item-list ul li {
overflow:hidden;
}
div.item-list ul li.en {
background:url(images/en.jpg) no-repeat;
}
div.item-list ul li.zh-hk {
background:url(images/zh-hk.jpg) no-repeat;
}

不知道如何做到呢?

未看到你回貼前都看過一下localizer module source, 都想到用這方法, 不過有以下問題

localizer switcher block 會call theme('theme_lists',......................) 來產生


    跟著再看theme_item_lists 這個themeable function
    問題在這裡, 如果在自己theme 的template.php override 這個function
    e.g.
    mytheme_item_lists

    因為整個drupal cms 下其他modules 如果要輸出

      應該都會call xxxxx_item_lists 這個 function

      因此如果override 這個function, 絕對會影響其他modules, 所以我想到
      override 這個function 時,可否做一個判斷,如個block 是localizer switch block 才修改相關的code e.g. 在

    • 加個class

      否則就用回drupal default theme_item_lists 的code , 即是輸出的

    • 是沒有class 的

      e.g. pesudo code
      function mytheme_item_lists ( arguments ) {
      if block is localizer switcher block
      { new code to add class in li }

      }