Earlier this week I committed a new profile module to the development branch. I just finished upgrading drupal.org to take advantage of these new improvements. If you check your account settings (authentication required), you'll notice that I added quite a few fields that let you define your role within the Drupal community or the Drupal project.

Furthermore, updated profiles can be browsed (or filtered) using some of these new fields. For example, click here for a list of Belgian Drupal users, here for a list of female Drupal users or here for a list of documentation contributors.

(Update, March 21: I've made some more changes based on the feedback posted in the comments. The updates are outlined below. You might want to revisit your account settings.)

I wonder if we could replace the current services page by one that is automatically generated based on the new 'I provide Drupal-related services' and 'Drupal contributions' fields. It is something to evaluate once enough profiles have been updated, yet something we should keep in mind.

That said, I still have to migrate the old birthday field and would like to challenge designers amongst us to help improve the look and feel of the profile pages as there are quite a few rough edges. Remember: talk is silver, patches and mock-ups are gold. General suggestions as how to further improve the user profiles here on drupal.org can also be posted in the comments.

But first, go update your drupal.org profile (requires authentication).

March 21 updates

I've made some more changes based on the feedback posted in the comments:

  • I've added a new field type: URL field. URL fields are rendered as links and are being validated upon submission. Thus, the URLs of the homepages are now clickable.
  • I've added a new field type: list. A list let's the user enter a number of items, each on a separate line. Each item will be turned into a link, and people can be browsed by the specified items. This could be used to create a rudimentary 'buddy list', a 'favorite books list', a 'favorite movie list', and so on. To showcase this feature, I've setup three lists on drupal.org: 'Interests', 'Companies worked for' and 'Industries worked in'. Check your account settings (requires authentication) or for an example, click here for a list of people interested in social software.
  • I've changed the code that determines the page titles of the member listing pages so that page titles can be customized from the profile module's administration page. Instead of 'Female' or 'Belgium', the titles read 'People that are female' and 'People that live in Belgium', respectively.
  • I've made some visual changes to the member listings as well as to the individual profile pages. It looks slightly better but still not good enough.

These first changes have been activated on drupal.org. More to come.

March 27 updates

I re-introduced support for required fields. It needs more work though.

Comments

koorneef’s picture

I like the new functionalities a lot.

As for patches, I encountered a problem related to pictures and the file api: Picture's don't display when using private download method..

After the latest cvs update my avatars (now called pictures) disappeared... The patch in the link above solves this.

mred’s picture

Here's the same issue, I believe.

koorneef’s picture

With the latest file.inc (and no \ trailing in the dirs for pictures in the admins) the picture urls still look like:
http://imagem-test.koorneef.net/?q=system/files&file=pictures/picture-1.jpg

The file: files/pictures/picture-1.jpg exists, and is viewable from the net, checked with:

http://imagem-test.koorneef.net/files/pictures/picture-1.jpg



Strange that it's working at your site, I hope someone who knows a bit about the new file api can shed a light on this.

Thanks for pointing out the related issue !

azurlune@the-dot.org’s picture

I still cannot get avatars... have they been removed in the latest profile version? there isn't any option for them in edit account or modules:profile. I tried patching file.inc as sugggested, didn't seem to do anything. are they there or have they been removed for now, to return at a later date?

dries’s picture

The avatar support is built into the user module; check the user module configuration page.

ph4nt0m-1’s picture

Dries, can you tell me how I can get hold of this new module? Apologies, I realise you have said it has been committed to the development branch, but how do get to that branch, and once there how do I obtain it?

Thanks very much.

voipfc’s picture

Being a Windows 2000 user wanting to be in the Drupal fast lane I followed the instructions at [CVS Repositories].

I suggest you get the same for your platform
Once you download the latest versions it is simply a matter of copying the changes over to your working setup.

Be careful though, because the changes you want may require a number of other files to be updated too.

Steven’s picture

Functionally everything is quite okay, but the UI has a couple of rough edges.

On the profile page, it's not exactly clear what clicking on an item's value does (it brings up a list of all people who have the same settings). It's probably better to unlink the item's value, and put an icon behind/below with some people in it.

When viewing a collection of people based on a selection, it's not at all obvious what's going on. A simple "These are all the people who have X set to Y." line at the top would help I think. The page title should probably also be "User listing - X: Y" rather than just "Y".

I already talked to you about this, and I still think alternating the background colors of rows in the profile fields is a good idea. But I think we should use white/gray rather than the gray/gray we have now (e.g. in the forums).

moshe weitzman’s picture

there is lots to love here. here are my wishes for more ...

- i'd like first name and last name and City fields
- i'd like privatemsg.module or some other way for users to contact me without revealing my email address.
- i'd like a bit more room in the Contributions field
- the Signature field has lots of formatting tips but not the Contributions field. Odd.
- the 'I contributed Drupal modules' bits might look better presented a sa list instead of paragraphs.
- why do we display gender on a page like profile/country/United+States. seems arbitrary. Also, that page will scan better as a table.
- I like the idea of migrating the Services page to this scheme

Bèr Kessels’s picture

I like the idea of migrating the Services page to this scheme too.

There is one thing I thinkk that can help us a lot here:
- In 'my account' , one should be able to set his/her private RSS feed, thus drupal can substract some info and probably even display the latest x entries of that users blog/newsitems.

Ber
Mediarevolution.org :: het platform voor online muziek
spam related: bots may mail me here

joe lombardo’s picture

Just wanted to put in my vote.


Joe Lombardo | Drupal Services: Community-Publishing.net | FamilyTimes Online Journals
TDobes’s picture

I like the improvements, for the most part. This will make it much easier for admins to define fields for profiles. However, I have a few suggestions:

  • Bring back "private" fields - This existed in the older profile.module. Would it be worth my time to create a patch with this feature, or will this be implemented as part of the hopefully upcoming permissions system?
  • Allow browing of all users by going to "profile" page with no trailing attributes - This would eliminate the need for members.module in contribs.
  • Perhaps output profiles in a table? - When browsing profiles, the display currently seems a bit run-together. Perhaps placing it in a table would clean up the output.
  • I'm left with a slightly unsettled feeling about the change from the term "avatar" to the term "picture." "Picture" is a bit too generic, IMO. If we don't like the term "avatar," that's okay, but I feel we should find something better than "picture."

If you agree with any of these items, let me know, and I'll work on a patch. I'll provide a patch to clean up the typos later today as well. Thanks for your work on this... it'll be one of many improvements in 4.5!

dries’s picture

Bear in mind that the profile module is not finished. Think of it as a new starting point on which we can build the next few months, if not years. I committed it to CVS and deployed it because I felt it was 'ready enough' for other to help build on.

Now, to answer your comments and suggestions:

  • I'm not convinced private fields are useful.
  • We'll certainly bring back the 'required' fields. Feel free to submit a patch for that.
  • We'll be improving the look and feel of the profile pages: everyone is invited to help and to suggest improvements. Patches, screenshots and mock-ups are welcomed. I'd like to the profile pages to leave me with a community feeling.
  • I renamed 'avatar' to 'picture' because I thought 'avatar' wasn't a common word. Is it commonly used in English? If you were to ask 20 people on the street what an 'avatar' is, would they know?
TDobes’s picture

About private fields: Well, I use private fields on my web site. I have several fields defined where users can enter their mailing address. They can then choose whether or not to receive periodical materials via snail-mail. Their addresses are pulled from the database periodically to create a mailing-list. It's relatively important that their addresses not be viewable by the public (both students and teachers use this system, so that could be bad). I suppose I could recreate this functionality by creating another module, but that would certainly be a bit more difficult.

About "avatars" a.k.a. "pictures": I tend to doubt that I could walk up to anyone on the street and expect an accurate response about what an "avatar" is. However, I tend to think that I could ask this question and expect an accurate response from most English-speaking web forum users. On the other hand, if I ask the average English-speaking person (forum user or not) what a "picture" is, they'd most likely describe a framed painting or photograph... more or less the same definition as one might give for the word "image."

I'm not so much arguing for the term "avatar" as I am arguing against the word "picture." Perhaps we could instead use the term "user picture" or "user face" or something like that. Prefixing the word "user" clarifies the meaning a bit, at the expense of wordiness.

I'll see what I can do about a "required fields" patch in the next few days.

gábor hojtsy’s picture

The ecommerce module and the likes would benefit hugely from private fields, so site users would only need to provide their details once, and the modules would be able to pick them up (for shipping, snail-mailing, etc). These details are not public of course.

adamrice’s picture

I realize that private fields could turn into a nightmare (assigning which role/s or group/s get to see which fields), but the thing that initially sparked my interest in Drupal was (eventually) using it as a membership directory. I know that my users would like to have some information available only to their colleagues and some available to the world. So I'd be in favor of private fields.

As others have suggested, I'd like to see "flexinode"-ness added to the member module. I'd also like to be able to search/sort on specific member criteria, present results in tabular form (obviously there would need to be a way to control what fields appear in the table), and be able to click on table headings to re-sort the results.

I'd also like a pony, while you're at it. But I think this is a big step in the right direction.

Avatar: not that common in English. 20 people in the street might not know it, but 20 regular online-forum users probably would. "Picture" is a fine word, and less ambiguous.

Adam Rice

cel4145’s picture

Now, we all know that you only did this because the predominantly male developer population of drupal.org users wanted to know who the female members are (LOL).

But seriously, this is a great way to promote a greater sense of community :)

