Create an empty sharepoint project
Create an empty Sharepoint Project and name it as a 'MyCustomCoreResult'
Add Custom Core Results Webpart in the project (inherit from CoreResultsWebpart)
Overriding the methods
You need to override following 3 methods
Create an empty Sharepoint Project and name it as a 'MyCustomCoreResult'
Click Ok and then enter the url of the sharepoit fast search site
Add Custom Core Results Webpart in the project (inherit from CoreResultsWebpart)
Now right click on the project and click on add -> 'New item' -> Webpart
Enter the name of webpart as MyCustomCoreResultWebpart and click on Add button
If you look at the Code behind file of the webpart i.e. MyCustomCoreResultWebpart.cs, by default it would be inherited from the Webpart class replace it with the CoreResultsWebPartclass.
Note : You might have to add the Microsoft.Office.Server.Search.dll most likely located under C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\ISAPI\Microsoft.Office.Server.Search.dll
Overriding the methods
You need to override following 3 methods
a. CreateChildControls
protectedoverridevoid CreateChildControls()
{
base.CreateChildControls();
}
|
b. OnInit
protectedoverridevoid OnInit(EventArgs e)
{
base.OnInit(e);
}
|
c. ChangeDataSourceProperties
protectedoverridevoid ConfigureDataSourceProperties()
{
base.ConfigureDataSourceProperties();
this.XslLink = "/_layouts/xsl/MyCustomCoreResultsXSLT.xslt";
}
|
Add a SharePoint Mapped Folder
Now we need to add our custom XSLT file to the sharepoint site. Right click on the project and click on Add->Sharepoint Mapped Folder.
Now select the appropriate folder for you custom XSLT to reside. For our example I have selected the XSL folder under {SharepointRoot} -> Template -> Layouts -> XSL folder. Click on Ok and it will map the sharepoint XSL folder to our project.
Add CustomCoreResult.xslt file Now we need to get the default xslt of the coreresultwebpart. You can get it from here
Get the content of the xslt from the above link and paste it in this file. You can customize the look and feel of the webpart using this xslt. For this example we will just highlight the matched string of the userquery with orange color.
Search for the string “c0” in the file, You will find something like this
<xsl:templatematch="c0">
<xsl:value-ofselect="."/>
|
Replace the above section with the following one.
<xsl:templatematch="c0">
<spanstyle="background-color:orange">
<xsl:value-ofselect="."/>
|
Build and Deploy Project
This will automatically deploy the webpart and feature in the site you selected earlier. By default feature will be activated. In case it’s not activated, you might have to activate it manually.
Open the site and edit the Results.aspx page to replace the default coreresults webpart with our custom webpart from the custom category in webpart gallery.
Save the page and now the results.aspx should be using your webpart.
As you can see now the highlighted matches will appear in orange color. Some of the other things that you can try is adding new columns in the display results. I have added the Site Name, Company, Content Source details in the search results.