Commit 40059223 authored by Dries's avatar Dries

- Patch #31123 by Ber: make it easier to theme the user profile pages.

parent fd854ea1
......@@ -42,7 +42,7 @@ function blog_access($op, $node) {
*/
function blog_user($type, &$edit, &$user) {
if ($type == 'view' && user_access('edit own blog', $user)) {
return array(t('History') => form_item(t('Blog'), l(t('view recent blog entries'), "blog/$user->uid", array('title' => t("Read %username's latest blog entries.", array('%username' => $user->name))))));
return array(t('History') => array('blog' => form_item(t('Blog'), l(t('view recent blog entries'), "blog/$user->uid", array('title' => t("Read %username's latest blog entries.", array('%username' => $user->name)))))));
}
}
......
......@@ -42,7 +42,7 @@ function blog_access($op, $node) {
*/
function blog_user($type, &$edit, &$user) {
if ($type == 'view' && user_access('edit own blog', $user)) {
return array(t('History') => form_item(t('Blog'), l(t('view recent blog entries'), "blog/$user->uid", array('title' => t("Read %username's latest blog entries.", array('%username' => $user->name))))));
return array(t('History') => array('blog' => form_item(t('Blog'), l(t('view recent blog entries'), "blog/$user->uid", array('title' => t("Read %username's latest blog entries.", array('%username' => $user->name)))))));
}
}
......
......@@ -297,7 +297,7 @@ function profile_view_profile($user) {
if ($value = profile_view_field($user, $field)) {
$description = ($field->visibility == PROFILE_PRIVATE) ? t('The content of this field is private and only visible to yourself.') : '';
$title = ($field->type != 'checkbox') ? check_plain($field->title) : '';
$fields[$field->category] .= form_item($title, $value, $description);
$fields[$field->category][$field->name] = form_item($title, $value, $description);
}
}
......
......@@ -297,7 +297,7 @@ function profile_view_profile($user) {
if ($value = profile_view_field($user, $field)) {
$description = ($field->visibility == PROFILE_PRIVATE) ? t('The content of this field is private and only visible to yourself.') : '';
$title = ($field->type != 'checkbox') ? check_plain($field->title) : '';
$fields[$field->category] .= form_item($title, $value, $description);
$fields[$field->category][$field->name] = form_item($title, $value, $description);
}
}
......
......@@ -467,7 +467,7 @@ function user_search($op = 'search', $keys = null) {
*/
function user_user($type, &$edit, &$user, $category = NULL) {
if ($type == 'view') {
return array(t('History') => form_item(t('Member for'), format_interval(time() - $user->created)));
return array(t('History') => array('history'=> form_item(t('Member for'), format_interval(time() - $user->created))));
}
if ($type == 'form' && $category == 'account') {
......@@ -618,10 +618,21 @@ function theme_user_picture($account) {
}
}
/**
* Theme a user page
* @param $account the user object
* @param $fields an mulidimensional array for the fields, in the form of
* array('category1'=> array('name1' => field1, 'name2' => field2),
* 'category2'=> array('name3' => field3, 'name4' => field4, 'name5' => field5),
* .. etc);
*
* @ingroup themeable
*/
function theme_user_profile($account, $fields) {
$output = "<div class=\"profile\">\n";
$output .= theme('user_picture', $account);
foreach ($fields as $category => $value) {
$value = implode('', $value);
$output .= theme('box', $category, $value);
}
$output .= "</div>\n";
......@@ -1281,11 +1292,10 @@ function user_view($uid = 0) {
foreach (module_list() as $module) {
if ($data = module_invoke($module, 'user', 'view', '', $account)) {
foreach ($data as $category => $content) {
$fields[$category] .= $content;
$fields[$category] = $content;
}
}
}
drupal_set_title($account->name);
return theme('user_profile', $account, $fields);
}
......
......@@ -467,7 +467,7 @@ function user_search($op = 'search', $keys = null) {
*/
function user_user($type, &$edit, &$user, $category = NULL) {
if ($type == 'view') {
return array(t('History') => form_item(t('Member for'), format_interval(time() - $user->created)));
return array(t('History') => array('history'=> form_item(t('Member for'), format_interval(time() - $user->created))));
}
if ($type == 'form' && $category == 'account') {
......@@ -618,10 +618,21 @@ function theme_user_picture($account) {
}
}
/**
* Theme a user page
* @param $account the user object
* @param $fields an mulidimensional array for the fields, in the form of
* array('category1'=> array('name1' => field1, 'name2' => field2),
* 'category2'=> array('name3' => field3, 'name4' => field4, 'name5' => field5),
* .. etc);
*
* @ingroup themeable
*/
function theme_user_profile($account, $fields) {
$output = "<div class=\"profile\">\n";
$output .= theme('user_picture', $account);
foreach ($fields as $category => $value) {
$value = implode('', $value);
$output .= theme('box', $category, $value);
}
$output .= "</div>\n";
......@@ -1281,11 +1292,10 @@ function user_view($uid = 0) {
foreach (module_list() as $module) {
if ($data = module_invoke($module, 'user', 'view', '', $account)) {
foreach ($data as $category => $content) {
$fields[$category] .= $content;
$fields[$category] = $content;
}
}
}
drupal_set_title($account->name);
return theme('user_profile', $account, $fields);
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment