Макеты Шаблонов Liferay

Автор: Пользователь скрыл имя, 17 Сентября 2012 в 23:48, практическая работа

Описание работы

Как объяснялось в предыдущей главе, страницы портала как правило, включает заголовок с логотипом, навигация по меню (горизонтальное и/или вертикальной вкладок навигации), площадь окна портала содержание и колонтитул. Есть два уровня абстракции, чтобы создать страницу портала в Liferay.

Работа содержит 1 файл

Макеты Шаблонов Liferay.doc

— 236.00 Кб (Скачать)

</layout-template>

</standard>

 

Файлы из этих трех из собственного окна стандартных шаблонов макета находятся в ${PORTAL_ROOT_HOME}/layouttpl/standard каталог серии. Файлы TPL и. PNG файлы. Как показано на следующем exclusive.tpl файл, шаблон макета включает CSS определений, таких как окна портала колонки в некоторых дел теги для управления разметкой пользовательского интерфейса. Ключ кода для обработки содержания портлетов в рамках каждого макета столбец по выделенной линии.

<div class="columns-max" id="main-content" role="main">

<div class="portlet-layout">

<div class="portlet-column portlet-column-only" id="column-1">

$processor.processMax("portlet-column-content portlet-column-content-only")

</div>

</div>

</div>

 

Если вы сравните файл один стандартный шаблон макета, такие как эксклюзивный, с соответствующим файлом другого стандартный шаблон макета, такие как pop_up, вы обнаружите, что они точно так же. Разница с сервером обработки.

Liferay вне окна пользовательских шаблонов макета

Как и выше трех из собственного окна стандартных шаблонов макета, Есть десять из собственного окна пользовательских шаблонов макета определены в:

${PORTAL_ROOT_HOME}/WEB-INF/liferay-layout-templates.xml

<custom>

<layout-template id="freeform" name="Freeform">

<template-path>/layouttpl/custom/freeform.tpl</template-path>

<wap-template-path>/layouttpl/custom/freeform.wap.tpl</wap-template-path>

<thumbnail-path>/layouttpl/custom/freeform.png</thumbnail-path>

<roles>

<role-name>User</role-name>

</roles>

</layout-template>

<layout-template id="1_column" name="1 Column">

<template-path>/layouttpl/custom/1_column.tpl</template-path>

<wap-template-path>/layouttpl/custom/1_column.wap.tpl</wap-template-path>

<thumbnail-path>/layouttpl/custom/1_column.png</thumbnail-path>

</layout-template>

// ignore details

<layout-template id="2_2_columns" name="2-2 Columns">

<template-path>/layouttpl/custom/2_2_columns.tpl</template-path>

<wap-template-path>/layouttpl/custom/2_2_columns.wap.tpl</wap-template-path>

<thumbnail-path>/layouttpl/custom/2_2_columns.png</thumbnail-path>

</layout-template>

</custom>

 

 

Эти десять из собственного окна пользовательских шаблонов макета доступны для пользователей с правом разрешения (Manage Pages permission) для применения в индивидуальном порядке на странице портала. Их исходные коды находятся в the ${PORTAL_ROOT_HOME}/layouttpl/custom каталогов в виде серии. TPL файлов и. PNG файлы. Подобно файлу в стандартные шаблоны компоновки, скорость метод $ processor.processColumn в каждом файле TPL играет ключевую роль в создании портлетов содержание в частности идентификатор столбца, как показано в следующем фрагменте кода:

$processor.processColumn("column-1", "portlet-column-content portlet-column-content-only")

 

Создание нового пользовательского макета

Теперь мы знаем, что шаблон макета составляет около, что он делает, и как применять одну из вне окна пользовательских шаблонов Liferay в расположение на странице портала. Настало время для нас, чтобы создать наш собственный пользовательский шаблон макета.

Создание макета шаблонов производится в подобной манере к созданию портлеты и темы. Это может быть выполнено с помощью плагинов Liferay SDK.

Создание скелета шаблон макета в Plugins SDK

Существует layouttpl папки внутри Liferay Плагины SDK, где все новые шаблоны компоновки проживают. SDK предоставляет скрипт для создания скелета нового шаблона макета. Чтобы создать новый шаблон макета, вы запускаете команду в этой папке layouttpl похож на тот, который вы используете для создания нового портала или тему.

Теперь перейдите к ${liferay.plugins.sdk.home}/layouttpl папку и запустите сценарий создания, как:

Для Windows:

create <layout-template-name> "<layout template simple description>"

Для Unix / Linux / Mac:

./create.sh <layout-template-name> "<layout template simple description>"

Где <layout-template-name> папка шаблон макета имя в файловой структуре, и <layout template simple description> это текст, который на самом деле будет отображаться на Manage | Page Layout страницы. Папка шаблон макета имя не должно содержать пустое пространство в имени. Второй параметр должен иметь кавычки, чтобы пробелы в описании шаблона макета должен быть создан.

Например, следующая команда, чтобы создать пустой скелет 1_3 макет Колонны на Windows:

