Presentation is loading. Please wait.

Presentation is loading. Please wait.

UPortal Presentation Layer For FLUID Summit September 27, 2007 Susan Bramhall, Yale University

Similar presentations


Presentation on theme: "UPortal Presentation Layer For FLUID Summit September 27, 2007 Susan Bramhall, Yale University"— Presentation transcript:

1 uPortal Presentation Layer For FLUID Summit September 27, 2007 Susan Bramhall, Yale University http://wiki.fluidproject.org/display/fluid/uPortal+Presentation+Layer

2 Summer 2007 JA_SIG Conference DLM the uPortal Pushmi-pullyu: http://www.ja- sig.org/wiki/download/attachments/606 3795/DLM-TheuPortalPushmi- Pullyu_Bramhall-Helwig-JA- SIG_20070626.ppt?version=1 Good conceptual overview of DLM

3 What is a layout? tab column channels

4 A fragment is a piece of a tree tab column channels tab column channels A predefined fragment including 2 tabs, 3 columns, several channels

5 How is the “tree of content” created? Some content is pushed to the user Some is subscribed to by the user Some is allowed to go anywhere on the tree Some must remain is a certain place

6 That is the layout manager’s job

7 uPortal 2.0 December 2001 Justin Tilton http://www.ja- sig.org/wiki/download/attachments/13455/looknf eel.pdfhttp://www.ja- sig.org/wiki/download/attachments/13455/looknf eel.pdf (Works in IE) This is a great presentation of base uPortal presentation / layout management using Simple Layout Manager. With thanks to uPortal 2.0 architect Peter Kharchenko:

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22 SLM issues… Layouts were based on template selected based on user attributes. Whenever the user modified the layout the ENTIRE layout tree was saved User never saw changes to template after that

23 Summer 2007 JA_SIG Conference Mark Boyd Summer 2007 DLM seminar http://www.ja- sig.org/wiki/download/attachments/6063795/DlmSummer20 07.ppt?version=1 No notes but excellent presentation of 2.6 Distributed Layout Manager as released in 2.6 plus features in Luminis IV not yet in uPortal

24 What is DLM? Fragment User Owned

25 What is DLM? Fragment Owned Tab Fragment Owned Channel User Owned Channel

26 DLM History 2001 2002 uPortal adopted by Campus Pipeline, DLM work starts DLM 1.0 pushed fragments debut in Luminis 2003 2004 2005 2006 ALM work begins in earnest SCT asked to contribute DLM DLM 1.0 debuts in uPortal 2.5 DLM 2.0 Processing Pipeline 2007 DLM 2.0 in Luminis

27 DLM History DLM 1.0 (uPortal 2.5) –Pushed fragments –Variable Restrictions –User Modifications to fragment –XML file based configuration DLM 2.0 –Graceful Fragment Degratation –Processor pipeline (uPortal 2.6) –Subscribed fragments –Fragment Manager channel/DB based configuration

28 uPortal Layouts: pre-DLM UP_LAYOUT_STRUCT UP_LAYOUT_PARAM LayoutStore Loads Structure XSLT LayoutManager manages Theme XSLT

29 uPortal Layouts: DLM Style UP_LAYOUT_STRUCT UP_LAYOUT_PARAM DLM LayoutStore Loads DLM Structure XSLT DLM LayoutManager manages DLM Theme XSLT ILF PLF Fragment Cache Merge ILF = Incorporated Layout Fragment (user’s viewed layout) PLF = PersonalLayoutFragment (user’s persisted layout)

30 uPortal Layouts: Fragment Owners UP_LAYOUT_STRUCT UP_LAYOUT_PARAM DLM LayoutStore Loads DLM Structure XSLT DLM LayoutManager manages DLM Theme XSLT ILF PLF Fragment Cache ILF = Incorporated Layout Fragment (user’s viewed layout) PLF = PersonalLayoutFragment (user’s persisted layout) same

31 Configuring DLM Fragments Dlm.xml Fragment owner Audience Precedence Properties

32 Configuring Fragments /properties/dlm.xml /WEB-INF/classes/properties/dlm.xml –Properties. –Fragment account declarations. –Audiences that receive those fragments automatically.

33 DLM.XML Properties –Identifies account whose layout should be copied for any newly created fragment accounts.

34 DLM.XML Properties –Deprecated. –Identifies implementation of interface org.jasig.portal.layout.dlm.LayoutDecorator. public void decorate (Document layout, IPerson person, UserProfile profile) –Allowed customizations to post-merging layout.

35 DLM.XML Properties –Determines refresh period of cached fragment layouts for layout change propagation to other servers. –Value in minutes.

36 DLM.XML Fragments –name = name of fragment, shows when owner is logged in. –ownerID = username for account whose layout is the fragment’s layout. –precedence = determine’s ordering and bumping rights. If same as another fragment then index of declaration in dlm.xml is used. –Content is zero to many tags.

