Last updated by agentrickard on Sun, 2008-02-10 16:05
This wiki page is to create a roadmap for the Advanced Profile module. I already had a pretty good idea of what I wanted based on response to my tutorials but it helps to have it down on "paper". This is just a start and mostly a "mind dump" at this point. I will flesh it out more based on feedback.
Modules
Advanced Profile is a glue module which uses existing contributed modules for the bulk of the functionality. These are the major modules used:
Panels 2: This is the anchor module. The bulk of advprofile is actually a modularized set of panels. At this point, panels handles the display of the profile but the plan is to have it handle the editing as well.
CCK: Creating a node type with CCK is reccomended to hold the profile data though I intend to make it work with core profile as well.
Views: The user's recent posts and the buddylist are the current views but there's a lot of potential for views to be used for other things like an image gallery.
Bio/Nodeprofile: Since profiles aren't nodes in core, we need a connection between the user and their profile node(s). At this point it only works with bio but the plan is to make it work with nodeprofile as well.
Comment: Rather than using a guestbook, we make use of comments on the user profile node. Using User Comment will give the users control over the entries. This will be an issue when trying to use the core profile module for the data so I'll have to figure out how to get around that. It also means that it's impossible to comment on the "guestbook" before a user has filled out their profile as there's no node to comment on.
There are a ton of smaller SN modules that can be used on the profiles:
Buddylist: Allows users to designate friends. With the addition of Usernode, we can make use of views. Advprofile comes with a themed view for displaying the buddies with avatar. Also with buddylist, you can use Activiity which is a nifty module for seeing what your buddies are up to.
An alternative to Buddylist is the newer User Relationships module. Last I checked, there wasn't any way make a view like I have with buddylist/usernode, though. Some big names in the community are pushing for user relationships, though, so I will be taking a hard look at it soon and seeing if I can write some code that will let you use bio to make a user relationship view the way that buddylist/usernode works. I don't know if there are plans to make this work with activity.
If you have these modules enabled, they'll show up on the profile:
User points
User badges
privatemsg
Contact (core)
There's more little modules like this that could be added. I need to look through the modules list and find them all.
Auto nodetitles: The title of the profile isn't used for anything so this module will just fill it in and hide it.
Fivestar: This could be used for rating users but isn't implemented in advprofile yet.
Mysite: I've been looking into making it possible to add mysite droplets to panels. No real progress here, yet. There's a lot of good stuff in this module and I'd like to make use of it with profiles.
[MySite developer note] -- use mysite_display('droplet', $droplet_id) inside a panel or block. Or use mysite_render() to return raw data for theming. See also the mysite_type_hook_options() and mysite_type_hook_data() functions and http://drupal.org/node/194341.
Editing
At the moment, the edit page is just the dump of fields you get with CCK by default. My plan is a lot grander. I want to use panels to override the edit page and theme it nicely. First this requires an addition to panels (or maybe CCK) to allow the fields to be broken up across panes. So editing is waiting for either me or someone else to write that bit.
The next step after that is to allow users to move the blocks around and change the CSS in a limited fashion. This will require the ability to assign a panel configuration to a user rather than having one panel page where you pass in the uid. Sam Treseler (from memory, sorry if I mangled that) is working on panels profiles which should help wtih this. I think this will be a really killer feature for user profiles and let you offer users myspace like functionality.
Resources
Project page: http://drupal.org/project/advanced_profile
Demo page: http://advprofile.shellmultimedia.com
History: http://shellmultimedia.com/misc/user-profiles
Further thoughts
If you have any suggestions, please leave a comment. This is a wiki and anyone can edit it but I'd prefer no massive changes be done to it. If anyone wants to do things like fill in missing paths to projects or add to my list of small helper modules, that would be great. Support requests on the issue queue, please. This wiki is for planning, not support.
Michelle
Comments
My suggestion is...
Keep up the excellent work, Michelle!
You are doing a great job and I really appreciate all your time, effort, and energy!!! Really, there is no way I could have put together the fine work you've done so far. I'm hoping you're teaching your little one all the Drupal code you're developing so that the little one can start kickin' out some code as well. LOL.
I went ahead and filled in all the links to the various projects you listed. If I see other projects that I think might fit in with your Adv Profile module, I'll be sure to add them.
Walt Esquivel, MBA; MA; President, Wellness Corps; Captain, USMC (Veteran)
$50 Hosting Discount Helps Projects Needing Financing
Walt Esquivel, MBA; MA; President, Wellness Corps; Captain, USMC (Veteran)
$50 Hosting Discount Helps Projects Needing Financing
Thanks, Walt
I'm sure you could have put together the same thing. What I'm doing isn't anything special. I'm just gluing modules together and writing docs. The code involved is actually pretty minimal. It's the people making the contrib modules I'm using that really deserve the credit.
I've got a (nearly) 3 year old and a 6 month old. No coding, yet. :)
Thanks for doing the linkage.
Michelle
See my Drupal articles and tutorials or come check out the Coulee Region
This is helpful
I know how time consuming it is to pull all this together. Thanks.
Partial profile
I know I've mentioned this to you before briefly, 'Chelle, but I think it would be really cool if we could make this somehow support partial profiles (a la Facebook). What I mean by this is, an administrator ought to be able to assign different profile fields as viewable by role; so "premium" users can see parts of the $user's profile that authenticated users cannot.
Also support for organic groups would be awesome. For that, you'd need to have something like "users of this group can see my profile", "users of all my groups can see my profile". Further granularity down to individual fields (again, like Facebook) would be super-awesome. Then we don't have to use Farcebook any more and be jealous of its profile features. Hooray.
Further to the technicalities of this, I believe that someone somewhere is working on a new version of cck_field_perms, which is currently the best way to make this work, although it basically doesn't work with some fields/situations.
Kineta Systems - Web Development in Nottingham, UK
Web Development in Nottingham, UK by Kineta Systems / Follow me on Twitter! @NikLP
My thoughts
I have my thoughts here: http://drupal.org/node/212806
Michelle
See my Drupal articles and tutorials or come check out the Coulee Region
+1. Very interesting!
I've been testing my test site with both Advanced Profile and OG enabled at the same time to see how they interact and to see what happens/what is viewable when I create a profile outside AND inside of an OG. It would be nice to be able to offer my future users the ability to view what NikLP mentioned, although at this point I need to investigate further to see just what is offered/available when using OG and Adv Pro at the same time.
By the way, if anyone wants to play around with OG and Adv Pro on my test site by creating a profile and then creating content, you're more than welcome to do so. However, because I periodically delete my test site's database, your data won't necessarily stay on there for too long but you can at least try out Advanced Profile and OG for the next couple of days.
Walt Esquivel, MBA; MA; President, Wellness Corps; Captain, USMC (Veteran)
$50 Hosting Discount Helps Projects Needing Financing
Walt Esquivel, MBA; MA; President, Wellness Corps; Captain, USMC (Veteran)
$50 Hosting Discount Helps Projects Needing Financing
Is there a place where I can
Is there a place where I can look for the latest information? In particular, I was hoping to find if any progress has been made in integrating AdvPrifile with UserRelationships.
Michelle, thank you for all your hard work!
Nothing new
APK is mostly on hold at the moment. There's some big stuff in the works, but it's waiting on panels being ported to D6, and then Sam and I need to talk about exactly what we're going to do. I don't want to invest a lot of time in the current version since it's a bit of a dead end. No worries on using it since your data is in the node, not in APK, but I'm not putting much time in it right now.
Michelle
See my Drupal articles and tutorials or come check out the Coulee Region
I've done 2 things integrate
I've done 2 things integrate APK with UserRelationship.
1.) I added the User Relationships: Actions block to the APK panel page. This allows my users to add or remove a relationship with a user via that users profile.
2.) I created a view that displays user names and avatars. I then told it to use the User Relationships: UID is related to Author argument. I then added this to the APK panel page.
Is this what you were looking for?
Yes
Thank you! I now have a copy of Pro Drupal Development in my hands so I should be able to make this work. :o)