[Theme] Subtheme trong Drupal

Subtheme giống như các như các theme khác,chỉ khác là nó được kế thừa từ một theme cha (parent theme) nào đó.Không có giới giạn cấp kế thừa theme trong Drupal.Tức là một theme B có là theme con (subtheme) của theme A thì vẫn có thể là theme cha của một theme con C nào đó.

Tạo sub-theme

Tạo như bình thường,chỉ cần add thêm vào file .info dòng sau ở dưới.
1
2
<br>
base theme = themeName
(Với themeName là tên theme cần override)
 
Kế thừa Stylesheet (CSS)
Tất cả file .css sẽ được ké thừa với điều kiện là ít nhất 1 file .css của theme cha được add vào.
Override:Đè file nào thì tạo 1 file giống tên ở sub-theme.Nếu muốn xóa 1 file ở cha.Thì chỉ cần tạo file trống
 
Kế thừa Javascript (js)
Mặc định tất cả file.js sẽ được kế thừa.
Override:Như với CSS
 
Kế thừa hàm ở Template.php
Tất cả định nghĩa trong template.php sẽ được kế thừa.
 
Kế thừa Page,node,block và các file template khác
Ở Drupal 7, tất cả file.tpl.php sẽ được kế thừa từ base theme.
Ta có thể tạo và kế thừa.Ví dụ, node—blog.tpl.php được kế thừa từ node.tpl.php
 
Dấu gạch ngang vẫn được dùng để ngăn cách các từ:Ví dụ."user-picture.tpl.php" or "node—long- ontent-type-name.tpl.php"
Hai dấu gạch ngang chỉ đến nơi cần override,nó thường đặt ở trước “--”
 
Override file .tpl.php :Tạo 1 file template có tên tương tự
 
Kế thừa logo và screenshot.
Logo và screenshot mặc định sẽ không được kế thừa
Override:Tạo 1 file mới trong file .info
 
Kế thừa Region
Không kế thừa custom region từ theme cha.Nếu muốn kế thừa thì phải copy hết vào file .info
Kế thừa theme setting và màu
Không kế thừa
 
sưu tầm