davidm’s picture

Hi,

First off I must say these changes are outstanding.

I would have guessed expanding the taxonomy features would be the way to do this, but this seems very suitable. I can't wait until Drupal taxonomies and profile terms can compound search terms. :>

Speaking of the taxonomy, I have been developing a site where each item is subject to many vocabularies. I need a more elegant (DHTML based?) way to display nodes when editing them, otherwise it is quite long. Using multi select elements is also not suitable, because it's too easy to accidentally unselect terms, so I need something with checkboxes & radio buttons. (Another thought is making default display pages editable by anyone who has permission, using form elements and DHTML, but that is really off topic...)

Can anyone give me pointers on how to achieve this? If I have to write it myself, would I need to modify taxonomy.module directly?

Thanks!

David

qgil’s picture

It is quite usual to have a "Email user" link in profile pages. It would be nice to have this feature. Users could optionally activate/deactive or decide (this is more complex) to get the emails in their mailbox or in a "private messages" place in the site.

And still thinking in the possible FOAF extensions of the personal profiles... :)

adrian’s picture

I am the author of the buddylist module in contrib , i am intending on rolling the functionality of that module , aswell as the development foaf.module (in the sandboxes somewhere iirc) into a new more generic 'user relation' type module ..

but ... 4.4 is more important to me right now, but soon =)

