Skip to main content link. Accesskey S
  • HCL Logo
  • HCL Connections On-Premise Wiki
  • THIS WIKI IS READ-ONLY.
  • HCL Forums and Blogs
  • Home
  • API Documentation
Search
Community Articles > Customization > Customizing Connections 4.0 Profiles
  • Share Show Menu▼

Recent articles by this author

Customizing Connections 4.0 Profiles

This article is an illustrative guide to modifying the content and layout of the Profiles component in Connections 4.0. It describes in detail how you can customize the application to define the core data model for people managed by it and tailor the presentation of the profile to meet your ...
Community articleCustomizing Connections 4.0 Profiles
Added by ~Miriam Cisresamarlen | Edited by ~Rebecca Bubveluzen on January 22, 2013 | Version 6
  • Actions Show Menu▼
expanded Abstract
collapsed Abstract
This article is an illustrative guide to modifying the content and layout of the Profiles component in Connections 4.0. It describes in detail how you can customize the application to define the core data model for people managed by it and tailor the presentation of the profile to meet your business requirements. Included is an overview of the new features in the 4.0 release and the detailed steps for implementing an advanced customization scenario.
ShowTable of Contents
HideTable of Contents
  • 1 Introduction
  • 2 Profile customization scenario
  • 3 Profile data model
  • 4 Profile extension fields
    • 4.1 Declaring extension fields
    • 4.2 Associating extension fields with a Profile type
  • 5 Customizing the Profiles user interface using templates
    • 5.1 Defining custom strings to use in Profiles application
    • 5.2 Enabling template reloading to see changes immediately
  • 6 Standard Profile edit form controls
  • 7 Renovations custom control requirements
    • 7.1 Adding your own custom macros for advanced controls
    • 7.2 Defining an advanced form-control rendering macro
  • 8 Displaying the new fields on the Profile page
    • 8.1 Custom logic in FreeMarker files
    • 8.2 Running the sample extension in your environment
  • 9 Conclusion
  • 10 Tell us what you think
  • 11 Resources
  • 12 Author biographies

Introduction


The Profiles component in IBM® Connections 4.0 has an enhanced configuration model. The major enhancement to the model is the clear separation between the definition of the profile data model and the presentation of a profile record in the user interface.

The profile data model is managed in a strongly-typed object hierarchy. This type system supports introspection capabilities that enable first- and third-party applications to understand at a fine-grained level what fields are supported per profile record.
The profile user interface has always supported customization of a profile's layout in the Web application using a widget-based model. In this release, the profile user interface supports an additional level of customization via a set of presentation templates that can be modified by the administrator to meet a diverse set of customization requirements for well-defined areas in the Web application.

By leveraging a template language, administrators are able to support a more dynamic level of customization than what was offered in the past via static XML configuration. Templates support dynamic reloading so customizations are easier to develop and, as a result, the deployment of a customized Profiles component is faster to realize.

Profile customization scenario


In this scenario, the “Renovations” company uses the Profiles component to facilitate collaboration among its employees. They have identified use cases that they want to enable based on user feedback; specifically, they want to enable employees to:
  • Publish their preferred methods of contact
  • Advertise when they have a planned absence from the office
  • Advertise their current division and project to help others locate expertise
  • Find mentoring relationships for specific areas of growth
To meet these requirements, the administrator of the Profiles component must extend the default Profiles configuration to add additional fields and control how these fields are rendered to the end user.

The remainder of this document walks you through the set of steps the administrator performed to meet this scenario.

Profile data model


The Profiles component provides the core social directory structure leveraged by all other social applications in IBM Connections. Each person in the system is described by a collection of properties, which are classified as either standard or extension properties.

Standard properties are available in the core schema of the application and are available for immediate use. Administrators may add extension properties to support specific social business scenarios, and properties are assembled into a type definition. Each profile record has an associated type that is interpreted by the system at run-time in order to understand how to interact with the profile.

To support the requested use cases, the administrator wants to add the extension fields in table 1 to each profile record.

