Mavention Blog
If you are creating search scopes you have four options to configure your scope rule type:
1. Web Address
2. Property Query
3. Content Source
4. All Content


If you choose the option ‘Property Query’ you will be asked to select one of the property restrictions. Again you have four options to select from:
1. Author
2. Contentclass
3. Site
4. SiteName



Author, Site and SiteName will do just what the name tells you. Select content by author, select content by its site location or select content by the sitename.
 
The contentclass property gives you the possibility to build your rule based on the content class of the item(s) you want this search scope to return.
Therefore you’ll have to know what value to provide for the different content classes you can specify here. On Jose Barreto’s blog (
http://blogs.technet.com/josebda/archive/2007/03/23/site-directory-in-moss-2007-via-a-custom-search-scope.aspx) you can read more on this topic.
 
For your convenience here are all values that you can specify with the ContentClass:
  • Search Query: urn:content-class:SPSSearchQuery
  • News Listing: urn:content-class:SPSListing:News
  • People: urn:content-class:SPSPeople
  • Category: urn:content-classes:SPSCategory
  • Listing: urn:content-classes:SPSListing
  • Person Listing: urn:content-classes:SPSPersonListing
  • Text Listing: urn:content-classes:SPSTextListing
  • Site Listing: urn:content-classes:SPSSiteListing
  • Site Registry Listing: urn:content-classes:SPSSiteRegistry
  • Site: STS_Web
  • List: STS_List
  • List Item: STS_ListItem
  • Events: STS_List_Events
  • Tasks: STS_List_Tasks
  • Announcements: STS_List_Announcements
  • Discussions: STS_List_DiscussionBoard
  • Contacts: STS_List_Contacts
  • Links: STS_List_Links
  • Document Library: STS_List_DocumentLibrary
  • Document Library Items: STS_ListItem_DocumentLibrary
  • Picture Library: STS_List_PictureLibrary
  • Picture Library Items: STS_ListItem_PictureLibrary
Another link that provides more information can be found in an MSDN article which can be found at http://msdn2.microsoft.com/en-gb/library/ms975759.aspx

Ciao,
Niels
Posted: 21-2-2009 9:56:58 by Niels Loup | with 0 comments


Hi All,

Have you ever wanted to programmatically enable receiving of mail on a SharePoint list or library?

Here's how you can accomplish this.
Suppose your domainname is : mydomain.local


// Get the list
using (SPSite site = new SPSite(@"http://portal.mydomain.local"))
{
    using (SPWeb web = site.RootWeb)
    {
        SPList list = web.Lists["Documents"];
 
        // Check if this list is able to receive email. Not all list types are able to receive email.
        // Only the following list types are able to receive email:
        //  - Document, picture, or form library
        //  - Announcements list
        //  - Calendar list
        //  - Discussion board
        //  - Blog
        //
        if (list.CanReceiveEmail)
        {
            // Set 'Allow this document library to receive e-mail?' to YES.
            list.EnableAssignToEmail = true;
 
            // Set 'E-mail address:' to the following address
            list.EmailAlias = "manuals";
 
            // Don't forget to save the changes you've made
            list.Update();
        }
 
    }
}


After you've run this code you now can send emails to
manuals@mydomain.com

ps. Make sure that you've setup the outgoing/incoming mailsettings in Central Admin -> Operations before running this code!


That's all folks!!!

Ciao,
Niels
 
Posted: 20-2-2009 23:09:07 by Niels Loup | with 0 comments


One of the nice things in WSS is that you can create your own site definitions through XML. MOSS adds a whole bunch of nice features that you can use while creating your site definitions.
One feature that is used very often is the Publishing Feature. One of the things this feature does is creating a document library for storing all kinds of documents.
But did you know that there are a lot of properties (not all well documented by MS) that you can use to configure the publishing feature to your needs? I used Red Gate’s reflector tool to come up with a list of all possible properties that you can use to configure the feature to your needs.

PropertyName (value description)
AlternateCssUrl
AvailablePageLayouts (; separated)
AvailableWebTemplates (; separated)
ChromeMasterUrl
EnableApprovalWorkflowOnDocuments
EnableApprovalWorkflowOnImages
EnableApprovalWorkflowOnPages
EnableModerationOnDocuments
EnableModerationOnImages
EnableModerationOnPages
EnableSchedulingOnDocuments
EnableSchedulingOnImages
EnableSchedulingOnPages
MigrationOverride
PagesListUrl
RequireCheckoutOnDocuments
RequireCheckoutOnImages
RequireCheckoutOnPages
SimplePublishing
VersioningOnDocuments (Major, MajorAndMinor, None)
VersioningOnImages (Major, MajorAndMinor, None)
VersioningOnPages (Major, MajorAndMinor, None)
WelcomePageUrl

Ciao,
Niels

Posted: 19-2-2009 7:24:43 by Niels Loup | with 1 comments


The QPSiteDataQuery object enables you to describe a query performed across multiple lists, which may be located in multiple web sites in the same Web site collection.
One of the major features is that all queries that are performed trough this object are cached. This means that when you perform the query multiple times on the same data you’ll experience better performance than using a object that does not use data caching.
Like most of the WSS\MOSS query objects, you’ll have to configure the query object by using CAML.
Recently I got a question why the SPSiteDataQuery object was not returning data, although there were enough records that would match the query.
For example: Suppose you have a simple custom list in WSS/MOSS that contains just two fields
1.       Title
2.       Email address
This list contains the following records:
·         User A; user_a@domain.com
·         User B; user_b@domain.com
·         User C;
As you can see in the list above, User C has no filled in email address.
To query this list you could configure the SPSiteDataQuery object as below:
SPList list = web.Lists["Testlist"];
SPSiteDataQuery query = new SPSiteDataQuery();
query.Lists = string.Format("<Lists><List ID='{0}'/></Lists>", list.ID);
query.ViewFields = "<FieldRef Name='Email' />";
query.RowLimit = 25;
 
As you can see I defined the ViewFields property to display the email field. But what will happen when the field in question has no data entered by the user, as User C in our example? When the query hits a field with no data entered by the user it will abort the query completely and will not return any records. Why not just skipping the records that do not match the query? I don’t know, but the good news is that you can configure the query to display all results even if a so called ‘null-value’ is being encountered.
How to accomplish this? Just change the ViewFields property by adding a ‘nullable=true’ attribute to the CAML syntax.
query.ViewFields = "<FieldRef Name='Email' Nullable='True' />";

Et voila. Now you have the results that you expected in the first place.

Ciao,
Niels

Posted: 18-2-2009 11:45:16 by Niels Loup | with 2 comments


All Mavention SharePoint experts are now certified in one or more of the Microsoft Certified Technical Specialist certifications for SharePoint. This means that Mavention is ready for the next step in SharePoint certification, the Microsoft Certified Master for SharePoint!!
 
Two Mavention experts (Robert and Marcel) have qualified themselves for this exclusive training program. During the last weeks Robert and Marcel were very busy with updating their (English) CV and translating some reference materials from some of the key SharePoint projects they’ve been working on in the last year. Last Friday they both got the message that they were accepted to join the MCM training in June 2008 in Redmond!!
 
Microsoft describes this training as follows: The Microsoft Certified Master: Microsoft Office SharePoint Server 2007 program provides the most in-depth and comprehensive training available today for Office SharePoint Server 2007. This three-week training program is delivered by recognized experts from Microsoft and Microsoft partner organizations.”
 
Being trained for 3 weeks by leaders in the global SharePoint community must be an unforgettable experience . I guess they will have to work there guts out over there, but I also think they will appreciate it and be enthusiastic about it till the last day.
 
On the Mavention blog there will be on a regular basis an update of the progress of the MCM program of Robert and Marcel.
 
GoodLuck Robert & Marcel
 
 
 
Posted: 17-2-2009 9:19:31 by Lennard van Leuven | with 0 comments