Левое меню навигации: Liferay 6.2

Я нахожусь в процессе переноса моего текущего веб-приложения на liferay. Мне нужно настроить левую панель навигации в соответствии с моим приложением. Например, У меня есть левое вертикальное меню навигации с элементами, как показано ниже

Главная
Информация о компании
Информация о доходах

При нажатии на каждый из пунктов меню будет открываться отдельный портлет в правой панели содержимого. Например, информация о компании должна попасть в созданный мной пользовательский портлет компании.

Не могли бы вы помочь мне понять, как я могу добиться этого в Liferay 6.2? Спасибо.


person Mani    schedule 19.05.2014    source источник


Ответы (3)


  1. Если вы хотите отобразить развернутые на странице портлеты с помощью левой панели навигации, вы можете использовать Страницы панелей. Найдите раздел Panel Pages на этой странице.
  2. Если вы хотите, чтобы сама навигация по странице Liferay была вертикальной, а не горизонтальной, вы можете создать тему для оформления навигации. navigation.vm — это файл, который вы ищете.

Согласно комментарию ниже, вот мои предложения:

Предложение I

  1. Используйте макет 30-70.
  2. На 70-й стороне (справа) вы можете разместить все свои портлеты один за другим.
  3. С 30-й стороны (слева) можно разместить портлет для отображения веб-контента.
  4. Таким образом, в портлете отображения веб-контента в редакторе вы можете использовать вкладку Source, чтобы включить javascript/css/html для интерактивных ссылок на портлет.
  5. Существуют различные библиотеки javascript для создания эффекта прокрутки при нажатии на ссылку.

Предложение 2

  1. Это тоже похожее предложение, по крайней мере, концепция та же.
  2. единственное отличие состоит в том, что вы можете иметь собственный макет с веб-контентом, уже встроенным в макет, а также библиотеки и javascript, написанные в макете.

Предложение 3

  1. если вам нужна автоматическая левая панель навигации, т. е. когда страница загружается, она имеет имя портлета и ссылки на портлеты с правой стороны без ручного вмешательства.
  2. Это потребует большого количества кода внутри макета.
  3. Вы можете использовать различные переменные, доступные в макете, чтобы найти портлеты на странице и создать ссылки.
  4. Имейте левый раздел в макете и заполните ссылки, найденные в (3), а правая часть будет как обычно.

Вы можете использовать классы portlet-Ids или css для прокрутки к ним, когда конкретная ссылка в веб-контенте щелкается на вкладке Look & Feel на вкладке Конфигурация следующим образом:

введите здесь описание изображения

Надеюсь это поможет.