Table 1. Extension fields to add
Field
Details
Preferred Meeting Start Time
Earliest time the user can attend a meeting. The user should set this value using a time picker control.
Preferred Meeting End Time
Latest time the user can attend a meeting. The user should set this value using a time picker control.
Preferred Contact Method
A radio control that lets the user state if they prefer contact via email, phone, text, instant message, etc.
Alternate Contact Methods
A select control that lets users choose multiple methods of alternate contact.
Out of Office Start Date
A date control that lets the user publish when they will be out of the office.
Out of Office End Date
A date control that lets the user publish when they will return to the office.
Out of Office Reason
A simple text control that lets the user publish why they are out of the office.
Division Code
A selection control from a defined set of corporate divisions.
Project Code
A dynamic selection control that filters the available projects by division.
Project Responsibility
A rich text control that lets the user publish their responsibilities on the project.
Mentoring Topic Areas
A multiple select control that allows the employee to advocate areas they can provide mentoring
Mentoring Benefits
A multiple line text control that lets employees provide detail on the benefits they can provide in a mentor relationship
Mentor
A person control that lets an employee advertise their mentor. A person is a complex control that usually requires additional data to provide a good experience (name, email, unique id). As a result, we are going to reuse the property secretaryUid for storage of the Mentor field in this scenario.

Profile extension fields


Declaring extension fields


In order to make these fields available for use in the application, the administrator must first declare these extension properties in their profiles configuration, by following these steps:
  1. Open the profiles-config.xml file in a text editor.
  2. Define the extension attributes by adding the code in listing 1 to the <profileExtensionAttributes> element under the <profileDataModels> section, and save the file.
Listing 1. Code to add under <profileDataModels>

<profileDataModels>	
 <profileExtensionAttributes>
  <simpleAttribute extensionId="preferredMeetingStartTime" length="64"/>
  <simpleAttribute extensionId="preferredMeetingEndTime" length="64"/>
  <simpleAttribute extensionId="preferredContactMethod" length="64"/>
  <simpleAttribute extensionId="alternateContactMethod" length="64"/>
  <simpleAttribute extensionId="outOfOfficeStartDate" length="64"/>
  <simpleAttribute extensionId="outOfOfficeEndDate" length="64"/>
  <simpleAttribute extensionId="outOfOfficeReason" length="64"/>
  <simpleAttribute extensionId="divisionCode" length="64"/>
  <simpleAttribute extensionId="projectCode" length="64"/>
  <simpleAttribute extensionId="mentoringOffered" length="256"/>
  <simpleAttribute extensionId="mentoringOfferBenefits" length="256"/>
  <richtextAttribute extensionId="projectResponsibility" maxBytes="2000"/>
  ...
 </profileExtensionAttributes>
 ...
</profileDataModels>

Associating extension fields with a Profile type


The administrator must next associate the set of extension fields with the profile-type definition for each profile-record in the system. A profile-type property reference allows you to control whether a particular field is editable, hidden, or indexed for search within a given type.

If a property is not specified in a profile record's profile-type definition, it is not exposed in the application to the end user via the API or UI. As a result, it is very important that you carefully review the set of fields required.

The inheritance model for profile-type definitions applies only to how properties are inherited from parent to child profile-types. The inheritance model does not extend to profile policy definitions or widget layout definitions.

In this scenario, the administrator has all the users associated with the same “default” profile-type. To associate the extension fields with the default profile-type, the administrator uses these steps:
  1. Open the profiles-types.xml file in a text editor.
  2. Modify the default profile-type definition to be as shown in listing 2.
Listing 2. Modified profile-type definition

<type>
 <parentId>snx:person</parentId>
 <id>default</id>
 <property>
  <ref>email</ref>
  <updatability>read</updatability>
  <hidden>false</hidden>
 </property>		
 <property>
  <ref>telephoneNumber</ref>
  <updatability>readwrite</updatability>
  <hidden>false</hidden>
 </property>
 <property>
  <ref>mobileNumber</ref>
  <updatability>readwrite</updatability>
  <hidden>false</hidden>
 </property>
 <property>
  <ref>profileLinks</ref>
  <updatability>readwrite</updatability>
  <hidden>false</hidden>
 </property>
 <property>
  <ref>secretaryUid</ref>
  <updatability>readwrite</updatability>
  <hidden>false</hidden>
 </property>							
 <property>
  <ref>preferredMeetingStartTime</ref>
  <updatability>readwrite</updatability>
  <hidden>false</hidden>
 </property>	
 <property>
  <ref>preferredMeetingEndTime</ref>
  <updatability>readwrite</updatability>
  <hidden>false</hidden>
 </property>			
 <property>
  <ref>preferredContactMethod</ref>
  <updatability>readwrite</updatability>
  <hidden>false</hidden>
 </property>	
 <property>
  <ref>alternateContactMethod</ref>
  <updatability>readwrite</updatability>
  <hidden>false</hidden>
 </property>			
 <property>
  <ref>outOfOfficeStartDate</ref>
  <updatability>readwrite</updatability>
  <hidden>false</hidden>
 </property>			
 <property>
  <ref>outOfOfficeEndDate</ref>
  <updatability>readwrite</updatability>
  <hidden>false</hidden>
 </property>	
 <property>
  <ref>outOfOfficeReason</ref>
  <updatability>readwrite</updatability>
  <hidden>false</hidden>
 </property>		
 <property>
  <ref>divisionCode</ref>
  <updatability>readwrite</updatability>
  <hidden>false</hidden>
 </property>	
 <property>
  <ref>projectCode</ref>
  <updatability>readwrite</updatability>
  <hidden>false</hidden>
 </property>	
 <property>
  <ref>projectResponsibility</ref>
  <updatability>readwrite</updatability>
  <hidden>false</hidden>
 </property>
 <property>
  <ref>mentoringOffered</ref>
  <updatability>readwrite</updatability>
  <hidden>false</hidden>
 </property>		
 <property>
  <ref>mentoringOfferBenefits</ref>
  <updatability>readwrite</updatability>
  <hidden>false</hidden>
 </property>	
</type>

Customizing the Profiles user interface using templates


You can customize the Profile attributes in the user interface by augmenting a series of FreeMarker Template Language files for prescribed parts of the user interface. By virtue of supporting a template language, Connections 4.0 provides greater flexibility in the types of customizations that can be supported.

For more information, refer to the FreeMarker Template Language Web site.

Table 2 shows the template files that are available for modification in the /profiles/templates}} directory.

Table 2. Template files
Template files
Description
commonUtil.ftl
A common set of functions and macros that are leveraged by the other template files.

It is not recommended that a customer modify this file. Instead, they should author a new file for any other common functions and macros they define and reference it in the other template files.
businessCardInfo.ftl
This template is used to render fields in the business card.
profileDetails.ftl
This template is used to render fields on the profile page.
profileEdit.ftl
This template is used to render controls on the edit profile page.
searchResults.ftl
This template is used to render lists of users in the search results and report-to chain views.

In the remainder of this document, we outline the set of modifications needed to support the desired customization scenario.

Defining custom strings to use in Profiles application


For the customization scenario, we need to define a set of strings that we will use in the user interface:

1. First we create the com.renovations.profileExtensions.properties file and place it in the <customizationDir>/strings directory (see listing 3).

Listing 3. Create file

## extension property field labels
label.preferredMeetingStartTime=Preferred Meeting Start Time:
label.preferredMeetingEndTime=Preferred Meeting End Time:
label.preferredContactMethod=Preferred Contact Method:
label.alternateContactMethod=Alternate Contact Methods:
label.outOfOfficeStartDate=Out of Office starting: 
label.outOfOfficeEndDate=Out of Office returning:
label.outOfOfficeReason=Reason Gone:
label.divisionCode=Division:
label.projectCode=Project:
label.projectResponsibility=Project Responsibility:
label.mentoringOffered=Mentoring Offered:
label.mentoringOfferedBenefits=Benefits:
label.mentor=Mentor:

## options for contact method
contactMethod.connections=Connections
contactMethod.email=Email
contactMethod.sametime=Sametime
contactMethod.phone=Phone
contactMethod.sms=SMS

## division options
division.sales=Sales
division.finance=Finance
division.product=Product
division.support=Support

## project option code names for each division
project.sales.1=Business Development
project.sales.2=Global Clients
project.finance.1=Accounting
project.finance.2=Market Relations
project.product.1=Widget
project.product.2=Gadget
project.support.1=Premium Support
project.support.2=Warranty Claims

## mentor options
mentor.career=Career
mentor.skillTransfer=Skill Transfer
mentor.socialization=Social

After the file is created, we must register the custom resource bundle with the application and make it available as input to the FreeMarker template processor:

1. Edit the LotusConnections-config.xml file and register the resource bundle by modifying the <resources/> section as follows:


<resources>
 <widgetBundle prefix="profileExtensions" name="com.renovations.profileExtensions"/>
</resources>

2. Edit the profiles-config.xml file and provide the bundle as input to the FreeMarker template processor by editing the <templateNlsBundles/> section:


<templateConfiguration>
 . . .
 <templateNlsBundles>profileExtensions</templateNlsBundles>
 . . .
</templateConfiguration>

Enabling template reloading to see changes immediately


The FreeMarker template files are compiled once upon start up of the application. If you are making customizations, it is best to turn on template reloading so you can see your edits immediately without needing to restart the application. This lets you make your changes faster.

In production environments, we recommend disabling template reloading for optimal performance. To enable template reloading you must complete these steps:
  1. Open the profiles-config.xml file in a text editor
  2. Update the template reloading section for an interval in seconds as in the example below. Note that the actual reload will occur on the next request that uses the template, if the specified interval has expired and the modified time of the file on disk has changed:

<templateConfiguration>
 . . .
 <templateReloading>1</templateReloading>
 . . .
</templateConfiguration>

Standard Profile edit form controls


The Profiles application out of the box provides five different controls to gather data produced by the standard macros declared in the commonUtil.ftl file. The five types of controls that are supported by default are shown in figure 1 and defined in table 3 below.

Figure 1. Default controls



Table 3. Default controls
Control
Description
(1) Simple text
Allows you to add text on one line
(2) Simple select
Allows you to add a simple drop-down control to select a single item
(3) Person picker
Start typing the name to easily find a person
(4) Multi-line
Allows you to type multiple lines of data. The maximum amount of data is limited to the simple attribute limit of 1024 bytes.
(5) Rich text
Allows you to store a maximum of 1,000,000 bytes of rich text content.

To access these controls, you must reference them in the profileEdit.ftl file. An example of how each control type is used is shown in listing 4.

Listing 4. Usage examples

<#-- A simple text input control -->
<@util.renderFormControl ref=”testSimpleText” singleColumnLayout=false nlsBundle=”profileExtensions” nlsKey=”label.testSimpleText”/>

<#-- A simple select control. 
Note the value of the options argument is a sequence of label/value pairs that are presented in the pick list:
[ { “label”: “Sample”, “value”: “The value” } ]
-->
<@util.renderFormControl ref=”testSelect” singleColumnLayout=false options=custom.testSelectValues() nlsBundle=”profileExtensions” nlsKey=”label.testSelect” isSelect=true/>

<#-- A type-ahead control, note the value returned is deployment configuration specific. -->
<@util.renderFormControl ref=”testPerson” singleColumnLayout=false nlsBundle=”profileExtensions” nlsKey=”label.testPerson” isPerson=true/>

<#-- A multi-line text control -->
<@util.renderFormControl ref=”testMultiline” singleColumnLayout=false nlsBundle=”profileExtensions” nlsKey=”label.testMultiline” isMultiline=true/>

<#-- A rich text input control is rendered if the value is declared as rich text in the profiles-config.xml and profiles-types.xml files -->
<@util.renderFormControl ref=”testRichText” singleColumnLayout=false nlsBundle=”profileExtensions” nlsKey=”label.testRichText”/>

Renovations custom control requirements


The desired look of the Contact Information tab is shown in figure 2. We will discuss each numbered control in detail in later sections below.

Figure 2. Contact Information tab




The desired look of the About Me tab is shown in figure 3. We will discuss each control in detail below, as needed.

Figure 3. About Me tab


Adding your own custom macros for advanced controls


To meet the desired customization scenario, the Renovations administrator must modify the profileEdit.ftl template file so as to produce the custom mark-up needed to support the dynamic controls.

Rather than modify the default commonUtil.ftl file to add the macros, the administrator can define their own FTL file, customControls.ftl, that will be referenced in the profileEdit.ftl. This is a best practice since it makes any future updates to the commonUtil.ftl file in product updates easier to merge as all the new extension functions and macros at Renovations are well defined in their own file.

The major advantage of the FreeMarker process is that the administrator has complete control on the mark-up that is generated on the Web page. If a new or alternate control is required, it's easy to modify or add your own. For this scenario, the Renovations administrator needs to add the following controls (with corresponding numbers in figures 2 and 3):
  1. Phone Number: see #1 and #2 with input validation on formatting
  2. Radio Select: see #3
  3. Multiple Select: see #4 and #10
  4. Time Picker: see # 5 and #6
  5. Dynamic Pick List: see #7 and #8. The value of #7 controls the options presented in #8.
The administrator creates a new file called customControls.ftl in the same directory as the other template files and then modifies the profileEdit.ftl template file to include that new file as part of its definition as follows:


<#import "commonUtil.ftl" as util>
<#import "customControls.ftl" as custom>
<#compress>
...


Now, any changes to the customControls.ftl file will be included for reference in the profileEdit.ftl file, and the administrator can focus on adding the required logic to enhance the application.

Defining an advanced form-control rendering macro


The administrator has decided to define an alternate macro to render form controls to meet his needs by copying and extending the default macro. For a full view of the new function, see the associated files attached to this article. We instead focus on a subset for clarity (see listing 5).

Listing 5. Subset of macros

<#-- 
A modified macro that supports rendering additional form controls in Profiles application.
 ref: the id reference of the property to render per the profile type definition
 fieldType: the type of field to render (text, multiline, date, time, select, multiselect, radioselect, person)
 nlsKey: the nls key for a field label
 dataId: the id of the data container that should be used render the property value (optional - must be specified with dataKey)
 dataKey: the key into the data container should be used to render the property value (optional - must be specified with dataKey)
 nlsBundle: the resource bundle that contains the label (optional)
 isDisabled: flag to control rendering an input field, or just a simple read-only view (optional, default false)	 
 singleColumnLayout: flag to control rendering as single column versus two column layout (optional, default is false)
 options: a sequence of hashes where option.label is the display value, and option.value is the actual value for use in a select control
 onchange: a javascript function to invoke if the field value changes (DOM Event onchange), supported on fieldType=select
-->
<#macro renderAdvancedFormControl ref fieldType nlsKey dataId="" dataKey="" nlsBundle="template" options=[] singleColumnLayout=false isDisabled=false onchange="">
...
</#macro>
where:
  • The declaration for the renderAdvancedFormControl macro looks similar to the existing macro to render a form control, but it has been augmented to support new arguments.
  • The fieldType argument is new and lets the caller specify the type of field to render and provides a clean pattern for the administrator to support each required use case with a single macro.
  • The onchange argument is new and lets the administrator hook a JavaScript function to a value change of one control, to potentially update another.
The administrator must now add the logic to support the set of field types in their macro to output the markup needed for their use case.

We show a sample of how the multiple select and radio controls are supported, to demonstrate how the administrator is able to inject their own JavaScript to meet the advanced requirements.

In this case, a multiple select control value is stored as a single extension field but is concatenated with a delimiter for storage in a single extension attribute (see listing 6).

Listing 6. Controls to support multiple selection and radio selection inputs

<#elseif fieldType = "multiselect">
 <script type="text/javascript">
  function setSelected(opt, optAttribute) { … }
 </script>
 <#list options as option>
  <input type="checkbox" name="attribute_${ref}" value="${option.value}" onclick="setSelected(this,document.getElementsByName('attribute_${ref}'));" <#if value?index_of(option.value) != -1>checked</#if> /> ${option.label}
  <br/>
 </#list>
  <input type="hidden" id=${ref} name="attribute(${ref})" value="${value}">
 <#elseif fieldType="radioselect">
  <#list options as option>
  <input type="radio" <#if value == option.value>checked</#if> name="attribute(${ref})" value="${option.value}" onclick="dataChange(this);"/>${option.label}
  </#list>
 ...

In addition, it's possible to use other Dojo controls to meet the customization scenario. In this instance, the administrator has decided to use additional controls to support time, date, and phone input requirements (see listing 7).

Listing 7. Controls to support date, time, phone inputs

<#elseif fieldType="date">
 <script type="text/javascript">
  if (dojo) { dojo.require('dijit.form.DateTextBox'); }
 </script>
 <input value="${value}" id="${ref}" dojotype='dijit.form.DateTextBox' onchange="dataChange(this);" name="attribute(${ref})"/>
<#elseif fieldType="time">				
 <script type="text/javascript">
 if (dojo) { dojo.require('dijit.form.TimeTextBox'); }
 </script>
 <input value="${value}" id="${ref}" dojotype='dijit.form.TimeTextBox' onchange="dataChange(this);" name="attribute(${ref})"/>					
<#elseif fieldType="phone">
 <script type="text/javascript">
  if (dojo) { dojo.require('dijit.form.ValidationTextBox'); } 
 </script>
 <input value="${value}" id="${ref}" dojotype="dijit.form.ValidationTextBox" name="attribute(${ref})" regExp="(\d{3})-(\d{3})-(\d{4})" invalidMessage="Invalid format. Expected format: 555-555-5555"/>
 ...

Now the administrator can leverage these controls in the profileEdit.ftl file, to meet the desired presentation results as shown, below where we show the new macro being used to render the phone input controls:


<@custom.renderAdvancedFormControl ref="telephoneNumber" fieldType="phone" singleColumnLayout=false nlsKey="label.telephoneNumber"/>
<@custom.renderAdvancedFormControl ref="mobileNumber" fieldType="phone" singleColumnLayout=false nlsKey="label.mobileNumber"/>

For a full review the extensions made to support the edit form use case, we recommend reviewing the attached customControls.ftl and profileEdit.ftl files that leverage the extensions.

Displaying the new fields on the Profile page


The administrator must now display the new fields on the Profile page for others to see. The business has requested the fields in the Profile page's Contact Information tab and Background tab, as shown in figures 4 and 5, respectively.

Figure 4. Contact Information tab fields



Figure 5. Background tab fields


To make updates to the Contact Information tab, the administrator modifies the default structure of the existing profileDetails.ftl to include his information with the surrounding markup as required.

As an example, listing 8 shows a code snippet that demonstrates how the time values are formatted by use of a FreeMarker function, to properly format the time value collected by the Dojo control for display in the user interface.

Listing 8. Code showing time values formatting

<@util.renderProperty ref="preferredMeetingEndTime" nlsBundle="profileExtensions" nlsKey="label.preferredMeetingEndTime" hideIfEmpty=true ;  ref, dataId, dataKey, nlsKey, nlsBundle>                          
 <tr>
  <th scope="row">
   <@util.renderNls nlsBundle=nlsBundle nlsKey=nlsKey/>            
  </th>
  <td>
   <p>${profile.extension[ref]?substring(1)?time("HH:mm:ss")}</p>
  </td>
 </tr>                    
</@util.renderProperty>

Custom logic in FreeMarker files


As you can now see, the FreeMarker language provides a powerful mechanism for extension. It is highly recommended that administrators review the FreeMarker language specification, to learn about additional control flow logic (if/else, etc.) branching that can be performed against the data model provided to the template processor.

This opens up a whole set of interesting customization opportunities that allow you to dynamically change the behavior of the presentation based on a property of the user to be presented (profileType, extension field value, etc.).

For a full list of attributes provided as input to the template processor, refer to the Connections product documentation topic, “Template data model.”

Running the sample extension in your environment


Provided with this article are a series of files that you can use to experiment with in your local environment to better understand the process. We highly recommend your reviewing these files in detail, and modify or tweak them to help meet your available customization needs.

Table 4. Attached files
File
Description
customControls.ftl
The custom file that contains all advanced macros and functions used by this extension for further review. This file should be placed in the same directory as the existing templates.
businessCardInfo.ftl
A modified version of the file to show a subset of attributes.
profileDetails.ftl
A modified version of the file that also demonstrates how to add an alternate table layout style for the Background tab in the profile page.
profileEdit.ftl
A modified version of the edit form that leverages the custom macros to produce the advanced form controls required in the scenario.
searchResults.ftl
A modified template to show a subset of properties in search results.

Conclusion


This article has provided an end-to-end scenario illustrating the new customization techniques in the IBM Connections 4.0 Profiles component. The reader was able to define new extension fields to associate with their users, so as to meet a typical business scenario, and provide a tailored presentation of the users in the social network to encourage use of the data.

Tell us what you think


Please visit this link to take a one-question survey about this article:
http://www.surveymonkey.com/s/9Q6ZKGN

Resources

  • developerWorks Connections product page
  • Participate in the discussion forum.
  • Refer to the Connections documentation page.
  • Refer to the IBM Connections product page.

Author biographies


Derek Carr is an Advisory Software Engineer at IBM working with the IBM Connections team in Research Triangle Park, NC. You can reach Derek at dwcarr@us.ibm.com.

Chris Biega is an IBM Senior Certified Client Technical Professional for the Americas. He is a member of the West Technical team and specializes in the IBM Connections product. He can be reached at cpbiega@us.ibm.com.

  • Actions Show Menu▼


expanded Attachments (10)
collapsed Attachments (10)
Edit the article to add or modify attachments.
File TypeSizeFile NameCreated OnDelete file
application/octet-stream 2 KB businessCardInfo.ftl 10/12/12, 7:21 PM
application/octet-stream 4 KB searchResults.ftl 10/12/12, 7:24 PM
text/xml 2 KB profiles-types.xml 10/30/12, 9:36 PM
text/xml 12 KB profiles-config.xml 1/10/13, 9:27 PM
application/octet-stream 6 KB profileEdit.ftl 10/30/12, 9:44 PM
application/octet-stream 13 KB profileDetails.ftl 1/16/13, 6:32 PM
text/xml 23 KB LotusConnections-config.xml 1/10/13, 7:12 PM
application/octet-stream 15 KB customControls.ftl 1/15/13, 11:36 PM
application/octet-stream 27 KB commonUtil.ftl 10/12/12, 7:22 PM
application/octet-stream 1 KB com.renovations.profileExtensions.properties 11/27/12, 6:45 PM
expanded Versions (1)
collapsed Versions (1)
Version Comparison     
VersionDateChanged by              Summary of changes
This version (6)Jan 22, 2013, 9:56:15 PM~Rebecca Bubveluzen  
expanded Comments (0)
collapsed Comments (0)
Copy and paste this wiki markup to link to this article from another article in this wiki.
Go ElsewhereStay ConnectedAbout
  • HCL Software
  • HCL Digital Solutions community
  • HCL Software support
  • BlogsDigital Solutions blog
  • Community LinkHCL Software forums and blogs
  • About HCL Software
  • Privacy
  • Accessibility