SlideShare a Scribd company logo
Customizing User Profiles Andy Keller Director of Engineering Dave Shepperton Senior Software Engineer
Overview User Profile Architecture Customizations Adding new fields Modifying profile display Custom data sources
User Profile Architecture Schema User Profile Display Form Rendering
User Profile Schema Configuration config/data/forms/profile.properties Schema XML config/data/forms/profile.sdl
config/data/forms/profile.properties # special form factory for profiles class=tsi.sdk.data.ProfileFormFactory # located in the current directory xml=config.data.forms.profile # user must be last, because it will store the entry fqid sources=entry,ldap,user # make these entries profiles entry_custom_type=profile
config/data/forms/profile.sdl
config/data/forms/profile.sdl This is XML <?xml version=&quot;1.0&quot;?> Three XML tags <form> <group> <field>
profile.sdl:  <form> The class attribute can be used for css styling Other attributes can be used when the form appears in a dialog title, width <form class=”userprofile-form”>
profile.sdl:  <group> Currently, the only group type is fieldset. There may be more in the future. The label attribute specifies the label for the group. <group type=”fieldset” label=”Basic Information”>
profile.sdl:  <field> Attributes type  - the type of the form control source  - the source of the data for read/write name  - the name of the property label  - the text label for the form field description  - a description of the form field (other)  - Depending on the field type, additional attributes may be used <field type=”text” name=”property_twitter” label=”Twitter ID”>
profile.sdl:  <field>  types text Text input or text area if rows attribute is specified select Pulldown with option elements or special name=project date Date selector that allows choosing a day using a calendar html HTML block that can be used for adding fixed content readonly Displays as non-editable text, often used with source=ldap projectselect Link, click to show select with project list label Label pillbox labelselect Label select input with options or project and prefix  users User pillbox, completes against all users in the system members User pillbox, completes against space members, then all goalselector Allows selection of a goal, called a project in the interface milestoneselector Allows selection of a milestone richtext Coming soon! attachments Coming soon!
User Profiles in Proteus Automatically included in any Proteus view that is in the userprofile tabs family. com/traction/sdl/gwtrpc/userprofile_details.sdl, broken into groups per column: basic, contact, other Modify by overriding individual functions in your plug-in, e.g., plugins/com.example.customprofile/com/traction/sdl/gwtrpc/userprofile_details.sdl
User Profile Entry Tokens profile_title and profile_body use SDL functions in com/traction/sdl/token/profile.sdl
Customizing the User Profile Form For Example: Add a field for the user’s LinkedIn public profile URL In a new plug-in: Create a custom version of the schema Override some SDL functions to display the property in the profile header Override some SDL functions to include the property in full text renderings (for search results)
Customizing the User Profile Form (cont’d) Create a plug-in, e.g. plugins/com.traction.profilelinkedin Copy config/data/forms/profile.sdl used to generate XML schema to plugins/com.traction.profilelinkedin/config/data/forms Add the field where you want it in the form:
Customizing the User Profile Form (cont’d) The structure of the schema is used to automatically generate the form:
Customizing the Display of User Profile Information plugins/com.traction.profilelinkedin/com/traction/sdl/gwtrpc/userprofile_details.sdl, start by copying just these two functions: display-secure-contact  function fill-custom-entry-props  function
Customizing the Display of User Profile Information (cont’d) Profile data are loaded from the User and profile Entry in SDL (com.traction.sdl.token.profile#fill) fill-custom-entry-props  Function Names the Same Property Given in the Schema:
Customizing the Display of User Profile Information (cont’d) Modify the custom version of  display-secure-contact  to display the LinkedIn URL:
Customizing the Display of User Profile Information (cont’d) A separate modification is required to make the property searchable. plugins/com.traction.profilelinkedin/com/traction/sdl/token/profile.sdl, start by copying just these two functions: fulltextbody-custom  function fill-custom-entry-props  function
Customizing the Display of User Profile Information (cont’d) Profile data are loaded from the User and profile Entry in SDL (com.traction.sdl.token.profile#fill) fill-custom-entry-props  Function Names the Same Property Given in the Schema:
Customizing the Display of User Profile Information (cont’d) The  fulltextbody-custom  function can be used to include the property in the full-text rendering so that it appears in search results:
Profile information from Active Directory / LDAP Active Directory Properties Viewed using JXplorer
Profile information from Active Directory / LDAP Add it to the Profile Schema in config/data/forms/userprofile.sdl Render it using user.profile and property.value
Custom DataSources Currently have user, entry, and ldap user  is for user preferences entry  is for entry properties and is used for settings not traditionally in user preferenes ldap  is for properties store in ldap It’s possible to create new sources to pull content from a database, web service, etc.

More Related Content

PPT
Struts Intro Course(1)
PPT
PPTX
Summer industrial trainingnew
PDF
Example User Stories Specification for ReqView
PPT
Rational Publishing Engine with Rational DOORS
PPT
3) web development
PPT
Metamorphosis from Forms to Java: A technical lead's perspective, part II
PPT
Oracle Forms Tutorial (www.aboutoracleapps.com)
Struts Intro Course(1)
Summer industrial trainingnew
Example User Stories Specification for ReqView
Rational Publishing Engine with Rational DOORS
3) web development
Metamorphosis from Forms to Java: A technical lead's perspective, part II
Oracle Forms Tutorial (www.aboutoracleapps.com)

What's hot (19)

PPT
Oracle D2K reports
PPTX
Oleksandr Krakovetskyi - Orchard CMS
PPTX
Orchard
DOCX
Creating a data report in visual basic 6
DOCX
Customize the login homepage For Oracle EBS R12
PPTX
SharePoint 2010 For Developers
PPTX
Peoplesoft Basic App designer
PPT
Bw training 7 bw reporting b ex 1
PPT
People soft application-designer-practice-8.43
PDF
Webformer: a Rapid Application Development Toolkit for Writing Ajax Web Form ...
RTF
Oracle apps online training
PPTX
O365 Saturday - Deepdive SharePoint Client Side Rendering
PDF
Best practices in using Salesforce Metadata API
DOCX
PDF
Accessing The Oracle Apps Database Without Having A Db Login
PDF
Oracle application-development-framework-best-practices
PDF
Asset modelimportconn devguide_5.2.1.6190.0
PDF
Lec5 ecom fall16_modified7_november16
PPTX
Reusable ui components
Oracle D2K reports
Oleksandr Krakovetskyi - Orchard CMS
Orchard
Creating a data report in visual basic 6
Customize the login homepage For Oracle EBS R12
SharePoint 2010 For Developers
Peoplesoft Basic App designer
Bw training 7 bw reporting b ex 1
People soft application-designer-practice-8.43
Webformer: a Rapid Application Development Toolkit for Writing Ajax Web Form ...
Oracle apps online training
O365 Saturday - Deepdive SharePoint Client Side Rendering
Best practices in using Salesforce Metadata API
Accessing The Oracle Apps Database Without Having A Db Login
Oracle application-development-framework-best-practices
Asset modelimportconn devguide_5.2.1.6190.0
Lec5 ecom fall16_modified7_november16
Reusable ui components
Ad

Similar to Customizing User Profiles (20)

PDF
Dexterity in the Wild
PPT
Ibm
PDF
TYPO3 + CKEditor: Heaven for TYPO3 Developer & Editor
ODP
Auslug 2011 customising ibm connections
PDF
Social Connections VI — IBM Connections Extensions and Themes Demystified
PDF
Architecture Specification - Visual Modeling Tool
PPS
Actionview
ODP
IBM Connections Activity Stream 3rd Party Integration - Social Connect VI - P...
PPTX
Coding standards
PDF
Introduction to Polymer and Firebase - Simon Gauvin
PPT
PM Architecture
ODP
Customizing IBM Connections 3.0 - LS11 AD304
PPT
CustomizingStyleSheetsForHTMLOutputs
PDF
20.1 creating functions_part_20.1
PPTX
Unit 2 - Data Binding.pptx
PPT
User Profiles: I Didn't Know I Could Do That (Updated Demo)
PPT
Drupal CMS: generating reports with the Forena module.
PDF
C# .NET Developer Portfolio
PPTX
Essential html tweaks for accessible themes
PDF
Asset modelimportconn devguide_5.2.1.6190.0
Dexterity in the Wild
Ibm
TYPO3 + CKEditor: Heaven for TYPO3 Developer & Editor
Auslug 2011 customising ibm connections
Social Connections VI — IBM Connections Extensions and Themes Demystified
Architecture Specification - Visual Modeling Tool
Actionview
IBM Connections Activity Stream 3rd Party Integration - Social Connect VI - P...
Coding standards
Introduction to Polymer and Firebase - Simon Gauvin
PM Architecture
Customizing IBM Connections 3.0 - LS11 AD304
CustomizingStyleSheetsForHTMLOutputs
20.1 creating functions_part_20.1
Unit 2 - Data Binding.pptx
User Profiles: I Didn't Know I Could Do That (Updated Demo)
Drupal CMS: generating reports with the Forena module.
C# .NET Developer Portfolio
Essential html tweaks for accessible themes
Asset modelimportconn devguide_5.2.1.6190.0
Ad

