Are you annoyed that you have to create a new content type for every Office document template you want to publish in SharePoint 2010? Do you think it’s stupid that the SharePoint administrator has to re-publish that content type just because someone updated the document template? Are you disappointed that you cannot create a tree structure under the “New Document” button?
If so, you might want to consider the Template Library Connector for SharePoint 2010.
With the Template Library Connector you can choose any existing document library to be the source of document templates for your document library. You can choose as many sources as you want for each library, and all your libraries can have different sources.
Depending on the size of your SharePoint 2010 environment, you can choose to designate a site collection to be your template hub, and put all template libraries there, or you can use your local site collection as its own source.
With the template library connector, you can keep the content types down to a sensible number. Say you have a contract template translated to five languages. Normally you would need five content types to publish these templates. If you were smart, you created one master with the site columns, but you would still need one dummy content type to attach the template. Now you can instead create one content type called Contract, and then assign this content type to all five templates.
When there is a change to a template, the template owner or a super user can simply go to the template library and edit the template directly. No re-publishing is needed, the updated template is immediately available in all subscribing libraries.
The template owners can organize their templates in a folder structure, and this structure is mirrored in the template selector modal window. This way you can have as many templates as you want available in a document library.
I created a couple of screen casts for those who prefer that: config and use. I also added some documentation on the codeplex site.
Go ahead and try it out, and please post comments and suggestions below this post.
Big thanks to Einar Otto Stangvik who created the Template Library Connector for MOSS2007, and to Henrik Næss who contributed to the connector for SharePoint 2010.


This looks really great! I wish this was made 6 month ago when I had to create something allmost identical for a customer. Next time I will consider using yours!
Thanks Cato! I hope I will find the time to develop it further.
Hi.
Awsome initiative
I was just about to start on porting this project to 2010 as well (or create a similar one based on Grep’s).
I manage to deploy the soluton and activate the Feature at Site Collection level, but I think there might be a small bug regarding the redirect/transfer when clicking “Save” in the Template Library Connector Settings Page (TemplateLibraryConnectorConfig.aspx).
It seems like the code is always redirecting to ListEdit.aspx at Site Collection level, instead of the current subsite, if applicable.
And also, is there a chance that you also could release the source code for the project as well?
Thx again. Keep up the good work!
Øyvind
Hi Øyvind,
Thanks for the bug report. I have fixed the issue now, please download the new version and let me know if it works as expected.
The source code is available under the Source code tab. Have a good week end!
Øystein
You did awesome job! Microsoft should pay you
Thanks, Eric! Glad you like it.
Please let me know if you run into problems or if you have ideas for improvement or new functionality.
Øystein
The Template Library Connector has been chosen as the “Cool Tool” in this week’s SharePoint Newsletter: http://www.collaboris.co.uk/sharepoint-newsletters/sharepoint-newsletter-week-35
Oystein, I’ve installed this and it works well – except it is throwing an error (in the dialogue box) when clicking the “New From Template” button if on a subsite, and the library is at the parent root site.
An unexpected error has occurred.
Troubleshoot issues with Microsoft SharePoint Foundation.
Correlation ID: a9e8ce1c-cd53-4a4d-b2cb-c5607fb78a92
The corresponding error shows;
System.NullReferenceException: Object reference not set to an instance of an object.
at TemplateLibraryConnector.Selector.Page_Load(Object sender, EventArgs e)
at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
at System.Web.UI.Control.OnLoad(EventArgs e)
at Microsoft.SharePoint.WebControls.UnsecuredLayoutsPageBase.OnLoad(EventArgs e)
at Microsoft.SharePoint.WebControls.LayoutsPageBase.OnLoad(EventArgs e)
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
Hi Paul,
Thanks for reporting the error. Unfortunately, I have no time for debugging the upcoming weeks, but I’ll look at it as soon as possible. You can of course debug it yourself if you want, the source code is available for download on codeplex.
Best Regards
Øystein Garnes
Can it be used with Office 2003? Thank you
I haven’t tried it with Office 2003, only with Office 2007 and 2010. Please post your experiences if you try it
Best Regards,
Øystein Garnes
It seems that it is substituting the “New Document”-Button with its own “New from Template”-Button in all documents libraries even if this feature is not activated for a specific document library.
We have also faced the problem with document libraries on subsites requiring document templates from a parent site like Paul aforementioned.
Hi Christian,
Yes, this is a known shortcoming of the current version. As I wrote on the codeplex documentation: “In the current version, the connector is activated on a site collection level. When activated, the New Document ribbon button is replaced with a New from Template button in all document libraries in the site collection.”
The reason for this is that the organization I created it for use site collections wherever they need a site, so it was made with only site collections in mind.
I’d appreciate it if you could create an issue on this (and maybe for the other issue as well?) at codeplex and I’ll try to implement a better solution.
Best Regards,
Øystein Garnes
Hi Øystein,
You are right. I set them both as issues on codeplex. Thank you for taking care.
Best regards,
Christian
Thanks Christian,
I will take a look at it as soon as I find time, next week might have an opening.
Best Regards,
Øystein Garnes