php-скрипт анализирует контент из RTE (tt_news), но внутренние ссылки не отображаются как говорящий URL-адрес

У меня есть новостная статья с внутренними ссылками. В RTE я вижу ссылки вроде

http://www.yourdomain.com/?id=3

в текстовом режиме html. Проблема в том, что эта ссылка также появляется на интерфейсе. RealURL должен преобразовать эту ссылку в нечто вроде

http://www.yourdomain.com/products/

Содержимое RTE в настоящее время анализируется следующим образом

$parseObj = t3lib_div::makeInstance('t3lib_parsehtml_proc'); $txt = $parseObj->TS_links_rte($result['bodytext']); $txt = $parseObj->TS_transform_rte($txt); 

Я читал, что я должен использовать что-то вроде этого

 $pObj = t3lib_div::makeInstance('tslib_pibase'); $txt = $pObj->pi_RTEcssText($result['bodytext']); 

но я не знаю, как я могу получить доступ к этой функции. я получил

Fatal error: Call to a member function parseFunc() on a non-object in /home/myuser/www/home/typo3/sysext/cms/tslib/class.tslib_pibase.php on line 1384

Как правильно это сделать? Как я могу получить доступ к функции pi_RTEcssText ? Должен ли я использовать класс? Есть ли другие способы сделать это без класса?

РЕДАКТИРОВАТЬ:

Я создал новый шаблон с TemplaVoila и определил lib.newscontent как путь объекта TS.

Основной шаблон TS

 includeLibs.user_news = fileadmin/templates/php_scripts/news/class.news.php lib.newscontent = USER_INT lib.newscontent { userFunc = user_news->main userFunc.bodytext.parseFunc < lib.parseFunc_RTE } 

class.news.php

 <? class user_news { var $cObj; private $conf; function main($content,$conf) { $this->conf = $conf; $this->setPreferences(); $content .= $this->aktuelleNews(); return $content; } private function aktuelleNews() { $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery( '*', // SELECT ... 'tt_news', // FROM ... 'pid=22 AND deleted=0 AND hidden=0', // WHERE... '', // GROUP BY... 'datetime DESC' // ORDER BY... ); $i = 1; $out_list = '<ul id="news">'; while ($data = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) { $date = date("dmY",$data['datetime']); $out_list .= '<li><a href="#section'.$i.'">'.$date.': '.$data['title'].'</a></li>'; $out_detail.= $this->outputnewsdetail($data,$i); $i++; } $out_list .= '</ul>'; return $out_list . $out_detail; } private function outputnewsdetail($result,$count){ $this->cObj->start($result, 'tt_news'); $bodytext = $this->cObj->stdWrap($result['bodytext'], $this->conf['bodytext']); $bodytext = $this->cObj->parseFunc($bodytext,$GLOBALS['TSFE']->tmpl->setup['lib.']['parseFunc_RTE.']); return $bodytext; } private function setPreferences() { } } ?> 

localconf.php

 include(PATH_site.'fileadmin/templates/php_scripts/news/class.news.php'); 

Оставшийся вопрос

Почему часть рендеринга в главном шаблоне TS не работает? я использовал

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

чтобы получить мой результат.

Related of "php-скрипт анализирует контент из RTE (tt_news), но внутренние ссылки не отображаются как говорящий URL-адрес"