More from Traction Software (20)

PDF
Thierry Barsalou - IPSEN CIO - on Traction TeamPage for Competitive Intellige...
PPT
Proteus Navigation and Project Management
KEY
Capturing and managing non-traditional information for Competitive Advantage....
KEY
Portal or Enterprise Software ? Gilbane 2010 Boston
PPT
Attivio - What's New in AIE 2 and Dictionary Management
PPT
Managing and Monitoring TeamPage
PDF
Adventures in 21st Century Organizational Design
PPT
Traction Training and Enhancements at FDA - CDRH
PPT
Proteus SDK
PPT
From Mexico to Proteus
PPT
A Deep Dive into Profiles, Status, and PM
PPT
TeamPage Beginner to Jedi, Jordan Frank
PPT
Observable Processes, Kevin Duprey
PPT
Patterns of Observable Work, Brian Tullis
PPT
Communication / Collaboration / Content / Competition, Peter O'Kelly
PPT
Traction 2010 Update, Chris Nuzum, Traction Software
PPT
Doing and Managing Knowledge Work, Jim McGee
PPT
Being Observable, Jon Udell
KEY
Traction TeamPage Release 4.2 Highlights
KEY
Traction Software Showcases New Collaboration Capabilities
Thierry Barsalou - IPSEN CIO - on Traction TeamPage for Competitive Intellige...
Proteus Navigation and Project Management
Capturing and managing non-traditional information for Competitive Advantage....
Portal or Enterprise Software ? Gilbane 2010 Boston
Attivio - What's New in AIE 2 and Dictionary Management
Managing and Monitoring TeamPage
Adventures in 21st Century Organizational Design
Traction Training and Enhancements at FDA - CDRH
Proteus SDK
From Mexico to Proteus
A Deep Dive into Profiles, Status, and PM
TeamPage Beginner to Jedi, Jordan Frank
Observable Processes, Kevin Duprey
Patterns of Observable Work, Brian Tullis
Communication / Collaboration / Content / Competition, Peter O'Kelly
Traction 2010 Update, Chris Nuzum, Traction Software
Doing and Managing Knowledge Work, Jim McGee
Being Observable, Jon Udell
Traction TeamPage Release 4.2 Highlights
Traction Software Showcases New Collaboration Capabilities

Recently uploaded (20)

PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Encapsulation theory and applications.pdf
PDF
Empathic Computing: Creating Shared Understanding
PPTX
Cloud computing and distributed systems.
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Approach and Philosophy of On baking technology
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Electronic commerce courselecture one. Pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Machine learning based COVID-19 study performance prediction
“AI and Expert System Decision Support & Business Intelligence Systems”
sap open course for s4hana steps from ECC to s4
Encapsulation theory and applications.pdf
Empathic Computing: Creating Shared Understanding
Cloud computing and distributed systems.
Network Security Unit 5.pdf for BCA BBA.
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Approach and Philosophy of On baking technology
Chapter 3 Spatial Domain Image Processing.pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
MYSQL Presentation for SQL database connectivity
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Mobile App Security Testing_ A Comprehensive Guide.pdf
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Electronic commerce courselecture one. Pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Machine learning based COVID-19 study performance prediction