--
Sanity is a sandbox in the playground of my mind. I'm going to go play on the swings now.

jibbajabba’s picture

It's looking good, Dries. Here's some functionality I would argue for, along with those I've emailed you in the past.

Features/improvements we should have

  • Browsability is very much hidden at this stage. In addition to providing a browsable list of all users, a goal of making the hyper-linked profile attributes browsable on one page would be nice. (See also my Search suggestion below)
  • Ability to make URL fields linkable. "URL of homepage" should be a link in individual and list pages.
  • I agree that the label you get when you click a profile link, e.g. male, location, etc. needs work. Would be most helpful if you clicked something like "Male" and you saw a page label that read, "People who are male." For United States, "People who reside in the United States. Or something like "People who share this description: [insert label here]". I don't know. This is a hard one to label.
  • I would argue for the word "photo", but feel that "picture" is fine. Or you can just expand the label to "Photo or avatar" or "Photo or picture of your likeness". Any of the above should work or make it user definable?
  • Agree with Moshe that the "I contributed..." links should be a list rather than a paragraph.
  • I prefer the plain HTML listing over using a table. A table would restrict the admin's ability to alter the layout of the boxes, e.g. floating them left for a more grid-like appearance. For now, why not add a rule to misc.css for .profile. Could be something at the very least that separates each profile with a line, e.g. .profile {border-bottom: 1px solid #ddd; } Since we don't can't do alternating rows of color in CSS2, why not let the code specify something like .profile-light .profile-dark for alternating odd/even rows so the admin can control the colors from their style sheet?

