динамический контент на страницах - PullRequest
0 голосов
/ 29 ноября 2010

Я пытаюсь перенести все «контентные» страницы сайта на DNN5 Pro.

Итак, я просто создал все страницы в DNN, добавил модуль HTML в ContentPane, скопировал и вставил содержимое HTML со старых страниц.

Проблема в том, что на большинстве страниц есть биты классического кода asp, которые выполняют некоторые второстепенные задачи на стороне сервера - например, заполнение таблиц ценами, полученными из БД, предварительный выбор страны пользователя на основе его IP-адреса, выполнение некоторых расчет базовых дат и т. д.

Очевидно, этот код не будет работать в DNN.

Если бы мне пришлось перейти на PHP, я бы просто переписал эти куски кода с классического ASP на PHP, затем присвоил бы значения из PHP для smarty, а затем использовал бы их в шаблонах.

Но поскольку DNN имеет совершенно другую архитектуру, я не понимаю, как можно использовать подобный подход.

Функция замены токенов в модуле HTML выглядит так, как мне нужно, но она позволяет "отображать" только токены, предоставленные DNN.

Так что, возможно, у кого-то была похожая проблема с DNN и / или он знает, как это сделать.

Ответы [ 2 ]

1 голос
/ 01 декабря 2010

Похоже, вы пытаетесь подорвать весь смысл DotNetNuke. Хотя, конечно, существует множество хакерских способов сделать эту работу такой же, как на сайте php, это ужасная идея.

Вместо этого вам нужно оценить каждый из динамических разделов сайта php и найти или создать модуль DotNetNuke, который будет дублировать эту функциональность.

Чтобы ускорить первоначальное преобразование, вы можете создавать созданные модули с использованием простых встроенных сценариев в стиле ASP, но вам определенно следует использовать существующие модули для таких вещей, как отображение данных в сетке.

0 голосов
/ 30 ноября 2010

Вы можете написать код прямо в файле скина. Сделайте логику вроде:

<%If PortalSettings.ActiveTab.TabID = 33 Then

//code here of what you want

End If%>

Где 33 - идентификатор страницы, на которой вы хотите запустить пользовательский код. Есть и другие способы сделать это, такие как создание объектов скина или создание пользовательских модулей, но это, вероятно, самая простая вещь. Просто напишите код прямо в вашей коже. Или сделайте копию своего скина для каждой страницы, для которой вам нужно сделать собственный код для ... опять же, более элегантных способов, но это будет сделано.

...