2011-04-12 203 views
1

中的內容簡介領域去這裏有點瘋了... :)Drupal的6 - 頁user.tpl.php

我只是試圖從內容簡介內容類型添加CCK領域進入頁面的用戶.tpl.php(我正在創建一個高度主題的用戶配置文件頁面)。

似乎有是兩種方法,這兩者有一個獨特的缺點,我似乎無法克服:

「$內容簡介」的方法。

$var = $content_profile->get_variables('profile'); 

print $var['field_last_name'][0]['safe']; 

這是偉大的,但我似乎無法通過目前觀看的用戶到$ content_profile,因此它總是顯示登錄的用戶。

'$ content profile load'方法。

$account_id = arg(1); 
$account = user_load($account_id); 
$user_id = $account->uid; 

$var = content_profile_load('profile', $user_id); 

print $var->field_first_name[0]['value']; 

精細,但現在我不能訪問完整呈現的字段,只有簡單的值(即,如果該字段有段落時將不會顯示)。

我怎樣才能同時擁有這兩件事?換句話說,我如何顯示與當前查看的用戶相關的字段(也是呈現的(1中的'安全'格式))?

我已經谷歌搜索和谷歌搜索,我只是最終圍繞圈子。 :(

乾杯, 詹姆斯

+0

你在哪裏試圖使用這些?請解釋一下你想要完成的事情 – yoavmatchulsky 2011-04-12 16:34:15

回答

5

內容配置文件加載方法似乎是最接近你想要什麼。

在您的例子:

$account_id = arg(1); 
$account = user_load($account_id); 
$user_id = $account->uid; 

$var = content_profile_load('profile', $user_id); 

print $var->field_first_name[0]['value']; 

的是$ var只是一個節點對象。您可以通過多種方式獲得「完整渲染字段」(假設您的字段是應用了過濾器的)。

要檢查的最重要的事情是,你的領域是實際配置正確。

轉到: 管理/內容/節點型/ [節點類型] /場/ field_ [字段名稱]配置你的領域,並確保下文本處理,你有已選擇「篩選文本」。

如果不解決這個問題,嘗試應用此:

content_view_field(content_fields("field_last_name"), $var, FALSE, FALSE) 

(關於這這裏更多的信息:http://www.trevorsimonton.com/blog/cck-field-render-node-formatter-format-output-print-echo

代替這個:

print $var->field_first_name[0]['value']; 

如果沒有這有助於...嘗試一些我在我的博客上得到的關於這個問題的信息: http://www.trevorsimonton.com/blog/print-filtered-text-body-input-format-text-processing-node-template-field-php-drupal

+0

對於深入回覆的乾杯,仍然需要做一些測試,但是這裏有一些好主意! – james6848 2011-04-14 18:04:17

1

當你創建一個用戶個人資料頁有一個內置的機制吧。只需要創建一個用戶模板文件,user_profile.tpl.php。

當您可以使用內置機制自動訪問您正在瀏覽的用戶的$ account對象,包括所有用戶配置文件的cck字段。您可以在不需要編程加載用戶的情況下查找字段。

I有一個名爲profile_bio的字段,並且能夠吐出所有標記而無需索要$賬戶。

<?php if ($account->content[Profile][profile_bio]['#value']) print "<h3>Bio</h3>".$account->content[Profile][profile_bio]['#value']; ?> 
1

我已經嘗試過通過用戶頁面顯示配置文件節點字段之前主題內容配置文件,它總是似乎有點「哈克」給我。我現在非常喜歡的只是進入該節點類型的內容配置文件設置頁面,並將顯示設置爲「顯示全部內容」。除了像內容配置文件注入的節點類型名稱這樣的愚蠢標記之外,這很好,很花哨。

解決方案是爲內容配置文件模板添加預處理功能。一個將取消設置$ title並刪除正常顯示在配置文件上的節點類型名稱。

function mymodule_preprocess_content_profile_display_view(&$variables) { 
    if ($variables['type'] == 'nodetypename') { 
    unset($variables['title']); 
    } 
} 

一個類似於這個的函數應該可以做到。現在爲主題用戶配置文件,您可以簡單地主題您的配置文件節點。