Features/improvements it would be nice to have (some of which I know you are considering)

  • Search interface for profiles: by fields selected by the admin, e.g. by name, interests. This is unlikely to be doable in a single module I'd guess.
  • Ability to send private messages.
  • Some very basic social networking functionalities, e.g. "make acquaintaince/friend", a page that shows your friends, some tie in to forums? e.g. these are the groups/forums I belong to, FOAF relationship attributes (e.g. this is a friend/acquaintaince, I met this person).

Very nice work to now. I look forward to helping with improvements.

cel4145’s picture

I had often wondered why the functionality of the membership module was not available in the core. Seems like it contains some very useful features for building community within a site that could be part of the profile module.

maptheway’s picture

Dries, I noticed that in order to 'correctly input' my user data so that each word is searchable I must input the word (or phrase) and then hit return to enter the next word (or phrase), if I do not do this all words are automatically linked together.

This is not intuitive and it is not the way the other social software systems work. They allow you to seperate words/phrases by commas and/or spaces. This makes much more sense to me. Also, most have a very easy to understand explanation of HOW to use these areas by saying, "seperate with commas" right under the input/text box.

Would you consider altering the way users can input their data and thus link with others within the system?

dries’s picture

I could consider altering that.

goern’s picture

Hello, may be off thread, but will there be some FOAF RDF/XML version of this data stored in the profile?!

joe lombardo’s picture

I really like these changes Dries, though I am not sure I want a reminder on how much time has passed... just makes me feel older.

As far as the "I contributed" section... it would be super cool if they took the user to those contributions. Here's a scenario, I read an interesting post by 'jondoe' and click to see his profile.. i see that he has contributed a module, to see that module I'll have to do a search for his name and restrict to the modules section.

Cheers,
- Joe

"Talk is silver, patches and mock-ups are gold."
I'll start going for the gold. ;-)


Joe Lombardo | Drupal Services: Community-Publishing.net | FamilyTimes Online Journals
Gunnar Langemark@www.langemark.com’s picture