37 DLM.XML Audiences –Audience identifies who should get the fragment layout. –Factory must implement org.jasig.portal.layout.dlm.EvaluatorFactory. public Evaluator getEvaluator( Node audience ); –Audience parameter is DOM representation of audience tag’s XML content. –Content must be well-formed XML understood by declared factory.

38 DLM.XML Audiences Determines

39 Demo –All users but guest should see Entertainment fragment. –Entertainment fragment owned by ent-lo account. –Changes to layout should appear for other users.

40 DLM.XML Audience Factories –Factory implements org.jasig.portal.layout.dlm.EvaluatorFactory. public Evaluator getEvaluator( Node audience ); –Evaluator interface public boolean isApplicable( IPerson person ); –If any audience evaluator answers true then the fragment is granted. –Four factories included in org.jasig.portal.layout.dlm.provider package.

41 DLM.XML Audience Factories –AllUsersEvaluatorFactory No content. Always returns true. –GuestUserEvaluatorFactory No content. Returns true if IPerson.isGuest() returns true.

42 DLM.XML Audience Factories –PersonEvaluatorFactory Evaluates IPerson.getAttribute(name) values. Audience can have one to many paren or attribute elements and “ORs” their responses together. Paren element has single attribute “mode” with allowed values of “AND”, “OR”, and “NOT” and nested element outcomes combine accordingly with NOT acting as if it contained a nested, envelopting “OR” paren. Attribute element has three attributes: –name: used as the key for IPerson.getAttribute(key). –mode: can be “contains”, “startsWith”, “exists”, “equals”, and “endsWith”. –value: is the value used for comparison

43 DLM.XML Audience Factories –PersonEvaluatorFactory quiz Will grant the fragment to anyone with green or hazel or brown eyes.

44 DLM.XML Audience Factories –PersonEvaluatorFactory quiz Will grant the fragment to anyone without both green eyes AND blonde hair. If they have one or the other or both they don’t get it. Expression: NOT( eyes=green OR hair=blonde) Expression: (eyes NOT green) AND (hair NOT blonde)

45 DLM.XML Audience Factories –PersonEvaluatorFactory quiz Will grant the fragment to anyone with eyes NOT(brown) OR brown so everyone gets it.

46 DLM.XML Audience Factories –GroupMembershipEvaluatorFactory Inherits same logical expressions as in PersonEvaluatorFactory “attribute” element only supports attributes: –mode: “memberOf” and “deepMemberOf” –name: name of the group being checked for membership

47 DLM.XML Audience Factories –GroupMembershipEvaluatorFactory quiz –true for Sam, false for Jill. –true for both Sam and Jill. Everyone Students contains Sam Jill

48 DLM.XML Audience Factories –Extra Credit quiz –Multiple audience tags OR’ed together. –Eyes equal brown OR member of Students.

49 Custom Evaluator Factories If you need it, build it. –Factory implements org.jasig.portal.layout.dlm.EvaluatorFactory. public Evaluator getEvaluator( Node audience ); –Evaluator interface public boolean isApplicable( IPerson person );

50 DLM.XML Fragment Precedence Location, Location, Location – screen real-estate is not created equal. –DLM’s merging algorithm pushes tabs from granted fragments into user’s layout view. –Tabs to left bump tabs to the right off of the screen. –Channels at top bump channels at the bottom off of the screen. –Identical precedence reverts to index in dlm.xml.

51 DLM.XML Fragment Precedence User tab “E” and no restrictions (to be discussed shortly) Quiz: In what order would merged tabs appear? ACBDE

52 DLM 2.0 Features Graceful fragment degradation (uPortal 2.6) Processor pipeline (uPortal 2.6) Subscribe Fragments Fragment Manager channel/DB based configuration

53 Processing Pipeline Parameter Processors processParameters( ) Distributed Layout Manager ProcessLayout Parameters() Processing Pipe User Instance processParameters() method called on all processors

54 getContentHandler( ) User Instance Content Handler SAX Event Stream Processing Pipeline SAX Processors User Instance Content Handler Distributed Layout Manager getUserLayout() Processing Pipe User Instance Some Content Handler returns

55 Processing Pipeline Configured in properties/dlmContext.xml – … … –

56 Processing Pipeline in uPortal 2.6 Defined by dlmContext.xml ThemeParamInjector –Passes full name to theme RegularViewChannelRemover –Watches for removal of channel AjaxPreferencesThemeParamInjector –Sets isAjaxEnabled and isLoggedInUser

57 Examples ExampleStickyTabEnforcer Watches for a tab with name "Sticky Tab" and if found sets that tab as the currently active tab on every request ExampleBookmarksRemover Alters the SAX event stream coming from the DistributedLayoutManager by stripping out any events related to a channel with name="Bookmarks".

58 Nowadays layouts are not everything


Download ppt "UPortal Presentation Layer For FLUID Summit September 27, 2007 Susan Bramhall, Yale University"

Similar presentations


Ads by Google