DotNetNuke의 개발에 오신 것을 환영합니다. 공식 웹 사이트에서는 아무 것도 제공하지 않으며 모든 것은 실험, 블로그, 포럼 및 사이트에서 귀하에게 무언가를 판매하려고 시도하는 것으로부터 배웁니다.
DNN 루트 폴더로 이동하여 /Install/Module/UsersOnline_05.01.00_Install.resources 파일을 여는 것이 좋습니다. .resources로 이름이 변경된 zip 아카이브 일뿐입니다. 그 보관소 안에는 패키지 된 "사용자 온라인"모듈이 있는데 그것은 내가 걷게 될 예제입니다. 모듈 설치, DNN 동안
...snip...
<components>
<component type="Script">
<scripts>
<basePath>DesktopModules\UsersOnline</basePath>
<script type="Install">
<path>Providers\DataProviders\SqlDataProvider</path>
<name>04.09.04.SqlDataProvider</name>
<version>04.09.04</version>
</script>
<script type="Install">
<path>Providers\DataProviders\SqlDataProvider</path>
<name>05.01.00.SqlDataProvider</name>
<version>05.01.00</version>
</script>
<script type="UnInstall">
<path>Providers\DataProviders\SqlDataProvider</path>
<name>Uninstall.SqlDataProvider</name>
<version>05.01.00</version>
</script>
</scripts>
</component>
...snip...
: 이미 .DNN의 XML 패키지는 모듈 생성하는 경우
, 당신은 DNN 설치하는 동안 SQL 스크립트를 실행하도록 알려 새로운 <component>
항목을 추가 할 필요가 여기에 입력 된 스크립트가 버전 번호 순서대로 실행됩니다. 현재 모듈이 다음 설치된 적이없는 설치되는 경우이 순서대로 갈 것 :
- 04.09.04
- 05.01.00
모듈이 이미 설치 및 업그레이드되는 경우 (04.09.04부터), 이전 버전의 스크립트 (이미 실행되었다고 가정 함)를 건너 뛰고 최신 05.01.00 스크립트를 실행하면 모든 것을 최신으로 유지해야합니다. 내장 된 업그레이드 메커니즘을 지원하는 SQL 스크립트를 작성하는 것은 귀하의 책임입니다.
사용자가 모듈을 설치 해제 할 때 실행되는 "설치 해제"스크립트도 있습니다. 이렇게하면 모듈을 정리할 수 있습니다.
/************************************************************/
/***** SqlDataProvider *****/
/***** *****/
/***** *****/
/***** Note: To manually execute this script you must *****/
/***** perform a search and replace operation *****/
/***** for {databaseOwner} and {objectQualifier} *****/
/***** *****/
/************************************************************/
if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}[{objectQualifier}DNNUOL_GetOnlineUsers]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
DROP PROCEDURE {databaseOwner}{objectQualifier}DNNUOL_GetOnlineUsers
GO
CREATE PROCEDURE {databaseOwner}{objectQualifier}DNNUOL_GetOnlineUsers
@PortalID int,
@IncludeHosts bit
AS
IF @IncludeHosts = 0
BEGIN
SELECT
UO.UserID,
U.UserName,
U.DisplayName,
U.FirstName,
U.LastName,
U.FirstName + ' ' + U.LastName AS FullName
FROM
{databaseOwner}{objectQualifier}UsersOnline UO INNER JOIN {databaseOwner}{objectQualifier}Users U ON UO.UserID = U.UserID INNER JOIN {databaseOwner}{objectQualifier}UserPortals UP ON U.UserID = UP.UserID
WHERE
UO.PortalID = @PortalID AND UO.UserID = U.UserID AND UP.Authorised = 1 AND U.IsSuperUser = 0 -- Inner Join takes care of SU = 0, but for sanity.
END
ELSE
BEGIN
SELECT DISTINCT
UO.UserID,
U.UserName,
U.DisplayName,
U.FirstName,
U.LastName,
U.FirstName + ' ' + U.LastName AS FullName
FROM
{databaseOwner}{objectQualifier}UsersOnline UO INNER JOIN {databaseOwner}{objectQualifier}Users U ON UO.UserID = U.UserID, {databaseOwner}{objectQualifier}UserPortals UP
WHERE
UO.PortalID = @PortalID AND UO.UserID = U.UserID AND UP.Authorised = 1
END
GO
/************************************************************/
/***** SqlDataProvider *****/
/************************************************************/
주 databaseOwner {의 사용 :
각 SQL 스크립트는 모듈의 스키마를 만드는 데 필요한 T-SQL 명령, 기본 데이터, 저장 프로 시저 등이 여기에 OnlineUsers 모듈의 스크립트의 스 니펫의를 포함 } 및 {objectQualifier}를 데이터베이스에 생성되는 각 테이블 또는 프로 시저 앞에 추가하십시오. 이러한 토큰은 런타임에 설치의 web.config 파일의 설정으로 대체됩니다. 당신은 일반적으로 이들이 "dbo"로 대체 될 것이라고 가정 할 수 있습니다. 모듈을 판매하거나 제 3 자에게 설치를 제공하는 경우 맞춤 소유자 및 한정자를 지원해야합니다.
는 여기에 몇 가지 추가 자료입니다
+1 첫 번째 단락 –