0

TYPO3CMSのカスタム拡張機能を作成しました。基本的に、データベースからテキストを取得するためにいくつかのデータベースクエリを実行します。私が見てきたように、TYPO3エディターはデータベースに保存する前にデータを変換するので、例えばリンクはこのような多くのタグのように<a href="....." >Link</a>保存されます。<link href>My Link Text</link>DBからデータをクエリすると、DB(<link href>My Link Text</link>)に格納されているため、リンクが表示されないように表示されます。通常のテキストとして表示されます。

私の知る限り、2つの方法があります。

  1. RTE変換を無効にします(これを行う方法は?)

  2. lib.parseFunc_RTEを使用します(これを適切に構成する方法がわかりません)

何か案が?ありがとう。

4

4 に答える 4

3

ExtbaseとFluidを使用していないと思いますか?参考までに、拡張機能にExtbaseとFluidを使用している場合は、Fluidを使用してRTEからテキストをレンダリングできます。

<f:format.html>{bodytext}</f:format.html>

これは、lib.parseFunc_RTEを使用してRTEテキストをHTMLとしてレンダリングします。レンダリングに別のTypoScriptオブジェクトを使用するように指示することもできます。

<f:format.html parseFuncTSPath="lib.my_parseFunc">{bodytext}</f:format.html>

便利なドキュメント:

于 2012-12-22T19:57:08.910 に答える
1

同じ問題が発生しましたが、EXTBASEを使用すると、関数「pi_RTEcssText」は使用できなくなりました。たぶんそうかもしれませんが、どうやって含めるのかわかりませんでした。

とにかく、これがEXTBASEを使用した私の解決策です:

$this->cObj = $this->configurationManager->getContentObject();
$bodytext = $this->cObj->parseFunc($bodyTextFromDb, $GLOBALS['TSFE']->tmpl->setup['lib.']['parseFunc_RTE.']);

このようにして、RTE形式のテキストを取得します。

于 2013-12-05T12:35:21.760 に答える
1

含まれているタイプミスを設定することで、なんとかできました。

# Creates persistent ParseFunc setup for non-HTML content. This is recommended to use (as a reference!)
lib.parseFunc {
makelinks = 1
makelinks.http.keep = {$styles.content.links.keep}
makelinks.http.extTarget < lib.parseTarget
makelinks.http.extTarget =
makelinks.http.extTarget.override = {$styles.content.links.extTarget}
makelinks.mailto.keep = path
tags {
    link = TEXT
    link {
        current = 1
        typolink.parameter.data = parameters : allParams
        typolink.extTarget < lib.parseTarget
        typolink.extTarget =
        typolink.extTarget.override = {$styles.content.links.extTarget}
        typolink.target < lib.parseTarget
        typolink.target =
        typolink.target.override = {$styles.content.links.target}
        parseFunc.constants =1
    }
}
allowTags = {$styles.content.links.allowTags}

そして、タグリンクを拒否しました:

denyTags = link

sword = <span class="csc-sword">|</span>
constants = 1

nonTypoTagStdWrap.HTMLparser = 1
nonTypoTagStdWrap.HTMLparser {
    keepNonMatchedTags = 1
    htmlSpecialChars = 2
}
}
于 2014-12-04T15:07:38.013 に答える
0

まあ、他の誰かがこの問題に遭遇した場合は、

pi_RTEcssText()拡張ファイル内の関数を使用して解決する1つの方法を見つけました:

$outputText=$this->pi_RTEcssText( $value['bodytext'] );

$value['bodytext']拡張機能のdatabase-queryから取得した文字列はどこにありますか。

この関数は、データを処理し、完全なHTML(リンク、段落、その他のタグが含まれている)を返すようです。

注: まだ行っていない場合は、次のファイルを含める必要があります。

require_once(PATH_tslib.'class.tslib_pibase.php');

拡張ファイルの上部にあります。

基本的には以上です。

于 2012-12-19T13:03:06.250 に答える