1 / 10

Improving DNN Metadata

This document discusses the current limitations within DNN regarding core objects, page settings, and module management. Key issues include the lack of extensibility for core objects, the challenges of deleting module data, and insufficient notifications for extensions about changes in the system. The proposal outlines potential improvements for better communication with the core framework, allowing for access to core objects, extending the object model with custom objects, and implementing a standardized pattern for object types. Such enhancements aim to improve performance and flexibility for extension developers.

jewell
Download Presentation

Improving DNN Metadata

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Improving DNN Metadata Sebastian Leupold

  2. CurrentLimitations I • Core Objects are not extensible • Page Settings • HeaderImage (used in Skin) • Slogan (used in Skin) • Accent color (used in Skin) • TabModule • Productdisplayed in HTML instance (ID used in Solution) • Folder • Allowedfiletypesfor a custommodule

  3. CurrentLimitations II • Cascadedeleteofmoduledata on moduledeleterequiresforeignkeyortrigger on coretable Modules • When a moduleisuninstalled, recordsmayremain in portalSettings,… • Modules usinganotherstoragethan DNN databasehavenooption • Extensionshavenochance, togetnotified on insert/update/deleteofpages, files, folders, users … • The coreframeworkhasfewinformationaboutthemodules, onlybyinterfaces • Interfaces require additional implementation

  4. Whatother CMS do • Other CMS have a single „content“ type, thatgetsmorphed per usecase (bycontent type specificattributes, stored in dedicateddependanttablesorserialized) • mayrestricttheoptionsforextensiondevelopers • mayaffectperformance

  5. Idea • Offerbettercommunicationwithcoreframework: • Access coreobjects • Extendobjectmodelwithcustomobjects • Use a commonpatternforobjecttypes • Offeractionbasedaccess on BCL level • Registration ofcustomobjecttypesduringinstallprocess

  6. PropertyTypes ContentTypes PropertyTypeId PropertyDefinitions PropertyTypeName PropertyDefId ContentTypes [ContentTypeId] PropertyName User Module Tab (Page) TabModule Website Host UserRole RoleGroup EventType Forum ThreadPostBlogPostComment [ModuleDefId] PropertyTypeId ContentTypeId EventTypes EventDefinitions EventTypeId EventTypeName EventDefId [ContentTypeId] EventDefName [ModuleDefId] EventType ContentTypeId PermissionTypes PermissionDefinitions PermissionTypeId PermissionTypeName PermissionDefId [ContentTypeId] PermissionDefName [ModuleDefId] PermissionType [ModuleDefId] ContentTypeId

  7. Event Registration ContentTypes User Module Tab (Page) TabModule Website Host UserRole RoleGroup EventType Forum ThreadPostBlogPostComment EventRegistrations EventDefinitions EventRegisterId ContentTypeId EventDefId EventDefinition EventDefName Before/after… EventType Method Call ContentTypeId [ModuleDefId]

  8. ContentProperties Content PropertyId PropertyTypeId Tabs ObjectTypeId TabId TabName … ModuleId ModuleName … ModuleId ModuleName … TabId/ModuleId/… PropertyValue EventLog Modules EventId EventTypeId ObjectTypeId TabId/ModuleId/… LogData Forums Permissions PermissionId PermissionTypeId ObjectTypeId TabId/ModuleId/… User/Role PermissionValue

  9. ContentProperties Contents PropertyId PropertyTypeId Tabs ContentId objectId = RegisterContent(type, localId) ContentId ContentTypeIdLocalId Auditing TabId TabNameContentId … ModuleId ModuleName ContentId … ModuleId ModuleName ContentId … PropertyValue EventLog ContentItem Modules EventId EventTypeId ContentId LogData Forums Permissions PermissionId PermissionTypeId Taxonomy ContentId User/Role PermissionValue

  10. Profile Property Definitions PropertyTypeId PortalId (optional) ContentId ModuleId

More Related