A Custom Message on the Signon Page (Final Word) January 4, 2010
Posted by Duncan in PeopleTools.trackback
Some people have been having issues with the signon page messages and caching on more recent versions of Weblogic (after all I posted the original more than 2 years ago now). I thought I’d revisit it on an up-to-date environment and try to fix it.
These are the steps I took (Tools 8.50.04/Weblogic 10.3):
Follow steps 1-4 from part 4. These are:
1) Create a Message File
Create a file called MOTD.txt (or whatever you wish) and place it in the ‘<pshome>\webserv\<domain>\applications\peoplesoft\PORTAL\’ folder. Then make sure you can access it using ‘http://<server>:<port>/MOTD.txt’ from your browser. Note this URL for later.
2) Edit Signin Page
Edit signin.html (under the above path, plus \WEB-INF\psftdocs\<PIA>\)
3) Create Place-Holder Div
Look for the section near the bottom with the text ‘tracelink’ in. Add the line in red below:
<td><div align="center">
<div id="updateDiv" style="font-family: Arial; font-size: 9pt; color: #C00000;"></div>
<p> <%=traceLink%> </p>
<p> <%=error%> </p>
<p> <%=ps.discovery.error%> </p>
</div></td>
This is a place-holder for our message. Giving the Div a name allows us to easily refer to it in JavaScript, and we are also applying a style at Div level to the text that we will insert.
4) Set the Script up to be called on Load
Alter the Body tag to read as follows (section to add in red – change the url to the one you used previously):
<BODY onLoad="setFocus();include('http://<server>:<port>/MOTD.txt'); <%=framebreak%>">
This is all on one line in the HTML.
5) Add the script
In the scripts section, add the following script (add all the lines, regardless of what colour I’ve made them):
function include(url) {
var xmlhttp=false;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
// JScript gives us Conditional compilation, we can cope with old IE versions.
// and security blocked creation of the objects.
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
@end @*/
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
try {
xmlhttp = new XMLHttpRequest();
} catch (e) {
xmlhttp=false;
}
}
if (!xmlhttp && window.createRequest) {
try {
xmlhttp = window.createRequest();
} catch (e) {
xmlhttp=false;
}
}
xmlhttp.open("HEAD", url, true);
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4) {
//alert("Status is "+xmlhttp.status);
if (xmlhttp.status==200) {
xmlhttp.open("GET", url ,true);
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4) {
//alert(xmlhttp.responseText);
var updateDiv = document.getElementById('updateDiv');
newParagraph = document.createElement('p');
newText = document.createTextNode(xmlhttp.responseText);
newParagraph.appendChild(newText);
updateDiv.appendChild(newParagraph);
updateDiv.style.border = "1px solid #FF0000";
updateDiv.style.backgroundColor="#FFE0E0"
}
}
xmlhttp.send(null)
}
}
}
xmlhttp.send(null)
}
For those that have implemented this previously, the red section has changed slightly. I’ve applied a style to the DIV to make the message more noticeable. I’ve done this here so that if there is no message the styling is not applied and the signon page appears as normal.
6) Amend the caching parameter
Edit your weblogic.xml file (found in ‘<PS_HOME>\webserv\peoplesoft\applications\peoplesoft\PORTAL.war\WEB-INF\’). Locate the Container Descriptor section and add the line in red:
<container-descriptor>
<servlet-reload-check-secs>-1</servlet-reload-check-secs>
<session-monitoring-enabled>true</session-monitoring-enabled>
<resource-reload-check-secs>0</resource-reload-check-secs>
</container-descriptor>
Bounce your PIA and your message should appear. I’ve tested this in both IE and Firefox and it works fine. You do not need to subsequently bounce the PIA to change the message of the day, however it may require you to reload your browser, depending upon your browser’s cache settings. If you use IE and it’s set to check with every page visit then just hitting the refresh button works.
Comments
Sorry comments are closed for this entry
great! Thank you!!!
I love your page, man!
I’m trying to use MOTD.html rather than the MOTD.txt method.
However, when I get to the log on page, the message is showing along with its HTML tags – which I don’t want.
Going directly to the URL of MOTD.html doesn’t show the HTML tags – which is expected behaviour.
I followed the steps above and everything else appears to be working fine.
Any ideas?
Thanks so much for this – a really useful piece of work.
A quick question for commenters &c – has anyone modded this to cope with IE6 users? Our only problem at our site is that the (fairly large) installed base of IE6 don’t see the message. We did send out a lot of communication by other means related to the system downtime we notified via the message, so it wasn’t a huge problem. however, I wondered whether anyone had encountered a similar browser issue with IE6 & worked around it?