среда, 18 января 2012 г.

Из чего состоит head хтмл-страницы лайфрея?

В шаблоне велосити страницы портала между тегом хед можно увидеть вот, что:


$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.

Комментариев нет:

Отправить комментарий