erwin

DotNetNuke expert? no, I'm just DNN Skins expert.
See also: Other Geeks@INDC

Instalasi AJAX pada DotNetNuke

Untuk dapat menggunakan silahkan download dan install pada komputer anday Microsoft ASP.NET AJAX v1.0 BETA 2 dan ASP.NET AJAX Control Toolkit.

Letakkan beberapa file berikut pada directory bin :

  • Microsoft.Web.Extensions.dll (ASP.NET AJAX v1.0)
  • Microsoft.Web.Extensions.Design.dll (ASP.NET AJAX v1.0)
  • AJAXExtensionsToolbox.dll (ASP.NET AJAX v1.0)
  • AjaxControlToolkit.dll (ASP.NET AJAX Control Toolkit)

Serta copy folder ScriptLibrary (ASP.NET AJAX v1.0) ke folder root dari DotNetNuke.

  • Microsoft.Web.Extensions.dll (ASP.NET AJAX v1.0)
  • Microsoft.Web.Extensions.Design.dll (ASP.NET AJAX v1.0)
  • AJAXExtensionsToolbox.dll (ASP.NET AJAX v1.0)
  • AjaxControlToolkit.dll (ASP.NET AJAX Control Toolkit)

Serta copy folder ScriptLibrary (ASP.NET AJAX v1.0) ke folder root dari DotNetNuke.

Cara yang di gunakan hampir sama dengan yang di ajarkan, yaitu dengan mencustomize/menambahkan beberapa configurasi yang di perlukan pada Site Configuration [Web.Config], seperti di bawah ini : 

<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="microsoft.web" type="Microsoft.Web.Configuration.MicrosoftWebSectionGroup,
Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<sectionGroup name="scripting" type="Microsoft.Web.Configuration.ScriptingSectionGroup,
Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<sectionGroup name="webServices" type="Microsoft.Web.Configuration.ScriptingWebServicesSectionGroup,
Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<section name="jsonSerialization" type="Microsoft.Web.Configuration.ScriptingJsonSerializationSection,
Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
requirePermission="false" />
<section name="profileService" type="Microsoft.Web.Configuration.ScriptingProfileServiceSection,
Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
requirePermission="false" />
<section name="authenticationService" type="Microsoft.Web.Configuration.ScriptingAuthenticationServiceSection,
Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
requirePermission="false" />
</sectionGroup>
</sectionGroup>
</sectionGroup>
</configSections>

<system.web>
<pages>
<controls>
<add tagPrefix="asp" namespace="Microsoft.Web.UI"
assembly="Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add tagPrefix="asp" namespace="Microsoft.Web.UI.Controls"
assembly="Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</controls>
<tagMapping>
<add tagType="System.Web.UI.WebControls.CompareValidator"
mappedTagType="Microsoft.Web.UI.Compatibility.CompareValidator,
Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add tagType="System.Web.UI.WebControls.CustomValidator"
mappedTagType="Microsoft.Web.UI.Compatibility.CustomValidator,
Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add tagType="System.Web.UI.WebControls.RangeValidator"
mappedTagType="Microsoft.Web.UI.Compatibility.RangeValidator,
Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add tagType="System.Web.UI.WebControls.RegularExpressionValidator"
mappedTagType="Microsoft.Web.UI.Compatibility.RegularExpressionValidator,
Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add tagType="System.Web.UI.WebControls.RequiredFieldValidator"
mappedTagType="Microsoft.Web.UI.Compatibility.RequiredFieldValidator,
Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add tagType="System.Web.UI.WebControls.ValidationSummary"
mappedTagType="Microsoft.Web.UI.Compatibility.ValidationSummary,
Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</tagMapping>
</pages>
<!--
Set compilation debug="true" to insert debugging
symbols into the compiled page. Because this
affects performance, set this value to true only
during development.
-->

<compilation debug="false">
<assemblies>
<add assembly="Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</assemblies>
</compilation>

<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="Microsoft.Web.Script.Services.ScriptHandlerFactory,
Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add verb="GET" path="ScriptResource.axd" type="Microsoft.Web.Handlers.ScriptResourceHandler"  validate="false"/>
</httpHandlers>

<httpModules>
<add name="WebResourceCompression" type="Microsoft.Web.Handlers.WebResourceCompressionModule,
Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="ScriptModule" type="Microsoft.Web.UI.ScriptModule,
Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</httpModules>
</system.web> <microsoft.web>
<scripting>
<webServices>
<!-- Uncomment this line to customize maxJsonLength and add a custom converter -->
<!--

<jsonSerialization maxJsonLength="500">
<converters>
<add name="ConvertMe" type="Acme.SubAcme.ConvertMeTypeConverter"/>
</converters>
</jsonSerialization>
-->


