{"id":336,"date":"2009-10-20T10:07:17","date_gmt":"2009-10-20T14:07:17","guid":{"rendered":"http:\/\/blogs.law.harvard.edu\/brandonhaynes\/?p=336"},"modified":"2009-10-21T12:14:28","modified_gmt":"2009-10-21T16:14:28","slug":"preview-dotnetnuke-module-containers","status":"publish","type":"post","link":"https:\/\/archive.blogs.harvard.edu\/brandonhaynes\/2009\/10\/20\/preview-dotnetnuke-module-containers\/","title":{"rendered":"Preview: DotNetNuke Control Panel Module Grouping"},"content":{"rendered":"<p>After lingering in limbo for some time, I am pleased to be able to provide some screenshots of my upcoming DotNetNuke Module Container project. \u00a0This project is expected to be released into beta sometime in mid-November, though I may circulate to a few interested parties before any public release.<\/p>\n<p>The project is designed to address a common usability concern with the default DotNetNuke control panel, which is perhaps best illustrated pictorially:<\/p>\n<div style=\"background-color: #eee;border: solid #777 1px;width: 300px;margin-left: 6em;padding: 6px\">\n<div id=\"attachment_335\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/blogs.law.harvard.edu\/brandonhaynes\/files\/2009\/10\/Scary-Menu.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-335\" src=\"http:\/\/blogs.law.harvard.edu\/brandonhaynes\/files\/2009\/10\/Scary-Menu.png\" alt=\"A Scary DotNetNuke Menu with Many, Many Options\" width=\"300\" height=\"236\" \/><\/a><p id=\"caption-attachment-335\" class=\"wp-caption-text\">A Scary DotNetNuke Menu with Many, Many Options<\/p><\/div>\n<\/div>\n<p>As users of the framework have surely noted, the list of modules available to an administrator is lengthy and highly-confounding. \u00a0While experience mitigates this difficulty, it remains a significant challenge for new administrators to understand which module to select from this imposing list.<\/p>\n<p>This project attempts to group this set of modules into\u00a0manageable\u00a0containers where each module is grouped by function (e.g. administrative modules, e-commerce modules). \u00a0By way of example, a clean DotNetNuke 5.1.4 install with ALL core modules installed (and grouped into logical containers) would be reduced to a very understandable list:<\/p>\n<div style=\"background-color: #eee;border: solid #777 1px;width: 468px\">\n<div id=\"attachment_333\" style=\"width: 478px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/blogs.law.harvard.edu\/brandonhaynes\/files\/2009\/10\/ControlPanel.Minimized.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-333\" class=\"size-full wp-image-333\" src=\"http:\/\/blogs.law.harvard.edu\/brandonhaynes\/files\/2009\/10\/ControlPanel.Minimized.png\" alt=\"A compact, minimized DotNetNuke control panel module list with groups by function.\" width=\"468\" height=\"170\" \/><\/a><p id=\"caption-attachment-333\" class=\"wp-caption-text\">A compact, minimized DotNetNuke control panel module list with groups by function.  Note that the image above continues to utilize the default DotNetNuke control panel; the containers do not require any adjustment to that component.<\/p><\/div>\n<\/div>\n<p>After a container is selected and instantiated, a user is prompted to select from one of the modules contained therein:<\/p>\n<div style=\"background-color: #eee;border: solid #777 1px;width: 468px\">\n<div id=\"attachment_334\" style=\"width: 478px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/blogs.law.harvard.edu\/brandonhaynes\/files\/2009\/10\/Interactive-Modules.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-334\" class=\"size-full wp-image-334 \" src=\"http:\/\/blogs.law.harvard.edu\/brandonhaynes\/files\/2009\/10\/Interactive-Modules.Focus.png\" alt=\"Interactive selection of a module within a grouping after selecting the group from the control panel.\" width=\"468\" height=\"299\" \/><\/a><p id=\"caption-attachment-334\" class=\"wp-caption-text\">Interactive selection of a module within a grouping after selecting the group from the control panel.<\/p><\/div>\n<\/div>\n<p>The selection process utilizes jQuery, minimizes the number of post-backs, and (in my opinion) greatly increases overall usability.<\/p>\n<p>This module is expected to be released sometime in mid-to-late November for public consumption. \u00a0A limited beta may be made available prior to this date, subject to interest.<\/p>\n<p>Your feedback is appreciated. \u00a0Does the lengthy DotNetNuke module list bother you? \u00a0Would you (or your administrators) find a solution of the type outlined above useful? \u00a0Please leave a comment and share your thoughts.<\/p>\n<p>B<\/p>\n<p><!--more-->Some additional screenshots:<\/p>\n<div style=\"background-color: #eee;border: solid #777 1px;width: 468px;padding: 6px;margin-bottom: 1em\">\n<p><a href=\"http:\/\/blogs.law.harvard.edu\/brandonhaynes\/files\/2009\/10\/AdministrativeModules.png\"><img decoding=\"async\" src=\"http:\/\/blogs.law.harvard.edu\/brandonhaynes\/files\/2009\/10\/AdministrativeModules.png\" alt=\"Selecting administrative modules configured in their own container\" width=\"468\" \/><\/a><br \/>\nSelecting administrative modules configured in their own container\n<\/div>\n<div style=\"background-color: #eee;border: solid #777 1px;width: 468px;padding: 6px\">\n<p><a href=\"http:\/\/blogs.law.harvard.edu\/brandonhaynes\/files\/2009\/10\/ModuleSelection.png\"><img decoding=\"async\" src=\"http:\/\/blogs.law.harvard.edu\/brandonhaynes\/files\/2009\/10\/ModuleSelection.png\" alt=\"Screenshot illustrating the process of selecting modules to be part of a grouping\" width=\"468\" \/><\/a><br \/>\nScreenshot illustrating the process of selecting modules to be part of a grouping<\/div>\n","protected":false},"excerpt":{"rendered":"<p>After lingering in limbo for some time, I am pleased to be able to provide some screenshots of my upcoming DotNetNuke Module Container project. \u00a0This project is expected to be released into beta sometime in mid-November, though I may circulate to a few interested parties before any public release. The project is designed to address [&hellip;]<\/p>\n","protected":false},"author":1933,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3062,142],"tags":[3070,19470,6254,6099],"class_list":["post-336","post","type-post","status-publish","format-standard","hentry","category-dotnetnuke-dnn-content-management-system","category-technology","tag-dotnetnuke","tag-dotnetnuke-dnn-content-management-system","tag-dotnetnuke-integration","tag-user-interface"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/archive.blogs.harvard.edu\/brandonhaynes\/wp-json\/wp\/v2\/posts\/336","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/archive.blogs.harvard.edu\/brandonhaynes\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/archive.blogs.harvard.edu\/brandonhaynes\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/archive.blogs.harvard.edu\/brandonhaynes\/wp-json\/wp\/v2\/users\/1933"}],"replies":[{"embeddable":true,"href":"https:\/\/archive.blogs.harvard.edu\/brandonhaynes\/wp-json\/wp\/v2\/comments?post=336"}],"version-history":[{"count":68,"href":"https:\/\/archive.blogs.harvard.edu\/brandonhaynes\/wp-json\/wp\/v2\/posts\/336\/revisions"}],"predecessor-version":[{"id":410,"href":"https:\/\/archive.blogs.harvard.edu\/brandonhaynes\/wp-json\/wp\/v2\/posts\/336\/revisions\/410"}],"wp:attachment":[{"href":"https:\/\/archive.blogs.harvard.edu\/brandonhaynes\/wp-json\/wp\/v2\/media?parent=336"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/archive.blogs.harvard.edu\/brandonhaynes\/wp-json\/wp\/v2\/categories?post=336"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/archive.blogs.harvard.edu\/brandonhaynes\/wp-json\/wp\/v2\/tags?post=336"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}