2017-11-17 1 views
0

설정은 다음과 같습니다. 나는 내 고객이 사용자에게 페이지의 배경 이미지를 선택할 수있는 가능성을 제공하려고합니다. 간단히하기 위해 페이지 테이블에 새 필드를 만들고 TCA를 별도로 구성한다고 가정 해 보겠습니다. 따라서 우리는 완전히 부작용이 없습니다.파일 참조를 특정 파일 저장소로 제한 할 수 있습니까?

이제 까다로운 부분이 있습니다. 저장 공간, 사용자는 해당 필드에서 이미지를 선택해야하며 제한되어야합니다. 따라서 백엔드 사용자가 관리자 권한을 갖고있어 모든 파일 저장소와 모든 파일에 액세스 할 수있는 경우에도 사용자는 주어진 (구성된) 저장소에서 이미지를 선택할 수 있어야합니다.

특정 TCA 구성으로 어떻게 든 가능합니까?

답변

0

먼저이 요구 사항에 대해 FileBrowser을 확장하려고합니다. 파일의 가시성에 관해 언급하지 않았으므로 서브 클래스에서 fileIsSelectableInFileList을 무시할 수 있습니다. 따라서 순수한 TCA 기능은 아니지만 구현을 통해 규칙 집합을 더 깊이 통합 할 수 있습니다.

class LocalStorageBrowser extends FileBrowser { 
    // users should only be able to select files from a specific driver 
    protected function fileIsSelectableInFileList(FileInterface $file, array $imgInfo) 
    { 
     return $file->getStorage()->getDriver() instanceof LocalDriver; 
    } 
    // ... 
} 
+0

음, XClassing은 항상 가능하지만 실제로는 내 첫 번째 선택 사항이 아닙니다. 숨겨진 구성 등을 기대했습니다. :/ –

+0

IMHO 이것은 FileBrowser에 대한 다른 Implentation이기 때문에 전통적인 '모든 FileBrowser로 훅하기'XClassing과 다르며 단일 필드에만 고정시킬 수 있습니다. – Cedric

관련 문제