Zum Inhalt springen

RTE in Extension bei Mehrsprachigkeit: Problem mit Links

Erstellt am 27. Oktober 2011 · 4 Antworten · letzte Antwort am 27. Oktober 2011

Tags: URLs & Routing, Links, Frage

HerrSerker ·

Hallo Forum,

das ist mein erster Post, deswegen verzeiht mir, wenn ich noch nicht ganz die Regeln kenne.

Also, ich habe eine Webseite (Typo3 4.4) übernommen, dort ist eine Extension geschrieben worden (also nicht von mir). So wie es aussieht, ist die Extension mit dem Kickstarter geschrieben worden, weil dort all die Dateien angelegt worden sind, die man vom Kickstarter so kennt.

In der Extension gibt es ein Textfeld, welches den RichTextEditor benutzt. Außerdem hat die Seite drei Sprachen 0: deutsch, 1: englisch, 2: italienisch.

Wenn man jetzt mit der Extension einen neuen Inhalt in einer anderen Sprache als Standard (also deutsch) erzeugt und im Textfeld via RTE-Link-Button auf eine andere Seite im PageTree verlinken will, so verlinkt er immer nur auf die deutsche Seite (nimmt also L=1 oder L=2 nicht mit).

Jetzt würde ich natürlich gerne wisse, wie das geht. Da es natürlich ein komplexes System ist, kann ich hier nicht alles posten, was in den einzelnen Dateien steht.

Ich vermute mal, dass diese zwei Extension, die installiert sind, zumindestens was damit zu tun haben könnten: tinyRTE (1.7.2) und CoolURI (1.0.20).

Welche Angaben sind in dem Fall noch wichtig, die ich hier posten könnte? TypoScript, Dateien etc.?

aemka ·

Die Sprache wird eigtl. nicht in den Links gespeichert. Der Sprachparameter wird im Frontend dynamisch in den Link generiert, anhand der Frontend-Sprache in der der Besucher gerade ist. D.h. da scheint der Fehler zu liegen, vermutlich ist die Linkvar für die Sprache nicht korrekt gesetzt.
Allerdings nutze ich nur realurl statt cooluri und den Standard-RTE statt tinymce.

HerrSerker ·

Ich benutze auch sonst nur realurl, deswegen weiß ich da nicht bescheid. Allerdings macht er mir bei dem Link auch keine "Cooluri-Übersetzung" sondern kommt auch im Frontend mit ?id=123.

Ich weiß auch noch nicht mal, ob dort überhaupt tinyRTE eingesetzt wird oder der normale RTE. Woran könnte ich das erkennen?

HerrSerker ·

Habe folgendes im TS

config.simulateStaticDocuments = 0
config.baseURL = http://www.example.org/
config.tx_cooluri_enable = 1
config.redirectOldLinksToNew = 1


######## Language #########
config.linkVars = L
config.uniqueLinkVars = 1
config.sys_language_uid = 0
config.language = de
config.htmlTag_langKey = de-DE
config.locale_all = de_DE.UTF-8
page.config.language = de
page.config.locale_all = de_DE.UTF-8
config.sys_language_overlay = hideNonTranslated
config.redirectOldLinksToNew = 1

# English language, sys_language.uid = 1page.
[globalVar = GP:L = 1]
config.sys_language_uid = 1
config.language = en
config.htmlTag_langKey = en-EN
config.locale_all = en_EN.UTF-8
page.config.language = en
page.config.language = en_EN.UTF-8

[global]
[globalVar = GP:L = 2]
config.sys_language_uid = 2
config.language = it
config.htmlTag_langKey = it-IT
config.locale_all = it_IT.UTF-8
page.config.language = it
page.config.language = it_IT.UTF-8
[global]
HerrSerker ·

und folgendes im CoolUriConf.xml in der typo3conf

<?xml version="1.0" encoding="utf-8"?>
<cooluri>
  <cooluris>1</cooluris>
  
  <cache>
    <usecache>1</usecache>
    <params2cool>
      <checkforchangeevery>1</checkforchangeevery>
    </params2cool>
    <cool2params>
      <translateifnotfound>0</translateifnotfound>
      <oldlinksvalidfor>365</oldlinksvalidfor>
    </cool2params>
    <cacheparams>0</cacheparams>
    
    <pagenotfound>
      <status>HTTP/1.0 404 Not Found</status>
      <behavior type="message"><![CDATA[ <h1>Page not found!</h1> ]]></behavior>
    </pagenotfound>
  </cache>

  <pagepath>
    <title>tx_realurl_pathsegment,alias,subtitle,title</title>
    <saveto>id</saveto>
    <default>0</default>    
    <userfunc>tx_cooluri->getPageTitle</userfunc>
    <t3conv>1</t3conv>
  </pagepath>
 
  <uriparts>
    <part>
      <parameter>tx_ttnews[tt_news]</parameter>
      <lookindb>
        <to>SELECT title FROM tt_news WHERE uid=$1</to>
        <!-- if you have news items in different languages in one folder, use this sql -->
        <!-- to>SELECT title FROM tt_news WHERE (uid=$1 or l18n_parent=$1) AND sys_language_uid={L=0}</to -->
        <translatetoif>
          <match>^[0-9]+$</match>
        </translatetoif>
        <t3conv>1</t3conv>
      </lookindb>
    </part>
    <part>
      <parameter>tx_eeblog[showUid]</parameter>
      <lookindb>
        <to>SELECT subject FROM tx_eeblog_maintable WHERE uid=$1</to>
        <translatetoif>
          <match>^[0-9]+$</match>
        </translatetoif>
        <t3conv>1</t3conv>
      </lookindb>
    </part>
	  <part>
      <parameter>tx_ttnews[pointer]</parameter>
    </part> 
  </uriparts>
    
  <predefinedparts>
    <part>
      <parameter>tx_ttnews[backPid]</parameter>
    </part>
    <part>
      <parameter>cHash</parameter>
    </part>
    <part>
      <parameter>tx_eeblog[pointer]</parameter>
    </part>
    <part>
      <parameter>tx_eeblog[backPID]</parameter>
    </part>
    <part>
      <parameter>no_cache</parameter>
    </part>
  </predefinedparts>
  
  <valuemaps>
    <valuemap>
      <parameter>L</parameter>
      <value key="">0</value>
      <value key="en">1</value>
      <value key="it">2</value>
    </valuemap>
	  <valuemap>
      <parameter>tx_ttnews[pointer]</parameter>
      <value key="">0</value>
    </valuemap>
    <valuemap>
     <parameter>type</parameter>
     <value key="drucken">98</value>
	   <value key="weiterempfehlen">123</value>
	   <value key="">0</value>
    </valuemap>
  </valuemaps>
  
  <paramorder>
    <param>L</param>
  </paramorder>
  
</cooluri>