Thursday, January 22, 2009

SmartPart plus Integration av Google Search i MOSS 2007

Nyckelord: SharePoint, Google Search, SmartPart, Ajax

1. Ladda ner och installera SmartPart (ReturnOfSmartPartv1_3.zip)

http://www.codeplex.com/smartpart/Release/ProjectReleases.aspx?ReleaseId=10697

2. Aktivera SmartPart i Site Collection Features

clip_image002

3. Detta kommer att ge dig två web Parts, ena är för asp.net applikationer och den andra är för AJAX applikationer.

clip_image004

4. Nu har du en fungerande SmartPart som kan innehålla vilken asp.net applikation som helst.

Vill du dessutom ha AJAX stöd då måste du göra följande:

1. Ladda ner och installera asp.net 2.0 AJAX Extension

http://www.asp.net/AJAX/downloads/

2. Ladda ner Search Integration för Google och installera enligt anvisning

http://www.codeproject.com/KB/sharepoint/Search-Integaration.aspx

3. Nu kommer det jobbigaste momenten, ta en kopia av din web.config som ligger under rooten för din webbapplikation, typ C:\Inetpub\www\wss\virtualdirectories\80 och spara detta som web.config.org

4. Lägg till följande avsnitt: i din web.config fil

A. Strax efter <configuration><configSections>

Lägg till följande:

<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">

<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">

<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>

<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">

<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="Everywhere" />

<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication" />

<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication" />

</sectionGroup>

</sectionGroup>

</sectionGroup>

B. Strax innan </pages>

Lägg till följande:

<controls>

<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>

</controls>

C. Strax innan </assemblies>

Lägg till följande:

<add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>

D. Strax efter <httpHandlers>

Lägg till följande:

<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>

E. Strax efter <httpModules> <clear />

Lägg till följande:

<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>

F. Strax innan </SafeControls> Lägg till:

<SafeControl Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Namespace="System.Web.UI" TypeName="*" Safe="True" />

G. Sist men inte minst, innan </configuration>
     Lägg till följande:

system.webServer>

<validation validateIntegratedModeConfiguration="false"/>

<modules>

<add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>

</modules>

<handlers>

<remove name="WebServiceHandlerFactory-Integrated" />

<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode"

type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>

<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>

<add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />

</handlers>

</system.webServer>

Nu behöver du eventuellt starta om SharePoint servern, eller åtminstone köra en IISRESET.

Kopiera cs-filen och ascx-filen till mappen C:\Inetpub\www\wss\virtualdirectories\80\UserControls (OBS! mappen Usercontrols finns inte och behöver skapas manuellt)

clip_image006

OBS! HiddenField ID:et i filen SharepointGoogleSearchIntegration.ascx ska ändras till följande:

<asp:HiddenField ID="HiddenField1" runat="server" />

Blir

<asp:HiddenField ID="hdnField" runat="server" />

Lägg till en web part som heter SmartPart Ajax till din söksidas resultat sida.

Välj sedan rätt User Control, spara och starta en sökning

clip_image008

Resultatet blir som nedan:

clip_image010

Njut! :)

No comments: