2011-11-19 6 views
0

프로그래밍 방식으로 페이지에서 플러그인 위치를 확인할 수 있습니까? 한 페이지에 두 개의 동일한 플러그인 인스턴스가 있다고 가정하면 약간 다른 레이아웃을 표시 할 위치를 결정해야합니다. 그것은 실현 가능합니까?TYPO3 플러그인 위치

감사합니다.

+0

는 "위치"에 의해 무엇을 의미합니까 : 당신의 main 함수에서

이 그런 짓을? 클라이언트 브라우저 윈도우의 X, Y 좌표? 또는 HTML 코드의 모양 순서 (플러그인 인스턴스가 1 초/2 초)? – Jpsy

+0

두 번째 옵션. 부정확 한 것에 대해 유감스럽게 생각합니다. –

답변

1

은 확장 저장소 $ TSFE에서 카운터 변수 보자.
이러한 변수는 플러그인 인스턴스에서 플러그인 인스턴스까지 유지되며 동일한 페이지에있는 인스턴스를 계산하는 데 사용할 수 있습니다.
해당 카운터에 따라 내선 번호 출력을 변경할 수 있습니다.

// init counter var in the very first plugin instance 
if(!isset($GLOBALS['TSFE']->tmpl->setup['plugin.']['tx_'.$this->extKey.'_pi1.']['myCounter'])){ 
    $GLOBALS['TSFE']->tmpl->setup['plugin.']['tx_'.$this->extKey.'_pi1.']['myCounter'] = 0; 
} 
// increment counter var in each plugin instance 
// and execute code depending on the count 
switch(++$GLOBALS['TSFE']->tmpl->setup['plugin.']['tx_'.$this->extKey.'_pi1.']['myCounter']){ 
    case 1: 
    ... 
    break; 
    case 2: 
    ... 
    break; 
    case 3: 
    ... 
    break; 
} 
0

사용 섹션 프레임 :

  • 편집 당신이 당신의 플러그인을 배치 내용 요소를
  • 이동 외관
  • 에 "들여 쓰기 및 프레임"
에서 "프레임 1"을 선택합니다.

프론트 엔드에서 수정 된 플러그인 컨테이너에 다른 레이아웃에 사용할 수있는 추가 CSS 클래스가 있다는 것을 알게 될 것입니다 :

<div class="csc-frame csc-frame-frame1" id="c123"> 

여기에 대해 자세히 알아보기 : Custom Frames for Content Elements in Typo3