Channel self-focusing
You can focus the channel via a request parameter: uP_root=me
When you want to "unfocus", use uP_root=root
Examples:
<a href="{$baseActionURL}?uP_root=me">Focus me</a>
<form name="Focus me" action="{$baseActionURL}"> <input type="hidden" name="uP_root" value="root"/> ... </form>
Thanks to Ken Weiner for providing this information on the JASIG-PORTAL list.
External links
Motivation
You might want to have links outside your portal link into your uPortal, through login, to a channel in focus mode.
This is how Yale University delivers its Network Registration channel.
Examples
- YaleInfo daily business cartoon channel
*YaleInfo Network Registration – you won't be able to get through CAS, but this link demonstrates using this feature with CAS.
Documentation
Implementation
This is accomplished by a modification to LoginServlet to collect the parameters:
public void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { if (log.isTraceEnabled()){ log.trace("entering doGet(" + request + "...)"); } /* Grab the target functional name, if any, off the login request. * Really we should lookup the key in a properties file. * If this parameter is set, we will pass it along after authentication. */ String targetFname = request.getParameter("uP_fname"); String targetArgs = request.getParameter("uP_args");
And then some code to put these parameters on the redirect to the uPortal session management servlet.
// Check to see if the person has been authenticated if (person != null && person.getSecurityContext().isAuthenticated()) { String redirectTarget = null; if (targetFname == null){ redirectTarget = request.getContextPath() + "/" + redirectString; } else { redirectTarget = request.getContextPath() + "/" + "tag.idempotent." + redirectString + "?uP_fname=" + targetFname; if (targetArgs != null) { redirectTarget = redirectTarget + "&uP_args=" + targetArgs; } } if (log.isTraceEnabled()){ log.trace("person [" + person + "] is authenticated. " + "Redirecting to PortalSessionManager servlet at [" + redirectString + "] with a complete redirect target " + "of [" + redirectTarget + "]"); } response.sendRedirect(redirectTarget); }