2010-11-29 150 views
0

我試圖將網站上的所有「內容」頁面遷移到DNN5 Pro。頁面上的動態內容

因此,我只是在DNN中創建了所有頁面,向ContentPane添加了HTML模塊,並複製並粘貼了舊頁面中的HTML內容。

問題是,大多數頁面都有一些經典的asp代碼,它們會執行一些次要的服務器端任務 - 例如,使用從DB獲取的價格填充表格,根據他的IP地址預先選擇用戶的國家,一些基本的日期計算等。

很明顯,這段代碼在DNN中不起作用。

如果我不得不遷移到PHP,我只是將這些代碼從傳統的ASP重寫到PHP,然後將值從PHP分配到smarty,然後將它們用在模板中。

但由於DNN有一個完全不同的架構,我看不出有多相似的方法可以使用。

HTML模塊中的令牌替換功能看起來像我需要的功能,但它只允許「映射」DNN提供的令牌。

所以,也許任何人都有類似的問題與DNN和/或知道這應該如何完成。

回答

0

您可以直接在您的皮膚文件中編寫代碼。做一些邏輯,如:

<%If PortalSettings.ActiveTab.TabID = 33 Then 

//code here of what you want 

End If%> 

其中33是您要運行自定義代碼的頁面的頁面ID。還有其他的方法來創建皮膚對象或創建自定義模塊,但這可能是最簡單的方法。只需在你的皮膚上直接編寫代碼。或者爲每個頁面創建一個皮膚副本,然後再用更自然的方式爲自定義代碼執行自定義代碼,但這將會完成。

+0

非常感謝,我想我會堅持這個選項! – 2010-11-30 06:46:23

+0

對不起,但這聽起來像一個可怕的想法。如果您只是要爲每個DNN頁面創建一個自定義外觀文件,那麼使用DNN有什麼意義。功能應該放置在模塊(偶爾皮膚對象)中,而不是直接放在皮膚上。 – EfficionDave 2010-12-01 21:01:04

1

看起來你似乎試圖顛覆DotNetNuke的整個點。雖然肯定有各種各樣的hacky方式可以嘗試使其像PHP網站一樣工作,但這樣做的想法太糟糕了。

相反,您需要評估php站點的每個動態部分,並找到或創建一個將複製該功能的DotNetNuke模塊。

爲了使初始轉換更快速,您可以使用簡單的ASP樣式內聯腳本來構建您創建的模塊,但是您絕對應該使用現有模塊來處理在網格中顯示數據等內容。