The Portal Server software deploys the Blog portlet, but manual configuration is required because the Blog portlet requires a properly configured Roller server instance. Until the Roller server is running, Blog portlet cannot be used. Note that Java 1.4.x is the required Java version.
This technical note contain the following sections:
Depending on the desired use case (see Use Cases) for Blog portlet, some or all of the portlet preferences must be set. See Portlet Preferences for a description of the portlet preferences. These preferences can be configured at the provider or channel level.
To configure at:
The provider level, download the top level display profile, edit the XML directly, and then upload the display profile. Alternatively, create a display profile document that contains only the required changes and then run the psadmin modify-display-profile command with the --combine option to insert the modifications.
For example, to set the AAPP user name and password preferences:
$ cat blogportlet-provider.xml <?xml version="1.0" encoding="utf-8" standalone="no"?> <!DOCTYPE DisplayProfile SYSTEM "jar://resources/psdp.dtd"> <DisplayProfile version="1.0" priority="0"> <Properties/> <Channels/> <Providers> <Provider name="__Portlet__blogportlet.BlogPortlet" class="com.sun.portal.providers.portletwindow.PortletWindowProvider"> <Properties> <String name="__Portlet__aappUserName" value="|foo"/> <String name="__Portlet__aappUserPassword" value="|iplanet"/> </Properties> </Provider> </Providers> </DisplayProfile> $ /opt/SUNWportal/bin/psadmin modify-display-profile -u amadmin -f /tmp/pw -g -p portal1 --combine blogportlet-provider.xml |
If you plan to configure the Blog community service, you must configure Blog portlet's preferences at the provider level.
The channel level, create a Blog portlet channel first. The preferences can then be edited from either the Portal Server management console or by using the psadmin command line utility.
Blog portlet can now be used outside of a community context. You can create channels based on this portlet using the psadmin command line utility or from the Portal Server management console.
This sections contains the following:
When used in conjunction with Portal Server's Community Sample, Blog portlet provides for a per community weblog. Only community members can post to the weblog. If the Roller server user interface is left directly accessible, then all weblogs, including community weblogs, are visible to any user with access to the Roller server. Set up the Roller server in a headless configuration that only exposes the APP and AAPP endpoints. Refer to documentation in the Roller project page fore more information.
The Blog community service is not enabled by default (see Enabling Blog Community Service for more information on how to enable the Blog community service). When a new community is created that contains the Blog community service, Blog provisioning occurs.
Blog provisioning prepares a weblog for use within a newly created community. It performs the following steps automatically when a new community is created.
Creates community specific, shared weblog user account.
Creates a community specific weblog.
Adds the user account as a member of the weblog.
Sets various portlet preferences according to the weblog and weblog user account created in steps 1 and 2.
If the community specific weblog already exists, it is used as is. If the shared weblog user account already exists, it's properties are reset to those expected by the Blog community service.
The community weblog's handle (it's unique identifier) is equal to the community name. A weblog also has a description and various other properties. These are all set to generic default values when the weblog is created by provisioning. The values can be changed later by accessing the Roller server directly.
The APP entries URL, and the user name and password of the shared user, are set into the preferences of the community display profile. Therefore, all community users will get these preferences, and the community blog service will access the community weblog with the credentials of the shared user account. The author of new weblog posts will be the shared user.
If community users wish to access the weblog with a personalized (nonshared) weblog user account, they can do so by editing the Blog portlet. This allows the user to either create a new weblog user account or specify an existing one, and add the user to the community weblog as a member. Once the user personalizes their weblog user account settings, they cannot revert to the shared user account.
By default, when personalized by a community owner, the weblog user account is added as a member of the community weblog with the administrator role. When personalized by a community member, the user account is added with the author role. This behavior is controlled by the memberPermission portlet preference (see Portlet Preferences for more information).
If community users wish to customize the community weblog properties such as description and locale, they can do so by accessing the Roller weblog server directly. The default access URL for the Roller server is http://<server>[:<port>]/roller. The authenticating user must have the admin role in a weblog to modify weblog properties.
Portal community users can access the Roller weblog server directly (if it is configured to allow it). From there, they can post and otherwise manage the weblog entries of the Portal community weblogs (of which they are a member).
Make sure that Blog portlet's preferences in the display profile provider definition are correctly configured to talk to the Roller server. To test this, create a channel based on the Blog portlet. Without customizing the portlet channel's preferences, you must be able to use the channel to access weblogs on the server.
The portlet preferences you configure in Blog portlet's display profile provider definition will be used by the blog service in all communities. For example, the Roller AAPP URL and AAPP password will be used by the Blog community service in every community.
The Blog community service is not enabled by default. The process for doing so varies depending on whether the Portal Server 7.1 update 1 software instance is a new install or upgraded from Portal Server 7.1 software. To enable the Blog community service, ensure that the Blog community service is added to a community template.
For the community template with an ID of blogwiki, edit the community template role display profiles for the member (member.xml) and owner (owner.xml) roles and remove the XML comment blocks around the following Blog portlet elements.
The DP channel entry for the Blog channel in both member.xml and owner.xml files.
The community container's available and select channel lists in member.xml file.
The search service's availableDatabases property in member.xml file.
Add the Blog community service to the existing community templates.
Select a template in which to add the Blog community service and add the following Blog channel definition to the community template member role display profile. Override the default preference values as needed.
<Container name="%COMMUNITY_CONTAINER%" ...> ... <Channel name="Blog" provider="__Portlet__blogportlet.BlogPortlet"> <Properties> <String name="__Portlet__configMode" value="|wizard-user-only"/> <String name="__Portlet__memberPermission" value="|AUTHOR"/> <String name="__Portlet__searchUrl" value="|%COMMUNITY_SEARCH_URL%"/> <String name="__Portlet__searchDatabase" value="| %COMMUNITY_CONTENTS_SEARCH_DB%.blog"/> </Properties> </Channel> ... </Container> ...
Add the Blog channel to the community container's available and selected list.
... <Container name="%COMMUNITY_CONTAINER%" ...> ... <Available> <Reference value="%COMMUNITY_CONTAINER%/CommunityInfo"/> <Reference value="%COMMUNITY_CONTAINER%/Search"/> ... <Reference value="%COMMUNITY_CONTAINER%/Blog"/> ... </Available> <Selected> <Reference value="%COMMUNITY_CONTAINER%/CommunityInfo"/> <Reference value="%COMMUNITY_CONTAINER%/Search"/> ... <Reference value="%COMMUNITY_CONTAINER%/Blog"/> ... </Selected> ... </Container> ...
Add the Blog community service's search database to the search service's set of available search databases.
The value specified here must match the value specified in the searchDatabase preference in the channel definition.
... <Container name="%COMMUNITY_CONTAINER%" ...> ... <Channel name="Search" provider="SearchProvider"> <Properties> ... <Collection name="availableDatabases"> <String name="%COMMUNITY_CONTENTS_SEARCH_DB%.blog" value="Blog"/> </Collection> ... </Channel> ... </Container> ...
Add a channel definition to the owner role DP.
You can override the default portlet preference values in the community template role display profile Blog portlet channel definitions.
... <Container name="%COMMUNITY_CONTAINER%" ...> ... <Channel name="Blog" provider="__Portlet__blogportlet.BlogPortlet"> <Properties> <String name="__Portlet__memberPermission" value="|ADMIN"/> </Properties> </Channel> ... </Container> ...
With these changes, newly created communities based on the modified template will contain the service. You must log out and log in to force the community templates to be reloaded.