大厨师

DotNetNuke模块开发简介

本文为翻译内容,原文来自http://adefwebserver.com/DotNetNukeHELP/DNN4_ModuleDevelopersGuide/

仅作参考,不是严格翻译(累了,脑袋不转了,翻成中文再看)

Dnn模块开发简介

什么是DotNetNuke模块?

。。。。 

DotNetNuke 是一个运行于ASP.net的WEB站点框架,安装一份DotNetNuke就可以在一个数据库上运行多个独立或者相关站点,各自拥有独立的皮肤(界面设计)和身份验证。DotNetNuke站点上设置了页面,页面通过模块Module显示数据和内容。

 

站点可以被用户通过web访问,用户和站点可以通过多种不同的方式验证身份(AD,用户名/密码,CradSpace,LiveID,OpenID,…………),安装到Dnn模块为用户提供操作功能,并展示结果。

例如,投票模块可以让用户参与投票并以列表方式查看结果。

DotNetNuke 框架提供了多种功能,例如确定用户是否登录,显示界面,确定谁可以访问一个页面。投票模块扩展了框架,让用户可以参与投票。

投票模块的开发者只需要创建投票的功能就可以了。Dnn框架处理其他的事情,包括模块的安装。开发者仅需要开发创建继承DNN基类(PortalModuleBase or ModuleSettingsBase)的用户控件与Dnn API交互的接口即可。 (PortalModuleBase or ModuleSettingsBase)

DotNetNuke 主机帐户和管理员帐户(Host and Administrator Accounts )(超级管理员和站点管理员)

主机帐户(Host)是整个Dnn安装的管理员,基于此Dnn安装的所有站点均可以管理,是超级管理员。Host经常用于安装模块。另外Host为各个站点设定管理员( Administrator ),站点管理员仅能管理某个特定的站点。 站点管理员不能安装或者卸载模块,但是可以在页面中添加Host许可的模块。站点管理员可以设定页面,在页面中放置模块,设定页面可以访问的用户。 

安装一个模块
下载

".zip" 文件

".zip" 文件中有一个 ".dnn" 配置文件.

打开".dnn" 配置文件,可以看到关于模块所有元素的配置信息。

上传 Survey Module

使用Host登录, 从主机(Host)菜单选择模块定义Module Definitions .

选择安装新模块Install New Module.

在文件上传页面File Upload, 选择下载的".zip" ,点击上传文件 Upload New File.

安装模块列表中(Host > Module Definitions),就可以看到投票模块“the Survey module”.

下一步添加放置模块的页面,如图.

设置页面访问权限.

 

添加投票模块到页面.

投票模块显示在页面上.

点击添加问题Add Question 进行模块设置. 此链接以及功能是.zip文件中的代码提供的功能(This link and the functionality that follows is the result of the code contained in the ".zip" package. 真难理解,到底是谁呀?看后面吧)处理功能是由Dnn提供的The preceding functionality is provided by the DotNetNuke Framework.

添加一个问题点击更新.

然后模块就显示成这样了.

看看模块定义部分Module Definition

选择主机Host > 模块定义 Module Definitions ,点开投票模块定义。你可以看到模块定义中有3个用户控件。:

  • DesktopModules/Survey/Survey.ascx
  • DesktopModules/Survey/EditSurvey.ascx
  • DesktopModules/Survey/Settings.ascx

上传模块后可以看看 DesktopModules/Survey 文件夹,所有模块用到的东西都在这里,包括用户控件.

View Control

DesktopModules/Survey/Survey.ascx 控件边上的编辑按钮可以看到此控件的类型为查看View。控件类型决定控件的安全设置。站点管理员根据控件类型设置用户访问权限。此控件没有Key设置,Dnn框架将按照默认用户控件显示它。

Edit Control

DesktopModules/Survey/EditSurvey.ascx 控件的类型为编辑Edit. 这样站点管理员就知道如何配置这个模块了,和View不同的安全设置。这里有一个Key设置为 Edit.

 Key 很重要,开发者可以使用如下的代码从View control (DesktopModules/Survey/Survey.ascx) 转到 Edit control (DesktopModules/Survey/EditSurvey.ascx) :

Response.Redirect(EditUrl())

反过来从Edit controlView control 可以这样:

Response.Redirect(Globals.NavigateURL(), true)

(参见 How to make A DotNetNuke® link (英文))
Settings Control

查看Settings control (DesktopModules/Survey/Settings.ascx)的详细信息, 可以看到其类型Type设置为Edit, 但是它的 KeySettings.

这些继承自PortalSettingsBase 重载了 LoadSettings() 和 UpdateSettings() 方法的设置将告诉Dnn框架将此用户控件添加到模块设置页面. 模块设置页面通过模块配置菜单可以找到。模块配置菜单需要以站点管理员或者超级管理员身份登录才能访问。点下图中向下的小黑箭头就可以.

转到 Settings 页面. 这里可以设置模块的安全设置如:ViewEdit .

在设置页面下面可以找到投票设置Survey Settings,点加号查看投票设置控件的详细内容Settings user control (DesktopModules/Survey/Settings.ascx.

这样就可以看到设置控件的内容了Settings user control (DesktopModules/Survey/Settings.ascx).

可以有多个例程的控件A Module Can Have Multiple Instances

站点管理员可以在一个页面添加一个模块的多个实例。下图就是在同一个页面有两份调查。

通常情况下不会放两个模块显示相同的内容,因此模块开发的时候要保存模块实例 ModuleID. 对于投票模块Survey module, ModuleID保存在 Surveys 表里面.

ModuleID 贯穿整个Dnn安装的所有站点的唯一值. 下面的代码获取用户控件的ModuleId (模块继承了PortalModuleBase):

Dim intModuleId As Integer
intModuleId = ModuleId

小结

DotNetNuke 真的不错,说了半天还是没有说到开发模块的点子上,困死了,明天再说吧。

重点:DotNetNuke module is a collection of user controls that are configured to work together. These user controls inherit from either PortalModuleBase or PortalSettingsBase. DNN模块是一组配置到一起的用户控件,这些用户控件继承自PortalModuleBase or PortalSettingsBase.

开发自己的Dnn模块 Developing Your Own DotNetNuke Module

想开发自己的Dnn模块还要继续学习后面的文章,我会翻译完整:

DotNetNuke® 4 Module Tutorial Series:

 

DotNetNuke® 已经出了4.7了

posted on 2007-11-14 02:01  大厨师  阅读(5265)  评论(5编辑  收藏  举报

导航