C:\workspace_6.0.5_book\liferay-plugins-sdk-6.0.5\layouttpl>create 1_3_columns "1_3 Columns"

Liferay предлагает Liferay IDE как плагин Eclipse. Вы можете использовать Liferay IDE для создания шаблона макета, включая скелет папки и файлы, созданные сценарии выполняются в приведенной выше команде.

Теперь вы можете пойти в Windows Explorer и заметили, что шаблон макета

папку с именем 1_3_columns-layouttpl был создан автоматически при ${liferay.plugins.sdk.home}/layouttpl папку. Имя папки совпадает с именем шаблона макета, который был указан в качестве первого элемента ввода в командный сценарий создания, с-layouttpl добавляется к концу имени шаблона макета. Она имеет следующие скелета:

 

 

Вы заметите, следующие три файла в папке DOCROOT Вашего макета шаблона:

       1_3_columns.tpl: Это файл шаблона макета для регулярного веб-браузеров.

       1_3_columns.wap.tpl: Это файл шаблона макета для мобильных устройств.

       1_3_columns.png: Это стандартный образ миниатюры из того, что раскладка выглядит следующим образом. Это миниатюр отображается, когда пользователь портала с правым кликов разрешение на управление | Макет страницы страницы из меню Dockbar.

Liferay может автоматически определять клиента, который будет использоваться для подключения к узлу портала и подать соответствующий шаблон. Если клиент мобильного устройства, он будет служить 1_3_columns.wap.tpl файл. В противном случае, он будет служить 1_3_columns.tpl файл для обычных веб-браузер.

 

Добавление собственной реализации в файлы шаблона макета

Оба выше порожденных 1_3_columns.tpl и 1_3_columns.wap.tpl файлы пустые. 1_3_columns.png по умолчанию изображение, которое не представляет фактическое шаблон макета, мы должны создать. Следующие шаги, чтобы добавить свои коды на два файла шаблона.

Открытое 1_3_columns.tpl файл в выбранной редактор, добавьте следующие коды, а затем сохранить его.

<div class="columns-1-3" id="main-content" role="main">

<table class="portlet-layout">

<tr>

<td class="portlet-column portlet-column-only" id="column-1" colspan="3">

$processor.processColumn("column-1", "portlet-column-content portlet-column-content-only")

</td>

</tr>

<tr>

<td class="aui-w33 portlet-column portlet-column-first" id="column-2">

$processor.processColumn("column-2", "portlet-column-content portlet-column-content-first")

</td>

<td class="aui-w33 portlet-column" id="column-3">

$processor.processColumn("column-3", "portlet-column-content")

</td>

<td class="aui-w33 portlet-column portlet-column-last" id="column-4">

$processor.processColumn("column-4", "portlet-column-content portlet-column-content-last")

</td>

</tr>

</table>

</div>

 

Пожалуйста, обратите внимание, что этот шаблон макета в два ряда: первый ряд имеет только одну колонку и второй ряд состоит из трех одинаково широкий столбцов. Каждая клетка определяется строк и столбцов имеет уникальный идентификатор, например, колонка-1, колонка-2, колонка-3, а в графе-4. Этот уникальный идентификатор важно для придания этому праву портлетов (ы) в нужное место на странице портала, где этот шаблон макета был применен.

Теперь мы копируем и тот же код из 1_3_columns.tpl к 1_3_columns.wap.tpl файл. Вы можете изменить 1_3_columns.wap.tpl файл, как вы хотите, чтобы освежить дизайн шаблон макета для мобильных устройств.

В-третьих, мы должны сделать, заключается в использовании программа для работы с изображениями, таких как GIMP или Adobe Photoshop для создания 1_3_columns.png, что выглядит так, как шаблон макета должно выглядеть.

Строительство и регистрации шаблон макета

Теперь у нас есть все необходимые файлы на месте. Откройте командную строку, перейдите в каталог ${liferay.plugins.sdk.home}/layouttpl/1_3_columns-layouttpl папку, а затем запустить ant у для построения пользовательских шаблонов макета в WAR-файл, который будет скопирован в ${liferay.plugins.sdk.home}/dist папку. ant команда также скопировать сгенерированный 1_3_columns-layouttpl-<version number>.war на ${liferay.bundles.home}/deploy папку для горячего развертывания в Liferay.

Теперь войти в систему как администратор портала и убедитесь, вновь созданный шаблон макета, который был зарегистрирован в Liferay портал, как показано на Manage | Page Layout страницы:

 

 

Следующим шагом является создание Test Page с именем пробной страницы, применять вновь созданный шаблон макета на этой странице, и добавить несколько примеров портлетов в каждой ячейке строки и столбца. Вы можете видеть, что этот новый макет был успешно создан, развернутых в применении к тестовой странице, как показано на следующем скриншоте:

 

 

Как шаблон макета оказываемых в Liferay?

Мы знаем, что страницы портала включает в себя темы, шаблон макета, один или несколько портлетов, расположенных в сетке-подобную структуру столбце шаблон макета. Эти три слоя абстракции контроль внешнего вида страницы портала и как окно портала содержания располагаются в колонки. Теперь давайте посмотрим на код потока и объяснить, как эти компоненты работают вместе во время портал процесс рендеринга страницы.

 

