Extracting values from a user's profile

apickin - July 9, 2009 - 14:24

Hi

I am attempting to customise the appearance of a user's profile, when viewed. To do this, I have started by copying user-profile.tpl.php into my theme's active folder. When I put the command

<?php
print_r
($profile); 
?>
into the template file, I get the output:

Array ([user_picture] =>
[Personal] =>

Personal

Education

i am a great guy

[content_profile] => [summary] =>
History

Member for
23 hours 16 min

)

I understand that $profile is an array. What I am trying to do is work out how to print out individual values from the array, so that I can apply my own formatting to them. For example, in my test example, the value in the education field for this test profile is "i am a great guy". I've tried accessing this using commands like

print $profile['user_picture']['Personal'];
print $profile['user_picture']['Personal']['Education'];
print $profile['Personal']['Education'];

But none are outputting anything.

Any assistance would be a great help

This [Personal] => Some

nevets - July 9, 2009 - 14:38

This [Personal] => Some Value</a> represents a keyed value pair,  in  this case 'Personal' is the key.   So in general  terms you want to  use <code>print  $value['key']; and in this case specifically you want print  $profile['Personal'];.

Thanks nevets for the

apickin - July 9, 2009 - 14:52

Thanks nevets for the reply.

The print $profile['Personal'] gives me the whole of the "Personal" category ("Personal" is a category in the user's profile and "Education" is one of the fields within that category). print $profile['Personal'] outputs the following:

"Personal

Education
i am a great guy"

Is there a way I can get just at the education field? i.e. the output needs to just be "i am a great guy"

Here is how I do it on one of

samwich - July 9, 2009 - 15:05

Here is how I do it on one of my sites.

I have a profile field in the category Personal Information that has the machine readable name as profile_location. Then I have a block which displays on the user profile page that uses this php.

<?php
global $user;
$userId = $user->uid;
profile_load_profile($user);
$theLocation = $user->{profile_location};
//code continues for other profile information I want to grab
?>

When I want to print out the users location I just say

<?php
print $theLocation;
?>

That works perfectly! Thanks

apickin - July 9, 2009 - 15:22

That works perfectly! Thanks a lot ;)

 
 

Drupal is a registered trademark of Dries Buytaert.