Question

A long title but hopefully will be enough! Basically, I want to create a feture in Visual Studio that will do the following: When activated, places an option/link in the site collection options in Site Actions. This link will then open a page with a completely different user interface page that has several selectable options for the user. Say for example the user selects a list and some fields or other options and those selections will be stored somewhere (this is what I really want to know how to do). Then the user will "Apply" the settings and this action will then render custom content in a custom delegate control stored in the master page. I know it sounds like a webpart, but I have seen many of these things and they do not look like webparts and there are no webpart zones. I believe they are custom controls which I have built before and I have built custom delegate controls. I am wanting mainly a cool user interface that runs on the SharePoint page and somehow stores the options and this is global at the site collection.

Whew! I tried to be as detailed as possible, but I am just not sure what the correct terms are for some of these things. I have built custom application pages and that may be what it is, but I just do not know how to store the selected options so that they are then used to create the HTML that will be placed in the delegate control.

EDIT: A good example to a point would be Nintex Workflow or something similar. Though I am not trying to build a workflow tool. I know it creates a workflow, but it also stores the settings and user selections that create the workflow and it has a great user interface. That's what I would like to have for my custom tool.

Any thougts or suggestions are appreciated!

Was it helpful?

Solution

I think, given that the changes are 'global', you could simply use a list to store them, at root level.

So on the root level of your sharepoint site, create a list (that you hide from navigation etc), with a content type that has all the fields you need to store.

Then, when the user 'saves changes' from your custom page (or control), that list is updated or added to.

The webpart or control or page that uses the custom settings can then access that list on Load.

OTHER TIPS

You can use SPPersistedObject which stores data in Configuration database. I have written a blog post which shows how to use SPPersistedObject in admin pages in SharePoint. This may give you some pointers on how to use it in your page. http://sharepointnadeem.blogspot.in/2012/03/create-administration-page-in.html

I had similar requirements and I preferred to store custom settings for each user in a hidden list called user info list.

More information about this list here: http://zimmergren.net/technical/sharepoints-hidden-user-list-user-information-list

I extended the list by adding an extra column to store the user settings.

Licensed under: CC-BY-SA with attribution
Not affiliated with sharepoint.stackexchange
scroll top