Sharepoint 2010 – Meeting Workspace Templates with Content

August 8, 2012 § Leave a comment

Very frustrating thing about meeting workspace templates is that you can’t include content in the template. Of course, the first time you make a meeting workspace template, you’re going to want to include content. For instance, you make a meeting workspace template for a particular group, and that group always has the same members in it. It would be nice to have the template pre-populate the attendee list so that you don’t have to enter it once the meeting workspace has been created.

So, since this is a pain in the ass, and we need it to work, let’s hack it.

I found it easier to start with a template that is not derived from a meeting workspace template. So create a new site, modify it to your satisfaction (including whatever content you want), then save the site as a template. Download the .wsp to your local system and extract it using a tool like iZarc.

Go ahead and create another site, using the Blank Meeting Workspace template. Don’t modify it – just save the site as a template. Downlod the .wsp to your local system and extract it using a tool like iZarc.

Changes:

[WHATEVER]WebTemplate\Elements.xml
Change BaseTemplateID=”2″
Change BaseTemplateName=”MPS”

It helps to have the second wsp for comparison here.
[WHATEVER]ListInstances\Elements.xml
Add the “Meeting Series” and “Workspace Pages” list instances.

[WHATEVER]ListInstances\Feature.xml
Add the “Meeting Series” and “pages” ElementFile locations.

[WHATEVER]ListInstances\Files
Add the pages folder (and its contents)

[WHATEVER]ListInstances\Files\Lists
Add the “Meeting Series” folder (and its contents)

Use a tool like iZarc to package the whole folder back into a .cab file. Rename the .cab file to .wsp. Upload it to the solution gallery.

Now you can create a meeting workspace with this template, and the content will be included.

TADA!

.NET, Javascript, jQuery, and you

October 8, 2010 § 5 Comments

I’ve been doing a lot of Sharepoint development recently. Now Sharepoint presents several challenges, not the least of which is that you don’t have access to the familiar code behind functionality in most cases. Custom development in Sharepoint consists of master pages and page layouts that contain web parts. Web parts have code behind files, but the pages don’t, and it’s unwieldy to develop custom Sharepoint applications with the familiar ASP.NET forms-based development model.

As such, I’ve relied pretty heavily on client side code to accomplish much of the functionality that I’ve needed. My friend Ted Hughes introduced me to some of these concepts when we were working together at Curtis 1000. He was working primarily with the ASP.NET MVC framework, which I had played around with, but hadn’t used extensively up to that point.

One of the things that surprised me so much was just how pervasive the jQuery framework was used within that MVC development paradigm. Coming from a background of traditional ASP.NET forms development, I thought I was being progressive by using the ASP.NET Ajax framework, but Microsoft quite quickly dropped the framework in favor of jQuery. This article by Dave Ward goes into some detail about why.

So, obviously I was aware of jQuery, and had used it in some limited capacity, but if you’re not using it regularly, you should begin doing so. Depending on your background, you may view javascript as a subpar tool for developing web applications. At one point, I would probably have agreed with you, but javascript is a real language – really! The productivity increase from using jQuery properly and intelligently is excellent.

Here’s another article by Dave Ward to give you just a little jQuery introduction. If you’re a book learner, I can recommend jQuery in Action, which I thought was thorough as well as quick and easy to read. Also, a simple web search for “jQuery” + “whatever you want to do” almost always yields a quick result. Or if you can’t figure it out, ask me.

Where Am I?

You are currently browsing the Sharepoint category at Mike Vallotton's Blog.