<!-- Uncomment this line to enable the authentication service. Include requireSSL="true" if appropriate. -->
<!--
<authenticationService enabled="true" requireSSL = "true|false"/>
-->


<!-- Uncomment these lines to enable the profile service. To allow profile properties to be retrieved
and modified in Atlas applications, you need to add each property name to the setProperties and
getProperties attributes. -->
<!--
<profileService enabled="true"
setProperties="propertyname1,propertyname2"
getProperties="propertyname1,propertyname2" />
-->

</webServices>
</scripting>
</microsoft.web>

<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>

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

<handlers>
<remove name="WebServiceHandlerFactory-ISAPI-2.0"/>
<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode"
type="Microsoft.Web.Script.Services.ScriptHandlerFactory,
Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</handlers>
</system.webServer>
</configuration>


Penting

Pada bagian akhir, check value dari parameter xhtmlconformance. Perlu diingat, mode harus di set menjadi "Transitional" agar dapat menggunakan ASP.NET AJAX v1.0.
Karena jika hal ini belum dilakukan, akan menyebabkan AJAX tidak berjalan sesuai apa yang di harapkan.

<xhtmlconformance mode="Transitional">

Peletakan Script Manager

ScriptManager, object dari ASP.NET AJAX harus ada pada skin yang akan digunakan pada website dotnetnuke agar dapat digunakan beserta AJAX.

Lokasi skin ASCX anda berada pada  /Root/Portals/_default/Skins/[YourSkin].

Sebagai contoh adalah cara memodifikasi skin DNN-Blue yang merupakan bawaan dari DotNetNuke. Skin DNN-Blue terbagi menjadi 4 buah file ASCX:

  • Horizontal Menu - Fixed Width.ascx
  • Horizontal Menu - Full Width.ascx
  • Vertical Menu - Fixed Width.ascx
  • Vertical Menu - Full Width.ascx

Tambahkan sintaks ScriptManager pada tiap skin (atau hanya pada skin yang digunakan) seperti di bawah ini.

<%@ Control language="vb" CodeBehind="~/admin/Skins/skin.vb" AutoEventWireup="false" Explicit="True" 
           Inherits="DotNetNuke.UI.Skins.Skin" %>
<%@ Register TagPrefix="dnn" TagName="LOGO" src="/dnn/Portals/0/~/Admin/Skins/Logo.ascx" %>
<%@ Register TagPrefix="dnn" TagName="BANNER"
                         src="/dnn/Portals/0/~/Admin/Skins/Banner.ascx" %>
<%@ Register TagPrefix="dnn" TagName="MENU"
                         src="/dnn/Portals/0/~/Admin/Skins/SolPartMenu.ascx" %>
<%@ Register TagPrefix="dnn" TagName="SEARCH"
                         src="/dnn/Portals/0/~/Admin/Skins/Search.ascx" %>
<%@ Register TagPrefix="dnn" TagName="CURRENTDATE"
                         src="/dnn/Portals/0/~/Admin/Skins/CurrentDate.ascx" %>
<%@ Register TagPrefix="dnn" TagName="BREADCRUMB"
                         src="/dnn/Portals/0/~/Admin/Skins/BreadCrumb.ascx" %>
<%@ Register TagPrefix="dnn" TagName="USER" src="/dnn/Portals/0/~/Admin/Skins/User.ascx" %>
<%@ Register TagPrefix="dnn" TagName="LOGIN" src="/dnn/Portals/0/~/Admin/Skins/Login.ascx" %>
<%@ Register TagPrefix="dnn" TagName="COPYRIGHT"
                          src="/dnn/Portals/0/~/Admin/Skins/Copyright.ascx" %>
<%@ Register TagPrefix="dnn" TagName="TERMS"
                          src="/dnn/Portals/0/~/Admin/Skins/Terms.ascx" %>
<%@ Register TagPrefix="dnn" TagName="PRIVACY"
                         src="/dnn/Portals/0/~/Admin/Skins/Privacy.ascx" %>
<%@ Register TagPrefix="dnn" TagName="DOTNETNUKE"
                         src="/dnn/Portals/0/~/Admin/Skins/DotNetNuke.ascx" %>
<%@ Register TagPrefix="dnn" TagName="LANGUAGE"
                         src="/dnn/Portals/0/~/Admin/Skins/Language.ascx" %>

<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true" />

Selamat, installasi of ASP.NET AJAX v1.0 BETA 2 selesai!

erwin yulianto

Share this post: | | | |
Posted: Dec 11 2006, 08:12 PM by erwin | with 1 comment(s)
Filed under: ,

Comments

fun-e said:

Makasih2x informasinya berguna sekali :D

# March 7, 2007 5:57 PM