Navigating Blackboard Portals: A Guide to Module Creation and API Integration
E N D
Presentation Transcript
Blackboard Building Blocks Portal Modules and Module Types Tom Joyce, Product Manager, Product Development Monday, October 20, 2014
Road Map • What are Portals? • Module Types • Creating Modules • API
What are Portals? • Portal = Entry point • Customizable for the user • Can unite several sources of information and present them in one central place • Sites can customize the Portal for a specific type of user or market • Good portals are “sticky”
Blackboard Portal Components Tab Layout Contents Module Module Edit Minimize Delete
Module Types • Code for the Module • Every Module has an associated Type • 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
Admin Admin Page for Global Configuration
Creating Module Types • JSP is easiest • Tags Provided for Edit and Admin Pages • modulePersonalizationPage • modulePersonalizationReceipt • moduleAdminPage • ModuleAdminReceipt
Portal API • Java • Class: CustomData • In package blackboard.portal.external • Javadoc available in SDK
Portal API • To get the CustomData for a module, use getModuleData(context) CustomData data = CustomData.getModuleData(pageContext); String text = data.getValue(“body.lunchMenu”); String text = data.getValue(“body.type”);
Portal API • Can also save module global properties 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 • Put it in a System Extension Package • JSPs in /module directory <module-type ext-ref="smpl-module" title="Sample Plug-in Module Type" uicreatable="true"> <jsp-dir>module</jsp-dir> <jsp> <view>view.jsp</view> <edit>edit.jsp</edit> <admin>admin.jsp</admin> </jsp> </module-type>
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 • Entries in bb-manifest.xml file: • module • channel
Creating a Module • Module is packaged a standard Integration Agent Package • bb-manifest.xml • module • channel
Specifying a Module • Module Manifest Entry: <module type="portal/channel" isadmin="true" useraddable="true" isdeletable="true" title="Sample Channel Module"> <description>Sample channel module. This module accesses the RSS channel installed with this plug-in.</description> <ExtraInfo> <property key="channel.id" type="String">smpl-gamenews</property> </ExtraInfo> </module>
Specifying a Module • Channel Manifest Entry (Module Def): <module type="portal/channel" isadmin="true" useraddable="true" isdeletable="true" title="Sample Channel Module"> <description>Sample channel module. This module accesses the RSS channel installed with this plug-in.</description> <ExtraInfo> <property key="channel.id" type="String">smpl-gamenews</property> </ExtraInfo> </module>
Specifying a Module • Channel Manifest Entry (Channel Def): <rss-channel ext-ref="gamenews" title="Game News"> <data-url> <http://www.palminfocenter.com/feed.xml </data-url> </rss-channel>
Specifying a Module • Can also optionally specify Portal Roles <module-groups> <module-group id="Student"/> </module-groups>
Thank You Demos to Follow >