Dotnetnuke 页面上的动态内容

Dotnetnuke 页面上的动态内容,dotnetnuke,Dotnetnuke,我正在尝试将网站上的所有“内容”页面迁移到DNN5 Pro 所以我只是在DNN中创建了所有页面,将HTML模块添加到ContentPane,并从旧页面复制和粘贴HTML内容 问题是,大多数页面都有一些经典的asp代码,这些代码执行一些次要的服务器端任务——例如,用从DB获取的价格填充表格,根据用户的IP地址预先选择用户的国家,进行一些基本的日期计算,等等 显然,此代码在DNN中不起作用 如果我必须迁移到PHP,我只需将这些代码从经典ASP重写为PHP,然后将PHP中的值分配给smarty,然后在

我正在尝试将网站上的所有“内容”页面迁移到DNN5 Pro

所以我只是在DNN中创建了所有页面,将HTML模块添加到ContentPane,并从旧页面复制和粘贴HTML内容

问题是,大多数页面都有一些经典的asp代码,这些代码执行一些次要的服务器端任务——例如,用从DB获取的价格填充表格,根据用户的IP地址预先选择用户的国家,进行一些基本的日期计算,等等

显然,此代码在DNN中不起作用

如果我必须迁移到PHP,我只需将这些代码从经典ASP重写为PHP,然后将PHP中的值分配给smarty,然后在模板中使用它们

但由于DNN有一个完全不同的体系结构,我看不出如何使用类似的方法

HTML模块中的令牌替换功能看起来像我需要的,但它只允许“映射”DNN提供的令牌


因此,可能有人对DNN有类似的问题,并且/或者知道应该怎么做。

您可以直接在皮肤文件中编写代码。做一些逻辑,比如:

<%If PortalSettings.ActiveTab.TabID = 33 Then

//code here of what you want

End If%>


其中33是要在其上运行自定义代码的页面的页面id。还有其他方法,如创建蒙皮对象或创建自定义模块,但这可能是最简单的方法。只需直接在皮肤中编写代码。或者为每个需要自定义代码的页面制作一份皮肤副本。。。同样,还有更优雅的方式,但这会让你成功。

你似乎在试图颠覆DotNetNuke的整个观点。当然,有各种各样的黑客方法可以让它像php站点一样工作,但这样做是一个糟糕的想法

相反,您需要评估php站点的每个动态部分,并找到或创建一个将复制该功能的DotNetNuke模块


为了加快初始转换,您可以使用简单的ASP风格的内联脚本构建您创建的模块,但您肯定应该使用现有模块来实现网格中的数据显示等功能。

对不起,这听起来是个糟糕的主意。如果您只是想为每个DNN页面创建一个自定义皮肤文件,那么使用DNN有什么意义呢。功能应该放在模块中(偶尔也放在皮肤对象中),而不是直接放在皮肤中。这仍然取决于。我发布了维塔利最简单的解决方案。根据他上面的评论,他说“未成年人”。他是这个框架的新手,我不希望他开始为每个页面设计一个自定义模块。你能为Vitaly发布一些资源来开始使用这种技术进行模块开发吗?可能会帮助他开始做更复杂的事情。此外,按名称引用任何模块也可能有一些用处。核心报告模块可以在“网格”中显示数据,但我觉得它没有多大用处。另一方面,TressleWorks组件非常优秀。我知道我采取了错误的方法,但目标是尽快迁移至少内容页,然后我可以开始将整个网站移动到DNN模块。所以我只是在寻找最快的方法(结果证明这是最脏的方法)。我明白有时候你需要使用最快的方法,然后再回去做清理(尽管这种清理通常从未发生过)。我只是觉得皮肤不是做这件事的好地方。DNN的最新版本使简单的自定义模块开发变得非常容易。它为您生成文件和定义,您只需将脚本添加到它创建的ascx文件中。另外,Shawn Walker最近还发布了一篇关于快速内联脚本的博客。还有一些DNN模块可以让您加载任何ascx文件。我们有自己的未发布版本,但我知道我看到了其他版本的公告。这也可能是一个很好的临时解决方案。您不必为所有内容创建模块,只需将所有代码写入ascx文件即可。