Now that we have an event calendar, a store with shopping cart and payment gateway - Drupal could easily evolve into a real membership system. Take a look at A-member which offers subscriptions etc.
(http://membership.cgi-central.net/scripts/amember/)

Have a club? Events - weekly meetings? Subscriptions to newsletters, workgroups?

Dropping in from Langemarks Cafe.

jxs2151’s picture

I am trying to make it work as this for my church. It is working quite well except that remindme module is not working properly.

www.harvesterchurch.org

heather’s picture

i like how the attributes are also clickable, and make for easy searchability.

it'd be nice if we all started filling out that field so we could see how it looks when we really fill it up.

one thing i was playing around with, and wondering- would you be able to cross-search? probably not. for example, you couldn't find people who are interested in social+networks and learning? but that's ok!

i can't think of why that would be required. tools like friendster or tribe don't allow for that kind of cross-searching, do they?

----------------------
the illusion of progress
http://nearlythere.com

magnestyuk’s picture

I've tried really hard to find out why only my checkbox type items turn into clickable links on the user page. The list items, the selection items, even the urls remain unclickable. Then, when I click on the ones that are clickable (checkbox-type) and the list view comes up, all the other items become links as well, and the pages they link to exist all right.

Does anyone else have this behavior?

My profile module is updated to current cvs, and the rest of my drupal install was updated at most 2-3 weeks ago.

stevenWIF’s picture

How *do* you get that direct linking (Belgium, Females, etc) to work?

http: / / my url . com/profile/country/canada gives me a 404, although I do have users registered with "canada" under the country name.

Is there anything else I have to do to to enable this?

Does it only require the profile.module, or are their other I need to modify too?

Thanks alot,

Steve

omar’s picture

I have the same question. I can't figure out how to create a link that returns a list of all users based on custom fields created by the profile module (as it seems to work on the Drupal site e.g. in the user profiles). Any and all help with this would be greatly appreciated.

dublin drupaller’s picture

(using 4.5)

On the Administer - users - Profiles - Config page, setup a FREE FORM LIST field.

That allows users to enter keywords that, when clicked on lists users in related.

To create the link....use the ADMINISTER - MENUS - ADD MENU option and use the following example link:

?q=profile/profile_keywords/Marketing

Where Marketing is the keyword for users associated with Marketing.

Hope that helps.

J

Currently in Switzerland working as an Application Developer with UBS Investment Bank...using Drupal 7 and lots of swiss chocolate

omar’s picture

Now I get it... It wasn't working for me because all of my fields were "single-line" textfields. I have tested it with "list selections" which also work.

Thanks again.

zilla’s picture

the user profile options are outstanding, but i have some very basic ideas:

when users add attributes to a profile (through the profiles mod, like adding new locations, languages, religions, business notes, personal data points, whatever) - these items should ideally inherit from the taxonomies within the site - that would unify the content on a drupal site clearly, and make searching within profiles more intuitive (yes, that's an opinion)

also, admins should be able to control who can edit what - meaning that a certain class of user (like supplier, or site blogger, editor, admin etc) can access certain fields (e.g. only bloggers should even see options to describe writing interests or whatever, they shouldn't see stuff that's meant to be profile info for just a 'supplier' and so on)

actually discussing this with some others on thsi site - controlling tabular views of the data, limiting view and display based on fields, etc...i'll let you know how it goes.

this module and this particular effort is outstanding- drupal is a community tool and a cms, so understanding that a drupal site is ONLY is as good as the folks who use it might help people to prioritize accordingly, and understand that making it always the best experience with the best utility for USERS is critical - paramount...admins come second (imho)
-me

matt_paz’s picture

An option that integrated with a vocabulary for expressing interests would be great ... then also on a vocab page ... add see also links for seeing folks that have used the term and/or have expressed an interest in this term?

Also, free tagging w/ ajax would be great as a seperate option for a user defined field

pietro’s picture

i'm looking into adding i18n to the profile module. i guess the right way to do it is using the t() function to output data. i was able to make the field names translatable, but not the description or the category. i'm fairly new to drupal hacking. can you please help me or provide some pointers.

thanks,
pietro.

binford2k’s picture

Is there a reason why you can't add a multi-select list to the profile? I'd find it very useful.

budda’s picture

I have a modified profile.module which includes the ability to add taxonomy drop downs and multi select lists as part of a users profile.

If people are interested in this (it's a 4.6 module) i can make it available for download.

--
www.bargainspy.co.uk | www.mobilebeat.co.uk

binford2k’s picture

Why not submit a patch to the profile module? That way everyone can benefit.

nigels’s picture

It would be very useful if the custom fields options in the user profile module could include an image upload field (Simular to the one in Flexinode)

Using this multiple images could be added to a users profile. This would be very useful for community applications, dating, and art websites.

Unfourtunately I have no idea how to go about programming this, anyone got any ideas?

Add new field

  • single-line textfield
  • multi-line textfield
  • checkbox
  • list selection
  • freeform list
  • URL
  • date
  • *** image ***
  • sprite’s picture

    Images in Profiles:

    Here is a quickie solution.
    (maybe not everything you want but it does what you want)

    0) add a URL field for the image.
    1) create a normal image node outside the profile.
    2) insert the URL of the image into the URL field.
    3) you can even use url alias to mask the actual drupal location of the images.

    spritefully yours

    spritefully yours
    Technical assistance provided to the Drupal community on my own time ...
    Thank yous appreciated ...

    binford2k’s picture

    I'd like this to be a bit more generic. I want to just attach a file to the profile.

    sepeck’s picture

    Please start a new forum post on this rather then attach to an old thread. This was for Drupal 4.5

    -Steven Peck
    ---------
    Test site, always start with a test site.
    Drupal Best Practices Guide -|- Black Mountain

    -Steven Peck
    ---------
    Test site, always start with a test site.
    Drupal Best Practices Guide