After you create your slot component, you can use Scenarios to determine under what circumstances a gear will be displayed in a slot. The Creating Scenarios chapter in the Personalization Guide for Business Users provides information about how to create a scenario.
For example, you could create a scenario that adds a poll to a portal user’s home page upon login, and removes the poll after the user has voted in the poll. To do this, create a new scenario with the Logs in event followed by the Add items to slot action segment, and the Poll vote event followed by the Remove items from slot action segment:
The following JSP example shows how you might use a slot to render a gear. It assumes you’ve created a slot named /com/acme/slots/MyGearSlot
. The TargetingFirst
servlet bean is used to display the appropriate gear.
<%@ page import="atg.portal.servlet.*,atg.portal.framework.*" %> <%@ taglib uri="/paf-taglib" prefix="paf" %> <%@ taglib uri="/dsp" prefix="dsp" %> <dsp:page> <dsp:droplet name="/atg/targeting/TargetingFirst"> <dsp:param name="targeter" bean="/com/acme/slots/MyGearSlot"/> <dsp:oparam name="output"> <dsp:getvalueof id="gearId" param="element.repositoryId" idtype="java.lang.String"> <% //Obtain request/response PortalServletResponse portalServletResponse = (PortalServletResponse)request.getAttribute(Attribute.PORTALSERVLETRESPONSE); PortalServletRequest portalServletRequest = (PortalServletRequest)request.getAttribute(Attribute.PORTALSERVLETREQUEST); Portal portal = portalServletRequest.getPortal(); if(portal != null) { Gear gear = portal.getGearById(gearId); if(gear != null) { //Create Gear Context GearContextImpl gearContext = new GearContextImpl((GearContext)portalServletRequest); gearContext.setGear(gear); gearContext.setGearMode(GearMode.CONTENT); //Dispatch Gear RequestDispatcher dispatcher = portalServletRequest.getRequestDispatcher(gearContext); if(dispatcher != null) dispatcher.include(request,response); } } %> </dsp:getvalueof> </dsp:oparam> </dsp:droplet> </dsp:page>