В шаблоне велосити страницы портала между тегом хед можно увидеть вот, что:
$theme.include($top_head_include)
Эта переменная инициализируется в init.vm (или того шаблонного движка который используется).
#set ($top_head_include = "$dir_include/common/themes/top_head.jsp")
Эта же джееспешка включает в себя джееспешки с мета-тегами, ссылками сиесес и яваскриптов. В этом посте сконцентрируюсь на яваскрипте.
В файле top_js.jsf находится скрипт инициализирующий лайфрей и основу:
var Liferay = {
Browser: {
acceptsGzip: function() {},
getMajorVersion: function() {},
getRevision: function() {},
getVersion: function() {},
isAir: function() {},
isChrome: function() {},
isFirefox: function() {},
isGecko: function() {},
isIe: function() {},
isIphone: function() {},
isLinux: function() {},
isMac: function() {},
isMobile: function() {},
isMozilla: function() {},
isOpera: function() {},
isRtf: function() {},
isSafari: function() {},
isSun: function() {},
isWap: function() {},
isWapXhtml: function() {},
isWebKit: function() {},
isWindows: function() {},
isWml: function() {}
},
ThemeDisplay: {
getCompanyId: function() {},
getCompanyGroupId: function() {},
getUserId: function() {},
getUserName: function() {},
getDoAsUserIdEncoded: function() {},
getPlid: function() {},
getLayoutId: function() {},
getLayoutURL: function() {},
isPrivateLayout: function() {},
getParentLayoutId: function() {},
getScopeGroupId: function() {},
getParentGroupId: function() {},
isImpersonated: function() {},
isSignedIn: function() {},
getDefaultLanguageId: function() {},
getLanguageId: function() {},
isFreeformLayout: function() {},
isStateExclusive: function() {},
isStateMaximized: function() {},
isStatePopUp: function() {},
getPathContext: function() {},
getPathImage: function() {},
getPathJavaScript: function() {},
getPathMain: function() {},
getPathThemeImages: function() {},
getPathThemeRoot: function() {},
getURLHome: function() {},
getSessionId: function() {},
getPortletSetupShowBordersDefault: function() {}
},
PropsValues: {
}
};
var themeDisplay = Liferay.ThemeDisplay;
window.YUI_config = {
comboBase: Liferay.AUI.getComboPath(),
fetchCSS: false,
filter: Liferay.AUI.getFilter(),
root: Liferay.AUI.getBasePath()
};
Liferay.currentURL = '...';
Liferay.currentURLEncoded = '...';
За этим тегом скрипта решается какие библиотеки подлинков, идет выбор из двух братьев-антогонистов (если есть на странице один, то нет второго).
barebone.jsp и everything.jsp
Страница по ссылкам на эти джееспе получает скрипты применимы на каждой странице портала.
barebone - это скрипты, которые исользуются всегда на каждой странице портала.
everything - это скрипты, которые используются на каждой странице портала, при соблюдении каких-то условий.
По умолчанию у Liferay
barebone - это набор
скриптов, которые использоуются порталом в состоянии н
езалогиненного пользователя(режим роли гостя).
everything - это набор
скриптов, которые исользуются порталом
в состоянии залогиненного пользователя, - очевидно, что залогиненому пользователю предоставляется более расширенные функционал на страницах портала, для которого нужно больше скриптов.
Вот какие настройки находятся в portal.properties в разделе Javascript.