AWG Blogs

Tuesday, February 14, 2012

Master Pages in Subsites

You may get "The system master page setting currently applied to this site is invalid. Please select a new master page and apply it" in _layouts/ChangeSiteMasterPage.aspx, when having set a subsite of a site collection (with publishing infrastructure enabled) to use a master page within the subsite relative _catalogs/masterpage/ folder. It appears MOSS 2007 publishing infrastructure does not fully support subsites utilizing master pages from subsite master page galleries, hence the error.


To avoid this error, ensure that every subsite in a site collection with Publishing Infrastructure enabled is using a master page that resides in the master page gallery of the root site.

Ironically, doing so however, causes another error in SharePoint Designer "The URL ../../_catalogs/masterpage is invalid" when editing the subsite in SPD. Therefore, it appears that editing subsites in site collections, that have Publishing Infrastructure enabled, in SPD is not supported.

Monday, February 13, 2012

Setting Default DisplayCategory for Create Site Page

In MOSS 2007, one way to have your template category selected by default when click "Create Site" from Site Actions when Office SharePoint Server Publishing is enabled is edit 12\TEMPLATE\LAYOUTS\EditingMenu\SiteAction.xml (Backup first!). Edit the ConsoleNode item whose action is "cms:CreateNewSiteAction" and ID is "wsaCreateSite." Add (or replace) two attributes:
IsSiteRelative="true"
NavigateUrl="_layouts/newsbweb.aspx?DisplayCategory=MyCustomTemplates"

Note, the IsSiteRelative attribute is required so that subsites don't get file not found errors.

Finally, recycle the app pool.

Another option that applies to site collections only is to edit _catalogs\masterpage\Editing Menu\CustomSiteAction.xml, adding the Console tags with custom content as needed.

Tuesday, February 7, 2012

Publishing Enabled on Root Site

I noticed that unless Office SharePoint Server Publishing is enabled on the root site in a site collection, subsites do not show the Pages Library as a "List Type" in the Content Query Tool Part, regardless of whether Publishing is enabled as site feature in the subsite.

I have not done exhaustive testing to see whether this is related to the initial site definition that was applied, but at any rate, this appears to be a bug (or "gotcha") in MOSS 2007.

Thursday, February 2, 2012

LookupColumn fields require no FieldRef?

That appears to be the case when writing the CAML for a custom field.

I asked the question as it concerns FileLeafRef on MSDN. We'll see if I get a response or pointed to some more documentation.

I did notice in
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\XML\FLDTYPES.XML that the definition for File has its InternalType set to Lookup, so maybe that's my answer.

What got me curious is observing that updates to my computed column via /_layouts/FldEdit.aspx caused the whole FileRefs element to be removed! I noticed that the doclib list continued to show the field, but the list did not. Presumably because the fieldref was not needed...

More questions along these lines:

Why is the FieldRef Name="Created" necessary in a custom computed "Name" field in a document library, but not in a custom computed "Title" field in a List?

How come <Column Name='Created_x0020_Date' /> causes "Exception from HRESULT: 0x80020009 (DISP_E_EXCEPTION)" YSOD, when clearly the documentation states that it should return an integer, since it's a lookup type.

Monday, January 30, 2012

"There is no Web named..." error

When setting up your web reference in Visual Studio 2008, you must enter http://server/sites/mysitecollection/mysubsite/_vti_bin/Lists.asmx?WSDL including the "WSDL" at the end! Or else, you will get this error in your inner exception, when attempting to access a list, using the GetList(listguidstring) method.

Sunday, January 29, 2012

Sharepoint PowerShell Shortcuts

Command to output sorted site columns:
PS C:\WINDOWS\system32\WindowsPowerShell\v1.0> [void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")
PS C:\WINDOWS\system32\WindowsPowerShell\v1.0> set-variable -option constant -name url -value "http://servername/sites/teamsite/"
PS C:\WINDOWS\system32\WindowsPowerShell\v1.0> $site = new-object Microsoft.SharePoint.SPSite($url)
PS C:\WINDOWS\system32\WindowsPowerShell\v1.0> $site.rootweb.Fields | foreach { $fieldValues = @{ "Display Name" = $_.Title; "Internal Name" = $_.InternalName; "Value" = $site.rootweb.AvailableFields.GetFieldByInternalName($_.InternalName) }; New-Object PSObject -Property $fieldValues | Select @("Display Name","Internal Name","Value") } | Sort-Object -Property "Internal Name" | Out-GridView

refs:
http://get-spscripts.com/2010/09/get-all-column-values-from-sharepoint.html

see also: http://blogs.flexnetconsult.co.uk/colinbyrne/2008/02/26/PowerShellSharePointAddAListItem.aspx

Thursday, January 26, 2012

CQWP Bug

[MOSS 2007] Got the following error when I selected "Show items from the following list" and browsed to a doc lib whose display name contained a forward slash (/):
Cannot save the property settings for this Web Part. The list name is not valid. The list name should refer to a list within the specified site..."

So to workaround the inability of this SP component to recognize lists with forward slashes in them, I decided to try to filter by list ID under Additional Filters. No go again. I entered the list's QUID and no data was returned. This appears to be a bug as well.

So I settled for a Data Form Web Part hooked up to an XML Web Service configured in the Data Source Library: Port set to ListsSoap12, Operation: GetListItems; listName=GUID (including curly brackets). Had to tinker with the XSLT to get the display somewhat correct, e.g. to get the doc image to show, use <img src="/_layouts/images/{ddwrt:MapToIcon('',string(@ows_DocIcon))}"/>