role-based icons & content presented by: jeff leisse software specialist & patrick j. kelly...
TRANSCRIPT
Role-based Icons & ContentPresented by:
Jeff LeisseSoftware Specialist
&Patrick J. Kelly
Sr. System Analyst / Portal Technical Team Lead
Introduction
Presentation involves a discussion regarding the creation of role-based icons and content specific to La Salle University’s web portal (mylasalle.edu)
Attendees will gain knowledge of how we customized our portal to meet the needs of our constituents.
Topics for discussion
La Salle University profile Problem Statement Technical Solution
• Create Access Groups roles ≈ access groups• Modify the dlm.xml• Enhance the nested-tables.xsl style sheet
Code examples Screenshots of Solution Q & A
La Salle University
La Salle is a Catholic, comprehensive University founded by the Christian Brothers in Philadelphia in 1863.
Committed to personalized, humanistic, practical education
6,345 current undergraduate, graduate and continuing studies students in attendance
Two campuses: one in Northwest Philadelphia and one in Newtown, Bucks County, 25 miles north of the city
La Salle Architecture
calendaremailLUWIS
Employee email
WebCTBanner 6.x
Self Service
Student email
Students
Faculty
Employees
Students
Faculty
Employees
Alumni
Students Employees
Faculty
Luminis 2.8 3.2
Problem Statement
La Salle University uses two Lotus Notes 6.5 email servers (two CPIP connectors)• One for students• One for employees and faculty
Prospects and Alumni do not currently receive La Salle email accounts• Alumni email will be outsourced
Prospects do not use Banner Self Service icon Can we give users “one-click” access to Banner
Self Service products?
Problem Statement (cont’d)
Icons such as email & calendar need to be role-based
Content must also be available for prospects, applicants, and alumni
Roles and order of precedence must be added and reconfigured in dlm.xml
Luminis style sheet (nested-tables.xsl) must include logic to handle redirection of icons
Technical Solution
Create Access Groups (icons & content)Modify the dlm.xml (config file)Enhance the nested-tables.xsl (config file)
Creating Access Groups
Access groups will be referenced later on in the dlm.xml and nested-tables.xsl.
Stored in the LDAP and later called to customize icons and content.
First step in the process.
Creating Roles/Access Groups
Modifying the dlm.xml
Purpose of dlm.xml• used to set precedence for the individual roles.
Content is displayed in the order set by the logic within the dlm.xml file.
Precedence is set within a range of 0 -100. The role with the highest number receives the highest precedence, and so on.
Precedence = content tab displayed left to right. The number given to a role is arbitrary and is
only used in relation to other roles.
La Salle’s Order of Precedence
Employee = 100Faculty = 60Alumni = 55Student = 50Prospectday = 30Prospecteve = 30Prospectgrad = 30Prospect = 20All-users = 10
Examples of dlm.xml code
<dlm:fragment name='Employee' ownerID='employee-lo' precedence='100'>
<dlm:audience evaluatorFactory='com.pipeline.uportal.dlm.provider.CPPersonEvaluatorFactory'>
<attribute name='role' mode='equals' value='employee'/>
</dlm:audience>
</dlm:fragment>
<dlm:fragment name='Faculty' ownerID='faculty-lo' precedence='60'>
<dlm:audience evaluatorFactory='com.pipeline.uportal.dlm.provider.CPPersonEvaluatorFactory'>
<attribute name='role' mode='equals' value='faculty'/>
</dlm:audience>
</dlm:fragment>
dlm.xml (cont’d)
<dlm:fragment name='Students' ownerID='student-lo' precedence='50'>
<dlm:audience evaluatorFactory='com.pipeline.uportal.dlm.provider.CPPersonEva
luatorFactory'>
<paren mode="AND">
<attribute name='role' mode='equals' value='student'/>
<paren mode="NOT">
<attribute name='role' mode='equals' value='faculty'/>
</paren>
</paren>
</dlm:audience>
</dlm:fragment>paren mode gives the flexibility to omit student content for users who have both faculty and student roles
Enhancing the nested-tables.xslPurpose of nested-tables.xsl
• style sheet used to manipulate the icons within the uportal framework.
You can use xsl functions to check the user’s role in the LDAP.
Once the role is identified, you have total control of what function(s) you want the icon(s) to perform.
Role logic is case-sensitive
nested-tables.xsl logicVariable Declaration
<xsl:variable name=“variable">
<xsl:if test="/layout/cp:cpInfo/cp:cpProperty[@name='pdsRole'] /child::cp:cpV
alue[text()=‘variable' or text()=‘Variable' or text()=‘VARIABLE']">
<xsl:value-of select="'true'"/>
</xsl:if>
</xsl:variable>Test Block
<xsl:choose> <xsl:when test="$variable='true'">
Logic behind icon i.e. URL </xsl:when> <xsl:otherwise></xsl:otherwise></xsl:choose>
Examples of nested-tables.xslVariable declaration
Existing Access Group/Existing variable <xsl:variable name="isEmployee"> <xsl:if test="/layout/cp:cpInfo/cp:cpProperty[@name='pdsRole']
/child::cp:cpValue[text()='employee' or text()='Employee' or text()='EMPLOYEE']"> <xsl:value-of select="'true'"/> </xsl:if> </xsl:variable>
Existing Access Group/Variable Created <xsl:variable name="isAlumni"> <xsl:if test="/layout/cp:cpInfo/cp:cpProperty[@name='pdsRole']
/child::cp:cpValue[text()='alumni' or text()='Alumni' or text()='ALUMNI']"> <xsl:value-of select="'true'"/> </xsl:if> </xsl:variable>
nested-tables.xsl (cont’d)
Variable Declaration (cont’d)
No Access Group/Variable Created to Display Banner Self Serve Icon
<xsl:variable name="isBrotherLuwis">
<xsl:if test="/layout/cp:cpInfo/cp:cpProperty[@name='pdsRole'] /child::cp:cpV
alue[text()='employee' or text()='Employee' or text()='EMPLOYEE' or text()='faculty' or text()='Faculty' or text()='FACULTY' or text()='student' or text()='Student' or text()='STUDENT' or text()='alumni' or text()='Alumni' or text()='ALUMNI']">
<xsl:value-of select="'true'"/>
</xsl:if>
</xsl:variable>
nested-tables.xsl (cont’d)Test Block
<xsl:choose> <xsl:when test="$isEmployee='true'"> <xsl:if test="not(/layout/cp:cpInfo/@email.enabled='false')"> <TD VALIGN="BOTTOM" ALIGN="CENTER"><A HREF="http://luminis.lasalle.edu/cp/ip/login?sys=inotes&url=blitszzy" target="new" onMouseover="img_act('aa'); window.status=''; return true;" onMouseOut="img_inact('aa');"><IMG SRC="{$mediaPath}/{$skin}/controls/email_dft.gif" ALT="e-mail" NAME="aa" WIDTH="39" HEIGHT="26" BORDER="0" HSPACE="6"/></A></TD> </xsl:if> </xsl:when>
<xsl:when test="$isStudent='true'"> <xsl:if test="not(/layout/cp:cpInfo/@email.enabled='false')"> <TD VALIGN="BOTTOM" ALIGN="CENTER"><A HREF="http://luminis.lasalle.edu/cp/ip/login?sys=isln&url=blitszzy" target="new" onMouseover="img_act('aa'); window.status=''; return true;" onMouseOut="img_inact('aa');"><IMG SRC="{$mediaPath}/{$skin}/controls/email_dft.gif" ALT="e-mail" NAME="aa" WIDTH="39" HEIGHT="26" BORDER="0" HSPACE="6"/></A></TD> </xsl:if> </xsl:when>
nested-tables.xsl (cont’d)Test Block
Banner Self Service Icon – LSU MOD
<xsl:choose> <xsl:when test="$isBrotherLuwis='true'"> <TD VALIGN="BOTTOM" ALIGN="CENTER"><A HREF="http://luminis.lasalle.edu/cp/render.UserLayoutRootNode.uP?uP_tparam=utf&utf=/cp/school/sctmain" target="new"><IMG SRC="/cps/images/misc/luwis1_new.gif" width="39" height="26"BORDER="0" HSPACE="6"/></A></TD> </xsl:when> <xsl:otherwise></xsl:otherwise></xsl:choose>
Screenshots
Employee/Faculty/Alumni role
Employee email server
Employee/Faculty/Alumni role
Alumni role
Prospect role
Questions?
Contact Information:• Jeff Leisse
Email: [email protected] Phone: 215.991.3553
• Visit our mylasalle portal: http://my.lasalle.edu
– User ID = guest– Password = lasalle
Thank you!