Kon*_*nia 7 php user-interface drupal drupal-7 custom-fields
我正在用drupal构建我的第一个站点.我创建了一个自定义用户字段:全名.现在我想在我的模板中获取此fild的值,说"Hello,%username%".我怎么做?
Pie*_*yle 19
克莱夫的答案是正确的,除了你应该field_get_items用来获取字段的值.它将为您处理语言.您还应该清理价值.
function THEME_preprocess_page() {
global $user;
$user = user_load($user->uid); // Make sure the user object is fully loaded
$full_names = field_get_items('user', $user, 'field_full_name');
if ($full_names) {
$vars['full_name'] = check_plain($full_names[0]['value']);
}
}
Run Code Online (Sandbox Code Playgroud)
如果您的站点使用Entity API模块,您还可以使用这样的实体元数据包装器
function THEME_preprocess_page() {
global $user;
$user = user_load($user->uid); // Make sure the user object is fully loaded
$wrapper = entity_metadata_wrapper('user', $user);
$vars['full_name'] = $wrapper->field_full_name->get(0)->value(array('sanitize' => TRUE));
}
Run Code Online (Sandbox Code Playgroud)
Cli*_*ive 11
根据您的设置/字段名称,类似于template.php(模板文件的预处理功能):
function mytheme_preprocess_page() {
global $user;
$user = user_load($user->uid); // Make sure the user object is fully loaded
$vars['full_name'] = $user->field_full_name[LANGUAGE_NONE][0]['value'];
}
Run Code Online (Sandbox Code Playgroud)
然后是这样的事情page.tpl.php:
if (isset($full_name) && !empty($full_name)) :
echo 'Hello ' . $full_name;
endif;
Run Code Online (Sandbox Code Playgroud)
请注意,LANGUAGE_NONE如果您运行的是多语言网站,则可能需要更改.
| 归档时间: |
|
| 查看次数: |
19234 次 |
| 最近记录: |