Managing Content in uPortal Susan Bramhall Yale University ITS Technology and Planning
Who am I? Yale University Portal Implementer Occasional contributor to uPortal Early adopter of Distributed Layout Manager Grandmother
What Will I cover? The layout manager’s job An overview of uPortal layout managers Distributed Layout Manager basics Introduction to uPortal users and groups How to create layout fragments How user content changes and managed content changes interact
What does the user see? We want to –Push content to users based on who they are –But, allow users to choose what they see How? –By working with the layout manager
The Layout An xml tree of generic folders and channels folder (tab) folder (column) channel folder (column) folder (tab) folder (column) channel folder (column) folder type=“root” folder (tab) folder (column) channel
The Layout Manager’s Job To direct the show the Layout Manager must Know where to start Have rules to follow to include the right content and exclude everything else And where each segment goes
Of Fragments and Templates A template is a starting point for personal layout A fragment is a living segment of pushed content
Publish, Subscribe,, Pull Publishing is what an administrator does Subscribing is what a user does Administrators can also PUSH content Pull = Subscribe
Concepts Fragments and Templates Publish and Subscribe Push and Pull Audience Precedence and Restrictions
Which Layout Manager? Simple Layout Manager (SLM) –uPortal 1.0 to present Aggregated Layout Manager (ALM) –uPortal 2.0 to present Distributed Layout Manager (DLM) –uPortal 2.5 to present
Simple Layout Manager uPortal 1.0 – 2.5 but no longer default Based on completely templates Allows personal layout for each user But personalized layout is a copy New content in template is lost on users who have customized
SLM Example:
Aggregated Layout Manager uPortal 2.0 – now Will NOT be the future default Based on fragments (think tab) and templates Can push fragments Can subscribe to whole fragments Allows personal layout for each user but fragments are read only
ALM as Distributed:
ALM major overhaul:
Distributed Layout Manager Default in uPortal 2.6 Templates and Fragments –Fragments can be modified –Cannot subscribe to a fragment (yet) Allows personal layout for each user and user changes are merged with changes to fragments
DLM as it appears in uPortal Head
Steps to Pushing DLM Fragment 1.Define the fragment in dlm.xml 2.Login as the fragment owner and set up the layout
Define the Fragments dlm.xml configuration Each Fragment definition includes –An owner –Precedence –Audience
Audience Everyone needs the right audience! Built-in evaluators Extensible API Boolean expressions
What do we know about the user?
Defining the audience Built in Audience Evaluators GuestUserEvaluatorFactory AllUsersEvaluatorFactory GroupMembershipEvaluatorFactory PersonEvaluatorFactory
User Attributes IPerson is the basic user object Attributes come from jdbc or ldap Or any other source you invent
PersonDirectory.xml API allows extension Spring configurable beans –CachingPersonAttributeDaoImpl –MergingPersonAttributeDaoImpl –JdbcPersonAttributeDaoImpl –LdapPersonAttributeDaoImpl
PersonEvaluator Audience Tabs based on Person attributes PersonDirectory Flexibility
compositeGroupServices.xml Starts with Local groups from uPortal database Includes comments for –LDAP group service (beware) –File System group service –Person Attribute Group service (PAGS)
GroupMembershipEvaluator Audience Tabs based on Group
Precedence and Restrictions Administrator sets parameters User works within boundaries End result is pushed content merged with personal changes
Create the Fragment Content dlm.xml is complete Login as fragment owner Use preferences channel to create content for the fragment Header and footer will be removed and other content will become the fragment
Practical DLM See DLM Administrators Guide at Experiment in the quickstart… 1.Login as news-lo/news-lo. See preferences. 2.Login as student / student. See changes. 3.Go to preferences, see merging personal changes with pushed fragment