Package com.jalios.jcms.portlet
Class PortalManager
- java.lang.Object
-
- com.jalios.jcms.portlet.PortalManager
-
public final class PortalManager extends java.lang.Object
Manager for Portals that handle used classes, their associated images and manage lots of general features around PortalElement. The features are delegate to the portal element.- Author:
- Jean-Philippe Encausse
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
PortalManager.CatDiscrimComparator
Compare categories to find the most relavant one for portal resolution.static class
PortalManager.DisplayContextParameters
A structure to handle method parametersstatic class
PortalManager.PortalRedirectComparator
Sorts Portals by prioritizing Redirect, and then sorting by pdate
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
APP_PORTAL_ATTR
static java.lang.String
CHECK_PORTAL_CATEGORY_ATTR
static java.lang.String
CSS_INNER
static java.lang.String
CSS_OUTER
static java.lang.String
HIGHLIGHT_DEFAULT_MODE
static java.lang.String
HIGHLIGHT_ENABLED
static java.lang.String
HIGHLIGHT_MODE
static java.lang.String
HIGHLIGHT_TEXT
static java.lang.String
PORTAL_ACTION
static java.lang.String
PORTAL_ACTION_CACHE
static java.lang.String
PORTAL_ACTION_CUT
static java.lang.String
PORTAL_ACTION_MODE
static java.lang.String
PORTAL_ACTION_PAST
static org.apache.oro.text.regex.Pattern
PORTAL_ACTION_REGEXP
static java.lang.String
PORTAL_ACTION_REMOVE
static java.lang.String
PORTAL_AJAX_URI
static java.lang.String
PORTAL_CLIPBOARD
static java.lang.String
PORTAL_CONTEXTE_INCLUDE
static java.lang.String
PORTAL_CSS_DIRECTORY
static java.lang.String
PORTAL_CTXCATEGORIES
static java.lang.String
PORTAL_CURRENTCATEGORY
static java.lang.String
PORTAL_DEFAULT_CACHE
static java.lang.String
PORTAL_MODE_ENABLE
static java.lang.String
PORTAL_PORTAL
static java.lang.String
PORTAL_PORTALCATEGORY
static java.lang.String
PORTAL_PORTALELEMENT
static java.lang.String
PORTAL_PORTALELEMENT_DOMID
static java.lang.String
PORTAL_PORTLET_FAKE
static java.lang.String
PORTAL_PUBLICATION
static java.lang.String
PORTAL_TEMPLATEUSAGE
static java.lang.String
PORTLET_SEARCH_TOPBAR_EXTRADATA
static java.lang.String
PRIORITIZE_PORTLET_REDIRECT_PROP
static java.lang.String
SEO_OPENGRAPH_ENABLED_PROP
-
Method Summary
All Methods Static Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static void
addDisplayedPublication(JcmsJspContext jcmsContext, Publication pub)
static void
addHighlightAttributes(javax.servlet.http.HttpServletRequest request, java.lang.String text, java.lang.String mode)
Adds the given text and mode parameters as request attributes, and set the hlOk attribute to true to allow doDisplayHeader.jsp to provide highlight button.static boolean
canWorkOnSome(PortalInterface portal, Member loggedMember)
static boolean
checkPortal(Category cat, DisplayContext context, Member loggedMember, boolean skipRedirect, boolean skipExact)
This method looks for a matching Portal for a given Category.protected static boolean
checkPortal(Category cat, Publication pub, DisplayContext context, Member loggedMember, boolean skipRedirect, boolean skipExact)
Check the validity of the given Publication to be a convenient Portal.protected static boolean
checkPortal(Category category, Publication pub, DisplayContext context, Member loggedMember, boolean skipRedirect, boolean skipExact, boolean preview)
Check the validity of the given Publication to be a convenient Portal.static void
clearHighlightAttributes(javax.servlet.http.HttpServletRequest request)
Remove the highlight attributes from the current request to disable highlighting for the rest of the pageprotected static boolean
containsAction(javax.servlet.http.HttpServletRequest request, PortalElement portlet)
Looking for an action in the HttpRequeststatic boolean
disableCache(javax.servlet.http.HttpServletRequest request, PortalElement portlet, Member loggedMember)
Return true if the portlet should disable its cache Remove the cache parameter only if its the portlet itself that ask for a refresh (not one of it's parent)static boolean
findPortal(Category cat, DisplayContext context, Member loggedMember, boolean skipRedirect, boolean skipExact, boolean recursive)
Recursive methode that try to find the right portal for a given category otherwise may call parent category.static boolean
findPortal(Publication pub, DisplayContext context, Member loggedMember, boolean skipRedirect, boolean skipExact, boolean preview, Category[] ctxCategories)
Fill a display context with all the elements usefull for navigation, using the given steps:
1- Iterate on publication categories starting with sibling of contextual categories
2- Recursive call with parents until finding a Portal
3- Then set the portalCategory and the currentCategorystatic java.lang.String
getActionParam(PortalElement portlet, java.lang.String action)
Return the parameter for an action of a Portletstatic java.lang.String
getAjaxPortalRedirect(javax.servlet.http.HttpServletRequest request)
Build an URL working with in AjaxContext redirectsstatic java.lang.String
getAjaxPortalUrl(PortalElement portlet)
Deprecated.use #getAjaxPortalUrl()static java.lang.String
getAjaxPortalUrl(javax.servlet.http.HttpServletRequest request)
Build an URL working with in AjaxContext redirectsprotected static java.util.List<Category>
getAllCategories(Member loggedMember, java.util.Collection<Category> categoryCollec)
Return all categories at a given levelsstatic PortalInterface
getAppPortal()
static java.lang.String
getCacheParam(PortalElement portlet)
Return the parameter for a cache of a Portletstatic java.io.File[]
getCssFiles()
This method return an array of CSS in directory css/portal.static java.util.Map<java.lang.String,java.lang.String>
getCSSMap(java.lang.String skinType, java.lang.Class clazz)
static Category[]
getCtxCategories(javax.servlet.http.HttpServletRequest request)
Get all Categories from cid parameters in the requeststatic PortalInterface
getDefaultPortal()
Return the default portal according to the property channel.default-portal
Implementation note : since jcms-7.1.2, this default portal can be overrided by any custom PortalPolicyFilter.
SeeBasicPortalPolicyFilter.getDefaultPortal(PortalInterface, Member)
.static DisplayContext
getDisplayContext(JcmsContext context)
This is a convenient method to compute display.jsp display context.static DisplayContext
getDisplayContext(java.lang.String id, PortalInterface overrided, Category[] ctxCategories, Member loggedMember, boolean preview, java.lang.String queryString)
This method compute a display context of parameters for display.jsp.static int
getDisplayedPublicationCount(JcmsJspContext jcmsContext)
static java.util.Map<java.lang.String,java.util.Set<java.lang.String>>
getDisplayedPublicationMap(JcmsJspContext jcmsContext)
static java.util.Set<Publication>
getDisplayedPublicationSet(JcmsJspContext jcmsContext)
static java.lang.String
getHightlightParams(javax.servlet.http.HttpServletRequest request)
Build query string parameters from the information currently available in the request attributes.static Category
getHomeCategory()
Return by default the Category associated to propertychannel.default-index
.static java.lang.String
getInnerClasses(PortalElement portlet)
This method return classes to apply on the given portlet's inside.static java.lang.String
getInnerStyles(PortalElement portlet)
This method return style to apply on the given portlet's inside.static java.lang.String
getOutterClasses(PortalElement portlet)
This method return classes to apply on the given portlet's outside.static java.lang.String
getOutterStyles(PortalElement portlet)
This method return style to apply on the given portlet's outside.static java.lang.String
getPermalink(Data data)
Deprecated.static java.lang.String
getPermalink(Data data, java.util.Locale locale)
Returns an url representing the permanent link for the given data in the specified language.static Portlet
getPortletSearchTopbar()
Returns the PortletSearch used in the topbar.static PortalInterface
getPrintPortal()
Return the print portal according to the property channel.default-printportalstatic Category[]
getRootNavigate()
static java.lang.String
getUrlWithCommonUpdatedParams(javax.servlet.http.HttpServletRequest request, java.lang.String[] names, java.lang.String[] values, boolean encodeParams)
static java.lang.String
getUrlWithUpdateCtxCategories(Category cat, Category[] ctxArray, java.lang.String resourcePath, java.util.Map<java.lang.String,java.lang.String[]> parameterMap, boolean ctx)
Return an Url with updated cidsstatic java.lang.String
getUrlWithUpdateCtxCategories(Category cat, Category[] ctxArray, javax.servlet.http.HttpServletRequest request, boolean ctx)
Return an Url with updated cidsstatic void
handleDisplayRequest(JcmsJspContext context, DisplayContext display, long startPageRequest)
Called by display.jsp to set all request attributes from computed display context.static boolean
handleRequest(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, Member loggedMember)
Handle Request to check if parameters are Action of Portlets if true then remove them from request and put them to session.static boolean
hasFullDisplay(PortalElement portlet, Member loggedMember)
Checks if there is a full display anywhere inside the specified PortalElement (including the specified portlet itself).static boolean
isBehaviourBackCompatible()
This method will check if the portal mecanic use the new behaviour or the old one.static boolean
isNewBehaviour()
This method will check if the portal mecanic use the new behaviour or the old one.static boolean
isPreview(javax.servlet.http.HttpServletRequest request, PortalElement portlet)
Return true if the portlet is in preview modestatic void
printPortletException(javax.servlet.jsp.JspWriter out, java.lang.Throwable ex, PortalElement portlet, org.apache.log4j.Logger portletLogger)
Print the specified exception as a warning log message (if logger is specified) and to JSP output (if developement mode is enabled).static void
printPortletException(javax.servlet.jsp.JspWriter out, java.lang.Throwable ex, java.lang.String location, org.apache.log4j.Logger portletLogger)
Print the specified exception as a warning log message (if logger is specified) and to JSP output (if developement mode is enabled).static void
processActions(javax.servlet.http.HttpServletRequest request, java.util.List<PortalElement> portlets, Member loggedMember, java.util.List<java.lang.String> actions, java.util.List<java.lang.String> messages, java.util.List<java.lang.String> fullParams)
static java.lang.String
receiveAction(javax.servlet.http.HttpServletRequest request, PortalElement portlet, java.lang.String action)
Return a Message set for this Portlet by sendAction()static boolean
refreshCache(javax.servlet.http.HttpServletRequest request, PortalElement portlet, Member loggedMember)
Return true if the portlet should refresh its cache Remove the cache parameter only if its the portlet itself that ask for a refresh (not one of it's parent)static java.lang.String
removeAction(javax.servlet.http.HttpServletRequest request, PortalElement portlet, java.lang.String action)
Remove an action from the session.static java.lang.String
sendAction(javax.servlet.http.HttpServletRequest request, PortalElement portlet, java.lang.String action, java.lang.String message)
Return a well formated a URL with a parameter to do an Action for the portletstatic void
setPreview(javax.servlet.http.HttpServletRequest request, PortalElement portlet, boolean isPreview)
Sets the portlet preview modeprotected static boolean
updateFullDisplay(javax.servlet.http.HttpServletRequest request, PortalElement portlet, Member loggedMember)
Looking for a FullDisplay Portletstatic void
updateProperties()
Init #defaultPortal, #homeCategory, #printPortal and #rootNavigate given following properties :
#defaultPortal : based onchannel.default-portal
id property, or "j_206" if property not set. #homeCategory : based onchannel.default-index
id property, or null if property not set. #printPortal : based onchannel.default-printportal
id property, or "j_55" if property not set. #rootNavigate : based ondisplay.navigate-root
ids property, or null if property not set.
-
-
-
Field Detail
-
SEO_OPENGRAPH_ENABLED_PROP
public static final java.lang.String SEO_OPENGRAPH_ENABLED_PROP
- See Also:
- Constant Field Values
-
APP_PORTAL_ATTR
public static final java.lang.String APP_PORTAL_ATTR
- See Also:
- Constant Field Values
-
CHECK_PORTAL_CATEGORY_ATTR
public static final java.lang.String CHECK_PORTAL_CATEGORY_ATTR
- See Also:
- Constant Field Values
-
PRIORITIZE_PORTLET_REDIRECT_PROP
public static final java.lang.String PRIORITIZE_PORTLET_REDIRECT_PROP
- See Also:
- Constant Field Values
-
PORTAL_ACTION
public static final java.lang.String PORTAL_ACTION
- See Also:
- Constant Field Values
-
PORTAL_ACTION_REMOVE
public static final java.lang.String PORTAL_ACTION_REMOVE
- See Also:
- Constant Field Values
-
PORTAL_ACTION_CACHE
public static final java.lang.String PORTAL_ACTION_CACHE
- See Also:
- Constant Field Values
-
PORTAL_ACTION_MODE
public static final java.lang.String PORTAL_ACTION_MODE
- See Also:
- Constant Field Values
-
PORTAL_PORTLET_FAKE
public static final java.lang.String PORTAL_PORTLET_FAKE
- See Also:
- Constant Field Values
-
PORTAL_CSS_DIRECTORY
public static final java.lang.String PORTAL_CSS_DIRECTORY
- See Also:
- Constant Field Values
-
PORTAL_ACTION_CUT
public static final java.lang.String PORTAL_ACTION_CUT
- See Also:
- Constant Field Values
-
PORTAL_ACTION_PAST
public static final java.lang.String PORTAL_ACTION_PAST
- See Also:
- Constant Field Values
-
PORTAL_ACTION_REGEXP
public static final org.apache.oro.text.regex.Pattern PORTAL_ACTION_REGEXP
-
PORTAL_MODE_ENABLE
public static final java.lang.String PORTAL_MODE_ENABLE
- See Also:
- Constant Field Values
-
PORTAL_CLIPBOARD
public static final java.lang.String PORTAL_CLIPBOARD
- See Also:
- Constant Field Values
-
PORTAL_DEFAULT_CACHE
public static final java.lang.String PORTAL_DEFAULT_CACHE
- See Also:
- Constant Field Values
-
PORTAL_PUBLICATION
public static final java.lang.String PORTAL_PUBLICATION
- See Also:
- Constant Field Values
-
PORTAL_PORTALELEMENT
public static final java.lang.String PORTAL_PORTALELEMENT
- See Also:
- Constant Field Values
-
PORTAL_PORTALELEMENT_DOMID
public static final java.lang.String PORTAL_PORTALELEMENT_DOMID
- See Also:
- Constant Field Values
-
PORTAL_PORTAL
public static final java.lang.String PORTAL_PORTAL
- See Also:
- Constant Field Values
-
PORTAL_CURRENTCATEGORY
public static final java.lang.String PORTAL_CURRENTCATEGORY
- See Also:
- Constant Field Values
-
PORTAL_PORTALCATEGORY
public static final java.lang.String PORTAL_PORTALCATEGORY
- See Also:
- Constant Field Values
-
PORTAL_CTXCATEGORIES
public static final java.lang.String PORTAL_CTXCATEGORIES
- See Also:
- Constant Field Values
-
PORTAL_TEMPLATEUSAGE
public static final java.lang.String PORTAL_TEMPLATEUSAGE
- See Also:
- Constant Field Values
-
PORTAL_CONTEXTE_INCLUDE
public static final java.lang.String PORTAL_CONTEXTE_INCLUDE
- See Also:
- Constant Field Values
-
PORTAL_AJAX_URI
public static final java.lang.String PORTAL_AJAX_URI
- See Also:
- Constant Field Values
-
PORTLET_SEARCH_TOPBAR_EXTRADATA
public static final java.lang.String PORTLET_SEARCH_TOPBAR_EXTRADATA
- See Also:
- Constant Field Values
-
HIGHLIGHT_ENABLED
public static final java.lang.String HIGHLIGHT_ENABLED
- See Also:
- Constant Field Values
-
HIGHLIGHT_TEXT
public static final java.lang.String HIGHLIGHT_TEXT
- See Also:
- Constant Field Values
-
HIGHLIGHT_MODE
public static final java.lang.String HIGHLIGHT_MODE
- See Also:
- Constant Field Values
-
HIGHLIGHT_DEFAULT_MODE
public static final java.lang.String HIGHLIGHT_DEFAULT_MODE
- See Also:
- Constant Field Values
-
CSS_INNER
public static final java.lang.String CSS_INNER
- See Also:
- Constant Field Values
-
CSS_OUTER
public static final java.lang.String CSS_OUTER
- See Also:
- Constant Field Values
-
-
Method Detail
-
getActionParam
public static java.lang.String getActionParam(PortalElement portlet, java.lang.String action)
Return the parameter for an action of a Portlet- Parameters:
portlet
- the working portletaction
- the portlet action- Returns:
- String
- Since:
- jcms-4.0
-
sendAction
public static java.lang.String sendAction(javax.servlet.http.HttpServletRequest request, PortalElement portlet, java.lang.String action, java.lang.String message)
Return a well formated a URL with a parameter to do an Action for the portlet- Parameters:
request
- the HttpRequestportlet
- the working portletaction
- String action to sendmessage
- Strnig action value- Returns:
- String
- Since:
- jcms-4.0
-
receiveAction
public static java.lang.String receiveAction(javax.servlet.http.HttpServletRequest request, PortalElement portlet, java.lang.String action)
Return a Message set for this Portlet by sendAction()- Parameters:
request
- the HttpRequestportlet
- the working portletaction
- String action to receive- Returns:
- Sting
- Since:
- jcms-4.0
-
removeAction
public static java.lang.String removeAction(javax.servlet.http.HttpServletRequest request, PortalElement portlet, java.lang.String action)
Remove an action from the session. Do not change the cache- Parameters:
request
- the HttpRequestportlet
- the working portletaction
- String action to remove- Returns:
- String the action value TODO: Refresh Cache Boolean
- Since:
- jcms-4.0
-
processActions
public static void processActions(javax.servlet.http.HttpServletRequest request, java.util.List<PortalElement> portlets, Member loggedMember, java.util.List<java.lang.String> actions, java.util.List<java.lang.String> messages, java.util.List<java.lang.String> fullParams)
-
getUrlWithCommonUpdatedParams
public static java.lang.String getUrlWithCommonUpdatedParams(javax.servlet.http.HttpServletRequest request, java.lang.String[] names, java.lang.String[] values, boolean encodeParams)
- Parameters:
request
- the current HttpRequestnames
- an array of parameter names added or updated the urlvalues
- an array of values added or updated the url corresponding to namesencodeParams
- whether to do a encodeURL on given param (if false, don't forget to do the encodeURL yourself on the parameters which need it! it is provided as a performance boost because encodeURL can be slow)- Returns:
- Returns a relative URL with the given parameters added or updated plus common parameters: portal, id, portlet, jsp, cid if they are in the current request parameters
-
handleRequest
public static boolean handleRequest(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, Member loggedMember) throws java.io.IOException
Handle Request to check if parameters are Action of Portlets if true then remove them from request and put them to session.- Parameters:
request
- the HttpRequestresponse
- the HttpResponseloggedMember
- the Member- Returns:
- boolean
- Throws:
java.io.IOException
- exception- Since:
- jcms-4.0
-
getPermalink
public static java.lang.String getPermalink(Data data)
Deprecated.Returns an url representing the permanent link for the given data.- Parameters:
data
- the data to work with- Returns:
- String an url
-
getPermalink
public static java.lang.String getPermalink(Data data, java.util.Locale locale)
Returns an url representing the permanent link for the given data in the specified language.- Parameters:
data
- the data to work withlocale
- the Locale in which the data is to be access by the permalink- Returns:
- String an url
-
getCacheParam
public static java.lang.String getCacheParam(PortalElement portlet)
Return the parameter for a cache of a Portlet- Parameters:
portlet
- the Portlet- Returns:
- String
- Since:
- jcms-4.0
-
refreshCache
public static boolean refreshCache(javax.servlet.http.HttpServletRequest request, PortalElement portlet, Member loggedMember)
Return true if the portlet should refresh its cache Remove the cache parameter only if its the portlet itself that ask for a refresh (not one of it's parent)- Parameters:
request
- the HttpRequestportlet
- the PortletloggedMember
- the logged member- Returns:
- boolean
- Since:
- jcms-4.0
-
disableCache
public static boolean disableCache(javax.servlet.http.HttpServletRequest request, PortalElement portlet, Member loggedMember)
Return true if the portlet should disable its cache Remove the cache parameter only if its the portlet itself that ask for a refresh (not one of it's parent)- Parameters:
request
- the HttpRequestportlet
- the PortletloggedMember
- the logged member- Returns:
- boolean
- Since:
- jcms-4.0.1
-
containsAction
protected static boolean containsAction(javax.servlet.http.HttpServletRequest request, PortalElement portlet)
Looking for an action in the HttpRequest- Parameters:
request
- the HttpRequestportlet
- the Portlet- Returns:
- true if the request contains a Portlet Action
-
updateFullDisplay
protected static boolean updateFullDisplay(javax.servlet.http.HttpServletRequest request, PortalElement portlet, Member loggedMember)
Looking for a FullDisplay Portlet- Parameters:
request
- the HttpRequestportlet
- the PortletloggedMember
- the logged member- Returns:
- true if a FullDisplay Portlet Exists and paremeter exists TODO: Control Customized Portlets
-
hasFullDisplay
public static boolean hasFullDisplay(PortalElement portlet, Member loggedMember)
Checks if there is a full display anywhere inside the specified PortalElement (including the specified portlet itself).- Parameters:
portlet
- the portlet from which to start FullDisplay searchloggedMember
- the current loggedMember- Returns:
- true if the specified portlet is a FullDisplay or if any of its children is a full display, false otherwise
-
isPreview
public static boolean isPreview(javax.servlet.http.HttpServletRequest request, PortalElement portlet)
Return true if the portlet is in preview mode- Parameters:
request
- the HttpRequestportlet
- the Portlet- Returns:
- boolean
- Since:
- jcms-4.0
-
setPreview
public static void setPreview(javax.servlet.http.HttpServletRequest request, PortalElement portlet, boolean isPreview)
Sets the portlet preview mode- Parameters:
request
- the HttpRequestportlet
- the PortletisPreview
- (true to set it, false to remove)- Since:
- jcms-6.0
-
canWorkOnSome
public static boolean canWorkOnSome(PortalInterface portal, Member loggedMember)
-
getDefaultPortal
public static PortalInterface getDefaultPortal()
Return the default portal according to the property channel.default-portal
Implementation note : since jcms-7.1.2, this default portal can be overrided by any custom PortalPolicyFilter.
SeeBasicPortalPolicyFilter.getDefaultPortal(PortalInterface, Member)
.- Returns:
- the default Portal
- Since:
- jcms-4.1
-
getAppPortal
public static PortalInterface getAppPortal()
- Returns:
- the portal dedicated to display applications.
- Since:
- jcms-10.0.0
-
getPrintPortal
public static PortalInterface getPrintPortal()
Return the print portal according to the property channel.default-printportal- Returns:
- the print Portal
- Since:
- jcms-5.0.0
-
getHomeCategory
public static Category getHomeCategory()
Return by default the Category associated to propertychannel.default-index
.
Implementation note : since jcms-7.1.2, this default home Category can be overrided by any custom PortalPolicyFilter.
SeeBasicPortalPolicyFilter.getHomeCategory(Category, Member)
.- Returns:
- the home Category of the current logged Member.
-
getRootNavigate
public static Category[] getRootNavigate()
- Returns:
- an array of Categories bound to property
display.navigate-root
, or null.
-
updateProperties
public static void updateProperties()
Init #defaultPortal, #homeCategory, #printPortal and #rootNavigate given following properties :
- #defaultPortal : based on
channel.default-portal
id property, or "j_206" if property not set. - #homeCategory : based on
channel.default-index
id property, or null if property not set. - #printPortal : based on
channel.default-printportal
id property, or "j_55" if property not set. - #rootNavigate : based on
display.navigate-root
ids property, or null if property not set.
- #defaultPortal : based on
-
findPortal
public static boolean findPortal(Publication pub, DisplayContext context, Member loggedMember, boolean skipRedirect, boolean skipExact, boolean preview, Category[] ctxCategories)
Fill a display context with all the elements usefull for navigation, using the given steps:
1- Iterate on publication categories starting with sibling of contextual categories
2- Recursive call with parents until finding a Portal
3- Then set the portalCategory and the currentCategory- Parameters:
pub
- the publication to displaycontext
- the display to fillloggedMember
- the member, the publication is displayed forskipRedirect
- should we ignore PortalRedirect ?skipExact
- should we ignore exact portal ?preview
- are we in preview mode ?ctxCategories
- the contextual categories to sort the iteration on publication categories- Returns:
- true if the portal has been found
-
findPortal
public static boolean findPortal(Category cat, DisplayContext context, Member loggedMember, boolean skipRedirect, boolean skipExact, boolean recursive)
Recursive methode that try to find the right portal for a given category otherwise may call parent category. Work with an display context filled with navigation elements:- Parameters:
cat
- the category to work withcontext
- the list to fillloggedMember
- the member, the publication is displayed forskipRedirect
- should we ignore PortalRedirect ? Usefull when called by findPortal(Publication).skipExact
- should we ignore portal accepting only exact matchrecursive
- is it a recursive call with parent category ?- Returns:
- true if the portal has been found
-
checkPortal
public static boolean checkPortal(Category cat, DisplayContext context, Member loggedMember, boolean skipRedirect, boolean skipExact)
This method looks for a matching Portal for a given Category. Then set the portal Category in display context.
Portal with ExactCategory option are priority checked
- Parameters:
cat
- The current categorycontext
- display contextloggedMember
- The current memberskipRedirect
- Should skip redirect portalskipExact
- Should skip exact portal- Returns:
- boolean true if portal as been found
- Since:
- jcms-4.0
-
checkPortal
protected static boolean checkPortal(Category cat, Publication pub, DisplayContext context, Member loggedMember, boolean skipRedirect, boolean skipExact)
Check the validity of the given Publication to be a convenient Portal.
Set the Portal.- Parameters:
cat
- the iterated category if anypub
- the Publicationcontext
- a DisplayContext to updateloggedMember
- the Logged MemberskipRedirect
- boolean to skip redirectskipExact
- boolean to skip exact portal- Returns:
- true if publication is validated
- Since:
- jcms-4.0
-
checkPortal
protected static boolean checkPortal(Category category, Publication pub, DisplayContext context, Member loggedMember, boolean skipRedirect, boolean skipExact, boolean preview)
Check the validity of the given Publication to be a convenient Portal.- Parameters:
category
- the iterated category if anypub
- the Publicationcontext
- a DisplayContext to updateloggedMember
- the Logged MemberskipRedirect
- boolean to skip redirectskipExact
- boolean to skip exact portalpreview
- boolean is preview mode- Returns:
- true if publication is validated
- Since:
- jcms-4.0
-
getAllCategories
protected static java.util.List<Category> getAllCategories(Member loggedMember, java.util.Collection<Category> categoryCollec)
Return all categories at a given levels- Parameters:
loggedMember
- the logged MembercategoryCollec
- a collection of Category- Returns:
- List a list of Category
- Since:
- jcms-4.0
-
getCtxCategories
public static Category[] getCtxCategories(javax.servlet.http.HttpServletRequest request)
Get all Categories from cid parameters in the request- Parameters:
request
- the current request- Returns:
- An Array of category
- Since:
- jcms-5.0
-
getUrlWithUpdateCtxCategories
public static java.lang.String getUrlWithUpdateCtxCategories(Category cat, Category[] ctxArray, java.lang.String resourcePath, java.util.Map<java.lang.String,java.lang.String[]> parameterMap, boolean ctx)
Return an Url with updated cids- Parameters:
cat
- the categoryctxArray
- the contextual category arrayresourcePath
- the request resource pathparameterMap
- the request parameter mapctx
- is sctx category or navigate category- Returns:
- a erlative Url
- Since:
- jcms-5.5
-
getUrlWithUpdateCtxCategories
public static java.lang.String getUrlWithUpdateCtxCategories(Category cat, Category[] ctxArray, javax.servlet.http.HttpServletRequest request, boolean ctx)
Return an Url with updated cids- Parameters:
cat
- the categoryctxArray
- the contextual category arrayrequest
- the request to call ServletUtilctx
- is sctx category or navigate category- Returns:
- a erlative Url
- Since:
- jcms-5.0
-
getDisplayContext
public static DisplayContext getDisplayContext(JcmsContext context)
This is a convenient method to compute display.jsp display context. See getDisplayContext() for more informations.- Parameters:
context
- the JcmsContext- Returns:
- List computed display context
- See Also:
getDisplayContext(String, PortalInterface, Category[], Member, boolean, String)
-
getDisplayContext
public static DisplayContext getDisplayContext(java.lang.String id, PortalInterface overrided, Category[] ctxCategories, Member loggedMember, boolean preview, java.lang.String queryString)
This method compute a display context of parameters for display.jsp. The algorithm work on parameter 'id' to find matching attributes: CurrentCategory, PortalCategory, Portal to display the given Data.
- If context is null then a sendForbidden() must be called
- If redirect not null then sendRedirect()- Parameters:
id
- the request parameter id describing the working dataoverrided
- the overrided portal (request parameter portal)ctxCategories
- the contextual categories (request parameter cid)loggedMember
- the loggedmemberpreview
- boolean indicate if it is a previewqueryString
- the request querystring used by redirect parameters- Returns:
- List of display.jsp computed parameters
-
handleDisplayRequest
public static void handleDisplayRequest(JcmsJspContext context, DisplayContext display, long startPageRequest)
Called by display.jsp to set all request attributes from computed display context. The method getDisplayContext() must be called before to compute display context.- Parameters:
context
- a JcmsContext handling page requestdisplay
- a computed display.jsp display contextstartPageRequest
- long indicating start page request- See Also:
getDisplayContext(String, PortalInterface, Category[], Member, boolean, String)
-
addHighlightAttributes
public static void addHighlightAttributes(javax.servlet.http.HttpServletRequest request, java.lang.String text, java.lang.String mode)
Adds the given text and mode parameters as request attributes, and set the hlOk attribute to true to allow doDisplayHeader.jsp to provide highlight button.- Parameters:
request
- the HttpRequesttext
- The text to highlightmode
- the mode to use to search the text (same mode used in query, all, any, etc)
-
clearHighlightAttributes
public static void clearHighlightAttributes(javax.servlet.http.HttpServletRequest request)
Remove the highlight attributes from the current request to disable highlighting for the rest of the page- Parameters:
request
- the HttpRequest
-
getHightlightParams
public static java.lang.String getHightlightParams(javax.servlet.http.HttpServletRequest request)
Build query string parameters from the information currently available in the request attributes. If highlight attributes are available in the request, the return value will be of the form "&hlText=...&hlMode=..."- Parameters:
request
- the HttpRequest- Returns:
- String the highlight param
-
getAjaxPortalUrl
@Deprecated public static java.lang.String getAjaxPortalUrl(PortalElement portlet)
Deprecated.use #getAjaxPortalUrl()Build an URL working with AjaxContext redirects- Parameters:
portlet
- the Portlet to display- Returns:
- String a valid URL
- Since:
- jcms-6.0.1
-
getAjaxPortalUrl
public static java.lang.String getAjaxPortalUrl(javax.servlet.http.HttpServletRequest request)
Build an URL working with in AjaxContext redirects- Parameters:
request
- the HttpServletRequest- Returns:
- String a valid URL
- Since:
- jcms-6.0.2
-
getAjaxPortalRedirect
public static java.lang.String getAjaxPortalRedirect(javax.servlet.http.HttpServletRequest request)
Build an URL working with in AjaxContext redirects- Parameters:
request
- the HttpServletRequest- Returns:
- String a valid URL
- Since:
- jcms-6.0.2
-
isNewBehaviour
public static boolean isNewBehaviour()
This method will check if the portal mecanic use the new behaviour or the old one.- Returns:
- boolean true if it is the new mecanic.
- Since:
- jcms-5.5.0
-
isBehaviourBackCompatible
public static boolean isBehaviourBackCompatible()
This method will check if the portal mecanic use the new behaviour or the old one.- Returns:
- boolean true if it is the new mecanic.
- Since:
- jcms-5.5.0
-
getOutterStyles
public static java.lang.String getOutterStyles(PortalElement portlet)
This method return style to apply on the given portlet's outside. It works with portlet attributes:- width
- insets
- alignTable
- border
- backgroundImage
- backgroundColor
- Parameters:
portlet
- a PortalElement to work with- Returns:
- String the outter styles
- Since:
- jcms-5.5.0
-
getInnerStyles
public static java.lang.String getInnerStyles(PortalElement portlet)
This method return style to apply on the given portlet's inside. It works with portlet attributes:- CellPadding
- AlignV
- AlignH
- Parameters:
portlet
- a PortalElement to work with- Returns:
- String the inner styles
- Since:
- jcms-5.5.0
-
getOutterClasses
public static java.lang.String getOutterClasses(PortalElement portlet)
This method return classes to apply on the given portlet's outside. It may sets:- Outter
- Portlet
- PortletSkinable
- Custom CSS Skin
- PortletCollection
- Parameters:
portlet
- a PortalElement to work with- Returns:
- String the outer classes
- Since:
- jcms-5.5.0
-
getInnerClasses
public static java.lang.String getInnerClasses(PortalElement portlet)
This method return classes to apply on the given portlet's inside. It works with portlet attributes:- Inner
- Custom CSS Display
- Parameters:
portlet
- a PortalElement to work with- Returns:
- String the inner classes
- Since:
- jcms-5.5.0
-
getCssFiles
public static java.io.File[] getCssFiles()
This method return an array of CSS in directory css/portal. It is used by portal to display available portal css files.- Returns:
- File[] the list of css files
-
getCSSMap
public static java.util.Map<java.lang.String,java.lang.String> getCSSMap(java.lang.String skinType, java.lang.Class clazz)
-
printPortletException
public static void printPortletException(javax.servlet.jsp.JspWriter out, java.lang.Throwable ex, PortalElement portlet, org.apache.log4j.Logger portletLogger) throws java.io.IOException
Print the specified exception as a warning log message (if logger is specified) and to JSP output (if developement mode is enabled).- Parameters:
out
- the JspWriter to use to print the exception, when developement mode is enabledex
- the exception, required, no operation is performed if null is specifiedportlet
- the portlet in which the exception occured, may be null (though not recommanded)portletLogger
- the logger to use to output the exception, may be null- Throws:
java.io.IOException
- if an error occured while printing to JSP output.
-
printPortletException
public static void printPortletException(javax.servlet.jsp.JspWriter out, java.lang.Throwable ex, java.lang.String location, org.apache.log4j.Logger portletLogger) throws java.io.IOException
Print the specified exception as a warning log message (if logger is specified) and to JSP output (if developement mode is enabled).Developpement mode is configured with property
channel.dev-mode.enabled
- Parameters:
out
- the JspWriter to use to print the exception, when developement mode is enabledex
- the exception, required, no operation is performed if null is specifiedlocation
- a string indicating where the exception occured (e.g. a JSP path, a portlet title, ...), no operation is performed if null is specifiedportletLogger
- the logger to use to output the exception as a warning level, may be null- Throws:
java.io.IOException
- if an error occured while printing to JSP output.
-
getPortletSearchTopbar
public static Portlet getPortletSearchTopbar()
Returns the PortletSearch used in the topbar.- Returns:
- the PortletSearch used in the topbar.
- Since:
- jcms-8.0.0
-
addDisplayedPublication
public static void addDisplayedPublication(JcmsJspContext jcmsContext, Publication pub)
-
getDisplayedPublicationMap
public static java.util.Map<java.lang.String,java.util.Set<java.lang.String>> getDisplayedPublicationMap(JcmsJspContext jcmsContext)
-
getDisplayedPublicationSet
public static java.util.Set<Publication> getDisplayedPublicationSet(JcmsJspContext jcmsContext)
-
getDisplayedPublicationCount
public static int getDisplayedPublicationCount(JcmsJspContext jcmsContext)
-
-