One of the things I've never liked about Drupal is how it handles the profile and the edit account pages.
Short version
I've created a sandbox project to start working on ideas and to solve this in D7. The whole idea consists of two simple concepts:
- Profiles should be easier to customize/hack/change at least for themers. Even if this means starting with a blank page. Why? Because an admin could just add blocks to customize the profiles without having to remove the "History" section, the Picture and who knows how many more stuff.
- Settings should be separated from Profiles
Extended version
Let me give you two examples of why I'm frustrated with this situation.
- If you're trying to make a simple community site, where users visit their profiles very often, you'll probably want to theme the Profile. The problem is that the Edit Account is always right next to the Profile. Even worst, the View and Edit tabs make everything more confusing. Why is this? Because we have in one single place, the Profile, Stuff like "History", Content, Pages added with Views, and Settings.
- Lack of consistency. If you look at the Shortcuts module you'll see it implements user/uid/shortcuts as a path. OpenID does something very similar and many other contrib modules do the same, like Notifications. The problem with this approach is that it's in the same level as the Profile (user/uid/account), when this is a configuration page and it should be under user/uid/edit/shortcuts.
Where does this come from? Well, if you visit websites like Twitter.com or Digg.com and many more you'll see that they separate the Profile from the Account Settings. Both sites, use a Tab for each group of settings so Change your password is not mixed with Change your Email like Drupal does. A long form in user/uid/edit is usually confusing.
As I mentioned above, I created a module to address this problem. What it does so far is:
- Separate the Profile and Edit Account pages completely. The user won't see the View and Edit tabs at all.
- Create a Settings page to handle the user settings. Account, Profile and Password have been separated into their own pages. This gives us more meaningful paths for the edit account page. Instead of having user/uid/edit/foo, the user will see settings/uid/foo
- Provides a hook_profile_page_category() based in hook_categories() so any module can create a configuration page on its own and integrate with this module in a more consistent way.
If you have ideas or want to jump in and help shape this project, please create an issue at http://drupal.org/sandbox/lelizondo/1098228
| Comment | File | Size | Author |
|---|---|---|---|
| #2 | Twitter Password Settings.png | 384.78 KB | lelizondo |
| #2 | Twitter Account Settings.png | 109.7 KB | lelizondo |
| #2 | Proposed Shortcuts Settings.png | 27 KB | lelizondo |
| #2 | Proposed Profile Settings.png | 58.76 KB | lelizondo |
| #2 | Proposed Password Settings.png | 28.84 KB | lelizondo |
Comments
Comment #1
tstoecklerYou'll want to have a look at Profile 2 module for Drupal 7 contrib. It does the separation you speak of on the API level: Profiles are their own entities, separated from Users.
Comment #2
lelizondo commentedI had tried the Profile2 module but is not doing what I'm talking about. I'll try to explain.
There are multiple concepts here that I should try to define to avoid confusions.
This feature request, and what I'm trying to do, is not extending fields entities to the Profile. This is a complete rewrite of how a user interacts with it's own data and change it.
I'm proposing the following:
As you can see, what I'm proposing for D8 (and doing it in a module in D7) and what Profile2 is doing right now, are different things. I hope now is clearer.
Comment #3
lelizondo commentedTagging this.
Comment #4
coderintherye commentedI +1 the statement "Separate User Profiles and User Settings" [in core]
If a clear plan of action comes out of this issue, I would be glad to help write/test patches. However, I will caution that given the nature of this, I would first produce some sound design docs, along with some strong reasoning why this belongs in core and not contrib, so that it has a better chance of seeing implementation in D8.
Comment #5
lelizondo commentedI posted this at the usability group precisely to do what you're saying. I would like to hear as many opinions as possible to solve this problem by creating a D7 contrib module and try to push this into core in D8.
Comment #6
lelizondo commentedI moved the sandbox to a full project http://drupal.org/project/profile_page it is stable enough to at least have a dev version.
Comment #7
anglo commentedTo make it even more flexible and future proof
The ability for the administrator to create and edit tabs himself and choose which User Account Fields (picture, status, roles, password, language, locale etc.), Profile Fields, how many of them and in what order to put in each tab would make the User Profile Settings very flexible and future proof.
From the design point of view - make User Account Fields like Profile Fields for the user profile page? And rename the issue to "User Account Fields (subsections) like Profile Fields".
Comment #8
David_Rothstein commentedIt seems to me like the first and most important step here might be to allow profile and account to be separated (for editing purposes)? That on its own would make core user fields a fair bit more useful, and it would allow the clutter of account settings to be under a separate tab, away from the profile.
I just posted a contrib module today that does that: http://drupal.org/project/edit_profile
This is a bit different from the original proposal here so perhaps I should file it as a separate D8 issue, but I thought I'd mention it anyway.
Comment #9
lelizondo commentedI agree, profiles (view) and account settings (edit) are different things that somehow in Drupal got together. For many sites, profiles are not even necessary, while account settings are as necessary as the user module.
A profiles module who implements fields, should be able to hook into the account settings so it's there where a user edits the account settings and the profile.
Comment #10
SiteMaster.ServeLime.com commentedFully agree.
Having the password fields on the same page as the other user account details causes much hassle.
Having to retype a password is definitely not user-friendly. It gets even worse when modules start adding to this page.
The Change password (http://drupal.org/project/chgpwd) module addresses this, but is in Dev status. Maybe a developer can volunteer to assist to get that module into a full 6.x release. It could then be updated for 7 and incorporated into 8.
Comment #11
lelizondo commentedThis will never get into 6.x. If we push, it might go into 8.x
Comment #14
dpi