person Prakash K    schedule 19.05.2014
comment
Спасибо за ответ. 1. Для страницы панели похоже, что вы можете отображать только одну страницу за раз на правой странице содержимого. У меня есть требование, чтобы все портлеты находились на одной странице. Щелчок по ссылкам в левой панели навигации будет просто перемещаться страница вверх и вниз, передавая фокус выбранному портлету. - person Mani; 19.05.2014
comment
Так что поправьте меня, если я ошибаюсь, вы хотите иметь 1) страницу со всеми портлетами (такими как блоги, вики, DL и т. д.), расположенными один за другим. 2) Также вы хотите, чтобы, если человек прокручивает вниз, он продолжал видеть разные портлеты. 3) Вы хотите иметь левую навигацию с разными именами портлетов-ссылками, при нажатии на которые вы бы сосредоточились на этом конкретном портлете. - person Prakash K; 20.05.2014
comment
да. это правильно. В левом навигационном меню будут ссылки на отдельные портлеты. На правой панели содержимого будут портлеты, расположенные один за другим. Как только вы щелкнете по левой навигационной панели, управление переместится к определенному портлету справа. - person Mani; 20.05.2014
comment
спасибо за подробный ответ. Предложение 1 кажется мне более полезным. Не могли бы вы сообщить мне, как мне его реализовать? Когда мы говорим «Используйте раскладку 30-70». это что-то, чего мне нужно добиться, написав хуки/портлеты? Мне не нужна левая навигация liferay в моем приложении. Могу ли я как-то постоянно расширять ее и иметь в ней свои пользовательские пункты меню? page. Каким-то образом я могу исправить это и добавить свои пользовательские пункты меню внутрь. Вы предлагаете что-то вроде этого? - person Mani; 21.05.2014
comment
О, парень! Пользовательское меню Liferay предназначено для добавления портлетов, добавления страниц и администрирования, оно не предназначено для обычных пользователей. Они даже не увидят возможность открыть его. Но вы можете оформить свою 30-стороннюю компоновку таким образом. Макет 30-70 — это не что иное, как макет Liferay, который вы можете применить к странице, кодирование не требуется. Пожалуйста, ознакомьтесь с разделом Creating Sites and managing pages руководства пользователя Liferay, чтобы понять все о навигации и макетах. - person Prakash K; 21.05.2014
comment
Уфф, ладно. Понял. Я пройдусь по деталям на этой странице и попытаюсь это сделать. У меня здесь есть одна путаница, поскольку мы ничего не кодируем, если мы создадим все из пользовательского интерфейса, как мы переместим его в производство. Для хуков и других вещей, которые мы можем развернуть война с производственным сервером. Нужно ли мне переделывать все на производстве? Также, если у меня есть сценарии JS и CSS моего старого приложения, я могу использовать их здесь, в liferay. Спасибо за помощь! - person Mani; 21.05.2014
comment
вы можете использовать Промежуточная концепция или вы можете использовать концепция LAR, которая позволит импортировать ваши страницы и данные в новую среду. - person Prakash K; 21.05.2014
comment
Спасибо за все ответы, я попробую все эти предложения. - person Mani; 22.05.2014
comment
привет, Проведя еще несколько исследований, похоже, мы можем создать новую тему на основе классической темы и изменить ее navigation.vm, чтобы настроить левую боковую навигацию. Не могли бы вы помочь мне понять, почему кто-то может пойти на настройку темы вместо того, чтобы создать страницу с макетом 30-70 и настроить ее? Спасибо. - person Mani; 30.05.2014
comment
вы путаете навигацию по страницам (navigation.vm) с одной страницей со всеми портлетами, как вы подтвердили в моих первых нескольких комментариях. В navigation.vm вы можете переместить горизонтальный список страниц в вертикальный стиль. Это черная полоса, которая появляется на страницах Добро пожаловать и т. д. после логотипа сайта. - person Prakash K; 30.05.2014
comment
Если я правильно понимаю это, используя navigation.vm, я смогу перемещать горизонтальную черную полосу Liferay только как вертикальную? Это не то, что мне нужно. Мне нужна вертикальная полоса со ссылками на портлеты, находящиеся на той же странице. Я добился этого прямо сейчас, поместив портлет отображения веб-контента слева, имея все ссылки и все остальные портлеты справа. Я также создал привязки к этому, поместив соответствующий идентификатор привязки. Но я не понимаю, следует ли мне создавать тему, потому что у меня есть некоторый пользовательский CSS для использования, который есть в моем существующем портале, отличном от liferay. - person Mani; 03.06.2014
comment
Темы используются для оформления (читай, пользовательского CSS :-)) страниц портала. Темы также можно использовать для изменения всего макета страницы. Так что для пользовательской темы CSS это путь. Ваше конкретное требование также может быть выполнено с помощью темы (то же самое предложение, которое я дал с помощью Layout, с некоторыми изменениями). Решения для веб-контента требуют минимального кода, но тема или макет потребуют немного более сложного кода. В обоих подходах есть преимущества, и приятно знать, что вы достигли этого с помощью веб-контента. Хороший. - person Prakash K; 04.06.2014

Liferay упаковывает содержимое портлета, отображаемое внутри тега div, имеющего уникальный идентификатор экземпляра портлета. В заголовке портлета Look and Feel -> Advanced Styling отображается этот идентификатор портлета, например идентификатор портлета: #p_p_id_73_INSTANCE_xZVK6VFSqAzJ_

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

Примечание. Если портлеты на странице являются экземплярами, то при удалении экземпляра и повторном добавлении экземпляра будет получен новый идентификатор экземпляра. Итак, предыдущая ссылка на хештег не работает.

person Haris    schedule 19.05.2014
comment
Спасибо за ответ. Это помогло бы мне перемещать фокус между портлетами, используя их идентификатор. Не могли бы вы пролить свет на то, как я могу создать левое навигационное меню? Я расширил классическую тему и создал свою собственную тему. Однако я не могу понять, как мне изменить его, чтобы иметь фиксированную боковую панель. Спасибо. - person Mani; 20.05.2014
comment
Один подход, который я вижу, заключается в использовании макета из двух столбцов (например, 30-70), первый столбец может использоваться для размещения веб-контента, а второй столбец - для размещения ваших портлетов один под другим в порядке, соответствующем вашим требованиям. - person Haris; 20.05.2014
comment
Вы можете встроить меню как веб-контент. Посмотрите, поможет ли эта ссылка встроить веб-контент. e-kon. быть/блог/элемент/ - person Haris; 20.05.2014

Если вам нужна левая навигация, используйте макет 30-70 и используйте портлет SiteMap слева.

person Sravan Kumar    schedule 26.11.2014