How to customize application pages in the Layouts folder

nun, dass das anpassen der files im “layouts” verzeichnis nicht supported / nicht besonders schlau, aber doch in einigen fällen die einzige möglichkeit ist, ist bestimmt jedem schnell klar, der sich ein wenig mit wss / moss beschäftigt – nun gibt es dazu einen passenden kb artikel: How to customize application pages in the Layouts folder in SharePoint Server 2007 and in Windows SharePoint Services 3.0:

Modifying the files that are installed by SharePoint is not supported. However, there are some scenarios in which you may have to modify these files to achieve consistent branding or other customizations. When you modify these files, you must consider that they may be replaced by future updates and service packs. Additionally, there may be complications when you upgrade to later versions of the product. Keep backup copies of all customized files in case they are overwritten by an update. Product support will provide commercially reasonable support for help with modifications but will be unable to provide product changes or hotfixes that result from modifying the files that are installed by SharePoint.

spannend ist dann allerdings der lösungvorschlag nummer 2; der so einfach und logisch ist, dass ich selbst nicht darauf gekommen bin: man erstellt sich eine kopie des folders und stellt das virtual directory auf der entsprechenden web site um – ende. nur beim update muss man natürlich auf diesen folder denken…

Howto send a Document out of a Sharepoint Document Library per E-Mail

aus einer document library kann man den link eines dokumentes per e-mail versenden; nicht jedoch das document an sich als attachment; dies geht nur sehr umständlich: man muss es zuvor lokal zwischenspeichern.

eine lösung gibt es hier: E-mailing a Document from a SharePoint Document Library – und zwar wird erfreulicherweise nicht nur einfach die lösung geboten, sondern auch im detail erklärt, wie dies funktioniert!

eine weitere einschränkung ist, dass man out of the box nur von einem dokument den link als e-mail versenden kann; doch auch hier gibt es bereits eine lösung; der link ist mir allerdings momentan entfallen… 🙁

Content Query Web Part

mit dem content query web part kann man eigentlich recht viel anstellen – ein gutes beispiel dazu gibt es hier: Displaying Custom Fields in Content Query Web Parts in Office SharePoint Server 2007.

doch weit nicht alles ist möglich – abhilfe kann CARBURETUR und ECQWP schaffen; ersteres macht eigentlich nichts anderes, als von einem beliebigen view (und das geht out of the box nicht) einen validen (der built in ist es ja leider nicht) rss feed zu erstellen, den man dann mit dem ebenfalls vorhandenen webpart darstellen kann; damit kann man also auch über site collection grenzen hinweg queries erstellen! zweiteres zeigt die toolbars von listen und context menus für die einzelnen elemente an.

es wird sich jedoch hier hoffentlich noch einiges tun, aber für den anfang kann man damit schon ordentlich was anstellen 🙂

poor performance with subforms

ich glaube ich habe eine neue lieblings-technote gefunden: Performance poor opening a form that contains several subforms some with script libraries

You notice an increase in the time it takes to open a form containing several subforms, when some of these subforms load script libraries. For example, if a from has 7 computed subforms, it might take one second to open. A form with 10 computed subforms might take 15 seconds to open.

lösung gibt es zwar noch keine, aber einen coolen workaround:

It was found that adding the LotusScript “Print” statement to the ‘Initialize’ event of each of the subforms resulted in a return to normal performance levels.

bleibt nur die frage: wie kommt man darauf ?? :mrgreen:

Sharepoint “must reads”

bei meinem heutigen streifzug durch das internetz habe ich folgenes gefunden – sollte man unbedingt gelesen haben:
Recommendations for SharePoint Application Pool Settings
Backup / Restore and Data Protection Manager 2007 RTM
Enabling and managing social networks (for business use) with Microsoft Office SharePoint Server 2007
White paper: Data protection and recovery for Office SharePoint Server in small to medium deployments

google search für moss 2007

so gut ich viele features des moss 2007 finde, aber eines ist wirklich nicht besonders brauchbar: die suche. leider handelt es sich dabei jedoch um eine essentielle funktionalität – warum gibt es z.b. keine wildcard-search? sicher, es gibt – kostenpflichtige – third party tools, die dies nachrüsten. es gibt auch die faceted search von codeplex; und trotzdem: man wünscht sich eine suche a la google.

aber es soll ja noch dieses jahr ein update für die suche von ms kommen, die diesen umstand ein wenig lindern sollte; hoffentlich kommt es auch…

extremely slow peoplepicker

wieder ein spannendes moss problem: die auflösung von namen im peoplepicker dauerte bei einer installation extrem lange – das ging sogar so weit, dass die sitecollection während eines lookups mehr oder weniger nicht mehr geantwortet hat.

das festlegen auf eine bestimmte domain per

stsadm -o setproperty -url site-url -pn peoplepicker-distributionlistsearchdomains -pv domain-name

hatte ebenso wenig erfolg wie das setzen des timeouts auf 1 (normalerweise 30)

stsadm -o setproperty -pn peoplepicker-activedirectorysearchtimeout –pv 1

– das verhalten blieb immer gleich. also debug logging aktivieren; und siehe da:

w3wp.exe (0x097C) 0x0D1C
Windows SharePoint Services General 7fbg Verbose
Exception when resolve principal “hipfinger” from domain “some trusted domain“.
Exception: “The server is not operational. “, StackTrace: ” at System.Directory
Services.DirectoryEntry.Bind(Boolean throwIfFail) at System.DirectoryService
s.DirectoryEntry.Bind() at System.DirectoryServices.DirectoryEntry.get_AdsOb
ject() at System.DirectoryServices.DirectorySearcher.FindAll(Boolean findMor
eThanOne) at System.DirectoryServices.DirectorySearcher.FindAll() at Mic
rosoft.SharePoint.WebControls.PeopleEditor.SearchFromGC(SPActiveDirectoryDomain
domain, String strFilter, String[] rgstrProp, Int32 nTimeout, Int32 nSizeLimit,
SPUserCollection spUsers, ArrayList& rgResults) at Microsoft.SharePoint.Util
ities.SPUserUtility.ResolveAgainstAD(String input, Boolean inputIsEmailOnly, SPA
ctiveDir…

jetzt gilt es nur noch dieses problem zu beheben; anscheinend versucht der server direkt in dieser domain zu suchen, was aber nicht funktionieren kann.