終於來到預定的templates 最後一章
這次只是給多一個例子給大家參考
並沒有新的技術, 函數要認識, 使用
在一個用戶登入之後,
預設會到逹 user/[uid] 頁面
今次的目的就是改動這個頁面
例如:
- 令登入都立即看到自己建立的nodes ( 配合使用views )
- 不同的登入id 使用不同的頁面
- 不同的roles 使用不同的頁面
- 不同的profile fields(例如"城市")到不同的頁面
等等
建立社區主導的網站應該會使用到這個教學
因為url 為 user/[uid]
很有機會相關的輸出都是來自user/module
打開user/module, 到 user_menu() 函數
line 810 的 'path' 為 user/arg(1)
callback 到 user_view() 函數
line 1504 user_view(), 最後的一句:
<?php
return theme('user_profile', $account, $fields);
?>
找到了
到 user.module 內的 line 654, theme_user_profile()
將內裏的內容放到新建的 user_profile.tpl.php
'return' 改為 'print'
template 文件(user_profile.tpl.php) 放到你的theme 的目錄之下
user.module 的部份完成
到template.php 了, 打開你的theme 之下的template.php
新建一個函數, [theme_name]_user_profile()
<?php
function joe2_user_profile($account, $fields) {
return _phptemplate_callback( //此函數令drupal 找*.tpl.php
'user_profile', //找user_profile.tpl.php 文件來使用
array( 'account'=>$account , 'fields'=>$fields ), //傳給 user_profile.tpl.php
array( 'user_profile_'.$account->uid ) //根據你的特別要求, 使用不同的template, 注(一)
);
}
?>
注一:
這個例子建議使用user_profile_[uid].tpl.php (如有)
你也可以使用:
<?php
array( 'user_profile_'.$account->role )
?>
建議使用user_profile_[role].tpl.php (如有)
可以再配合template redirect, 轉到views 頁面等等,
就看你的創意了
以後要自定user 頁,
只要修改user_profile.tpl.php 就可以了