Главная Servlet в Liferay портал

Liferay Портал реализован в Struts и включает в себя Main Servlet Сервлет-класс com.liferay.portal.servlet. MainServlet как зарегистрированный ниже в ${PORTAL_ROOT_HOME}/WEB-INF/web.xml файл.

<servlet>

<servlet-name>Main Servlet</servlet-name>

<servlet-class>com.liferay.portal.servlet.MainServlet</servlet-class>

<init-param>

<param-name>config</param-name>

<param-value>/WEB-INF/struts-config.xml,/WEB-INF/struts-config-ext.xml</param-value>

</init-param>

<init-param>

<param-name>debug</param-name>

<param-value>0</param-value>

</init-param>

<init-param>

<param-name>detail</param-name>

<param-value>0</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

</servlet>

 

Как показано на выделенной линии выше, Главное Servlet включает нагрузку на запуск элемента. Дополнительного содержания этого элемента должно быть целое число, указывающее порядок, в котором сервлет должен быть загружен. Контейнер должен гарантировать, что сервлеты, отмеченные ниже целые загружаются до сервлеты, отмеченные выше целые числа. Есть более чем 20 сервлеты зарегистрированных в Liferay портал web.xml и нагрузки на тип запуска Главная сервлета в натуральных числах 1 ниже, чем в любой другой сервлет в этом файле. Это указывает на то, что этот сервлет должен быть загружен (экземпляра и его инициализации () метод, называемый) на запуск веб-приложения после портал развертывания приложения.

Давайте внимательнее посмотрим на исходный код com.liferay.portal.servlet. MainServlet.java, который доступен в Liferay-портал-SRC-{version.number}. ZIP со страницы загрузки Liferay. init() метод сервлета вызывает несколько других методов инициализации для инициализации различных услуг, мероприятия, акции, и так далее. Следующие три метода, связанные с содержанием портлетов, расположение и внешний вид (тему) из страницы портала:

       initPortlets метод анализирует все портлеты, определенных в портлет-custom.xml, портлет-ext.xml, Liferay-portlet.xml, и Liferay-портлет-ext.xml перед вызовом несколько других интерфейсов API для создания портлетов. В зависимости от среды Liferay, некоторые из этих XML-файлы, которые не могут существовать.

       initLayoutTemplates метод анализирует все расположение шаблонов, определенных в Liferay-топологии templates.xml и Liferay макетов-шаблонов-ext.xml перед вызовом инициализации метод com.liferay.portal.service.LayoutTemplateLocalServiceUtil начать размещение шаблонов.

       initThemes метод анализирует все темы, определенные в Liferay-вид и feel.xml и Liferay-выглядеть и чувствовать-ext.xml перед вызовом Init () метод для инициализации com.liferay.portal.service.ThemeLocalServiceUtil темы .

В дополнение к MainServlet, вы могли заметить существование com.liferay.portal.struts.PortletActionServlet в исходных кодах. Оба сервлеты простираются от ActionServlet. Тем не менее, MainServlet для Liferay Portal себя, который использует Struts в то время как PortletActionServlet для отдельных ВОЙН портлета, который использует Struts. У них разные стойки-config.xml файлы, чтобы они нуждаются в различных сервлеты.

 

Страница рендеринга, как объясняется с кодом потока

Liferay страницах портала предоставляются по следующему механизму в виде серии шагов от браузера запрос через все, вплоть до оказания отдельных портлетов.

1. Первоначальный запрос приходит на сервер портала Liferay из браузера, и бьет службы (запрос, ответ) метод сервлета com.liferay.portal.servlet.MainServlet. Этот метод состоит в обработке запроса на обслуживание. Различные атрибуты сессии, такие как WebKeys.USER_ID и Globals.LOCALE_KEY хранятся в сессии. Некоторые атрибуты запроса в том числе и PageContext.EXCEPTION WebKeys.CTX сохраняются в запросе, а также. Эти объекты предназначены для использования с помощью кода ниже по течению.

2. Метод MainServlet.processServicePre называется.

3. Метод com.liferay.portal.events.EventsProcessorUtil.process называется начать preservice событий до Struts обрабатывает запрос. По умолчанию, preservice событий реализуются в com.liferay.portal.events.ServicePreAction из-за следующую строку в portal.properties, который упакован в портала impl.jar.

servlet.service.events.pre = com.liferay.portal.events.ServicePreAction

Планировка и тема, которая будет отображаться определяются в ServicePreAction.servicePre метод. Ниже приведен список некоторых из атрибутов запроса, которые хранятся для последующего использования кода:

WebKeys.LAYOUT: текущую схему

WebKeys.LAYOUTS: других доступных макетов

WebKeys.THEME: тема для отображения

WebKeys.COLOR_SCHEME: цветовую схему для использования в конкретной теме. Тему и цветовую схему, как правило, определяется с помощью запроса расположение, как только он был определен

Информация о работе Макеты Шаблонов Liferay