Transcript
Page 1: My First Building Block as a Portal Module

My First Building Block as a Portal Module

Heather NatourSenior Lead Engineer

Blackboard Inc.

September 29, 2005

Page 2: My First Building Block as a Portal Module

Road Map

• What are Portals?• Module Types• Creating Modules• API

Page 3: My First Building Block as a Portal Module

Audience

• Building Blocks Developers that want to create Blackboard Community System Modules

• Java/JSP Programmers• Some knowledge of Building Blocks

Programming• …Or Just Interested to see what’s

possible with Community System Modules

Page 4: My First Building Block as a Portal Module

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: My First Building Block as a Portal Module

Example of a “sticky” Portal

Page 6: My First Building Block as a Portal Module

Blackboard Community System Components

Tab

Module

Module Edit

MinimizeDelete

Contents Layout

Page 7: My First Building Block as a Portal Module

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: My First Building Block as a Portal Module

Pre Built Module Types

• Include HTML

• Include URL

• RSS Channel

Page 9: My First Building Block as a Portal Module

Module Type JSP Pages

• View– What gets displayed when the module is

rendered

• Admin– Edit Global properties

• Edit– User customizable properties

Page 10: My First Building Block as a Portal Module

View

• Rendered Inline• No HTML Header or Body Tags

Page 11: My First Building Block as a Portal Module

Edit

Calls the edit page

Page 12: My First Building Block as a Portal Module

Edit

Page 13: My First Building Block as a Portal Module

Admin

Admin Page for Global

Configuration

Manage Modules Page

Page 14: My First Building Block as a Portal Module

Admin

Page 15: My First Building Block as a Portal Module

Creating Module Types

• JSP is easiest

• Tags Provided for Edit and Admin Pages (more info in Dev Guide)– modulePersonalizationPage– modulePersonalizationReceipt– moduleAdminPage– moduleAdminReceipt

Page 16: My First Building Block as a Portal Module

Portal API

• Java

• Class: CustomData

• In package blackboard.portal.external

• Javadoc available in SDK

Page 17: My First Building Block as a Portal Module

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: My First Building Block as a Portal Module

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: My First Building Block as a Portal Module

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: My First Building Block as a Portal Module

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: My First Building Block as a Portal Module

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: My First Building Block as a Portal Module

Creating a Module

• Module is packaged as a standard Building Blocks Package

• bb-manifest.xml– module– channel

Page 23: My First Building Block as a Portal Module

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: My First Building Block as a Portal Module

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: My First Building Block as a Portal Module

Specifying a Module

• Can also optionally specify Institution Roles (Primary and Secondary)

<module-groups> <module-group id=“student"/> <module-group id=“faculty"/></module-groups>

Page 26: My First Building Block as a Portal Module

Demonstration!

Page 27: My First Building Block as a Portal Module

Thank you!


Top Related