Upload
cole-wilson
View
217
Download
0
Tags:
Embed Size (px)
Citation preview
11
P*** My PortalP*** My PortalWHAT ?!?!???WHAT ?!?!???
22
Pimp My PortalPimp My PortalTrickin’ it out and Kickin’ it upTrickin’ it out and Kickin’ it up
Jonathan WheatJonathan Wheat
33
O.O.T.B.O.O.T.B.
Screams customize me !
• Limited functionality
• 6 channels
• Harvest gold color scheme
• Icons from PrintShop Pro v1.0
44
C.M.PC.M.PTHE VIEWS REPRESENTED HERIN ARE MY OWN AND DO NOT REFLECT THAT OF MESSIAH THE VIEWS REPRESENTED HERIN ARE MY OWN AND DO NOT REFLECT THAT OF MESSIAH
COLLEGE, PA BUG, SCT, LUMINIS, CAMPUS PIPELINE, JASIG, UPORTAL, MICROSOFT, COLLEGE, PA BUG, SCT, LUMINIS, CAMPUS PIPELINE, JASIG, UPORTAL, MICROSOFT, SUN, ORACLE, NETSCAPE, CYGWIN, VNC, MACROMEDIA OR ANYONE ELSE BUT SUN, ORACLE, NETSCAPE, CYGWIN, VNC, MACROMEDIA OR ANYONE ELSE BUT
MYSELF.MYSELF.
I AM NOT RESPONSIBLE FOR ANYTHING YOU MAY DO TO YOUR PORTAL, WITH YOUR I AM NOT RESPONSIBLE FOR ANYTHING YOU MAY DO TO YOUR PORTAL, WITH YOUR PORTAL OR WITHOUT YOUR PORTAL. THE INFORMATION, HACKS, UNDOCUMENTED PORTAL OR WITHOUT YOUR PORTAL. THE INFORMATION, HACKS, UNDOCUMENTED FEATURES, CODE, MODIFICATIONS, REWRITES, PATCHES, UPDATES, UPGRADES AN FEATURES, CODE, MODIFICATIONS, REWRITES, PATCHES, UPDATES, UPGRADES AN ALL OVER CHANGES PRESENTED HEREIN ARE FOR EDUCATIONAL PURPOSES ONLY ALL OVER CHANGES PRESENTED HEREIN ARE FOR EDUCATIONAL PURPOSES ONLY
AND NO GUARANTEE OR WARRANTY OF USE OR FUNCTIONALITY IS OFFERED, AND NO GUARANTEE OR WARRANTY OF USE OR FUNCTIONALITY IS OFFERED, GRANTED, GIVEN, HANDED OVER, LICENSED OR OTHERWISE TRANSFERRED TO YOU. GRANTED, GIVEN, HANDED OVER, LICENSED OR OTHERWISE TRANSFERRED TO YOU.
DIFFERING SOFTWARE VERSIONS, OPERATING SYSTEMS, DATABASES, NETWORK DIFFERING SOFTWARE VERSIONS, OPERATING SYSTEMS, DATABASES, NETWORK CONFIGURATIONS, PERSONAL KNOWLEDGE, IMPLEMENTATION PATHS, AND LEVEL OF CONFIGURATIONS, PERSONAL KNOWLEDGE, IMPLEMENTATION PATHS, AND LEVEL OF
CREATIVITY MAY IMPACT THE MODS PRESENTED HERE. LET IT BE KNOWN THAT NO CREATIVITY MAY IMPACT THE MODS PRESENTED HERE. LET IT BE KNOWN THAT NO MOD CREATED, DEVELOPED OR UNCOVERED HERE UNDER ANY CIRCUMSTANCE IS MOD CREATED, DEVELOPED OR UNCOVERED HERE UNDER ANY CIRCUMSTANCE IS DEEMED SUPPORTED BY SCT, CAMPUS PIPELINE, JASIG, PA BUG OR PRETTY MUCH DEEMED SUPPORTED BY SCT, CAMPUS PIPELINE, JASIG, PA BUG OR PRETTY MUCH
ANYONE THAT MATTERS.ANYONE THAT MATTERS.
55
The ToolsThe Tools
Notepad++Notepad++ http://notepad-plus.sourceforge.nethttp://notepad-plus.sourceforge.net
Supported languages : C, C++, Java, C#, Supported languages : C, C++, Java, C#, XML, HTML, PHP, Javascript, RC XML, HTML, PHP, Javascript, RC resource file,resource file,
makefile, ASCII art file (extension .nfo, makefile, ASCII art file (extension .nfo, doxygen, ini file, batch file, ASP, doxygen, ini file, batch file, ASP, VB/VBS source files,VB/VBS source files,
SQL, Objective-C, CSS, Pascal, Perl, SQL, Objective-C, CSS, Pascal, Perl, Python and Lua. Python and Lua. MUST HAVE !!!MUST HAVE !!!
DreamweaverDreamweaverhttp://www.macromedia.comhttp://www.macromedia.com
HTML editor / web application development GUIHTML editor / web application development GUI
RealVNCRealVNChttp://www.realvnc.com/http://www.realvnc.com/
Remote console software. Remote console software. MUST HAVE !!MUST HAVE !!
66
The EnvironmentThe Environment
INSTALL A TEST SYSTEMINSTALL A TEST SYSTEM
Local : Local : Map a share to $CP_ROOTMap a share to $CP_ROOT
SDK :SDK :/luminis-sdk/luminis-sdk
DEVELOPMENTDEVELOPMENT OS : Windows 2000 servOS : Windows 2000 serv
Luminis vIII.3.0.20 bld 20Luminis vIII.3.0.20 bld 20
Oracle 9.2.0.1 Std - WinOracle 9.2.0.1 Std - Win
PRODUCTIONPRODUCTION OS : Windows 2000 servOS : Windows 2000 serv
Luminis vIII.3.0.20 bld 20Luminis vIII.3.0.20 bld 20
Oracle 9.2.0.6 Ent - HPUXOracle 9.2.0.6 Ent - HPUX
77
The usual suspectsThe usual suspectsFileNameFileName Blocks.thtmlBlocks.thtml
PathPath $CP_WEBINF/templates/content/blocks.thtml$CP_WEBINF/templates/content/blocks.thtml
FormatFormat CSS / XML / XHTMLCSS / XML / XHTML
ControlControl Tab styles / HTML for Colors and Logos configBlocks of htmlTab styles / HTML for Colors and Logos configBlocks of html
for rendering various channels for rendering various channels
88
The usual suspectsThe usual suspectsFileNameFileName nested-tables.xslnested-tables.xsl
PathPath $CP_DOC_ROOT/stylesheets/org/jasig/portal/layout/tab-$CP_DOC_ROOT/stylesheets/org/jasig/portal/layout/tab-
column/nested-tables/nested-tables.xslcolumn/nested-tables/nested-tables.xsl
FormatFormat XML / XSLTXML / XSLT
ControlControl Renders the user layoutSplit into blocks by XSL:template matchRenders the user layoutSplit into blocks by XSL:template match
commandRenders the tool icons, header, javascript popup codecommandRenders the tool icons, header, javascript popup code
NotesNotes regularLayout - builds a tab sectionregularLayout - builds a tab section
header – school logo htmlheader – school logo html
appIcons – email / calendar …appIcons – email / calendar …
navigation – tab renderernavigation – tab renderer
content – channel holderscontent – channel holders
controlRow –controlRow –
contentRow –contentRow –
channel – actual channel rendererchannel – actual channel renderer
footer – footer –
controls – max / min / edit / help / controls – max / min / edit / help / detachdetach channel icons channel icons
detachedChannelControls – detachedChannelControls –
99
The usual suspectsThe usual suspectsFileNameFileName cp.csscp.css
PathPath $CP_DOC_ROOT/media/org/jasig/portal/layout/tab-column/nested-tables/cp/skin/$CP_DOC_ROOT/media/org/jasig/portal/layout/tab-column/nested-tables/cp/skin/cp.csscp.css
FormatFormat CSSCSS
ControlControl UPortal styles –UPortal-head / text / channel text etc.UPortal styles –UPortal-head / text / channel text etc.
Overall styles that apply to channels and user layoutOverall styles that apply to channels and user layout
NotesNotes Experiment with this style sheet. There are overlaps with this css and the style.css Experiment with this style sheet. There are overlaps with this css and the style.css below.below.
They’re called at different times to render different items. They’re called at different times to render different items.
Can be tricky to apply a new technique / style to the entire portal.Can be tricky to apply a new technique / style to the entire portal.
1010
The usual suspectsThe usual suspectsFileNameFileName style.cssstyle.css
PathPath $CP_DOC_ROOT/misc/style.css$CP_DOC_ROOT/misc/style.css
FormatFormat CSSCSS
ControlControl Calendar styles, a , text etc.Calendar styles, a , text etc.
1111
The usual suspectsThe usual suspectsFileNameFileName uPortal.jaruPortal.jar
PathPath $CP_WEBINF/lib/uPortal.jarFormatJAR$CP_WEBINF/lib/uPortal.jarFormatJAR
ControlControl This is the heart of luminis. It controls various aspects of the portal. This is the heart of luminis. It controls various aspects of the portal. Even though it is a jar file, you can still edit itEven though it is a jar file, you can still edit it
NotesNotes The file architecture of the portal is sometimes disconcerting. There are files on the 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 file system that are also included in this jar file. Editing the file on the file system
doesdoesnot necessarily mean that the change will be reflected in the portal. Sometimes modsnot necessarily mean that the change will be reflected in the portal. Sometimes modsare hit and miss as to where the correct location is to mod.are hit and miss as to where the correct location is to mod.
1212
Other important itemsOther important items
Icons Icons Description : Application and channel control iconsDescription : Application and channel control iconsLocation : $CP_DOC_ROOT/cps/images/miscLocation : $CP_DOC_ROOT/cps/images/misc
Login.htmlLogin.html Description : the first page you see when you hit the portalDescription : the first page you see when you hit the portalLocation : $CP_DOC_ROOT/site/login.htmlLocation : $CP_DOC_ROOT/site/login.html
Environment VariablesEnvironment Variables$CP_ROOT - C:\Luminis$CP_ROOT - C:\Luminis$CP_DOC_ROOT – C:\Luminis\webapps\luminis$CP_DOC_ROOT – C:\Luminis\webapps\luminis$CP_WEBINF - C:\Luminis\webapps\luminis\WEB-INF$CP_WEBINF - C:\Luminis\webapps\luminis\WEB-INF
1313
The databaseThe database
UPORTAL / LUMINIS SchemasUPORTAL / LUMINIS Schemas
UPortal SchemaUPortal Schema UP_CHANNEL – main channel definitions (LDAP / Filesystem)UP_CHANNEL – main channel definitions (LDAP / Filesystem) UP_GROUP – channel categories UP_GROUP – channel categories UP_GROUP_MEMBERSHIP – maps channels to categoriesUP_GROUP_MEMBERSHIP – maps channels to categories UP_SEQUENCE – next id containerUP_SEQUENCE – next id container UP_SS_THEME_PARM – controls main stylesheet / skin / themeUP_SS_THEME_PARM – controls main stylesheet / skin / theme
Luminis SchemaLuminis Schema
GT_* - Group Tools TablesGT_* - Group Tools Tables
TA_* - Targeted MessagesTA_* - Targeted Messages
MB_* - Message Board postsMB_* - Message Board posts
Targeted Announcement ArchivesTargeted Announcement Archives
http://www.lumdev.net/index.php?q=node/378http://www.lumdev.net/index.php?q=node/378
1414
Login page – one clickLogin page – one clickCustomize it ! Customize it !
$CP_DOC_ROOT/site/login.html $CP_DOC_ROOT/site/login.html
One click logins make it easier for demo and guest loginsOne click logins make it easier for demo and guest loginsAND ESPECIALLY on a development systemAND ESPECIALLY on a development system
<A HREF="javascript:LoginDemoUser('demostu', 'portaldemo');" TABINDEX=6>Guest login</A><A HREF="javascript:LoginDemoUser('demostu', 'portaldemo');" TABINDEX=6>Guest login</A>
<script><script> function LoginDemoUser(strName, strPassword) function LoginDemoUser(strName, strPassword) {{ this.document.userid.user.value=strName;this.document.userid.user.value=strName; this.document.cplogin.pass.value=strPassword;this.document.cplogin.pass.value=strPassword; login();login(); }}</script></script>
1515
Login page – ‘tooltips’Login page – ‘tooltips’
Cool DHTML tooltip scriptCool DHTML tooltip script
http://www.dynamicdrive.comhttp://www.dynamicdrive.com
Drop and go –Drop and go –Add a styleAdd a style #dhtmltooltop #dhtmltooltop
Add a <div>Add a <div>
Add a scriptAdd a script
Create tooltip variablesCreate tooltip variables
Calling Code :Calling Code :
onMouseover="ddrivetip(personalAnnouncements,'#DCDDEF', 200)"; onMouseover="ddrivetip(personalAnnouncements,'#DCDDEF', 200)"; onMouseout="hideddrivetip()" style="cursor:default;"onMouseout="hideddrivetip()" style="cursor:default;"
1616
Header SectionHeader Section
Colors and Logos configurationColors and Logos configuration
Enables you to modify the colors for the tabs, and channel bars.Enables you to modify the colors for the tabs, and channel bars.
- Primary - Primary
- Secondary color- Secondary color
OR …OR …
1717
<!-- School Logo Blocks --><!-- School Logo Blocks --><block "school_logo_image"><block "school_logo_image">
<!-- ### BEGIN BUILD SUNGARD --><!-- ### BEGIN BUILD SUNGARD --><style type="text/css" media="all">@import url("/PFM/2005corpglobal.css");</style><style type="text/css" media="all">@import url("/PFM/2005corpglobal.css");</style><style type="text/css" media="all">@import url("/PFM/2005corphomepage2.css");</style><style type="text/css" media="all">@import url("/PFM/2005corphomepage2.css");</style>
<div id="topImageBox"><div id="topImageBox"> <div id="logoImage"></div><div id="logoImage"></div></div></div>
<div id="topLogoBox"><div id="topLogoBox"> <div id="logoTop"></div><div id="logoTop"></div></div></div>
<div id="topColorBlock"><div id="topColorBlock"> <div id="topRight"><div id="topRight">
<!--BEGIN: Search Form --><!--BEGIN: Search Form --><form action="http://sctweb9.sct.com/cgi-bin/MsmFind.exe" method="get" <form action="http://sctweb9.sct.com/cgi-bin/MsmFind.exe" method="get"
id="searchForm">id="searchForm"> <p class="search"> SEARCH SUNGARD SCT</p><p class="search"> SEARCH SUNGARD SCT</p> <fieldset><input type="hidden" name="remask" value="MssRes.msk" /></fieldset><fieldset><input type="hidden" name="remask" value="MssRes.msk" /></fieldset> <fieldset><input type="text" name="query" id="searchword" /><fieldset><input type="text" name="query" id="searchword" /> <input name="submit" type="image" src="/PFM/search.gif" alt="GO" /><input name="submit" type="image" src="/PFM/search.gif" alt="GO" /> </fieldset></fieldset>
</form></form> <!--END: Search Form --><!--END: Search Form -->
</div></div></div></div><!-- ### END BUILD SUNGARD --><!-- ### END BUILD SUNGARD -->
</block></block>
Blocks.thtml
1818
IconsIconsCHANGE THEM !!!!!CHANGE THEM !!!!!
These files are located in a couple places (go figure). These files are located in a couple places (go figure).
Login.html :$CP_DOC_ROOT/cps/images/misc directory.Login.html :$CP_DOC_ROOT/cps/images/misc directory.
Main icons :$CP_DOC_ROOT/media/org/Jasig/portal/layout/tab-column/nested-tables/cp/controlsMain icons :$CP_DOC_ROOT/media/org/Jasig/portal/layout/tab-column/nested-tables/cp/controls
email_dft.gif / email_roll.gifemail_dft.gif / email_roll.gif
groups_dft.gif / groups_roll.gifgroups_dft.gif / groups_roll.gif
admin_dft.gif / admin_roll.gifadmin_dft.gif / admin_roll.gif
logout_dft.gif / logout_roll.giflogout_dft.gif / logout_roll.gif
help_dft.gif / help_roll.gifhelp_dft.gif / help_roll.gif
1919
Add iconsAdd iconsOr add new ones …Or add new ones …
File : nested-tables.xslFile : nested-tables.xsl
<xsl:template name="appIcons"><xsl:template name="appIcons">
......
<TD ALIGN="CENTER"><TD ALIGN="CENTER">
<A <A HREF="javascript:openBrWindow('http://apps.messiah.edu/portal/chan_feedback.asp','feedback','resizable=yes,sHREF="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');">crollbars=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" <IMG SRC="{$mediaPath}/{$skin}/controls/feedback.gif" ALT="feedback" NAME="fb" WIDTH="39" HEIGHT="26" BORDER="0" HSPACE="6"/>BORDER="0" HSPACE="6"/>
<BR/><BR/>
<SPAN CLASS="uportal-label">feedback</SPAN><SPAN CLASS="uportal-label">feedback</SPAN>
</A></A>
</TD></TD>
</xsl:template></xsl:template>
2020
Conditional iconsConditional iconsFile : nested-tables.xslFile : nested-tables.xsl
<xsl:variable name="roleTest"><xsl:variable name="roleTest"><xsl:for-each select="/layout/cp:cpInfo/cp:cpProperty[@name='pdsRole']/child::*"><xsl:for-each select="/layout/cp:cpInfo/cp:cpProperty[@name='pdsRole']/child::*"><xsl:if test=". = 'Student'"><xsl:if test=". = 'Student'">
<xsl:value-of select="'student'" /><xsl:value-of select="'student'" /></xsl:if></xsl:if>
<xsl:if test=". = 'Admin'"><xsl:if test=". = 'Admin'"><xsl:value-of select="'admin'" /><xsl:value-of select="'admin'" /></xsl:if></xsl:if>
</xsl:for-each></xsl:for-each></xsl:variable></xsl:variable>
<xsl:if test="$roleTest='student'"><xsl:if test="$roleTest='student'"><TR><TR> <TD ALIGN="CENTER"><A HREF=‘http://students.server.edu’ target=‘_blank’>student <TD ALIGN="CENTER"><A HREF=‘http://students.server.edu’ target=‘_blank’>student
stuff</A></TD>stuff</A></TD></TR></TR>
</xsl:if></xsl:if>
<xsl:if test="$roleTest='admin'"><xsl:if test="$roleTest='admin'"><TR><TR> <TD ALIGN="CENTER"><A HREF=‘http://portal.edu:9999’ target=‘_blank’>web admin</A></TD><TD ALIGN="CENTER"><A HREF=‘http://portal.edu:9999’ target=‘_blank’>web admin</A></TD></TR></TR>
</xsl:if></xsl:if>
2121
Channel renderingChannel rendering<xsl:template match="channel"><xsl:template match="channel">…… <!-- header row --><!-- header row --> <TR><TR> <TD CLASS="bgtabon" colspan="2" valign="top"><TD CLASS="bgtabon" colspan="2" valign="top"> <IMG ALT="" SRC="{$mediaPath}/{$skin}/skin/corner-left.gif" width="5" height="23"/><IMG ALT="" SRC="{$mediaPath}/{$skin}/skin/corner-left.gif" width="5" height="23"/> </TD></TD> <TD class="mc-channel-title"><TD class="mc-channel-title"> <xsl:value-of select="@title"/><xsl:value-of select="@title"/> </TD></TD> <TD class="bgtabon" ALIGN="RIGHT" NOWRAP="NOWRAP" VALIGN="CENTER"><TD class="bgtabon" ALIGN="RIGHT" NOWRAP="NOWRAP" VALIGN="CENTER"> <xsl:choose><xsl:choose> <xsl:when test="$detachedContent='true'"><xsl:when test="$detachedContent='true'"> <xsl:call-template name="detachedChannelControls"/><xsl:call-template name="detachedChannelControls"/> </xsl:when></xsl:when> <xsl:otherwise><xsl:otherwise> <xsl:call-template name="controls"/><xsl:call-template name="controls"/> </xsl:otherwise></xsl:otherwise> </xsl:choose></xsl:choose> </TD></TD> <TD CLASS="bgtabon" colspan="2" valign="top" align="right"><TD CLASS="bgtabon" colspan="2" valign="top" align="right"> <IMG ALT="" SRC="{$mediaPath}/{$skin}/skin/corner-right.gif" width="5" height="23"/><IMG ALT="" SRC="{$mediaPath}/{$skin}/skin/corner-right.gif" width="5" height="23"/> </TD></TD> </TR></TR> <!-- spacer row --><!-- spacer row -->
2222
channel resultschannel results
2323
Channel controlsChannel controls
<xsl:template name="controls"><xsl:template name="controls">
<!-- Help button --><!-- Help button -->
<xsl:if test="not(@hasHelp='false')"><xsl:if test="not(@hasHelp='false')">
<a href="{$baseActionURL}?uP_help_target={@ID}" onMouseover="window.status=''; return true;"><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"/><img alt="help" title="help" src="{$mediaPath}/{$skin}/controls/help.gif" width="16" height="16" border="0"/>
</a></a>
</xsl:if></xsl:if>
2424
Hidden detach methodHidden detach method
<<xsl:template name="controls">xsl:template name="controls">
……
<!-- Remove Detach button<!-- Remove Detach button
<xsl:if test="not(@detachable='false')"><xsl:if test="not(@detachable='false')">
<a href="#" onClick="openBrWindow('{$baseActionURL}?<a href="#" onClick="openBrWindow('{$baseActionURL}?uP_detach_target={@ID}','detachedChannel','toolbar=yes,location=yes,status=yes,menubar=yes,uP_detach_target={@ID}','detachedChannel','toolbar=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width=640,height=480')">scrollbars=yes,resizable=yes,width=640,height=480')">
<img alt="detach" title="detach" src="{$mediaPath}/{$skin}/controls/detach.gif" width="16" <img alt="detach" title="detach" src="{$mediaPath}/{$skin}/controls/detach.gif" width="16" height="16" border="0"/>height="16" border="0"/>
</a></a>
</xsl:if></xsl:if>
-->-->
2525
uPortal.jaruPortal.jar
Location : $CP_WEBINF/libLocation : $CP_WEBINF/lib
Extract – Extract –
Jar xvf uPortal.jarJar xvf uPortal.jar
Rebuild –Rebuild –
Jar cvf uPortal.jar.new *Jar cvf uPortal.jar.new *
2626
Links and welcomeLinks and welcome
‘‘currently logged in’currently logged in’
org/jasig/portal/channels/CLogin/html.xslorg/jasig/portal/channels/CLogin/html.xsl
My Account linksMy Account links
org/jasig/portal/channels/CHeader/html.xslorg/jasig/portal/channels/CHeader/html.xsl
2727
What’s next ?What’s next ?
Use your imagination ….Use your imagination ….
To turn this –To turn this –
2828
Contact InformationContact Information
Jonathan WheatJonathan WheatMessiah College, ITSMessiah College, ITS
1 College Ave, Box 30551 College Ave, Box 3055
Grantham, PA 17027Grantham, PA 17027
717.766.2511 x3385717.766.2511 x3385
[email protected]@messiah.edu
Jonathan WheatJonathan WheatLDNLDN
Luminis Developers NetworkLuminis Developers Network
http://www.lumdev.nethttp://www.lumdev.net
[email protected]@lumdev.net
Download location : http://www.lumdev.net/pimpmyportal