오타3:내 확장 프로그램에서 tt_content 텍스트 요소를 어떻게 렌더링합니까?
문제
현재 다음 목록으로 구성된 TYPO3 확장을 작성 중입니다. tt_content
UID.이는 "텍스트" 유형의 콘텐츠 요소를 가리키며 내 확장 프로그램으로 렌더링하고 싶습니다.
리치 텍스트 편집에서 입력한 텍스트가 데이터베이스에 들어갈 때 변환하고, 프런트엔드에 렌더링될 때 다시 변환하는 TYPO3의 특수한 방법 때문에 데이터베이스 내용만 출력할 수는 없습니다. bodytext
필드.
나는 일반적으로 TYPO3에 의해 렌더링되는 것처럼 이러한 텍스트를 렌더링하고 싶습니다.어떻게 해야 하나요?
해결책
몇 달 전에도 같은 문제가 발생했습니다.이제 저는 typo3 개발자가 아니기 때문에 이것이 올바른 해결책인지는 모르겠습니다.
그러나 나는 다음과 같은 것을 사용했습니다.
$output .= $this->pi_RTEcssText( $contentFromDb );
내 확장 프로그램에서 작동합니다.
다른 팁
PHP
그것은 나에게 효과적입니다.주어진 ID를 가진 모든 콘텐츠 요소를 렌더링합니다.
function getCE($id)
{
$conf['tables'] = 'tt_content';
$conf['source'] = $id;
$conf['dontCheckPid'] = 1;
return $GLOBALS['TSFE']->cObj->cObjGetSingle('RECORDS', $conf);
}
보다 http://lists.typo3.org/pipermail/typo3-dev/2007-May/023467.html
이는 캐시되지 않은 플러그인에도 작동합니다.당신은 다음과 같은 문자열을 얻을 것입니다 <!--INT_SCRIPT.0f1c1787dc3f62e40f944b93a2ad6a81-->
, 그러나 TYPO3은 다음 INT 렌더링 패스에서 이를 실제 콘텐츠로 대체합니다.
체액
유동 템플릿을 사용하는 경우 VHS content.render
도우미 보기 유용하다:
<v:content.render contentUids="{0: textelementid}"/>
FluidContent 요소에 그리드 자체가 있는 경우 Flux 자체로 요소를 렌더링할 수 있습니다. content.get
또는 content.render
뷰 도우미:
<f:section name="Configuration>
... <flux:grid.column name="teaser"/> ...
</f:section>
<f:section name="Main>
<flux:content.render area="teaser"/>
<f:section>