If you define fields in a category that contains a ampersand in its name, like "Name & Company", the fields will not show up the page when the user try to edit their profile (after the registration), by selecting the category name under /user.
The problem is in the profile_form_profile() function. It is receiving the $category attribute htmlescaped so the database query lo load the fields is:
SELECT * FROM profile_fields WHERE visibility != 4 AND LOWER(category) = LOWER('Name & Company') ORDER BY weight
Sorry for not giving a patch for the issue. But I've been trying to find out the problem for 2 hours with no results. I hope the above information will be useful in any case. (The problem could be in user.module... but I'm not sure).
Regards,
FredCK
Comments
Comment #1
chx commentedThe patch fixes the problem but whether it's the correct one or not, I can't tell. This is Steven's expertise.
Comment #2
chx commentedThis patch is for HEAD.
Comment #3
Steven commenteda) html_entity_decode() should never be used. Use unicode.inc's decode_entities() instead.
b) profile categories are only ever used in a URL and in menu item titles. They should not be check_plain()'d in profile.module, that way no decoding needs to happen, and the url does not contain an unnecessary "amp;"
Fixed in HEAD.
Comment #4
chx commentedGerhard, please commit to 4.7 whatever Steven committed :)
Comment #5
chx commentedNope, I see now it's in 4.7 also. Awesome.
Comment #6
(not verified) commented