2016-07-25 3 views
0

레코드 목록 (액션 show)과 새 레코드를 보내기위한 폼 (액션 new)의 두 가지 확장 기능을 개발 중입니다.TYPO3 Plugin - 하나의 액션 공개 액세스와 하나의 전용

목록에 액세스 할 수 있어야하지만 양식에 로그인 양식이 필요합니다 (TYPO3과 함께 제공되는 로그인 양식 콘텐츠 유형 사용).

어떤 로그인에서 표시 표시 플러그인을위한 액세스 탭을 사용해 보았지만 각 플러그인이 아닌 전체 플러그인에 적용됩니다.

현재이 페이지가 보이는 방법입니다

enter image description here

가 어떻게 누군가가 새로운 기록을 만들려고 할 경우에만 로그인 폼을 표시 할 수 있을까?

참고 : Extension은 Extbase 및 Fluid를 기반으로합니다. 목표 버전은 TYPO3 6.2입니다.

답변

2

가장 쉬운 방법은 flexform에서 switchableControllerActions으로 다른 "보기"의 ​​동작을 분할하는 것입니다. 그런 다음 두 개의 서로 다른 페이지에 별도의 플러그인을 배치해야합니다. 이렇게하면 플러그인에 대한 액세스 구성을 다르게 할 수 있습니다. Flexform 조정 방법을 모르는 경우 여기에 내용을 게시 할 수 있습니다.

다른 방법은 컨트롤러 내부에서 확인하는 것이지만, 확인해야 할 역할이 많을 경우에만 사용합니다.

if ($this->loginUser === null && $GLOBALS['TSFE']->loginUser && !empty($GLOBALS['TSFE']->fe_user->user['uid'])) { 
     // the user is logged in 
    } else { 
     // return '' as action content 
     return ''; 
    } 
+0

나는 이런 식으로 일을하면'new' 조치가 공개적으로 액세스 할 수있는 플러그인에 액세스 할 수없는 경우 확실하지 않다 - 당신은 아마 대중 페이지의 URL을 manipuate 및 매개 변수'tx_ 를 추가해야 할 것 _ [조치] = 새 것으로 처리합니다. – Jost

+0

'switchableControllerActions'를 설정하는 것은 설정된 액션 만 호출 할 수 있고 다른 모든 액션은 플러그인에 존재하지 않는다는 것입니다. 그런 다음 플러그인 설정에서 원하는 "보기"를 선택할 수 있습니다. –

+0

당신이 옳았다 고 생각합니다. 단지 디스플레이 일 뿐이며'configurePlugin'의 구성 만 고려되었습니다. 나는 교정했다. – Jost