A new feature was introduced in PeopleTools 8.57 that enables customers to create their own custom banner on top of and in addition to the existing "New User Interface" header consistently on Classic and Fluid.
This is achieved using the Branding Header definition that is configured in our Branding Theme definition.
More details on Header and Theme definitions can be found in PeopleBooks:
Branding Process Overview
Defining Headers and Footers
In the past (pre-8.57), the Branding Header definitions purely represented the Classic header area and we have always had to address the Classic and Fluid branding administration separately. Here is a note from PeopleBooks.
But in the case of the ComponyInfo element which is part of the DEFAULT_HEADER_FLUID header definition, it is a welcome exception wherein we can use a single configuration to handle both (Classic and Fluid).
Getting Started
This blog post will detail what it takes to configure a custom header using the Company Info configuration! The environment used for this post is a HCM 9.2 PUM Image 27 which was originally on PT 8.56.09 and upgraded to PT 8.57.01. The upgrade to 8.57 was administered using PeopleSoft Cloud Manager 7 running on Oracle Cloud Infrastructure - Classic.
As I was getting started - wearing a 'good citizen developer' hat, I cloned the delivered theme (DEFAULT_THEME_FLUID) and header (DEFAULT_HEADER_FLUID) definitions. As shown in the next section, I created custom definitions CSK_THEME_FLUID and CSK_HEADER_FLUID respectively instead of modifying delivered definitions.
Custom Definitions and Branding System Options
PeopleTools > Portal > Branding > Define Headers and Footers
CSK_HEADER_FLUID: Clone of DEFAULT_HEADER_FLUID
PeopleTools > Portal > Branding > Assemble Themes
CSK_THEME_FLUID: Clone of DEFAULT_THEME_FLUID
PeopleTools > Portal > Branding > Branding System Options
Update Branding System Options to reference the custom theme.
Note: If there is any assignment on the 'Assign Branding Themes' page for the current portal (which is typically common in HCM 9.2 PUM images) as shown below, we need to be sure to update this configuration as well.
PeopleTools > Portal > Branding > Assign Themes
Update Default Theme for the current Portal (if assignment exists)
Updating the CompanyInfo Configuration
Now that we created custom definitions, we can update the CompanyInfo element to create our own custom header.
Demo
As we can see, the CompanyInfo Element can be updated using the Rich Text Editor provided in the Additional Options page. While there is an option to configure different content for Classic and Fluid, I am using the same content for the purpose of this example.
Testing the CompanyInfo element
Now that we configured our custom banner, we should be able to test this right away!
Demo
As we can see in the demonstration below, the custom banner "does not appear to"/will not work on Fluid Homepages or Fluid pages. But it works fine in Classic! 😥
Bug in CompanyInfo/Custom Banner functionality for Fluid
After going around in circles for a long time, I found that there is a hard-coding in the Branding App Package which is responsible for displaying the CompanyInfo element in Fluid. As you can see in the screenshot below, the code assumes that we are using the delivered DEFAULT_HEADER_FLUID definition. In our example, we cloned the delivered header and created our own custom definition called CSK_HEADER_FLUID. So, it will not pick up our custom definitions for Fluid! 😂
The following MOS Bug has been logged.
BUG 28844971: BRANDING FRAMEWORK CUSTOM HEADER COMPANYINFO FUNCTIONALITY ISSUE.
Fix to remove hard-coding
We can simply comment out the hard-coding and add code to use a SQLExec to dynamically pull the header definition name from the current theme configured on the Branding System Options! Here is a snippet of the App Class with the modification to the GetCompanyInfoHtml method.
PeopleCode for Reference
Demo after applying fix
As you can see from the video below, the Custom Banner (CompanyInfo element) now shows up on Classic and Fluid consistently. Also, notice that the delivered "Oracle" Logo which was previously present on the top left corner has been removed automatically on the Fluid Homepage! This is an exciting feature in the Branding framework. I hope this can be enhanced in the upcoming patches to obviously remove the hard-coding mentioned in this post and also extend this configuration to allow us to use an App Class! Imagine if we could write our own App Class to dynamically generate this Custom Banner instead of a static rich text value. 🎆🎉
Related Posts
PeopleTools 8.57 | Branding Administration Access and New Roles
This is achieved using the Branding Header definition that is configured in our Branding Theme definition.
More details on Header and Theme definitions can be found in PeopleBooks:
Branding Process Overview
Defining Headers and Footers
In the past (pre-8.57), the Branding Header definitions purely represented the Classic header area and we have always had to address the Classic and Fluid branding administration separately. Here is a note from PeopleBooks.
But in the case of the ComponyInfo element which is part of the DEFAULT_HEADER_FLUID header definition, it is a welcome exception wherein we can use a single configuration to handle both (Classic and Fluid).
Getting Started
This blog post will detail what it takes to configure a custom header using the Company Info configuration! The environment used for this post is a HCM 9.2 PUM Image 27 which was originally on PT 8.56.09 and upgraded to PT 8.57.01. The upgrade to 8.57 was administered using PeopleSoft Cloud Manager 7 running on Oracle Cloud Infrastructure - Classic.
As I was getting started - wearing a 'good citizen developer' hat, I cloned the delivered theme (DEFAULT_THEME_FLUID) and header (DEFAULT_HEADER_FLUID) definitions. As shown in the next section, I created custom definitions CSK_THEME_FLUID and CSK_HEADER_FLUID respectively instead of modifying delivered definitions.
Custom Definitions and Branding System Options
PeopleTools > Portal > Branding > Define Headers and Footers
CSK_HEADER_FLUID: Clone of DEFAULT_HEADER_FLUID
PeopleTools > Portal > Branding > Assemble Themes
CSK_THEME_FLUID: Clone of DEFAULT_THEME_FLUID
PeopleTools > Portal > Branding > Branding System Options
Update Branding System Options to reference the custom theme.
Note: If there is any assignment on the 'Assign Branding Themes' page for the current portal (which is typically common in HCM 9.2 PUM images) as shown below, we need to be sure to update this configuration as well.
PeopleTools > Portal > Branding > Assign Themes
Update Default Theme for the current Portal (if assignment exists)
Updating the CompanyInfo Configuration
Now that we created custom definitions, we can update the CompanyInfo element to create our own custom header.
Demo
As we can see, the CompanyInfo Element can be updated using the Rich Text Editor provided in the Additional Options page. While there is an option to configure different content for Classic and Fluid, I am using the same content for the purpose of this example.
Testing the CompanyInfo element
Now that we configured our custom banner, we should be able to test this right away!
Demo
As we can see in the demonstration below, the custom banner "does not appear to"/will not work on Fluid Homepages or Fluid pages. But it works fine in Classic! 😥
Bug in CompanyInfo/Custom Banner functionality for Fluid
After going around in circles for a long time, I found that there is a hard-coding in the Branding App Package which is responsible for displaying the CompanyInfo element in Fluid. As you can see in the screenshot below, the code assumes that we are using the delivered DEFAULT_HEADER_FLUID definition. In our example, we cloned the delivered header and created our own custom definition called CSK_HEADER_FLUID. So, it will not pick up our custom definitions for Fluid! 😂
The following MOS Bug has been logged.
BUG 28844971: BRANDING FRAMEWORK CUSTOM HEADER COMPANYINFO FUNCTIONALITY ISSUE.
Fix to remove hard-coding
We can simply comment out the hard-coding and add code to use a SQLExec to dynamically pull the header definition name from the current theme configured on the Branding System Options! Here is a snippet of the App Class with the modification to the GetCompanyInfoHtml method.
PeopleCode for Reference
Demo after applying fix
As you can see from the video below, the Custom Banner (CompanyInfo element) now shows up on Classic and Fluid consistently. Also, notice that the delivered "Oracle" Logo which was previously present on the top left corner has been removed automatically on the Fluid Homepage! This is an exciting feature in the Branding framework. I hope this can be enhanced in the upcoming patches to obviously remove the hard-coding mentioned in this post and also extend this configuration to allow us to use an App Class! Imagine if we could write our own App Class to dynamically generate this Custom Banner instead of a static rich text value. 🎆🎉
Related Posts
PeopleTools 8.57 | Branding Administration Access and New Roles
Since first hearing of it, wondered if it could be used to inject JS/CSS across fluid AND classic pages. You have any ideas yet?
ReplyDeleteNevermind, you can. Thanks!
DeleteCSS for Classic and Fluid are different so it will always need to be done separately. Of course, we could use this to apply custom CSS via the HTML source code option in the Rich Text Editor (RTE) but I am not sure if this would be the ideal approach for this scenario. There are several tools available within the Branding Framework that allows us to override CSS in Classic and Fluid without any customizations.
DeleteRegarding JavaScript, yes, it may seem tempting to again use the HTML source code option in the RTE to inject JS across Fluid and Classic consistently. While we could do that (which I have not tried), again I doubt and worry about the consistency of the timing and execution of such JS injection.
Sure, we can use this approach if there is some JS required for the CompanyInfo element itself. But I would not recommend this as an approach/alternative to a JS injection framework.
Hi Sasank.. i have two questions:
ReplyDelete1. Can we enable or disable fluid based on specific portals. i am on PS 9.2 finance image 27 tools 8.56
If i go to personalization and change the HPPC setting to Classic. it turns ON Classic for everything irrespective of the portal i am in. we have en internal employee portal and an external facing customer portal which needs to be non Fluid. so is there a way to disable fluid just for a specific portal.??
2. my 2nd question is that for the External facing customer portal, we have created a custom banner header but i am not able to get rid of the dropdown menu of favourites and main menu.
i have removed the ptdropdownmenu from my header configuration. i am still seeing it.
1. My understanding is the HPPC setting is universal and not specific to a portal. If you want to selectively use Classic/Fluid per Portal, you may need to either customize WEBLIB_PTBR.ISCRIPT1.FieldFormula.IScript_StartPage or clone it and use the custom IScript on your Web Profile (PeopleTools > Web Profile > Web Profile Configuration > Look and Feel (Page/Tab) > Start Page section.
Delete2. You may want to review PeopleTools > Portal > Branding > Assign Themes > Check if your portal is using the appropriate theme, etc.
I created the footer but it's not visible - Anyone got a success in creating custom footer ?Thanks
ReplyDeleteI created the custom footer but it's not visible - did anyone got success in generating custom footer?
ReplyDelete