Have you implemented customized adaptive layouts yet?
If you changed the basepagelayout file then be sure to take a look at the user profile community also.
The user profile community doesn't heed the basepagelayout, and instead uses the profilepagelayout file.
Rather than creating another system file for a customized profilepagelayout you could just create a new webservice and point it to the basepagelayout file you already customized.
After a few months running a customized basepagelayout, I've only just discovered this! Yikes!
Wednesday, March 30, 2011
Thursday, March 17, 2011
Tip for System Admins: Install XMarks
Do you manage a lot of servers and rely on web based documentation, configurations, and multiple system/server websites? If you answered yes to any of those then you might want to consider installing XMarks on your server.
Xmarks stores bookmarks on their servers and allows you to synchronize them down to your browser.
I have a fairly good list of about 30 complex URLs that I need access to when I login to each of the servers I work on. Manually keeping them up to date and synchronized is a pain. But that pain is gone thanks to Xmarks - I just installed a new server and immediately have access to all of my configuration and documentation URLs!
Thanks Xmarks!!!!
http://www.xmarks.com
Xmarks stores bookmarks on their servers and allows you to synchronize them down to your browser.
I have a fairly good list of about 30 complex URLs that I need access to when I login to each of the servers I work on. Manually keeping them up to date and synchronized is a pain. But that pain is gone thanks to Xmarks - I just installed a new server and immediately have access to all of my configuration and documentation URLs!
Thanks Xmarks!!!!
http://www.xmarks.com
Wednesday, March 9, 2011
Oracle WebCenter Interaction: Customizing Collab Subscription Emails
Changing the subscription emails from Collab is super simple and can go a long way in getting users to actually read the emails. I'll admit that after a few years of getting them I've learned to tune out the content once I open a subscription email and see the standard heading it has.
By removing the top table and doing some reformatting the emails can look just like any other email and, fingers crossed, maybe more folks will read them!
The email templates are located in \bea\alui\ptimages\imageserver\plumtree\collab\templates.
The discussion board message post template is called: DiscussionPostNotification.nst
Here is how our discussion board message post emails now look:
This is the code that makes that happen:
One final tip - if you get annoyed with all of the subscription emails for deletions, just DELETE the .nst files associated with content deletion! Problem solved! (yes, your log file might grow faster with error messages about the missing file, but that is better than the annoyance of these emails!!!)
By removing the top table and doing some reformatting the emails can look just like any other email and, fingers crossed, maybe more folks will read them!
The email templates are located in \bea\alui\ptimages\imageserver\plumtree\collab\templates.
The discussion board message post template is called: DiscussionPostNotification.nst
Here is how our discussion board message post emails now look:
This is the code that makes that happen:
## Collaboration Server Notification Template
## Type: Discussion Post
## Channel: Email - HTML
## content type
#set( $contentType = "text/html" )
## sets the subject line for the email
#set( $cns_subject = "$projectName Discussion Board Post" )
## Body Start
#parse ("/plumtree/collab/templates/header.inc")
<table width="100%" border="0" cellspacing="5" cellpadding="3">
<tr>
<td class="customappText"><b>${rootMessageName}</b><br><i>${messageAuthorName}</i><br><div>${messageBody}</div></td>
</tr>
<tr>
<td class="actionbarDirBtn"><A href="${messageReplyURL}"><img src="$imageServer/plumtree/collab/private/img/actionMsgReply20.gif" align="absmiddle" border="0"><span class="actionbarText">Reply</span> </a></td>
</tr>
<tr><td height="100"> </td></tr>
</table>
<hr width="100%">
<table width="100%" border="0" cellspacing="5" cellpadding="3" >
<tr>
<td class="customappText">Workspace: <A href="${projectOverviewURL}">${projectName}</a>
<br>Discussion Board: <A href="${rootMessageURL}">${discussionName}</a><br>${messageCreatedDate}</td>
</tr>
<tr>
<td class="customappText">Why am I receiving this email?<BR>You are subscribed for email notification when new messages are posted to the ${projectName} discussion boards.</td>
</tr>
#parse ("/plumtree/collab/templates/attachment.inc")
</table>
#parse ("/plumtree/collab/templates/footer.inc")
One final tip - if you get annoyed with all of the subscription emails for deletions, just DELETE the .nst files associated with content deletion! Problem solved! (yes, your log file might grow faster with error messages about the missing file, but that is better than the annoyance of these emails!!!)
Wednesday, January 19, 2011
Oracle WebCenter Interaction: Developing a custom login page
One can find some public WebCenter Interaction sites by simply googling "portal/server.pt". In looking at a lot of public sites (and a few that are password protected) is that many don't bother to change the out of the box login UI.
Recently we turned on our adaptive page layouts, and while they aren't required for creating a custom login page, they do make it very simple. The process involves the following:
Depending on how customized your existing login page is, you might also have to change the header/footer associated with the guest login, change the experience definition navigation options to portlet-ready navigation and possibly modify the basepagelayout file.
All in all, creating a custom layout is fairly straight forward in this manner.
Creating unique layouts for various sites using the same portal install can be done based on experience rules (URL, User-Agent, IP, Group, etc) and additional login page layouts. Fortunately I didn't have to do that today, but it looks like it should be another fairly straight-forward change.
What do you think of our new login page?
Recently we turned on our adaptive page layouts, and while they aren't required for creating a custom login page, they do make it very simple. The process involves the following:
- modifying the loginpagelayout.html file which is located in \ptimages\imageserver\plumtree\portal\private\pagelayouts
- creating a web service to point to the custom loginpagelayout file
- enabling adaptive layouts for your guest experience definition and selecting your new loginpagelayout file
Depending on how customized your existing login page is, you might also have to change the header/footer associated with the guest login, change the experience definition navigation options to portlet-ready navigation and possibly modify the basepagelayout file.
All in all, creating a custom layout is fairly straight forward in this manner.
Creating unique layouts for various sites using the same portal install can be done based on experience rules (URL, User-Agent, IP, Group, etc) and additional login page layouts. Fortunately I didn't have to do that today, but it looks like it should be another fairly straight-forward change.
What do you think of our new login page?
Thursday, January 13, 2011
Oracle WebCenter Interaction: Improving the user search experience
Recently we enabled adaptive layouts in our 10.3 WCI environment with the goal of redesigning the search results layout. Out of the box the results screen is overly cluttered and out of date with modern UI's.
What we removed and why:
What we removed and why:
- Advanced search - unfriendly tool for users that are trying to find things quickly and easily
- Save this search - another unfriendly tool where a user would have to know to add the "Saved search" portlet to their My Pages
- Sort by - a world of options that no user takes advantage of
- Created date - modified date is good enough
- KD breadcrumb (on documents) - added clutter
- Categories - as a nod to the advanced search features, Facebook/Google/Bing/Yahoo side navigation we chose to add categories for All, Documents, Folders, Collab Items and Web Content
- Pagination - we chose to modify the UI of the pagination area to be more like Bing and other modern UI's which use mouse over boxes
- Search result row - by taking the modified date out of the column, moving it below the description and coloring it green, a more recognizable design is achieved
Wednesday, December 8, 2010
Oracle WebCenter Interaction: Page Flyout Navigation
The out of the box navigation options bundled with WebCenter Interaction use dated designs and leave something to be desired. Like many other customers, we decided to create a custom navigation when we began implementing our portal in 2005. We utilized a header based community navigation and a left column page navigation portlet - a design common across many websites. After some time we noticed, through analytics and feedback, that users were struggling with the page navigation.
To remedy this problem we decided to redo the typical "My Communities" dropdown navigation so that when a user hovered over a community in the dropdown the pages from that community would "fly-out" to the right.
After some searching we settled on the Superfish jQuery plugin which has a pleasing display.
The coding wasn't very challenging and required just adding an extra loop in the forEach Community section to gather and display the pages.
The final result has been praised by our end users and has led to an increase in sub-page views across communities.
Lessons Learned:
Code:
<li><a href="#" class="tab" ><img src="pt://images/plumtree/custom/DimensionHeader/images/tab_comms.gif" border="0" /></a>
<ul><!-- loop through each community -->
<pt:logic.foreach pt:data="sortedComms" pt:var="element">
<pt:logic.collection pt:key="subpages"/>
<pt:ptdata.communitypagesdata pt:id="subpages" pt:commid="$element.objid" />
<pt:logic.variable pt:key="showpage" pt:value=""/>
<li>
<pt:core.html pt:tag="a" href="$element.url"><pt:logic.value pt:value="$element.title" /></pt:core.html>
<pt:logic.collectionlength pt:data="subpages" pt:key="length"/>
<pt:logic.intexpr pt:expr="($length) > 1" pt:key="boolvalue"/>
<pt:logic.if pt:expr="$boolvalue">
<pt:logic.iffalse>
</pt:logic.iffalse>
<pt:logic.iftrue>
<ul>
<pt:logic.foreach pt:data="subpages" pt:var="sp">
<pt:logic.stringexpr pt:expr="($showpage) == a" pt:key="boolvalue"/>
<pt:logic.if pt:expr="$boolvalue">
<pt:logic.iftrue>
<li>
<pt:core.html pt:tag="a" href="$sp.url"><pt:logic.value pt:value="$sp.title"/>
</pt:core.html>
</li>
</pt:logic.iftrue>
</pt:logic.if>
<pt:logic.variable pt:key="showpage" pt:value="a"/>
</pt:logic.foreach>
</ul>
</pt:logic.iftrue>
</pt:logic.if>
</li>
</pt:logic.foreach>
</ul>
</li>
To remedy this problem we decided to redo the typical "My Communities" dropdown navigation so that when a user hovered over a community in the dropdown the pages from that community would "fly-out" to the right.
After some searching we settled on the Superfish jQuery plugin which has a pleasing display.
The coding wasn't very challenging and required just adding an extra loop in the forEach Community section to gather and display the pages.
The final result has been praised by our end users and has led to an increase in sub-page views across communities.
Lessons Learned:
- Our previous communities were built with announcements on their home pages however now that users are able to skip the home page they sometimes miss important news.
- We are now getting demands for the occasional sub or related community to display as if it were a page. If this were an across the board demand we could simply gather and display those but because of the infrequency of this request we have opted to create stub pages which contain a single portlet which does a URL redirect to the associated community. The solution is ugly (as redirects are) but gets the job done. A prettier alternative would be to code an if condition into the loop that displays the pages so that when the particular community it appears it gets an additional faux page added.
- The concept of flyout is wonderful but there needs to be governance around how many items should appear in the dropdown. We are now at the maximum that will fit on a monitor at 1024x768 resolution and find this to be exceptionally limiting.
- I've always been against fly-out navigation from a usability perspective, especially when there is more than one level of fly-out. However, limiting yourself to one level of fly-outs essentially limits your navigation to only two levels in depth which is exceptionally limiting.
- We are a mid sized company (1200 employees, 2000 extranet users) with 150 communities. If it were my choice I would completely redo our navigation away from fly-outs and away from dropdowns.
- I strongly recommend not using fly-outs.
Code:
<li><a href="#" class="tab" ><img src="pt://images/plumtree/custom/DimensionHeader/images/tab_comms.gif" border="0" /></a>
<ul><!-- loop through each community -->
<pt:logic.foreach pt:data="sortedComms" pt:var="element">
<pt:logic.collection pt:key="subpages"/>
<pt:ptdata.communitypagesdata pt:id="subpages" pt:commid="$element.objid" />
<pt:logic.variable pt:key="showpage" pt:value=""/>
<li>
<pt:core.html pt:tag="a" href="$element.url"><pt:logic.value pt:value="$element.title" /></pt:core.html>
<pt:logic.collectionlength pt:data="subpages" pt:key="length"/>
<pt:logic.intexpr pt:expr="($length) > 1" pt:key="boolvalue"/>
<pt:logic.if pt:expr="$boolvalue">
<pt:logic.iffalse>
</pt:logic.iffalse>
<pt:logic.iftrue>
<ul>
<pt:logic.foreach pt:data="subpages" pt:var="sp">
<pt:logic.stringexpr pt:expr="($showpage) == a" pt:key="boolvalue"/>
<pt:logic.if pt:expr="$boolvalue">
<pt:logic.iftrue>
<li>
<pt:core.html pt:tag="a" href="$sp.url"><pt:logic.value pt:value="$sp.title"/>
</pt:core.html>
</li>
</pt:logic.iftrue>
</pt:logic.if>
<pt:logic.variable pt:key="showpage" pt:value="a"/>
</pt:logic.foreach>
</ul>
</pt:logic.iftrue>
</pt:logic.if>
</li>
</pt:logic.foreach>
</ul>
</li>
Friday, December 3, 2010
Congrats to Oracle on setting a new world record in TPC-C
TPC-C simulates a complete computing environment where a population of users executes transactions against a database. The benchmark is centered around the principal activities (transactions) of an order-entry environment. These transactions include entering and delivering orders, recording payments, checking the status of orders, and monitoring the level of stock at the warehouses. While the benchmark portrays the activity of a wholesale supplier, TPC-C is not limited to the activity of any particular business segment, but, rather represents any industry that must manage, sell, or distribute a product or service.[1]
They set the record using a Sparc T3-4 server running a whopping 108 processors with 1728 cores, for a gigantic total of 13,824 threads! The system was equipped with Oracle 11gR2 Database running Oracle's Solaris 10. [2]
References:
- http://www.tpc.org/tpcc/default.asp
- http://www.tpc.org/tpcc/results/tpcc_result_detail.asp?id=110120201
- Results: http://www.tpc.org/tpcc/results/tpcc_perf_results.asp
Subscribe to:
Posts (Atom)




