DotNetNuke Модификация менеджера цифровых активов
Я хочу извлечь модуль Digital Assets Manager / Management (DAM) из исходного дистрибутива платформы DotNetNuke 7.3.1, который должен быть скомпилирован в отдельный модуль, чтобы я мог внести некоторые изменения в соответствии с определенными вариантами использования.
Что я сделал:
- Я скопировал модуль DigitalAssets в свежую копию локальной среды разработки (DNN 7.3.1)
- Я изменил все пространства имен (я не удосужился переименовать имена файлов)
- Я использовал DotNetNuke.Modules.DigitalAssets.csproj, чтобы получить VisualStudio sln
- Я вычистил виртуальные каталоги и приложения из IIS
- Я исправил другие проблемы с библиотеками, которые выдавали ошибки
- Я получил его, чтобы скомпилировать и создать.dll с другим именем для исходного модуля
Итак, теперь, когда я добавляю этот модуль на страницу (теоретически), мне следует ожидать точно такого же поведения, как и в исходном модуле DigitalAssets, поставляемом с платформой.
Но это не ведет себя так же.
- На самом деле он, кажется, обновляет страницу, как будто она застряла в бесконечном цикле.
- Он также не загружает никаких документов.
- Он также не загружает вкладку Настройки управления цифровыми активами.
- Оригинальный модуль DigitalAssets работает просто отлично.
Я заметил ошибку POST в окне консоли формы:
JQMIGRATE: ведение журнала активно jquery-migrate.js? Cdv = 23: 21
POST http://devsite1.me/DesktopModules/DigitalAssets/API/ContentService/GetFolderContent 401 (не авторизовано) - jquery.js? Cdv=23:8526
отправить - jquery.js? cdv=23:8526
jQuery.extend.ajax - jquery.js? cdv = 23: 7978
loadFolder - dnn.DigitalAssets.js? cdv = 23: 1492
loadFolderFirstPage - dnn.DigitalAssets.js? cdv = 23: 1437
loadInitialContent - dnn.DigitalAssets.js? cdv = 23: 1431
gridOnGridCreated - dnn.DigitalAssetsController.js? cdv = 23: 47
gridOnGridCreated - dnn.DigitalAssets.js? cdv = 23: 205
(анонимная функция) - jquery.js: 9597
Telerik.Web.UI.RadWebControl.raiseEvent - jquery.js: 9597
(анонимная функция) - jquery.js: 9597
Telerik.Web.UI.RadGrid.initialize - jquery.js: 9597
Sys.Component.endUpdate - jquery.js: 9597
Sys.Component.create - jquery.js: 9597
(анонимная функция) - My-DAM? folderId = 41 & view = gridview & pageSize = 10: 1154
(анонимная функция) - jquery.js: 9597
Sys._Application._raiseInit - jquery.js: 9597
Sys._Application.initialize - jquery.js: 9597
b - jquery.js: 9597
document.addEventListener.a - jquery.js: 9597
Интересно отметить, что я не получаю никаких других ошибок или журналов событий. Эти анонимные вызовы функций заставляют меня волноваться.
Мне кажется, я пропустил что-то важное. Любая помощь в этом с благодарностью.
РЕДАКТИРОВАТЬ 1:
Нашел эту ошибку в loadFolder - dnn.DigitalAssets.js?cdv=23:1492
Произошла ошибка при загрузке содержимого папки
Ошибка, вызванная вызовом ajax /DesktopModules/DigitalAssets/API/ContentService/GetFolderContent
оказание услуг. Проблема в том, что он фактически указывает на оригинальный модуль DigitalAssets, а не тот, над которым я работаю. Итак, это должно измениться.
Статус 401 Несанкционированный не исправлен.
РЕДАКТИРОВАТЬ 2:
После дальнейшего расследования я нашел GetFolderContent()
функция в ContentServiceController.cs, которая, в свою очередь, должна возвращать объект со структурой папок.
[AllowAnonymous] для этой функции также не приводил к исчезновению Status 401.
РЕДАКТИРОВАТЬ 3:
Изменение URL на что-либо другое, то /DesktopModules/Module_Name/API/ContentService/GetFolderContent
вызывает вызов вызова AJAX Status 404 Not Found и выводит сообщение об ошибке An error occured while loading the folder content. Not Found
,
Что, я надеюсь, означает, что вызов ajax на самом деле GetDolderContent()
и назад. Что касается того, почему он возвращается со статусом 401, все еще расследуется.
РЕДАКТИРОВАТЬ 4:
ОК, похоже, проблема в том, как я получил модуль для сборки в Visual Studio. Пробовал собирать его в режиме релиза и пока он собирался успешно я не получил свой install
а также packages
папки упакованы со всеми важными качествами.
РЕДАКТИРОВАТЬ 5:
Все работы по созданию этого модуля временно приостановлены. Мне удалось заставить его скомпилировать вместо оригинального модуля DigitalAssets, что было довольно легко. Но теперь он тянет DotNetNuke.Web.dll (или File Uploader, чтобы быть более конкретным) после себя.
Получение DotNetNuke.Web для компиляции было точно таким же процессом, который довольно прост. Но сейчас я торгую с возможностью обновления платформы более чем в одном месте. Что мне не особо нравится.
1 ответ
Просто чтобы закрыть вопрос заключение следующим образом.
Проект; Приобретение Digital Assets Manager приостановлено. В то время не было достаточно знаний о внутренней работе DNN, что позволило бы мне развиваться, не теряя слишком много времени.
На данный момент я закончил модификацию основного модуля (не идеально). В будущем, когда у меня будет меньше дел, которые нужно сделать как можно скорее, я обязательно вернусь к этой идее.