1

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!!!

1 Answer 1

0

A simpler (and much less invasive) approach would be to either:

  1. Mark the properties as Replicable to have them added to the User Information List. Then us the User ID to retrieve the property asychronously with JQuery. (Or possibly REST.)
  2. Pass the User Name to the UserProfileService.asmx and perform the property lookup with JQuery.

Either way it's easier that creating a new list definition and having to deal with the headaches. It depends on how you plan to implement the solution and how portable it needs to be.

Just my $0.02.

Matthew

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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