Register Members List Search Today's Posts Mark Forums Read

Reply
 
Thread Tools
  #1  
Old 07 Jun 2012, 20:22
Carpesimia Carpesimia is offline
 
Join Date: Jun 2011
Dynamic custom profile field

Ok, heres what I WANT to accomplish.

In usercp, allow the user to enter "YEAR YOU BECAME A MEMBER". The user might enter the year of "1986" for example.

Then, on the user PROFILE page, I want one of the entries to say "Member: 26 years".

How do I do this? I had an idea in my head of a second hidden field that I would run a cron nightly to fill in the numbers, but that seems like overkill.

Anyone?
Reply With Quote
  #2  
Old 07 Jun 2012, 20:43
kh99 kh99 is offline
 
Join Date: Aug 2009
Real name: Kevin
You could add it to the join date, like the age is done with the birthday. Create a plugin using hook userprofile_prepare and code like this:


Block Disabled:      (Update License Status)  
Suspended or Unlicensed Members Cannot View Code.


Obvious you could expand that to go to months if they joined less than a year ago, etc. (BTW, look in includes/class_userprofile.php to see what's going on).
Reply With Quote
  #3  
Old 07 Jun 2012, 21:03
Carpesimia Carpesimia is offline
 
Join Date: Jun 2011
Originally Posted by kh99 View Post
You could add it to the join date, like the age is done with the birthday.
First, thank you.

I actually used "year became member" as a generic example. The date in quesiton has nothing to do with how long the person has been a member on the forum. How would I do the above using a custom profile field instead of joindate?
Reply With Quote
  #4  
Old 07 Jun 2012, 21:54
kh99 kh99 is offline
 
Join Date: Aug 2009
Real name: Kevin
OK, first of all I posted something by accident that wasn't ready, then I deleted it and realized that it had merged with my previous post, so that got deleted too. But it's OK, I think I have a better answer for you: as you said in your first post, you want to work with custom profile fields, which aren't handled the same way that the built in ones are.

So here's some code for a plugin using hook member_profileblock_profilebit:


Block Disabled:      (Update License Status)  
Suspended or Unlicensed Members Cannot View Code.


The X's in red need to be replaced with the id of your year profile field. But I think they also don't need to be the same: you could probably create a text field just for holding the "Member for X years" message and have it set dynamically by ths code. In that case the first X would be the text field, and the second X the Year field.

Last edited by kh99; 07 Jun 2012 at 22:23.
Reply With Quote
  #5  
Old 07 Jun 2012, 23:24
Carpesimia Carpesimia is offline
 
Join Date: Jun 2011
kh99,

Thanks again. I actually did something VERY similar to what you have. I have a custom profile field with the title "Year Began Bowling". On the view profile page (member.php), I used the same hook you did and put this in my plugin:


if ($profilefield['title'] == "Year Began Bowling") {

$profilefield['title'] = "Years Bowling";
$doit = intval($profilefield['value']);
if ($doit > 1900 && $doit < 2100) {
$year = intval(date("Y"));
$diff = $year - $doit;
$profilefield['value'] = "$diff years";
}

}

This changes the title to "Years bowling", and then shows the number of years if they put in a year between 1900 and 2100. This custom field already existed in our system as "Years Bowling", so I let thier old values still stay just like they used to. The ONLY differences to the end user are 1) Now asks for the year when filling out the profile, and 2) Autocomputes if a valid year was entered. I only add " years" on an autocompute, so we know it was autocomputed.

I'll probably modify my code to use the CORRECT fields instead of the profilefield['title'], but other than that the code is working like a charm.

Thanks so much for the shove in the right direction!
Reply With Quote
  #6  
Old 07 Jun 2012, 23:28
kh99 kh99 is offline
 
Join Date: Aug 2009
Real name: Kevin
That is pretty much the same. I guess I'm used to people wanting things written for them instead of just asking for some info.


Originally Posted by Carpesimia View Post
I'll probably modify my code to use the CORRECT fields instead of the profilefield['title'], but other than that the code is working like a charm.

I don't think there's anything wrong with using the title instead of the id.
Reply With Quote
Reply



Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


New To Site? Need Help?

All times are GMT. The time now is 23:15.

Layout Options | Width: Wide Color: