Sie sind auf Seite 1von 9

Portlets

Contents

[hide]
• 1 Version Applicability
• 2 Overview
• 3 Videos
• 4 Use Cases
• 5 Constraints
• 6 Portlets
o 6.1 Common Capabilities

 6.1.1 Supported DocLib Capabilities


 6.1.2 Actions Not Available in Portlet
DocLib
 6.1.3 New Actions Only Available in Portlet
DocLib
o 6.2 Share Document Library Portlet
o 6.3 Repository Document Library Portlet

• 7 Installation and Configuration (Liferay)


o 7.1 Prerequisites
o 7.2 Single-server Installation Steps

• 8 Developing New Portlets


Version Applicability
For Alfresco Community 3.4.a and newer and Enterprise 3.3.5 or 3.4 and newer, please
see Doclib Portlet instead.
Overview
One of the new features added to Alfresco Enterprise 3.2r is the ability to turn Web
Scripts into standalone portlets that run on Liferay or other portals and include support
for Single Sign-On (SSO) and generating portal-friendly URLs.

This capability is further enhanced in Alfresco Community 3.4 and later versions as we
can now deploy the Alfresco Share Document Library as a portlet.

The DocLib Portlet aims to surface the rich document management capabilities
provided by the Share Document Library (DocLib) within a Portal.

Reference link : http://wiki.alfresco.com/wiki/Portlets


Videos
The following videos demonstrate the basic features and installation process.

• Demonstration Video
• Installation Video
Use Cases
Portals provide a framework for integrating information, applications, people, processes
etc. They are designed to aggregate and personalize information through application-
specific portlets. They typically offer some basic content management capabilities but
do not provide the rich content management services supported by Alfresco. Portal
users want to use Alfresco's document management capabilities within the context of
the Portal rather then via a standalone UI. The Doclib Portet will allow Alfresco's
document management capabilities for the repository or Share Sites to surfaced directly
within the portal (initially Liferay) via portlets. This will allow all the core document
management capabilities to be used within the context of the portal page, without
opening in separate tabs/windows.
Constraints
• Initial Supported Stack:
• Liferay Portal CE & EE 5.2.3 (Others TBD)
• Tomcat 6
• IE7+, Firefox 3.6
• Portal server components to be delivered as a war installable within the portal
application server instance.
• Alfresco server components installable against Alfresco Enterprise 3.3.1.
• Other parts of the Share client including dashboard and pages components,
other than the document library, will not be portlet enabled.
• Localisation TBC
• Multi-tenant TBC
Portlets
The DocLib Portlet technically consists of 2 portlets, a Repository Document Library
portlet and Sites Document Library portlet.
Common Capabilities
The following applies to both the Repository Document Library portlet and the Sites
Document Library portlet.

Reference link : http://wiki.alfresco.com/wiki/Portlets


The standard Share header will *not* be available i.e. My Dashboard, My Profile etc,
site name, page component links.

Supported DocLib Capabilities


• Create Content, Create Folder, Upload
• Navigate Breadcrumbs, RSS Feed, Hide/Show Folders, (RSS Feed Link - TBC)
• Simple/Detailed View
• Filters - All Documents/I'm Editing/Others are Editing/Recently Modified, Recently
Added, My Favorites
• Hierarchical folder browsing
• Tag browsing
• Simple Document Details Page (Popup)
• Document Details Page including:
• All existing standard Document Actions
• Version history
• Commenting
• Note: Share (links) will NOT be available
• Edit Document Metadata
• Simple Folder Details Page (Popup)
• Folder Details Page
• All existing standard folder actions *except* View in Alfresco Explorer (see
below) and Share (links)
• Edit Folder Metadata
Actions Not Available in Portlet DocLib
• Navigation to other page components e.g. profile, wiki, blog, calendar
• Navigation to header components e.g. My Dashboard, My Profile, Sites, Search
etc.
• Document Details - Share panel (links)
• Folder actions - View in Alfresco Explorer
• Share (links) from the Folder and Document Details pages will not be available
New Actions Only Available in Portlet DocLib
• A new "Open Share" action will provided to allow the user to open the full Share
client. [TBC]

Reference link : http://wiki.alfresco.com/wiki/Portlets


• An option will be provided to allow links to user profiles will navigate to the profile
page for the user provided by the portal itself.
Share Document Library Portlet
• This portlet also includes a launch page that allows the user to pick the site they
would like to work with from a list of sites they have access to. This will be the default
starting page for the Sites Document Library portlet.
• Alternatively, the portlet configuration can define a start page URL that defines
the document library for an existing Share site to be used.
Repository Document Library Portlet
• Configuration to define the start page URL for the starting (root) space for the
dashlet, defaults to company home. Identical to the "Repository" link within Share
itself.
Installation and Configuration (Liferay)
Prerequisites
• Liferay v5.2.3 installed & working. We have not tested and therefore do not
support Liferay 6 at this time.
• Admin user knows where Liferay's "deploy" folder is.
• If using Tomcat6, the modifications described in our wiki have been
deployed:http://wiki.alfresco.com/wiki/Install_Tomcat6
• share.war is the one taken from the DocLIb Portlet branch of 3.3.1E, or is 3.4
Community or newer.
• Repository is v3.3.1E or newer
Single-server Installation Steps
We assume you’ve installed the Alfresco and Liferay Tomcat bundles into separate
directories. We’ll refer to these as<ALFRESCO_HOME> and <LIFERAY_HOME>

Step 1. Configuring Liferay’s Tomcat Server to resolve port conflicts by


editing<LIFERAY_HOME>/<tomcat>/conf/server.xml:

Change all the port numbers to avoid conflicts with the Alfresco’s Tomcat server, here
are the changes I made:

...

<Server port="8105" shutdown="SHUTDOWN">

Reference link : http://wiki.alfresco.com/wiki/Portlets


...

<Connector port="9090" protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="9443" URIEncoding="UTF-8" />

...

<Connector port="8109" protocol="AJP/1.3" redirectPort="8443"


URIEncoding="UTF-8" />

...

Step 2. Next, edit <LIFERAY_HOME>/<tomcat>/conf/catalina.properties and locate


the “shared.loader” entry and replace it with this:

shared.loader=${catalina.base}/shared/classes,${catalina.base}/shared/lib/*.jar Step
3. Edit<ALFRESCO_HOME>/tomcat/shared/classes/alfresco-global.properties and
add the following lines to the end of the file:

• shared/classes/alfresco/alfresco-global.properties

authentication.chain=alfrescoNtlm1:alfrescoNtlm,external1:external

external.authentication.proxyUserName=

NOTE: Yes, the value for proxyUserName needs to be blank.

Step
4. Copy <ALFRESCO_HOME>/tomcat/webapps/share.war to <LIFERAY_HOME>/de
ploy

Step 5. Copy the entire <ALFRESCO_HOME>/tomcat/shared directory


to <LIFERAY_HOME>/<tomcat>/

NOTE: Technically, we only need the shared/classes/alfresco/web-


extension/ directory, but copying the whole shared directory is a convenient alternative.

Step 6. Open <LIFERAY_HOME>/<tomcat>hared/classes/alfresco/web-


extension/share-config-custom.xml.sample to share-config-custom.xml and edit

Reference link : http://wiki.alfresco.com/wiki/Portlets


the file to uncomment the second config block to enable remote authenticator. The
comments are on lines 44 and 73. The result should look like this:

• shared/classes/alfresco/web-extension/share-config-custom.xml
Note: Modify endpoint-url parameters to match actual Repository deployment.

<alfresco-config>

<!-- Overriding endpoints to reference a remote Alfresco server -->

<config evaluator="string-compare" condition="Remote">

<remote>

<endpoint>

<id>alfresco-noauth</id>

<name>Alfresco - unauthenticated access</name>

<description>Access to Alfresco Repository WebScripts that do not


require authentication</description>

<connector-id>alfresco</connector-id>

<endpoint-url>http://localhost:8080/alfresco/s</endpoint-url>

<identity>none</identity>

</endpoint>

<endpoint>

<id>alfresco-feed</id>

<name>Alfresco Feed</name>

<description>Alfresco Feed - supports basic HTTP


authentication</description>

Reference link : http://wiki.alfresco.com/wiki/Portlets


<connector-id>http</connector-id>

<endpoint-url>http://localhost:8080/alfresco/s</endpoint-url>

<basic-auth>true</basic-auth>

<identity>user</identity>

</endpoint>

<connector>

<id>alfrescoCookie</id>

<name>Alfresco Connector</name>

<description>Connects to an Alfresco instance using cookie-based


authentication</description>

<class>org.springframework.extensions.webscripts.connector.Alfres
coConnector</class>

</connector>

<endpoint>

<id>alfresco</id>

<name>Alfresco - user access</name>

<description>Access to Alfresco Repository WebScripts that


require user authentication</description>

<connector-id>alfrescoCookie</connector-id>

<endpoint-url>http://localhost:8080/alfresco/wcs</endpoint-url>

<identity>user</identity>

<external-auth>true</external-auth>

</endpoint>

Reference link : http://wiki.alfresco.com/wiki/Portlets


</remote>

</config>

</alfresco-config>

NOTE: If you’re running Alfresco’s Tomcat server on a different host or port, please
change the corresponding endpoint.

Step 7. Startup Alfresco, then follow up with starting Liferay.

Step 8. Once Alfresco and Liferay are started, add and try out the basic CMIS Repo
Browser portlet. It should appear under the “Alfresco” category.

This integration makes use of an external authenticator that will automatically create an
Alfresco user account whenever a new Liferay user accesses an Alfresco portlet.
Developing New Portlets
To create your own custom portlet, I recommend you look at the CMIS Repo code
under in the share.war file under WEB-
INF/classes/alfresco/webscripts/org/alfresco/test/cmisrepo.* and cmisfolder.*.

In short, you’ll need to create a Web Script which can be placed inside the share.war file
under WEB-INF/classes/alfresco/webscripts or
in <LIFERAY_HOME>/<tomcat>/shared/classes/alfresco/web-
extension/webscripts (create the directory if it doesn’t already exist.

You’ll also need to edit the portlet.xml file in the share.war/WEB-INF directory to add a
new entry for your portlet using the Alfresco “ProxyPortlet” as the portlet class.

<portlet>

<description>CMIS Folder Browser</description>

<portlet-name>CMISFolder</portlet-name>

Reference link : http://wiki.alfresco.com/wiki/Portlets


<portlet-class>org.alfresco.web.portlet.ProxyPortlet</portlet-
class>

<init-param>

<name>scriptUrl</name>

<value>/share/service/sample/cmis/repo</value>

</init-param>

<supports>

<mime-type>text/html</mime-type>

<portlet-mode>VIEW</portlet-mode>

</supports>

<portlet-info>

<title>CMIS Folder Browser</title>

<short-title>CMIS Folder</short-title>

</portlet-info>

</portlet>

Finally add your portlet to the liferay-display.xml and liferay-portlet.xml files.

To make sure that your URLs are correctly generated, please use the “scripturl()”
function in your Freemarker templates to wrap them:

<a href="${scripturl(url.serviceContext + "/sample/cmis/repo",


false)}">CMIS Repository</a>

Reference link : http://wiki.alfresco.com/wiki/Portlets