2014-05-21 2 views
0

다른 테마를 제공하는 메커니즘이 Liferay의 다른 사용자 역할에 달려 있습니다. 사용자 역할에 대한 테마를 변경할 수있는 솔루션을 제공하는 방법이 있습니다. 둘째로 이것이 프로그래밍 방식으로 가능하다는 것을 알고 싶습니다. 또는 Liferay가 이에 대한 사용자 지정 지원을 제공합니다.사용자 역할을 기반으로 테마를 변경하십시오. Liferay

어떤 도움을 주시면 대단히 감사하겠습니다.

+0

감사 요청에 테마 속성을 변경하는 기반 사용자의 역할 HTH –

답변

0

나쁜 선택

올바른 방법이 테마를 변경할 수 있지만 스타일을 변경 페이지에서 뭔가를 주입하지 않는 것입니다.

사용자 세션에 따라 런타임에 테마를 변경하는 것은 좋지 않습니다. 요청마다 무효화 된 캐시로 인한 성능 저하.

사용자 정의 포틀릿을 빌드하고 모든 페이지의 테마에 삽입하십시오. 사용자 로직에 따라 포틀릿은 HTML 태그의 CSS 클래스를 변경하기 위해 일부 자바 스크립트를 삽입 할 수 있습니다.

분명합니까?

+0

와트 당신은 abt이 블로그를 말하십니까 https://digitalfireflymarketing.com/how-select-multiple-themes-liferay –

+0

현실 세계 프로젝트가 가능하지만 해결책은 아닙니다. –

+0

그래서 당신은 우리가 themeA, themeB, themeC의 3 가지 테마를 제공한다고 말하려합니다. 각 하나는 CSS, css 파일을 기반으로 다른 색상, 글꼴 및 기타 변경, 사용자가 테마를 선택하면 themeA 사용자 테이블에 테마라는 이름의 사용자 정의 열 아래에 테마 이름을 저장하고 우리는 해당 CSS 파일을 가져올 필요가 입력을 기반으로 –

0

테마는 레이아웃 (예 : 페이지)과 관련이 있습니다. 이는 liferay의 Layout table에서 볼 수 있습니다. 따라서 API를 사용하여 변경할 수도 있지만 사용자 수준에서는 다르지만 페이지 수준에서는 관련이 없습니다.

귀하의 요구 사항에 따라, 고정 된 수의 테마가있는 경우, 각각 하나의 특정 테마가있는 사이트가 각각 적용됩니다.

포스트 로그인 훅을 사용하여 사용자 역할을 확인하고 적절한 사이트로 리디렉션 할 수 있습니다. 원하는 경우 사용자 역할에 따라 완전히 다른 레이아웃과 페이지를 가질 수 있습니다.

0

또한 $is_male, $is_female, $time_zone, $language..과 같은 속도 변수를 사용하여 사용자 그룹을 식별하고 body 태그에 다른 CSS 파일이나 상위 클래스를로드 할 수 있습니다.

답을 올린 사람은 답을 쓸모가 없지만 나중에 독자가 유용하다고 생각할 수도 있습니다. `servlet.service.events.pre`을 무시하고 ThemeServicePreAction.java과 동일한 사용자 정의 구현을 제공하고 논리를 작성하기 위해 나는이 시도하지 않은하지만 당신은 훅을 쓸 수