Download - Portal Modules & Module Types
![Page 1: Portal Modules & Module Types](https://reader035.vdocument.in/reader035/viewer/2022062316/56816792550346895ddcc9db/html5/thumbnails/1.jpg)
Portal Modules & Module Types
Heather NatourSenior Software Engineer, Blackboard Community System
![Page 2: Portal Modules & Module Types](https://reader035.vdocument.in/reader035/viewer/2022062316/56816792550346895ddcc9db/html5/thumbnails/2.jpg)
Road Map
What are Portals? Module Types Creating Modules API
![Page 3: Portal Modules & Module Types](https://reader035.vdocument.in/reader035/viewer/2022062316/56816792550346895ddcc9db/html5/thumbnails/3.jpg)
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
![Page 4: Portal Modules & Module Types](https://reader035.vdocument.in/reader035/viewer/2022062316/56816792550346895ddcc9db/html5/thumbnails/4.jpg)
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”
![Page 5: Portal Modules & Module Types](https://reader035.vdocument.in/reader035/viewer/2022062316/56816792550346895ddcc9db/html5/thumbnails/5.jpg)
Example of a “sticky” Portal
![Page 6: Portal Modules & Module Types](https://reader035.vdocument.in/reader035/viewer/2022062316/56816792550346895ddcc9db/html5/thumbnails/6.jpg)
Blackboard Portal ComponentsTab
ModuleModule Edit
MinimizeDelete
Contents Layout
![Page 7: Portal Modules & Module Types](https://reader035.vdocument.in/reader035/viewer/2022062316/56816792550346895ddcc9db/html5/thumbnails/7.jpg)
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
![Page 8: Portal Modules & Module Types](https://reader035.vdocument.in/reader035/viewer/2022062316/56816792550346895ddcc9db/html5/thumbnails/8.jpg)
Pre Built Module Types
Include HTML Include URL RSS Channel
![Page 9: Portal Modules & Module Types](https://reader035.vdocument.in/reader035/viewer/2022062316/56816792550346895ddcc9db/html5/thumbnails/9.jpg)
Module Type JSP Pages
View– What gets displayed when the module is rendered
Admin– Edit Global properties
Edit– User customizable properties
![Page 10: Portal Modules & Module Types](https://reader035.vdocument.in/reader035/viewer/2022062316/56816792550346895ddcc9db/html5/thumbnails/10.jpg)
View
Rendered Inline No HTML Header or Body Tags
![Page 11: Portal Modules & Module Types](https://reader035.vdocument.in/reader035/viewer/2022062316/56816792550346895ddcc9db/html5/thumbnails/11.jpg)
Edit
Calls the edit page
![Page 12: Portal Modules & Module Types](https://reader035.vdocument.in/reader035/viewer/2022062316/56816792550346895ddcc9db/html5/thumbnails/12.jpg)
Edit
![Page 13: Portal Modules & Module Types](https://reader035.vdocument.in/reader035/viewer/2022062316/56816792550346895ddcc9db/html5/thumbnails/13.jpg)
Admin
Admin Page for Global
Configuration
Manage Modules Page
![Page 14: Portal Modules & Module Types](https://reader035.vdocument.in/reader035/viewer/2022062316/56816792550346895ddcc9db/html5/thumbnails/14.jpg)
Admin
![Page 15: Portal Modules & Module Types](https://reader035.vdocument.in/reader035/viewer/2022062316/56816792550346895ddcc9db/html5/thumbnails/15.jpg)
Creating Module Types
JSP is easiest Tags Provided for Edit and Admin Pages (more info in
Dev Guide)– modulePersonalizationPage– modulePersonalizationReceipt– moduleAdminPage– moduleAdminReceipt
![Page 16: Portal Modules & Module Types](https://reader035.vdocument.in/reader035/viewer/2022062316/56816792550346895ddcc9db/html5/thumbnails/16.jpg)
Portal API
Java Class: CustomData In package blackboard.portal.external Javadoc available in SDK
![Page 17: Portal Modules & Module Types](https://reader035.vdocument.in/reader035/viewer/2022062316/56816792550346895ddcc9db/html5/thumbnails/17.jpg)
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)
![Page 18: Portal Modules & Module Types](https://reader035.vdocument.in/reader035/viewer/2022062316/56816792550346895ddcc9db/html5/thumbnails/18.jpg)
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();
![Page 19: Portal Modules & Module Types](https://reader035.vdocument.in/reader035/viewer/2022062316/56816792550346895ddcc9db/html5/thumbnails/19.jpg)
Portal API
Similar Methods exist to set user specific data
CustomData data = CustomData.getModulePersonalizationData(pageContext);String text = data.setValue(“userpref.display”, “ALL”);data.save();
![Page 20: Portal Modules & Module Types](https://reader035.vdocument.in/reader035/viewer/2022062316/56816792550346895ddcc9db/html5/thumbnails/20.jpg)
Packaging the Module Type
<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>
Put it in a System Extension Package JSPs in /module directory
![Page 21: Portal Modules & Module Types](https://reader035.vdocument.in/reader035/viewer/2022062316/56816792550346895ddcc9db/html5/thumbnails/21.jpg)
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
![Page 22: Portal Modules & Module Types](https://reader035.vdocument.in/reader035/viewer/2022062316/56816792550346895ddcc9db/html5/thumbnails/22.jpg)
Creating a Module
Module is packaged as a standard Building Blocks Package
bb-manifest.xml– module– channel
![Page 23: Portal Modules & Module Types](https://reader035.vdocument.in/reader035/viewer/2022062316/56816792550346895ddcc9db/html5/thumbnails/23.jpg)
Specifying a Module
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">macnews</property> </ExtraInfo></module>
![Page 24: Portal Modules & Module Types](https://reader035.vdocument.in/reader035/viewer/2022062316/56816792550346895ddcc9db/html5/thumbnails/24.jpg)
Specifying a Module
Channel Manifest Entry (Channel Def):
<rss-channel ext-ref=“macnews" title=“Mac News"><data-url>http://www.macnn.xml/macnn.xml </data-url></rss-channel>
![Page 25: Portal Modules & Module Types](https://reader035.vdocument.in/reader035/viewer/2022062316/56816792550346895ddcc9db/html5/thumbnails/25.jpg)
Specifying a Module
Can also optionally specify Portal Roles (Primary and Secondary)
<module-groups> <module-group id=“student"/> <module-group id=“faculty"/></module-groups>
![Page 26: Portal Modules & Module Types](https://reader035.vdocument.in/reader035/viewer/2022062316/56816792550346895ddcc9db/html5/thumbnails/26.jpg)
Demonstration!