The third incarnation of my user profiles tutorial, this time in module form, has arrived. I'd like to introduce the Advanced Profile module. It still needs work and isn't feature complete, but it's a good start and available to play around with.
It's been a long road getting here. In April of 2007, I spent a few weeks of free time learning nodeprofile and theming and put together what I thought was a pretty nice looking user profile for Coulee Region ONLINE. Since so many people had helped me learn while I struggled to create it, I decided to pass on the knowledge by writing a tutorial. It turned out to be more popular than I ever imagined and generated quite a few support requests. A lot of that was lost when I moved the tutorial between sites but I think the comments were over 400!
Having so many people use the tutorial pointed out a lot of flaws. Between that and improvements to the modules I used, I decided it was time to write a second version a few months later. This version improved on the first quite a bit but also had some issues I was never able to track down. The forums here are filled with support requests in addition to what I've gotten by email and on IRC. I'm having a terrible time keeping up with all the support and a few months ago I started thinking it was really time to do a version 3.
I waffled quite a bit on whether to do a "bug fix" version or a full blown new version. On the one hand, I was getting tired of the same support requests for the buggy version 2 and wanted to do a fixed version to help with that. On the other, I had some big ideas for version 3 and didn't want to spend any more time fixing up version 2. So version 3 stayed in a state of limbo for a while and I worked on other things. Then Panels 2, which is integral to my vision of version 3 got very usable so I decided to take the plunge and went full steam into a full rewrite.
First off, I had to create some code for panels 2 needed to connect it to other modules. The first was a relationship to make use of Bio to get the node from the passed in user. The second was a content type (panels term) for CCK groups. Once I had these two parts, I created the main panel page and the supporting mini panels and all the glue code and put it all into a module. By making a module instead of just writing a tutorial, I hope to make user profiles a lot more "plug and play" for people who aren't very advanced with Drupal. I do still plan on making a tutorial to go with it but it will be more along the lines of how I created the panel and cool things you can do with it rather than a list of steps you must follow if you want to make it work on your site.
In its current state, you get just what you see on the demo site. It takes a bit of effort to set it up but no where near what was needed with the tutorial. I don't reccomend it for newbies just yet but, if you are familiar with Drupal and know just a smidge of PHP, it's not hard. Immediate future plans include adding in a user photo gallery, making it work with nodeprofile and core profile, making use of user relationship as an alternative to buddylist, and nicer default theming. Looking farther down the road, the next big step is the profile edit page. I didn't bring along the customized edit form from the tutorial because I have bigger plans. I want to make it so the user can edit their profile through a limited panels interface making it similar to the mysite module. Related to that, another longer term plan is making it possible to use mysite droplets with advanced profile. So there's lots of good stuff in the works.
If you have problems with the module, please use the issue queue. General talk about it can be done on the forums here. Or catch me in IRC. If you make use of it on your site, I'd love to hear about it.
Enjoy.
Comments
WoW.....very great ;] I will
WoW.....very great ;]
I will use ^^
Thanks
advanced profile changeover
Hi there Michelle,
Firstly, I want to say how fantastic this advanced profile is, and the potential it has to really make drupal a good basis for a social network.
I already have the profiles installed by following your tutorial, and was wondering if there was anything I would have to remove before installing the new profiles?
thanks
Upgrading
Quite a bit, actually. I haven't attempted the upgrade on my own site, yet. I do plan on writing up the process when I do. The biggest thing is you'll need to exchange nodeprofile for bio. You shouldn't lose any data this way. Just tell bio to use the existing uprofile content type. I intend to make advprofile work with nodeprofile but I haven't written the panels relationship code yet.
Michelle
migration?
Do you plan to include migration from bio to nodeprofile as soon as the next version is ready? It seems to me that in Drupal versions to come, nodeprofile might be a more versatile solution than bio.
For the edit profile page, take a look at the wordpress sidebar editor, that's really well thought out usability. If you have a next beta version installed somewhere, count me in for betatesting!
all the best
GS
Migration / edit page
There's really nothing to migrating from bio to nodeprofile. Uninstall bio, install nodeprofile, re-associate your content type. I plan on sticking with bio from here on out but advanced profile won't care which you use.
I have plans for the edit page but they require code that hasn't been written yet. So, for now, it's just the generic edit page you get with CCK.
I don't have a beta version, yet. Not even an alpha. But the dev code is up on drupal.org.
Michelle
thanks Michelle
Thanks for making this module Michelle. I am about to download it and give it a go.
Translation
Hi Michelle,
do you plan in the near future to work with *.po-files to make it easier for the non-english user to translate your modules?
Regards from germany, Nortix
Wasn't planning on it
I don't know anything about translation beyond wrapping stuff in t() which I try to remember to do. If someone wants to take this on, I'll accept patches, but it's not something I have plans to do myself.
Michelle
Great work
Hello Michelle,
Many thanks for your work on this. I followed tutorial 2 and managed to create a node based profile system I was really really pleased with. Do you recommend I spend the time ripping my current system out and migrating to Advanced Profile? Will it do all the same things as tutorial 2 gave us?
Can I still use nodeprofile? I think I just want to get the lay of the land before I go ahead and put in the work. Many, many thanks Michelle.
BeechyBoy
thanks Michelle
although a total newbie at installing stuff I was pleased to fall across this, so am going to be using the advanced profile, just thought i would let you know, as you have made my day
You're welcome :)
Glad you like it.
Michelle
Excellent Work
Once again, excellent work and a fantastic contribution to the Drupal community!
Give yourself a pat on the back from me, you really deserve it!!
:)
Thanks.
Michelle
One or multiple nodes per user
Hi, many thanks for this module ; it's helping much!
I installed your default uprofile and am in the process of creating new ones from scratch. I need a rather heavy multipage registration/profile, and am trying to decide whether each profile section should be a child node to main user profile (using node family), or if I should keep them as groups under the same node. Any hint? I hope the question itself makes sense; I'm new to Drupal...
Thank you again.
Groups
I prefer to use groups rather than having to deal with multiple nodes. But that's just personal preference. There's benefits to both.
Michelle
user pictures in guestbook
I am using Advanced Profile with Bio and the user pictures don't show up in the mini panel "Guestbook" in the user profile when someone writes a comment in there. Does anyone know how I can make them show up?
Theme settings
In your theme settings, set it to show user pictures on comments.
Michelle
user pictures in guestbook
That worked. Thank you for your great work!
Reguired fields and translation of list selections
I have two questions:
Using Advanced Profile and Bio, I couldn't figure out yet how to make Advanced Profile fields required. How can I do this?
The second one is about the translation of list selections. While the i18n module has enabled me to translate the name of the field (for example to translate the English "children" into the German "Kinder", I have not found a possiblity to translate the options (like I have children/I have no children) given in the list. Does anyone know how to do this?
profile access
Is there a way to configure the profile in a way that users who have a relationship with you (created with the user relationships module) have access to the profile, but other users don't.
Issue queue
People, please, this is not an issue queue. It's a pain in the ass to track random support requests spread out all over all my sites and in email and on IRC. Please use the proper channels. I will get to advprofle stuff as soon as I can. I'm really busy right now.
Michelle