[Frage] RTE-Links rendern per PHP TYPO3-Version: 6.2.7

  • intensivstation intensivs...
    Sternenflotten-Admiral
    0 x
    202 Beiträge
    0 Hilfreiche Beiträge
    01. 09. 2016, 17:14

    Ich suche sowas für TYPO3 6.2:

    1. $parseHTML = t3lib_div::makeInstance('t3lib_parsehtml_proc');
    2. $value = $parseHTML->TS_links_rte($value);

    Ich habe keine Ahnung, wie man das unter TYPO3 6.2 löst.
    Es soll also aus <link file:5637 _blank download \"Leitet Herunterladen der Datei ein\">hier<\/link>
    ein normaler Link werden.

    Tags: RTE
  • Hilfreichster Beitrag

  • toifel toifel
    Jedi-Ratsmitglied
    1 x
    831 Beiträge
    96 Hilfreiche Beiträge
    02. 09. 2016, 09:18 - Hilfreichster Beitrag

    Das funktioniert mit [b]RteHtmlParser[/b]:

    1. $parseObj = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Html\\RteHtmlParser');
    2. $value = $parseObj->TS_links_rte($value);

    http://api.typo3.org/typo3cms/62/html/class_t_y_p_o3_1_1_c_m_s_1_1_core_1_1_html_1_1_rte_html_parser.html


  • 1
  • toifel toifel
    Jedi-Ratsmitglied
    1 x
    831 Beiträge
    96 Hilfreiche Beiträge
    02. 09. 2016, 09:18

    Das funktioniert mit [b]RteHtmlParser[/b]:

    1. $parseObj = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Html\\RteHtmlParser');
    2. $value = $parseObj->TS_links_rte($value);

    http://api.typo3.org/typo3cms/62/html/class_t_y_p_o3_1_1_c_m_s_1_1_core_1_1_html_1_1_rte_html_parser.html

  • intensivstation intensivs...
    Sternenflotten-Admiral
    0 x
    202 Beiträge
    0 Hilfreiche Beiträge
    05. 09. 2016, 14:53

    OK, vielen Dank, da war ich schon mal nah dran gewesen bei meinen Versuchen.
    Die Lösung funktioniert leider nur teilweise.
    Aus <link file:5637 _blank download \"Leitet Herunterladen der Datei ein\">hier<\/link>
    wird damit <a href="http://www.soundso.de/?file:5637" class="download" title="Leitet Herunterladen der Datei ein">hier</a>.
    Das alleine reicht leider noch nicht...
    ... was müsste man sonst noch machen?

  • intensivstation intensivs...
    Sternenflotten-Admiral
    0 x
    202 Beiträge
    0 Hilfreiche Beiträge
    06. 09. 2016, 11:39

    Keine gute Lösung, aber was soll man machen?

    1. preg_match_all("/\?file:(\d+)/", $note, $files);
    2. $file_names = array();
    3. if (is_array($files[1])) {
    4. foreach ($files[1] as $file_uid) {
    5. $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery(
    6. 'uid, identifier',
    7. 'sys_file',
    8. 'uid = ' . $file_uid);
    9. $rows = $GLOBALS['TYPO3_DB']->sql_num_rows($res);
    10. if ($rows>0) {
    11. while($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)){
    12. $file_names[$row['uid']] = $row['identifier'];
    13. }
    14. }
    15. $GLOBALS['TYPO3_DB']->sql_free_result($res);
    16. }
    17. foreach ($files[1] as $file_key => $file_uid) {
    18. $note = str_replace($files[0][$file_key], 'fileadmin' . $file_names[$file_uid], $note);
    19. }
    20. }

  • toifel toifel
    Jedi-Ratsmitglied
    0 x
    831 Beiträge
    96 Hilfreiche Beiträge
    06. 09. 2016, 11:39

    Versuch es mal mit der TS_links_db() Funktion:

    1. $value = $parseObj->TS_links_db($value);

  • 1