Blackboard Building Blocks
description
Transcript of Blackboard Building Blocks
Blackboard Building Blocks
Portal Modules and Module Types
Thursday, April 20, 2023
Tom Joyce, Product Manager, Product Development
Road Map
What are Portals?Module TypesCreating ModulesAPI
What are Portals?
Portal = Entry pointCustomizable for the userCan unite several sources of information
and present them in one central placeSites can customize the Portal for a
specific type of user or marketGood portals are “sticky”
Example of a “sticky” Portal
Blackboard Portal ComponentsTab
Module
Module Edit
Minimize
Delete
Contents
Layout
Module Types
Code for the ModuleEvery Module has an associated TypeOne or more JSP pages
Pre Built Module Types
Include HTMLInclude URLRSS Channel
Module Type JSP Pages
View– What gets displayed when the module is
rendered
Admin– Edit Global properties
Edit– User customizable properties
View
Rendered InlineNo HTML Header or Body Tags
Edit
Calls the edit page
Edit
Admin
Admin Page for Global
Configuration
Admin
Creating Module Types
JSP is easiestTags Provided for Edit and Admin Pages
– modulePersonalizationPage– modulePersonalizationReceipt– moduleAdminPage– ModuleAdminReceipt
Portal API
JavaClass: CustomDataIn package blackboard.portal.externalJavadoc 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 PackageJSPs 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>
Demonstration!
Thank You
Demos to Follow >