Take the 2-minute tour ×
SharePoint Stack Exchange is a question and answer site for SharePoint enthusiasts. It's 100% free, no registration required.

I have been tasked with modifying the SharePoint 2010 default Discussion Board to include two additional custom fields that have been definied in the User Profile list.

In an ideal world I would like to be able to just have to create a Custom DataSource that combines the result of the default Discussion Board and joins the User Profile list using the Author[ID] field (I added the [ID] in brackets because the XML output for the default Discussion Board doesn't actually output an attribute called AuthorID, rather it is called ows_Author and contains a value in the format of "28;#Joe Smith").

The two additional fields I'd like to obtain from the User Profile list are Role and Agency. I am aware that I could just as easily use the existing Job Title and Department fields instead of adding my own custom ones (and there's still a chance that I might do just that) but I'd still be interested in knowing how to, at the very least, perform the tasks below.

Is there a way to (i.e. how would one...):

  1. Change the default data source for the Discussion Board so that it uses a custom data source?
  2. Easily create a custom or Linked Data Source containing both default and custom properties from the User Profile list and default Discussion Board Data Source?
  3. Easily update the XSLT used by the default Discussion Board so that the values for the two additional fields joined in from the User Profile list appear below the Author (i.e. Created By) value in the DisplayView of the Discussion Board?

I have already researched solutions involving custom fields, custom types, custom type definitions, custom field types, multicolumn field types and much, much more. Trying to implement any of these features seems pretty daunting and the sheer number of approaches for simply configuring and deploying each solution is overwhelming at best and that's even before writing the actual code to enforce the business logic using C#/VB.NET or CAML and defining the layout and display using XSLT.

Assistance in resolving this matter would be greatly appreciated.

Thanks in advance!!!

PS: I was told to repost my original question here.

share|improve this question
add comment

1 Answer 1

One approach would be to replicate those fields from the User Profile Service (making them available to all User Info Lists) and then pull the info from the UIL with custom rendering. The other option would be to use JQuery to look up the user by username against the UserProfileService.asmx and render the values asynchronously. It depends if you will need many instances of the list in many site collections or only one list.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.