您在這裡

drupal 6.x theming 問題

adrianmak's 的頭像
adrianmak 在 2008-07-19 (週六) 05:48 發表

站的內容初步完成了一半,正開始在給站作theming

其中有幾個不同node 的background 會有幅不同的background image

比如
node/10

那麼我抄node.tpl.php 修改為 node-10.tpl.php 但不生效

但如果是抄page.tpl.php 修改為 page-node-10.tpl.php

請問這是正常的嗎???

page.tpl.php 是包括了整個站的layout, 萬一要修改layout, 其他page-node-*.tpl.php 都要重新修改???

哦~~~~~~~~原來node 的theming 不支援這種 node-[nid]-tpl.php 的

再想問問, 因為個站是多語言的, 英文和中文文,像第一貼所講不同node 會有不同的background image

那麼同一個node 的不同語言豈不是要重複 用$node->nid == XX來判斷???
比如

某個content 英文的是 node/10, 中文是 node/11
那就要同時判斷 if (($node->nid == 10) or ($node->nid == 11)) { // html code }

對吧??!!!!

似乎只有支援 node-[type].tpl.php

另外
如果有很多個 node 需要作判斷
我會把 node.tpl.php 或 node-[type].tpl.php 當作用來 include 的檔案


<?php
switch($node->nid){
case 10:
case 11:
?>
<?php include 'node_10-11.tpl.php';?>
<?php
break;
case 12:
case 13:
?>
<?php include 'node_12-13.tpl.php';?>
<?php
break;
default:
?>
<?php include 'node_default.tpl.php';?>
<?php
}
?>

詳看themes/engine/phptemplate/phptemplate.engine
page的部份在這兒

// Build a list of suggested template files in order of specificity. One
// suggestion is made for every element of the current path, though
// numeric elements are not carried to subsequent suggestions. For example,
// http://www.example.com/node/1/edit would result in the following
// suggestions:
//
// page-node-edit.tpl.php
// page-node-1.tpl.php
// page-node.tpl.php
// page.tpl.php

node的部份在這兒

return _phptemplate_callback('node', $variables, array('node-' . $node->type));

--
from open mind to open source~

--
from open mind to open source~

_phptemplate_callback() 這個 function 我在 5.x 的 theme 裡面常用
但是在 6.x 的API 查詢裡面找不到這個函式了

之前去搜尋了一下
看到這篇
http://drupal.org/node/223430

另外還有
phptemplate_theme 這個 function 的資料
http://api.drupal.org/api/function/phptemplate_theme/6

看起來6.x下面應該得改用新的方法
但是還沒時間仔細研究
不是很清楚這一長串的新 function 要怎麼用

請問 drupal 規管的node.tpl.php 是firebug shaded area ?

這個area以外的空間是page.tpl.php 嗎??