Portal Modules & Module Types Heather Natour Senior Software Engineer, Blackboard Community System
Road Map What are Portals? Module Types Creating Modules API
Audience B2 Developers that want to create Portal Modules Java/JSP Programmers Some knowledge of B2 Programming …Or Just Interested to see what’s possible with Portal Modules
What are Portals? Provides an Entry Point Provides a Customized User Experience Unites several sources of information and present them in one central place Sites can customize Portal for a specific type of user or market –Student, Faculty, East, West “Sticky”
Example of a “sticky” Portal
Blackboard Portal Components Tab Module Module Edit Minimize Delete ContentsLayout
Module Types Code for the Module Every Module has an associated Type – A Type could have more than one instance One or more JSP pages
Pre Built Module Types Include HTML Include URL RSS Channel
Module Type JSP Pages View –What gets displayed when the module is rendered Admin –Edit Global properties Edit –User customizable properties
View Rendered Inline No HTML Header or Body Tags
Edit Calls the edit page
Edit
Admin Admin Page for Global Configuration Manage Modules Page
Admin
Creating Module Types JSP is easiest Tags Provided for Edit and Admin Pages (more info in Dev Guide) –modulePersonalizationPage –modulePersonalizationReceipt –moduleAdminPage –moduleAdminReceipt
Portal API Java Class: CustomData In package blackboard.portal.external Javadoc available in SDK
Portal API CustomData data = CustomData.getModuleData(pageContext); String text = data.getValue(“body.lunchMenu”); String text = data.getValue(“body.type”); To get the Global CustomData for a module, use getModuleData(context)
Portal API Can also save Global properties for a module using this same object CustomData data = CustomData.getModuleData(pageContext); String text = data.setValue(“body.lunchMenu”, “Roast Turkey”); String text = data.setValue(“body.type”,”Entrée”); data.save();
Portal API Similar Methods exist to set user specific data CustomData data = CustomData.getModulePersonalizationData(pageContext ); String text = data.setValue(“userpref.display”, “ALL”); data.save();
Packaging the Module Type module view.jsp edit.jsp admin.jsp Put it in a System Extension Package JSPs in /module directory
Creating a Module Can specify a module type already in the system or in the same installation package Many modules can be created using the Bb supplied types Could leverage types that become available in the community
Creating a Module Module is packaged as a standard Building Blocks Package bb-manifest.xml –module –channel
Specifying a Module Manifest Entry (Module Def): Sample channel module. This module accesses the RSS channel installed with this plug-in. macnews
Specifying a Module Channel Manifest Entry (Channel Def):
Specifying a Module Can also optionally specify Portal Roles (Primary and Secondary)
Demonstration!