2016-06-16 13 views
2

TYPO3 7.6 -Backend에 Frontend-Layout 필드를 사용하고 있습니다. 내 웹 사이트에는 프론트 엔드에 색이 다른 4 개의 부서가 있기 때문에. 그래서 내가 사용페이지 트리의 프론트 엔드 레이아웃을 정의하십시오.

pages frontend choose layout

: 내 FLUIDTEMPLATE에서

TCEFORM { 
    pages { 
     layout { 
      altLabels { 
       0 = [ blue] 
       1 = [ orange ] 
       2 = [ green] 
       3 = [ yellow] 
      } 
     } 
    } 

} ### TCEFORM 

내 스타일 시트에서 세계적으로 내 다른 언어를 설정하기 위해, <div> -wrapper 포장 것입니다. f.e. div.wrap.blue { background-color:blue;}

<div class="wrap 
{f:if(condition:'{data.layout} == 0',then:'blue')} 
{f:if(condition:'{data.layout} == 1',then:'orange')} 
{f:if(condition:'{data.layout} == 2',then:'green')} 
{f:if(condition:'{data.layout} == 3',then:'yellow')}"> 
... 

이것은 나를 위해 완벽하게 작동합니다. 그러나 부모 페이지에서 프론트 엔드 레이아웃 정보를 내 페이지 트리의 서브 페이지로 슬라이드 (또는 상속) 할 수 있습니까? 내 pagetree에 새 페이지를 추가 할 때마다 매번 페이지 속성에서 프론트 엔드 레이아웃을 선택하고 싶지 않습니다. 이것은 자동으로 작동해야합니다. 이것이 가능한가? slide? 예를

*ROOT 
    + parent blue 
    ~~ sub blue 1 /* these pages also have frontend layout 0 */ 
    ~~ sub blue 2 
    + parent orange 
    ~~ sub orange 1 
    + parent green 
    ... 
    + parent yellow 
    ... 

당신의 의견이나 팁 Thebks를 들어

..

+0

레이아웃을 반복적으로 설정할 수 있는지 잘 모르겠습니다. 문제를 해결하려면 4 개의 다른 페이지 템플리트를 작성하여 서브 페이지에 쉽게 사용할 수 있도록 구성하십시오. –

+0

네 가지 백엔드 레이아웃을 의미합니까? 상위 및 하위 페이지에 대한 백엔드 레이아웃을 선택할 수 있습니다. 나는 그것에 대해 생각했지만 프론트 엔드 레이아웃을 사용해보십시오. 백엔드 레이아웃 (유동성)을 사용하는 것이 더 나을 것입니다. 조언 해 주셔서 감사합니다. – user2310852

+0

그게 정확히 무슨 뜻이야. 콘텐츠 요소의 매우 구체적인 조건을 위해 레이아웃을 선택하는 것이 좋습니다. –

답변

1

나는 데이터베이스를 조작하지 않고 반복적으로 {data.layout} 레이아웃을 설정 죽은 간단하게 생각하지 않습니다.

1) 현재 및 하위 페이지에 대해 선택할 수있는 4 개의 백엔드 레이아웃을 생성하십시오. 당신과 같이 typoscript 사용하여 몸 클래스를 설정을 시도 할 수 레이아웃 모드 사용)

2 (기본적으로 헹구고 첫 번째 백엔드 레이아웃에 한 일을 반복) (i)는이 테스트를하지 않았다 :

page.bodyTag > 
page.bodyTagCObject = TEXT 
page.bodyTagCObject.field = data.layout 
page.bodyTagCObject.wrap = <body class="color-|"> 

3) [pidInRootline]

page.bodyTag > 
page.bodyTagCObject = TEXT 
page.bodyTagCObject.wrap = <body class="blue"> 

[PIDinRootline = 1] 
page.bodyTagCObject.wrap = <body class="orange"> 
[global] 

[PIDinRootline = 2] 
page.bodyTagCObject.wrap = <body class="green"> 
[global] 
# and so on 
+0

안녕하세요, 완전한 답변입니다. 고마워요. 오타 조건과 PIDinRootline을 통해 해결책을 잊어 버렸습니다. – user2310852

0

로 typoscript 조건을 사용하여 값을 비슷한 typoscript를 사용하지만, 업데이트 난 당신 같은 문제가 있었이 typoscript 나를 위해 잘 작동, 결과는 당신이 도달하고 싶었다 것입니다.

는 프론트 엔드 레이아웃이 페이지에 설정되어있을 때 20.10 객체가 프론트 엔드 레이아웃이 설정되지 않은 경우 20.20 객체가 사용되는 반면, 사용보고 슬라이드 모드로합니다 수 :

page { 
    bodyTagCObject > 
    bodyTagCObject = COA 
    bodyTagCObject { 
     stdWrap.noTrimWrap = |<body |>| 
     20 = COA 
     20 { 
      wrap = class="|" 
      10 = TEXT 
      10 { 
       if.isTrue.data = page:layout 
       data = page:layout 
       noTrimWrap = |page-layout-| | 
      } 
      20 = TEXT 
      20 { 
      if.isFalse.data = page:layout 
      data = levelfield:-2, layout, slide 
      noTrimWrap = |page-layout-| 
      } 
     } 
    } 
} 

내가 도움이 되었기를 바랍니다.