Thursday, April 28, 2011

First Steps into Liferay Portal 6EE (Enterprise Edition): Part 1

Recently I was tasked with setting up a test Liferay portal environment to see how it compares with our current Oracle WebCenter Interaction 10.3 platform.  While I'm withholding my opinion for now, I thought I would share some information to help others that are also seeking to setup a Liferay environment.  All of this info is available elsewhere obviously, but you'll have to browse through a series of documents and do a little hunting to dig it all up, so I thought I'd share the basics.

  1. Download 
    1. Get the software: http://www.liferay.com/get-ee-trial/downloads/portal
    2. you'll need to create an account on liferay.com to get to the download page
    3. you'll need a trial license to do anything with the downloaded software so contact their sales team for a 30 day license - you can extend your license by contacting the sales folks again later
    4. For evaluation purposes they recommend getting the tomcat bundle
  2. Hardware/Software Requirements
    1. Liferay doesn't seem to offer official documentation on what is/isn't supported.  Naturally this was extremely disconcerting, but given that this is just a test environment I took them at their word that their software is OS and DB agnostic.
    2. We chose to run on a single VM (Citrix XenServer) running Windows 2008 R2 SE 64bit, Xeon x5670 2.93GHz processor, 4gb RAM and MS SQL Server 2008 SE 64bit
      1. I've heard you can run on a laptop with 2gb of RAM with no problem
  3.  Install
    1. Unzip the tomcat bundle
    2. Copy the license file into the /deploy folder
    3. Run startup.bat from /tomcat/bin
    4. Voila! you are up and running

The Basics
Admin login: test@liferay.com/test

Navigation:
The "Go to" dropdown is essentially a list of all Communities a person is subscribed to. This is synonymous with "My Communities" from Oracle WebCenter Interaction.

Create a community
  1. Under the “Manage” dropdown select control panel
  2. Click on Portal: Communities
  3. Click on Add
  4. Click on Save
  5. Note: Communities won’t appear under the “Go to” dropdown until they have pages assigned to them.
Create a page within a community
  1. Under the “Manage” dropdown select control panel
  2. Click on Portal: Communities
  3. Click the Actions link to the right of the community you want to add pages , and select Manage Pages
  4. Type the name of the page and select the type of page it will be then click  the Add Page button
To add a portlet to a page
  1. Under the “Add" dropdown select "More..."
  2. Drag the elements onto the page or click the "Add button" to the right of the element
Configure Active Directory Authentication & Profiling Source
  1. Login as an Admin
  2. Under the “Manage” dropdown select control panel
  3. Click on Portal: Settings
  4. Click on “Configuration: Authentication"
  5. Configure AD
Helpful links:
  1. Admin guide: http://docs.liferay.com/portal/6.0/official/liferay-administrator-guide-6.0.pdf
  2. Forums: http://www.liferay.com/community/forums/-/message_boards/category/243728
(Click to enlarge)

Tuesday, April 19, 2011

Oracle WebCenter Interaction: Using multiple logins and URLs to access your portal

When we purchased Plumtree licenses way back in the day we had visions of using the software to run our intranet and as an extranet for small groups of outside users.  The setup was fairly vanilla in terms of experience definitions, rules, and URLs - we based everything upon what folder a user object was stored in and fed the experience definition on that.  Extranet users are directed to a secure URL which points to the IP of our DMZ portal server and then exposes the portals functionality, while internal users access a pair of load balanced internal portal servers using the same URL.  In IIS 6 and what is now WCI 10.3, this type of setup is quite straight-forward.

Recently we were asked to build a new site for medical professionals which would use a different secure URL and allow users to create their own accounts before logging in and viewing targeted content.  Because security certificates attach to IIS Web Sites we needed to create a new site and obtain a new certificate.  Could we have put 2 certs on a single site? Maybe...but that didn't seem like a best practice and we figured the tried and true approach would pay off in the end.

We pointed the new URL to a new IP address which was attached to a new "Web Site" in IIS with a corresponding certificate.  Once that was setup we created a virtual directory to point to the /portal and /imageserver directories.  The default site page routed to /portal/server.pt as required but there we received nothing but a 404 message.  After some head scratching and browsing of the Oracle Support archives and Oracle Technology Network discussion boards a quick conversation with support identified the obvious issue - we hadn't registered the product specific file extension within IIS! duh!
On the Web Site you must configure the application settings.  Go to the mapping application extensions area and add a new mapping for .pt which points to the executable located in C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll
then limit the verbs to: GET,HEAD,POST,OPTIONS,PROPFIND,PROPPATCH,MKCOL,LOCK,UNLOCK,
PUT,DELETE,COPY,MOVE

Restart IIS and voila!

To complete the experience we developed a new login page which included a "Create Account" link, and defaulted the Auth Source to our portal repository.  An Experience Rule was created for the new URL and points to an Experience Definition that has a custom Login page defined (if you don't do this your site will use whatever your Guest login page is).

Wednesday, March 30, 2011

Oracle WebCenter Interaction: Adaptive Layouts: Profile Page Layout

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!

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

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:
## 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>&nbsp;&nbsp;</a></td>   
    </tr>
   <tr><td height="100">&nbsp;</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:
  1. modifying the loginpagelayout.html file which is located in \ptimages\imageserver\plumtree\portal\private\pagelayouts
  2. creating a web service to point to the custom loginpagelayout file
  3. enabling adaptive layouts for your guest experience definition and selecting your new loginpagelayout file
That's it!!!

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:
  • 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
What we added/modified and why:
  • 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
The final look: