Customising IBM Connections 3.0.x


Published on

Presentation discussing the methods used to customise IBM Connections 3.0.x (3.0.0 and 3.0.1 so far). Covers theme/UI and Profiles customisation options. Partially based on IBM documentation, the AD304 session at Lotusphere 2011 and mostly our own experience! Any questions, please contact us at

Published in: Technology

Customising IBM Connections 3.0.x

  1. 1. Customising IBMConnections 3.0.x Stuart McIntyre CTO/Connections Specialist Collaboration Matters Limited
  2. 2. Your PresenterStuart McIntyreCTO, Collaboration MattersConnections SpecialistBlogger/Podcaster/Design Partner/SpeakerFeel free to contact me:
  3. 3. This SessionCustomising IBM Connections 3.0.xThe Aim: Demonstrate some of the key areas where Connections 3.0.xcan be customisedTopics: Introduction to Connections customisation Part 1: UI customisations (themes and skins) Part 2: Profiles customisations (fields and labels) What next? Q&A
  4. 4. First, some questions...
  5. 5. First, some questions...Administrator?
  6. 6. First, some questions...Administrator?Developer?
  7. 7. First, some questions...Administrator?Developer?Something else?
  8. 8. First, some questions...Administrator?Developer?Something else?Edited HTML?
  9. 9. First, some questions...Administrator?Developer?Something else?Edited HTML?Edited CSS?
  10. 10. First, some questions...Administrator?Developer?Something else?Edited HTML?Edited CSS?Worked with TDI?
  11. 11. First, some questions...Administrator?Developer?Something else?Edited HTML?Edited CSS?Worked with TDI?Customised Lotus Connections?
  12. 12. Interactivity is good!Image:
  13. 13. A note...We have a lot of material...And only 60 minutes to cover it in...
  14. 14. A note...We have a lot of material...And only 60 minutes to cover it in...
  15. 15. Introduction toConnections Customisation
  16. 16. Introducing IBM Connections 3.0.0 Lotus Connections 3.0.0 was released in November 2010 3.0.0 delivered new look and feel, plus many new features and functions, including:
  17. 17. What’s New in Connections 3.0.0? Global Navigation and Theme (including drop-down menus) Home Page/News – improved news feed and integration of status updates, email digest Communities – invitations, improved Files integration, Activities integration, sub- communities, My Communities views Forums – standalone service, tags, question/answer topics Profiles – Do You Know, Things in Common, Social Path widgets, tabbed Profile format Files – collections changed to folders including drag and drop Wikis – improved use of real estate, drag and drop navigation, My Wikis views Blogs – improved authoring including new editor and more consistent navigation and entries lists Linked Value – SharePoint/Communities integration, new portlets, status updates Lotus Notes sidebar plug-in
  18. 18. Introducing IBM Connections 3.0.1 IBM Connections 3.0.1 was released in April 2011, delivering many of the features described at Lotusphere 2011 No longer a ‘Lotus’ product The new features include: Ideation Blogs and Idea Graduation Image and Video Galleries in Communities Community Moderation ECM Integration User Interface and customisation process has not changed from 3.0.0
  19. 19. Areas for CustomisationLook and Feel Logo Header Footer Themes Login PagesProfiles Changing which fields display & order Changing editable fields Changing field names Adding extension fields
  20. 20. Key ResourcesLotus Connections Infocenter (now in Wiki)Lotus Connections Wiki Benitez blog http://www.lbenitez.comCurious Mitch http://www.curiousmitch.comThe Connections Blog http://www.ibmconnectionsblog.comdeveloperWorks
  21. 21. Part 1: UI Customisations
  22. 22. Theme ComponentsEach theme is made up of multiple components: CSS header.html footer.html images
  23. 23. CSS Theme FileCSS file affects the design (look and feel) but notthe layout or functionality of Connections UIControls all of the colours and background imagesAllows Web Designer to make changes toelements like link colours and background imagesEnd result? A total change in how the design ofConnections looks
  24. 24. What’s Changed in 3.0.xCustomisation has been made simpler, and possibly easier for 3.0.x compared to 2.5Ability to customise individual features or entire suite is built into the productNo longer necessary to move themes onto HTTP server to customise themNumber of restarts has been reduced too
  25. 25. The Directory LayoutLotus Connections 3.0 consists of a number of different applications (Activities, Blogs,Communities, etc.)Each application has its own .ear file in the Connections deployment, with each .earcontaining the .war file for that application. All the .war files are in the directory: <WASHome>/profiles/<Profile>/installedApps/<Cell> e.g. <WASHome>/profiles/<Profile>/installedApps/<Cell>/Homepage.ear contains homepage.ear file
  26. 26. The Directory Layout (cont.)Each applications .war file then contains the files specific to that application:During customisation we will copy files from these locations into a specific customisationarea for modification
  27. 27. Customisation ConceptsConnections 3.0.x has concept of common and specific customisationsCustom files are placed in a special shared customisation directoryRemoving the file from this directory undoes the customisationModifications can be made to common, to specific features or to both
  28. 28. Customisation Precedence (1)Content in the customisation directory overrides installed contentCustomisation Directory Installed Content User Sees Custom Custom Header + Header Footer = Header Footer Custom Footer + Header Footer = Header Custom Footer Custom Custom Custom Custom Header Footer + Header Footer = Header Footer
  29. 29. Customisation Precedence (2) Feature-specific customisation directories override the common customisation directoryProfiles Customisation Common Customisation Installed Content Profiles User Sees Bookmarks User Sees Footer + Footer + Header Footer = Header Footer Header FooterHeader + Footer + Header Footer = Header Footer Header Footer Footer + Header Footer + Header Footer = Header Footer Header FooterHeader Footer + Header + Header Footer = Header Footer Header FooterHeader Footer + Header Footer + Header Footer = Header Footer Header Footer
  30. 30. Overview of the Customisation ProcessEnable CustomisationRestart Connections server(s)Find the file you want to change from the installed applicationCopy the file into the customisation directory at the correct sub-directoryMake changes to the copied fileRestart the affected applications on your application server
  31. 31. Enabling CustomisationTwo variables in WebSphere that significantly affect customisation: CONNECTIONS_CUSTOMIZATION_DEBUG (must be set to true to enable customisations to take effect, set back to false once customisations complete) CONNECTIONS_CUSTOMIZATION_PATH (Connections 3.0.x uses a separate directory structure to hold files for customisations, allowing us to make changes without fear of harming the server, also easier to upgrade/ migrate. Default is <connectionsinstall>/data/shared/customization/common/)To view/set the variables, we log onto the WebSphere Application Server Console andselect Environment > WebSphere VariablesDo not change CONNECTIONS_CUSTOMIZATION_PATH but make a note as we willneed this for future use
  32. 32. Example 1: Changing ColoursOpen the style sheet file for the default theme in a text editor, e.g. for Files:<WASHome>profiles<Profile>installedApps<Cell>Files.earqkr.share.files.warnavcommonstylesdefaultThemedefaultTheme.cssCreate a new, empty style sheet file in the common customisation directory:<LotusConnectionsDir>datasharedcustomizationcommonnavcommonstylesdefaultThemecustom.cssOpen custom.css file in a text editor Locate rules for sections of the page with accent colours - title bar and left navigation – in defaultTheme.css Paste those rules in custom.css, and change the colours from light blue to red Save changesTips: defaultTheme.css contains most colour settings for the product Use Firebug or Chrome Developer Tools to locate rules that should be changed
  33. 33. Example 1: Changing Colours (cont.) Visit Lotus Connections in your web browser )2-03/03")*4*+5"67*0.89 )2-03/03")*4*+5"67*0.89 Best to go direct to WAS server (rather than HTTP) to avoid caching: ! :/5/.";*.<5")*00=7./*05"/0">*<+"?=@"@+*?5=+ ! :/5/.";*.<5")*00=7./*05"/0">*<+"?=@"@+*?5=+ e.g.<port>/files )4=-+">*<+"@+*?5=+"7-72=B A A )4=-+">*<+"@+*?5=+"7-72=B A 2..,CDDE5=+F=+GCE,*+.GDH/4=5 A 2..,CDDE5=+F=+GCE,*+.GDH/4=5 Clear your browser cache - very important! Another tip: If you are making extensive changes or sending CSS to an external party, it can be easier J/,C"&H">*<"-+="K-L/03"=M.=05/F="72-03=5"*+"5=0N/03")OO".*"-0"=M.=+0-4",-+.>" I I J/,C"&H">*<"-+="K-L/03"=M.=05/F="72-03=5"*+"5=0N/03")OO".*"-0"=M.=+0-4",-+.>" -4.=+"N=H-<4.J2=K=8755"/05.=-N8 to alter defaultTheme.css instead of using additional custom css file -4.=+"N=H-<4.J2=K=8755"/05.=-N8 !"#$%%"&(")*+,*+-./*0 !"#$%%"&(")*+,*+-./*0 %1 %1
  34. 34. Example 1: Changing Colours (cont.) Get your web designers, communications department etc. on board Start on paper! For each of the colours in the colour chart, match to appropriate colour from corporate guidelines/branding Then edit CSS, and test in browser Some images will need to be changed for colour match Don’t forget that fonts and font sizes can be changed as well as colours Recommend the user of Firebug/Chrome Developer Tools for ad-hoc testing and dedicated CSS editing tools for larger changes Something I’ve learnt: Just because someone can edit CSS, it doesn’t make them a graphic designer!
  35. 35. Example 1: Changing Colours (cont.) In addition to defaultTheme, there are four other themes shipped with the product: goldTheme, greenTheme, metalTheme and redTheme These can be used as templates for your own colour themes if a closer match than the defaultTheme
  36. 36. Example 1: Changing Colours (cont.) It is also possible to personalise the look and feel of individual communities and blogs, including theme templates Use same CSS templates as overall theme - create some to complement your overall custom theme
  37. 37. Example 2: Adding LogoIt is best to keep to same size logo as existing IBM/Lotus Connections logo, but can use adifferent size if additional modifications are completed to CSS fileCreate a new logo image for the site toolbar_logo.gif(306x66pixels)Copy the image to the common customisation directory:<LotusConnectionsDir>datasharedcustomizationcommonnavcommonstylesimagestoolbar_logo.gifVerify that the image appears in your browser Open<port>/files/nav/common/styles/images/ toolbar_logo.gif
  38. 38. Example 2: Adding Logo (cont.)Open defaultTheme.css in a text editor Change the source URL for the logo in this file Minor style changes to align the menus with the logo (if required) Save changesVisit Connections in your web browser Clear your browser cache!<port>/filesRemember: Any file you add to the common directory becomes available in all applications (but can be overridden)
  39. 39. Example 3: Adding a Drop-down Menu to the HeaderLocate the header file<WASHome>profiles<Profile>installedApps<Cell>Files.earqkr.share.files.warnavtemplatesheader.jspCopy the header file to the common customization directory<LotusConnectionsDir>datasharedcustomizationcommonnavtemplatesheader.jspOpen the copied file in a text editor Create a new “Intranet” menu drop-down by copying the “People” menu link Add a “Support Forum” link in the upper-right Move the logo element in the page Save changes
  40. 40. Example 3: Adding a Drop-down Menu to the Header (cont.)Locate the header menu file<WASHome>profiles<Profile>installedApps<Cell>Files.earqkr.share.files.warnavtemplatesmenupeople.jspCopy the header file to the common customization directory with a new name<LotusConnectionsDir>datasharedcustomizationcommonnavtemplatesmenuintranet.jspOpen the copied file in a text editor Using the “People” menu as an example, create links pointing to intranet locations Save changesMore tips: Popup menus can use dynamic logic or Javascript – very flexible Menu contents can be styled as desired
  41. 41. Example 3: Adding a Drop-down Menu to the Header (cont.)To test, visit Connections in your web browser Clear your browser cache!<port>/files
  42. 42. Example 4: Customising the Login PageLocate the login Java Server Page (JSP) file<WASHome>profiles<Profile>installedApps<Cell>Files.earqkr.share.files.warnavtemplateslogin.jspCopy the style sheet file to the common customization directory<LotusConnectionsDir>datasharedcustomizationcommonnavtemplateslogin.jspOpen the copied file in a text editor Remove IBM branding and add informational text Add a very simple click-through agreement using JavaScript Save changes
  43. 43. Example 4: Customising the Login Page (cont.)To test, visit Connections in your web browser Clear your browser cache!<port>/files/login
  44. 44. Example 4: Customising the Login Page (cont.)Product text can be altered tooLocate the string resource file for the header and login pages Unzip the JAR file to a temporary directory with a zip program <WASHome>profiles<Profile>installedApps<Cell>Files.earlc.util.web-3.0.jar In the temporary directory, find the file comibmlconncorestringstemplates.propertiesCreate a new file in the string customization directory with the name<LotusConnectionsDir> both the existing resource file and the new file in a text editor Copy the entire line (or lines) you want to change from the old to the new file Change text strings for the login page to match branding Save changes
  45. 45. Example 4: Customising the Login Page (cont.)Restart the Connections server(s)To test, visit Connections in your web browser Clear your browser cache!<port>/files/login
  46. 46. Example 5: Modifying Getting Started pages Create a new HTML file in the common customization directory <LotusConnectionsDir>datasharedcustomizationcommonnavgettingstartednew.html Open the file in a text editor Add informational text about guidelines for your users Save changes Change the first <step> in gettingstarted-config.xml (see Infocenter) Securelink:${}/nav/gettingstarted/new.html Unsecurelink:${lcurl:homepage}/nav/gettingstarted/new.html Restart Homepage application
  47. 47. Example 5: Modifying Getting Started pages (cont.) Visit Connections Homepage in your web browser<port>/homepage
  48. 48. Customisation Best Practice - CreatingOnly copy the files you need into the customisation directory Reduce the number of files to manage Makes it easier to know what has been changedKeep track of the changes you make through documentation or comments Put comments directly into JSP or CSS files to simplify merging Extensive changes may be difficult to update from release to releaseUse custom.css whenever possible, much easier to track style changes and handle migrationBack up frequently, and have a process for deploying customisations Best to have a staging or test environment, it is easy to backup your old customisation before copying over the new customisation If the customisation directory is renamed or moved customisation will be disabled May want to use a version control system for the customisation folderWhen customisations are ready to deploy, always update the version stamp This ensures that old versions of the site are removed from browser caches
  49. 49. Customisation Best Practice - Maintaining Occasionally IBM will change a that has been customised Fixpacks and iFixes should document which files are being changed (in theory) Applying any fixes:1. Back up your customisation directory2. Disable all customisation by renaming the customisation directory3. Apply the iFix or fixpack4. Test that your environment still is functional5. Identify any files that have changed in the fixpack that you have customised6. Compare each new file from IBM to your customised copy, and merge changes7. Rename your customisation directory to the correct name8. Test your customisation Most changes to supported customisation files will be simple
  50. 50. Customisation Best Practice - DebuggingUse customisation debug mode in test environments Changes take effect immediately If possible, avoid using debug mode on a (loaded) production serverWhy dont I see my changes? Check that the file is in the right location in the customisation directory (typically the source of many problems!) and has the right name Clear your browser cache Restart the application (or server) if debug mode is off Syntax error in file you changed? Check that there are no errors being output to the page or to the logsPrinting the list of customised files Enable WebSphere trace for “*=all” Restart the Connections application trace.log will contain customisation debug information during application startup
  51. 51. Migrating Customisations from Previous VersionsStyle customisation Some style rules have been changed, especially those that affect colour and borders If you have added additional CSS files via the header, copy contents of those files into <LotusConnectionsDir>datasharedcustomizationcommonnavcommonstyles defaultThemecustom.cssIf you have a complete visual override, may be best to port changes to the new format byfollowing the InfoCenter topic “Making extensive colour and style changes” An example of the theme (using the new style rules) is located at <WASHome>profiles<Profile>installedApps<Cell>Files.earqkr.share.files.warnav commonstylesgen1ThemeHeader and Footer Because the header exposes new features in Connections 3.0.x, it is recommended that changes are migrated on top of the new header An example of the 2.5 header as a JSP is located at: <WASHome>profiles<Profile>installedApps<Cell>Files.earqkr.share.files.warnav templatesoriginalHeader.jsp
  52. 52. UI Customisation FAQMore detail on a type of customisation? This document is just great! Customizing IBM Lotus Connections 3.0Can we customise other elements of the UI? Yes, but support is limited outside of the types covered here. Change at your own risk, and consult with Collaboration Matters or IBM support team first Changes are more likely to be overridden by a fixpack or upgradeCan the IBM support team answer customisation questions (via PMRs etc.)? Yes, for directly supported customisation, and can provide info about what files need to be changed for other parts of the application Use recommended debugging steps – support team will ask you to work through them
  53. 53. Part 2: ProfilesCustomisations
  54. 54. Customising ProfilesThe other principal area where most organisations customise Lotus Connections(even for pilots) is ProfilesCommon changes include: Customising which fields are populated from LDAP Changing field labels or field order Enabling/disabling editing of fields Adding custom fields Adding additional profile typesThere are many more expert topics (integration of data from other sources etc.), butthese are the basics
  55. 55. Customising Profiles populationTopic is well covered in the InfoCenterPopulation Wizard has also made it more straightforward, however worth covering theoptionsRecommend that one always uses manual process after initial population, to controlwho gets added and howManual import can be scheduled using CRON or Windows Scheduler
  56. 56. Customising Profiles Population (cont.)Import is a two stage process (even if driven by Wizard), first collecting the relevant entriesfrom LDAP, then populating Profiles with specified informationCollection of names is driven by collect_dns script, according to settings specified source_ldap_collect_dns_file=collect.dns source_ldap_search_base=o=acme source_ldap_search_filter=(&(uid=*)(objectclass=inetOrgPerson)) source_ldap_url=ldap:// source_ldap_use_ssl=false source_ldap_user_login=cn=LDAPBind source_ldap_user_password={encr}<encrypted password>
  57. 57. Customising Profiles Population (cont.)Names that reside within search base and match search filter are deposited incollect.dns CN=Neil Burston,ou=it,o=acme CN=Mitch Cohen,ou=it,o=acme CN=Sharon Bellamy,ou=it,o=acme CN=Stuart McIntyre,ou=it,o=acmeSome pilots have specified only selected users to be imported, hence manual editingon collect.dns - not recommended!Populate_from_dn_file is then run to load new users within collect.dns into Profiles,acting upon settings in
  58. 58. Customising Profiles Population (cont.) specifies match between LDAP and Profilesfields: alternateLastname=null bldgId=null blogUrl=nullCustomise according to your org’s populated fields in LDAP calendarUrl=null countryCode=cWatch for field lengths and validation courtesyTitle=null deptNumber=null(see description=description ...Some field lengths are very restrictive, particularly Department (16 characters) andCountry (3 - for ISO codes) alternateLastname=64 blogUrl=256Can be a good use for extended fields to replace default bldgId=64attributes calendarUrl=256 courtesyTitle=64 deptNumber=16 description=1048576 ...
  59. 59. Controlling attributes listedAttribute listing and whether editable is controlled in profiles-config.xml, set by ProfileTypeInitially there is just the ‘default’ Profile TypeOrder of attributes in configuration file controls order on screenHow many of you use ‘IP Telephony Number’? So how to stop it appearing?
  60. 60. Profiles-config.xml <profileLayout profileType="default"> <jobInformation> Each attribute listed in Profile <editableAttribute showLabel="false" hideIfEmpty="true" prependHtml="&lt;strong&gt;" appendHtml="&lt;/ strong&gt;&lt;br/&gt;">jobResp</editableAttribute>and Edit My profile is controlled <attribute showLabel="false" hideIfEmpty="true" appendHtml="&lt;br &gt;">employeeTypeDesc<attribute> <attribute showLabel="false" hideIfEmpty="true" appendHtml="&lt;br/&gt;">organizationTitle<attribute>by an entry in profiles-config.xml ... </jobInformation> <contactInformation> <!-- <editableAttribute hideIfEmpty="true" showLabel="true">courtesyTitle</editableAttribute> --> <editableAttribute showLabel="true" hideIfEmpty="true" disabled="true" prependHtml="&lt;strong&gt;" appendHtml="&lt;/strong&gt;&lt;br/&gt;">displayName</editableAttribute> <!-- <editableAttribute showLabel="true" hideIfEmpty="true">preferredFirstName</editableAttribute> --> <!-- <editableAttribute showLabel="true" hideIfEmpty="true">preferredLastName</editableAttribute> --> <!-- <editableAttribute showLabel="true" hideIfEmpty="true">alternateLastname</editableAttribute> --> <!-- <editableAttribute showLabel="true" hideIfEmpty="true">nativeFirstName</editableAttribute> --> <!-- <editableAttribute showLabel="true" hideIfEmpty="true">nativeLastName</editableAttribute> --> <!-- <editableAttribute showLabel="true" hideIfEmpty="true">preferredLanguage</editableAttribute> --> <editableAttribute showLabel="true" hideIfEmpty="true">bldgId</editableAttribute> <editableAttribute showLabel="true" hideIfEmpty="true">floor</editableAttribute> <editableAttribute showLabel="true" hideIfEmpty="true">officeName</editableAttribute> <editableAttribute showLabel="true" hideIfEmpty="true">telephoneNumber</editableAttribute> <editableAttribute showLabel="true" hideIfEmpty="true">ipTelephoneNumber</ editableAttribute> <editableAttribute showLabel="true" hideIfEmpty="true">mobileNumber</editableAttribute> <editableAttribute showLabel="true" hideIfEmpty="true">pagerNumber</editableAttribute> <!-- <editableAttribute showLabel="true" hideIfEmpty="true">pagerType</editableAttribute> --> <!-- <editableAttribute showLabel="true" hideIfEmpty="true">pagerId</editableAttribute> --> <!-- <editableAttribute showLabel="true" hideIfEmpty="true">pagerServiceProvider</editableAttribute> --> <editableAttribute showLabel="true" hideIfEmpty="true">faxNumber</editableAttribute> <attribute showLabel="true" hideIfEmpty="true" email="true">email</attribute> ...
  61. 61. Hiding a Profiles attribute Connections now has the intelligence to hide fields when empty, but still appear in Edit My Profile. So how to hide completely? Edit profiles-config.xml, find the <profileLayout profileType="default"> stanza, and the relevant attribute: <editableAttribute showLabel="true" hideIfEmpty="true">ipTelephoneNumber</editableAttribute> Simply comment out the entry: <!-- <editableAttribute showLabel="true" hideIfEmpty="true">ipTelephoneNumber</editableAttribute> --> Restart the WAS serverIP Telephony no longer appears to the user
  62. 62. Controlling editable attributes 1/2 A familiar request is to stop the Assistant attribute being editable by the end user, but for that attribute to still appear in the profile
  63. 63. Controlling editable attributes 2/2 Again, edit profiles-config.xml, find the ‘default’ profile type definitions, and the appropriate attribute: <editableAttribute showLabel="true" hideIfEmpty="true" hcard="true" email="secretaryEmail" uid="secretaryUid" userid="secretaryUserid" appendHtml="&lt;br/&gt;">secretaryName</editableAttribute> To stop the attribute being editable, modify ‘editableAttribute’ to be ‘attribute’: <attribute showLabel="true" hideIfEmpty="true" hcard="true" email="secretaryEmail" uid="secretaryUid" userid="secretaryUserid" appendHtml="&lt;br/&gt;">secretaryName</attribute> Assistant no longer appearsin the Edit My Profile screen
  64. 64. Controlling attribute labels 1/2 When profiles are displayed, some attributes are displayed with labels, others are not: The secretary/assistant’s name is displayed with alabel, whilst the phone number and email address are not So, how to show the label for the Phone number?
  65. 65. Controlling attribute labels 2/2 Again, edit profiles-config.xml, find the ‘default’ profile type definitions, and the appropriate attribute: <attribute showLabel="false" hideIfEmpty="true" appendHtml="&lt;br/&gt;">telephoneNumber</attribute> To make the default attribute label appear, change the showLabel value:<attribute showLabel="true" hideIfEmpty="true" appendHtml="&lt;br/&gt;">telephoneNumber</attribute> The label for the phone number is now shown
  66. 66. Changing Profiles attribute labelsDefault attribute labels (designed to be multi-lingual)can be irrelevant or misunderstood in manyorganisations, and thus need to be changedAlso, it is often it is easier to change labels than tocreate new attributes from scratch
  67. 67. Changing Profiles attribute labels Connections provides external resource bundle loader for adding and updating strings to Profiles and Communities. Mechanism used when performing the following tasks: Adding custom extension attributes Customizing the Profiles business card Adding custom widgets to Communities and Profiles Configuring the vCard export feature Rather complex to get right! Given the time available for this presentation, this will be in the slide deck shared afterwards and will not be covered here
  68. 68. Changing Profiles attribute labels
  69. 69. Adding new attributesThe concept of Extension Attributes is included in ProfilesThree step process: Add new attribute to profiles-config.xml (in ExtensionAttributes stanza and again where it should be displayed) - mandatory Add label for attribute using Bundle file (optional) Add to TDI import process (optional)
  70. 70. Adding a new attribute 1/2 First add to Extension Attribute stanza: <profileExtensionAttributes> <simpleAttribute extensionId="homeAddress" length="64" /> <xmlFileAttribute extensionId="profileLinks" ... </xmlFileAttribute> </profileExtensionAttributes> Then within the Profile Type(s) it should appear in:<contactInformation> ... <editableAttribute showLabel="true" hideIfEmpty="true" email="true">groupwareEmail</editableAttribute><!-- <editableAttribute showLabel="true" hideIfEmpty="true" link="true">calendarUrl</editableAttribute> --><!-- <editableAttribute showLabel="true" hideIfEmpty="true" link="true">freeBusyUrl</editableAttribute> --><editableAttribute showLabel="true" hideIfEmpty="true" blogUrl="true">blogUrl</editableAttribute> <extensionAttribute showLabel="false" editable="true" extensionIdRef="homeAddress" /></contactInformation> Save and restart the WAS server
  71. 71. Adding a new attribute 2/2New attribute will appear for editing and display (if populated), but will not have appropriate label
  72. 72. Adding label for new attributeAttribute is now correctly labelled
  73. 73. Populating extension attributes Steps so far will allow new attributes to be populated by the user However, it is possible to populate via TDI too Add to <TDISOL>/conf/LotusConnections-conf/tdi-profile-config.xml<profileExtensionAttributes> <simpleAttribute extensionId="homeAddress" length="64" userLabel="Home Address" userTypeString="String" sourceKey="homeAddress"/> <xmlFileAttribute extensionId="profileLinks" schemaFile="profile-links.xsd" indexBindingExpr="/linkroll/link/ @name | /linkroll/link/@url"> <indexFields> <indexField fieldName="linkName" fieldExpr="/linkroll/link/@name" /> </indexFields> </xmlFileAttribute></profileExtensionAttributes>
  74. 74. TroubleshootingMany issues are caused by caching within the WAS server and HTTP server - alwaysrestart WAS if editing XML, JAR or HTML files - CSS changes do not require restartMost files within Connections/WAS are case-sensitive - check and double-check caseand syntaxAlways use appropriate WSADMIN checkin/checkout procedures for XMLconfiguration files - saves a lot of pain with typosIt is worth investing in a pre-production/test system configured as live for testingcustomisations first
  75. 75. What Next?
  76. 76. What next?Other areas where customisation may be desired: Additional Profile Types (e.g. Active vs. Leavers, Students vs. Staff) See CuriousMitch article at and Infocenter http:// c_admin_profiles_add_profile_type.htmlc_admin_profiles_add_profile_type.html Business Card See Infocenter c_admin_profiles_customize_biz_card_links.html Search Results See Infocenter t_admin_profiles_customize_search_results.html Notifications See great developerWorks paper on Notifications S_TACT=105AGX13&S_CMP=LP
  77. 77. Remember...But in truth, social softwareusers do and the businessproblems the tools address.Jakob Nielsen, Usability Guru
  78. 78. My Takeaways Lotus Connections supports (and embraces) customisation Many areas appropriate for customisation - a never-ending feast! Agree and document your scope and priorities - stick to it! Use appropriate change management, versioning and testing processes Have fun and make Connections work for you and your organisation...Image:
  79. 79. Thank You!