Hallo,
ich habe tt news um ein neues Feld vom Typ RTE erweitert. Ich habe wie im Bsp.:
EXT:tt_news/res/example_itemMarkerArrayFunc.php dargestellt, eine php file angelegt.
Das zusätzliche Feld wird im Backend dargestellt und mein Text wird auch im Frontend angezeigt.
Sowohl Formatierungen wie bold und kursiv als auch das Einfügen von Bildern funktionieren.
Probleme habe ich leider mit dem Setzen von links. Im Datenbankfeld steht richtigerweise
<link 40="" -="" internal-link="" opensinternallinkincurrentwindow="" />Treffen in Berlin</link>
Im Frontend erscheint leider kein Link.
Kann mir jemand sagen,woran das liegen kann? Wenn ich im Standard tt news Feld "Text:" einen link setze, wird dieser geparst. Wie kann ich das für das Feld meiner Extension setzen?
Edit: Folgendes habe ich ausprobiert, ohne erfolg:
$markerArray['###homePageText###'] = $conf['parentObj']->local_cObj->stdWrap($row['tx_myext_homepagetext'], $conf['parentObj']->conf['tx_myext_homepagetext_stdWrap.']);
plugin.tt_news.displayList.tx_myext_homepagetext_stdWrap.parseFunc < lib.parseFunc_RTE
Für Hilfe vielen Dank im Voraus,
Tobi
Hier mal mein komplettes typoscript, vielleicht hilft das ?!
# include the php script of tt news extension tx heco
includeLibs.displayFileLinks = EXT:tx_myext/tw_extendttnews.php
# call user function
plugin.tt_news.itemMarkerArrayFunc = user_extendttnews
# this will remove the complete tag from ALL content elements
lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.nonWrappedTag >
plugin.tt_news {
# unset general_stdWrap
general_stdWrap >
displayList {
# add parseFunc to the bodytext
content_stdWrap.parseFunc < lib.parseFunc_RTE
imageCount=70
tx_myext_homepagetext_stdWrap >
tx_myext_homepagetext_stdWrap.parseFunc < lib.parseFunc_RTE
}
displayLatest{
#add parseFunc to the bodytext
content_stdWrap.parseFunc < lib.parseFunc_RTE
tx_myext_homepagetext_stdWrap >
tx_myext_homepagetext_stdWrap.parseFunc < lib.parseFunc_RTE
}
}
plugin.tt_news.displayList.subheader_stdWrap {
crop = 300 | ... | 1
#ifEmpty.field = bodytext
ifEmpty.field >
}
plugin.tt_news.displayList.image {
file.maxW = 205
file.maxH = 138
imageLinkWrap = 1
}
Hey Tob1,
um das Feld richtig zu parsen mußt Du zum einen eine Instance von t3lib_parsehtml_proc erstellen und das Datenbankfeld mit $this->parseObj->TS_links_rte($row) parsen. Damit werden die Links von <link>... in einen normalen Link umgewandelt.
Bei mir wurde der Link damit schon geparst, allerdings nicht ganz vollständig. Es stand nur /?id=xx dahinter. Deshalb mußt Du den Inhalt zuvor noch mit $this->pi_RTEcssText($content) bearbeiten, sofern Du CSSStyledContent nutzt. Setzt allerdings voraus, dass tslib_piBase vorhanden ist.
Ich habe Dir mal den Anfang meiner tt_news Erweiterung unter abgebildet.
Ich hoffe, es hilft Dir.
Grüße
Nikl
#####Extends tslib... für $this->pi_RTEcssText
class tx_ttnewsnew_marker extends tslib_pibase{
function extraItemMarkerProcessor($markerArray, $row, $lConf, &$pObj) {
##### Instance von parsehtml_proc für $this->parseObj->TS_links_rte
require_once(PATH_t3lib.'class.t3lib_parsehtml_proc.php');
$this->parseObj = t3lib_div::makeInstance('t3lib_parsehtml_proc');
$this->cObj = t3lib_div::makeInstance('tslib_cObj'); // local cObj.
$this->pObj = &$pObj;
$this->realConf = $pObj;
$markerArray['###NEWS_TEXT###'] = $this->parseObj->TS_links_rte($this->pi_RTEcssText($row['tx_ttnewsgallerie_zusatztext']));