Customizing User Profiles

  • 1. Customizing User Profiles Andy Keller Director of Engineering Dave Shepperton Senior Software Engineer
  • 2. Overview User Profile Architecture Customizations Adding new fields Modifying profile display Custom data sources
  • 3. User Profile Architecture Schema User Profile Display Form Rendering
  • 4. User Profile Schema Configuration config/data/forms/profile.properties Schema XML config/data/forms/profile.sdl
  • 5. config/data/forms/profile.properties # special form factory for profiles class=tsi.sdk.data.ProfileFormFactory # located in the current directory xml=config.data.forms.profile # user must be last, because it will store the entry fqid sources=entry,ldap,user # make these entries profiles entry_custom_type=profile
  • 7. config/data/forms/profile.sdl This is XML <?xml version=&quot;1.0&quot;?> Three XML tags <form> <group> <field>
  • 8. profile.sdl: <form> The class attribute can be used for css styling Other attributes can be used when the form appears in a dialog title, width <form class=”userprofile-form”>
  • 9. profile.sdl: <group> Currently, the only group type is fieldset. There may be more in the future. The label attribute specifies the label for the group. <group type=”fieldset” label=”Basic Information”>
  • 10. profile.sdl: <field> Attributes type - the type of the form control source - the source of the data for read/write name - the name of the property label - the text label for the form field description - a description of the form field (other) - Depending on the field type, additional attributes may be used <field type=”text” name=”property_twitter” label=”Twitter ID”>
  • 11. profile.sdl: <field> types text Text input or text area if rows attribute is specified select Pulldown with option elements or special name=project date Date selector that allows choosing a day using a calendar html HTML block that can be used for adding fixed content readonly Displays as non-editable text, often used with source=ldap projectselect Link, click to show select with project list label Label pillbox labelselect Label select input with options or project and prefix users User pillbox, completes against all users in the system members User pillbox, completes against space members, then all goalselector Allows selection of a goal, called a project in the interface milestoneselector Allows selection of a milestone richtext Coming soon! attachments Coming soon!
  • 12. User Profiles in Proteus Automatically included in any Proteus view that is in the userprofile tabs family. com/traction/sdl/gwtrpc/userprofile_details.sdl, broken into groups per column: basic, contact, other Modify by overriding individual functions in your plug-in, e.g., plugins/com.example.customprofile/com/traction/sdl/gwtrpc/userprofile_details.sdl
  • 13. User Profile Entry Tokens profile_title and profile_body use SDL functions in com/traction/sdl/token/profile.sdl
  • 14. Customizing the User Profile Form For Example: Add a field for the user’s LinkedIn public profile URL In a new plug-in: Create a custom version of the schema Override some SDL functions to display the property in the profile header Override some SDL functions to include the property in full text renderings (for search results)
  • 15. Customizing the User Profile Form (cont’d) Create a plug-in, e.g. plugins/com.traction.profilelinkedin Copy config/data/forms/profile.sdl used to generate XML schema to plugins/com.traction.profilelinkedin/config/data/forms Add the field where you want it in the form:
  • 16. Customizing the User Profile Form (cont’d) The structure of the schema is used to automatically generate the form:
  • 17. Customizing the Display of User Profile Information plugins/com.traction.profilelinkedin/com/traction/sdl/gwtrpc/userprofile_details.sdl, start by copying just these two functions: display-secure-contact function fill-custom-entry-props function
  • 18. Customizing the Display of User Profile Information (cont’d) Profile data are loaded from the User and profile Entry in SDL (com.traction.sdl.token.profile#fill) fill-custom-entry-props Function Names the Same Property Given in the Schema:
  • 19. Customizing the Display of User Profile Information (cont’d) Modify the custom version of display-secure-contact to display the LinkedIn URL:
  • 20. Customizing the Display of User Profile Information (cont’d) A separate modification is required to make the property searchable. plugins/com.traction.profilelinkedin/com/traction/sdl/token/profile.sdl, start by copying just these two functions: fulltextbody-custom function fill-custom-entry-props function
  • 21. Customizing the Display of User Profile Information (cont’d) Profile data are loaded from the User and profile Entry in SDL (com.traction.sdl.token.profile#fill) fill-custom-entry-props Function Names the Same Property Given in the Schema:
  • 22. Customizing the Display of User Profile Information (cont’d) The fulltextbody-custom function can be used to include the property in the full-text rendering so that it appears in search results:
  • 23. Profile information from Active Directory / LDAP Active Directory Properties Viewed using JXplorer
  • 24. Profile information from Active Directory / LDAP Add it to the Profile Schema in config/data/forms/userprofile.sdl Render it using user.profile and property.value
  • 25. Custom DataSources Currently have user, entry, and ldap user is for user preferences entry is for entry properties and is used for settings not traditionally in user preferenes ldap is for properties store in ldap It’s possible to create new sources to pull content from a database, web service, etc.