В настоящее время я пишу расширение TYPO3, которое настроено со списком UID tt_content
. Они указывают на элементы контента типа «текст», и я хочу сделать их своим расширением.
Из-за специального способа преобразования текста, который вы вводите в текстовом редакторе, когда он входит в базу данных, и в результате преобразования его во внешний интерфейс, TIPO3s я не могу просто выводить содержимое базы данных в поле bodytext
.
Я хочу сделать эти тексты так, как они обычно получаются TYPO3. Как мне это сделать?
У меня была такая же проблема пару месяцев назад. Теперь я должен сказать, что я не разработчик typo3, поэтому я не знаю, правильно ли это решение.
Но я использовал что-то вроде этого:
$output .= $this->pi_RTEcssText( $contentFromDb );
в моем расширении, и это работает.
Это подходит для меня; он отображает любой элемент контента с данным 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}"/>
Если ваш элемент liquidcontent имеет саму сетку, вы можете визуализировать элементы с помощью собственного content.get
content.render
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>