280 likes | 514 Views
P*** My Portal. WHAT ?!?!???. Pimp My Portal. Trickin’ it out and Kickin’ it up Jonathan Wheat. O.O.T.B. Screams customize me ! Limited functionality 6 channels Harvest gold color scheme Icons from PrintShop Pro v1.0. C.M.P.
E N D
P*** My Portal WHAT ?!?!???
Pimp My Portal Trickin’ it out and Kickin’ it up Jonathan Wheat
O.O.T.B. • Screams customize me ! • Limited functionality • 6 channels • Harvest gold color scheme • Icons from PrintShop Pro v1.0
C.M.P • THE VIEWS REPRESENTED HERIN ARE MY OWN AND DO NOT REFLECT THAT OF MESSIAH COLLEGE, PA BUG, SCT, LUMINIS, CAMPUS PIPELINE, JASIG, UPORTAL, MICROSOFT, SUN, ORACLE, NETSCAPE, CYGWIN, VNC, MACROMEDIA OR ANYONE ELSE BUT MYSELF. • I AM NOT RESPONSIBLE FOR ANYTHING YOU MAY DO TO YOUR PORTAL, WITH YOUR PORTAL OR WITHOUT YOUR PORTAL. THE INFORMATION, HACKS, UNDOCUMENTED FEATURES, CODE, MODIFICATIONS, REWRITES, PATCHES, UPDATES, UPGRADES AN ALL OVER CHANGES PRESENTED HEREIN ARE FOR EDUCATIONAL PURPOSES ONLY AND NO GUARANTEE OR WARRANTY OF USE OR FUNCTIONALITY IS OFFERED, GRANTED, GIVEN, HANDED OVER, LICENSED OR OTHERWISE TRANSFERRED TO YOU. • DIFFERING SOFTWARE VERSIONS, OPERATING SYSTEMS, DATABASES, NETWORK CONFIGURATIONS, PERSONAL KNOWLEDGE, IMPLEMENTATION PATHS, AND LEVEL OF CREATIVITY MAY IMPACT THE MODS PRESENTED HERE. LET IT BE KNOWN THAT NO MOD CREATED, DEVELOPED OR UNCOVERED HERE UNDER ANY CIRCUMSTANCE IS DEEMED SUPPORTED BY SCT, CAMPUS PIPELINE, JASIG, PA BUG OR PRETTY MUCH ANYONE THAT MATTERS.
The Tools • Notepad++ • http://notepad-plus.sourceforge.net Supported languages : C, C++, Java, C#, XML, HTML, PHP, Javascript, RC resource file, makefile, ASCII art file (extension .nfo, doxygen, ini file, batch file, ASP, VB/VBS source files, SQL, Objective-C, CSS, Pascal, Perl, Python and Lua. MUST HAVE !!! Dreamweaver http://www.macromedia.com HTML editor / web application development GUI RealVNC http://www.realvnc.com/ Remote console software. MUST HAVE !!
The Environment • INSTALL A TEST SYSTEM • Local : • Map a share to $CP_ROOT • SDK : • /luminis-sdk DEVELOPMENT OS : Windows 2000 serv Luminis vIII.3.0.20 bld 20 Oracle 9.2.0.1 Std - Win PRODUCTION OS : Windows 2000 serv Luminis vIII.3.0.20 bld 20 Oracle 9.2.0.6 Ent - HPUX
The usual suspects • FileName Blocks.thtml • Path $CP_WEBINF/templates/content/blocks.thtml • Format CSS / XML / XHTML • Control Tab styles / HTML for Colors and Logos configBlocks of html • for rendering various channels
The usual suspects • FileName nested-tables.xsl • Path $CP_DOC_ROOT/stylesheets/org/jasig/portal/layout/tab- • column/nested-tables/nested-tables.xsl • Format XML / XSLT • Control Renders the user layoutSplit into blocks by XSL:template match • commandRenders the tool icons, header, javascript popup code • Notes regularLayout - builds a tab section • header – school logo html • appIcons – email / calendar … • navigation – tab renderer • content – channel holders • controlRow – • contentRow – • channel – actual channel renderer • footer – • controls – max / min / edit / help / detach channel icons • detachedChannelControls –
The usual suspects • FileName cp.css • Path $CP_DOC_ROOT/media/org/jasig/portal/layout/tab-column/nested-tables/cp/skin/cp.css • Format CSS • Control UPortal styles –UPortal-head / text / channel text etc. • Overall styles that apply to channels and user layout • Notes Experiment with this style sheet. There are overlaps with this css and the style.css below. • They’re called at different times to render different items. • Can be tricky to apply a new technique / style to the entire portal.
The usual suspects • FileName style.css • Path $CP_DOC_ROOT/misc/style.css • Format CSS • Control Calendar styles, a , text etc.
The usual suspects • FileName uPortal.jar • Path $CP_WEBINF/lib/uPortal.jarFormatJAR • Control This is the heart of luminis. It controls various aspects of the portal. • Even though it is a jar file, you can still edit it • Notes The file architecture of the portal is sometimes disconcerting. There are files on the • file system that are also included in this jar file. Editing the file on the file system does • not necessarily mean that the change will be reflected in the portal. Sometimes mods • are hit and miss as to where the correct location is to mod.
Other important items • Icons • Description : Application and channel control icons • Location : $CP_DOC_ROOT/cps/images/misc • Login.html • Description : the first page you see when you hit the portal • Location : $CP_DOC_ROOT/site/login.html • Environment Variables • $CP_ROOT - C:\Luminis • $CP_DOC_ROOT – C:\Luminis\webapps\luminis • $CP_WEBINF - C:\Luminis\webapps\luminis\WEB-INF
The database • UPORTAL / LUMINIS Schemas • UPortal Schema • UP_CHANNEL – main channel definitions (LDAP / Filesystem) • UP_GROUP – channel categories • UP_GROUP_MEMBERSHIP – maps channels to categories • UP_SEQUENCE – next id container • UP_SS_THEME_PARM – controls main stylesheet / skin / theme • Luminis Schema • GT_* - Group Tools Tables • TA_* - Targeted Messages • MB_* - Message Board posts • Targeted Announcement Archives • http://www.lumdev.net/index.php?q=node/378
Login page – one click • Customize it ! • $CP_DOC_ROOT/site/login.html • One click logins make it easier for demo and guest logins • AND ESPECIALLY on a development system <A HREF="javascript:LoginDemoUser('demostu', 'portaldemo');" TABINDEX=6>Guest login</A> <script> function LoginDemoUser(strName, strPassword) { this.document.userid.user.value=strName; this.document.cplogin.pass.value=strPassword; login(); } </script>
Login page – ‘tooltips’ • Cool DHTML tooltip script • http://www.dynamicdrive.com • Drop and go – • Add a style #dhtmltooltop • Add a <div> • Add a script • Create tooltip variables • Calling Code : onMouseover="ddrivetip(personalAnnouncements,'#DCDDEF', 200)"; onMouseout="hideddrivetip()" style="cursor:default;"
Header Section • Colors and Logos configuration • Enables you to modify the colors for the tabs, and channel bars. • - Primary • - Secondary color • OR …
Blocks.thtml • <!-- School Logo Blocks --> • <block "school_logo_image"> • <!-- ### BEGIN BUILD SUNGARD --> • <style type="text/css" media="all">@import url("/PFM/2005corpglobal.css");</style> • <style type="text/css" media="all">@import url("/PFM/2005corphomepage2.css");</style> • <div id="topImageBox"> • <div id="logoImage"></div> • </div> • <div id="topLogoBox"> • <div id="logoTop"></div> • </div> • <div id="topColorBlock"> • <div id="topRight"> • <!--BEGIN: Search Form --> • <form action="http://sctweb9.sct.com/cgi-bin/MsmFind.exe" method="get" id="searchForm"> • <p class="search"> SEARCH SUNGARD SCT</p> • <fieldset><input type="hidden" name="remask" value="MssRes.msk" /></fieldset> • <fieldset><input type="text" name="query" id="searchword" /> • <input name="submit" type="image" src="/PFM/search.gif" alt="GO" /> • </fieldset> • </form> • <!--END: Search Form --> • </div> • </div> • <!-- ### END BUILD SUNGARD --> • </block>
Icons • CHANGE THEM !!!!! • These files are located in a couple places (go figure). • Login.html :$CP_DOC_ROOT/cps/images/misc directory. • Main icons :$CP_DOC_ROOT/media/org/Jasig/portal/layout/tab-column/nested-tables/cp/controls • email_dft.gif / email_roll.gif • groups_dft.gif / groups_roll.gif • admin_dft.gif / admin_roll.gif • logout_dft.gif / logout_roll.gif • help_dft.gif / help_roll.gif
Add icons • Or add new ones … • File : nested-tables.xsl • <xsl:template name="appIcons"> • ... • <TD ALIGN="CENTER"> • <A HREF="javascript:openBrWindow('http://apps.messiah.edu/portal/chan_feedback.asp','feedback','resizable=yes,scrollbars=yes,toolbar=no,location=no,directories=no,status=yes,menubar=no,width=400,height=200');"> • <IMG SRC="{$mediaPath}/{$skin}/controls/feedback.gif" ALT="feedback" NAME="fb" WIDTH="39" HEIGHT="26" BORDER="0" HSPACE="6"/> • <BR/> • <SPAN CLASS="uportal-label">feedback</SPAN> • </A> • </TD> • </xsl:template>
Conditional icons • File : nested-tables.xsl • <xsl:variable name="roleTest"> • <xsl:for-each select="/layout/cp:cpInfo/cp:cpProperty[@name='pdsRole']/child::*"> • <xsl:if test=". = 'Student'"> • <xsl:value-of select="'student'" /> • </xsl:if> • <xsl:if test=". = 'Admin'"> • <xsl:value-of select="'admin'" /> • </xsl:if> • </xsl:for-each> • </xsl:variable> • <xsl:if test="$roleTest='student'"> • <TR> • <TD ALIGN="CENTER"><A HREF=‘http://students.server.edu’ target=‘_blank’>student stuff</A></TD> • </TR> • </xsl:if> • <xsl:if test="$roleTest='admin'"> • <TR> • <TD ALIGN="CENTER"><A HREF=‘http://portal.edu:9999’ target=‘_blank’>web admin</A></TD> • </TR> • </xsl:if>
Channel rendering • <xsl:template match="channel"> • … • <!-- header row --> • <TR> • <TD CLASS="bgtabon" colspan="2" valign="top"> • <IMG ALT="" SRC="{$mediaPath}/{$skin}/skin/corner-left.gif" width="5" height="23"/> • </TD> • <TD class="mc-channel-title"> • <xsl:value-of select="@title"/> • </TD> • <TD class="bgtabon" ALIGN="RIGHT" NOWRAP="NOWRAP" VALIGN="CENTER"> • <xsl:choose> • <xsl:when test="$detachedContent='true'"> • <xsl:call-template name="detachedChannelControls"/> • </xsl:when> • <xsl:otherwise> • <xsl:call-template name="controls"/> • </xsl:otherwise> • </xsl:choose> • </TD> • <TD CLASS="bgtabon" colspan="2" valign="top" align="right"> • <IMG ALT="" SRC="{$mediaPath}/{$skin}/skin/corner-right.gif" width="5" height="23"/> • </TD> • </TR> • <!-- spacer row -->
Channel controls • <xsl:template name="controls"> • <!-- Help button --> • <xsl:if test="not(@hasHelp='false')"> • <a href="{$baseActionURL}?uP_help_target={@ID}" onMouseover="window.status=''; return true;"> • <img alt="help" title="help" src="{$mediaPath}/{$skin}/controls/help.gif" width="16" height="16" border="0"/> • </a> • </xsl:if>
Hidden detach method • <xsl:template name="controls"> • … • <!-- Remove Detach button • <xsl:if test="not(@detachable='false')"> • <a href="#" onClick="openBrWindow('{$baseActionURL}?uP_detach_target={@ID}','detachedChannel','toolbar=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width=640,height=480')"> • <img alt="detach" title="detach" src="{$mediaPath}/{$skin}/controls/detach.gif" width="16" height="16" border="0"/> • </a> • </xsl:if> • -->
uPortal.jar • Location : $CP_WEBINF/lib • Extract – • Jar xvf uPortal.jar • Rebuild – • Jar cvf uPortal.jar.new *
Links and welcome • ‘currently logged in’ • org/jasig/portal/channels/CLogin/html.xsl • My Account links • org/jasig/portal/channels/CHeader/html.xsl
What’s next ? • Use your imagination …. • To turn this –
Contact Information • Jonathan Wheat • Messiah College, ITS • 1 College Ave, Box 3055 • Grantham, PA 17027 • 717.766.2511 x3385 • jwheat@messiah.edu Jonathan WheatLDNLuminis Developers Network http://www.lumdev.net jwheat@lumdev.net Download location : http://www.lumdev.net/pimpmyportal