[Frage] ?id=1&L=1 Parameter entfernen (cooluri und my_languageMenu), Doppelter Content TYPO3-Version: 4.5.27

  • burnet burnet
    Padawan
    0 x
    34 Beiträge
    0 Hilfreiche Beiträge
    08. 01. 2014, 16:12

    Hallo Forum,

    ich habe eine Seite mit 2 Sprachen erstellt. Wobei Deutsch L=0 und Englisch L=1 ist. Ebenso nutze wurde cooluri installiert und eingerichtet. Von der der Funktion klappt alles. Die Seite werden übersetzt und die URL entsprechend angezeigt.

    Nur bei Klick auf die Flagge zum Umstellen der Sprache wird der Parameter ?id=1&L=1 bzw. ?id=1&L=0 übergeben. Dies möchte ich gerne so ändern, dass bei Klick auf die Flagge jeweils "de" bzw. "en" angezeigt wird.

    Im TS habe ich folgenden Code eingetragen

    1. config.linkVars = L
    2. config.sys_language_uid = 0
    3. config.language = de
    4. config.locale_all = de_DE
    5.  
    6.  
    7. seite = PAGE
    8. seite.10 = TEMPLATE
    9. seite.10 {
    10. template = FILE
    11. template.file = fileadmin/template/html/content_de.html
    12. workOnSubpart = DOKUMENT
    13. }
    14.  
    15. config.linkVars = L
    16. [globalVar = GP:L = 1]
    17. config.sys_language_uid = 1
    18. config.language = en
    19. config.locale_all = en_EN
    20. seite.10.template.file = fileadmin/template/html/content_en.html
    21. }
    22. [global]
    23.  
    24. ...
    25.  
    26. marks.SPRACHE = PHP_SCRIPT
    27. marks.SPRACHE.file = fileadmin/template/plugin/my_languageMenu.php
    28. select.languageField = sys_language_uid

    Die Language Datei sieht wie folgt aus

    1. <?php
    2. /***************************************************************
    3. * Copyright notice
    4. *
    5. * (c) 1999-2002 Kasper Sk?rh?j (kasper@typo3.com)
    6. * All rights reserved
    7. *
    8. * This script is part of the Typo3 project. The Typo3 project is
    9. * free software; you can redistribute it and/or modify
    10. * it under the terms of the GNU General Public License as published by
    11. * the Free Software Foundation; either version 2 of the License, or
    12. * (at your option) any later version.
    13. *
    14. * The GNU General Public License can be found at
    15. * http://www.gnu.org/copyleft/gpl.html.
    16. * A copy is found in the textfile GPL.txt and important notices to the license
    17. * from the author is found in LICENSE.txt distributed with these scripts.
    18. *
    19. *
    20. * This script is distributed in the hope that it will be useful,
    21. * but WITHOUT ANY WARRANTY; without even the implied warranty of
    22. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    23. * GNU General Public License for more details.
    24. *
    25. * This copyright notice MUST APPEAR in all copies of the script!
    26. ***************************************************************/
    27. /**
    28.  * example_languageMenu.php
    29.  *
    30.  * THIS IS AN EXAMPLE designed to work with the official Typo3 testsite, section "Another site in the ..."
    31.  *
    32.  * @author Kasper Sk?rh?j <kasper@typo3.com>
    33.  */
    34.  
    35.  
    36.  
    37. // First, select all pages_language_overlay records on the current page. Each represents a possibility for a language.
    38. $query = "SELECT * FROM pages_language_overlay WHERE pid=".$GLOBALS["TSFE"]->id.$GLOBALS["TSFE"]->sys_page->enableFields("pages_language_overlay")." GROUP BY sys_language_uid";
    39.  
    40. $res = mysql(TYPO3_db,$query);
    41. $langArr=array();
    42. while($row=mysql_fetch_assoc($res)) {
    43. $langArr[$row["sys_language_uid"]]=$row["title"];
    44. }
    45.  
    46. // Little red arrow, which is inserted to the left of the flag-icon if the TSFE->sys_language_uid equals the language uid (notice that 0=english, 1=danish and 2=german is SPECIFIC to this database, because these numbers refer to uid's of the table sys_language)
    47. $pointer = '<!--img src="t3lib/gfx/content_client.gif" width="7" height="10" align=middle-->';
    48.  
    49. // Set each icon. If the language is the current, red arrow is printed to the left. If the language is NOT found (represented by a pages_language_overlay record on this page), the icon is dimmed.
    50.  
    51. $flags = array();
    52. $flags[] = ($GLOBALS["TSFE"]->sys_language_uid==0?$pointer:"").'<a href="?id='.$GLOBALS["TSFE"]->id.'&L=0" target=_top>DEUTSCH</a>';
    53. $flags[] = ($GLOBALS["TSFE"]->sys_language_uid==1?$pointer:"").'<a href="?id='.$GLOBALS["TSFE"]->id.'&L=1" target=_top>ENGLISH</a>';
    54.  
    55. // Make the little menu. Notice, the menu does ONLY transfer the page-id and the "L" variable (which is also SPECIFIC for this website because "L" has been used in the extension template used to control the language setup)
    56. $content = ''.implode("",$flags).'';
    57.  
    58. //$content = '<table border=0 cellpadding=0 cellspacing=0><tr><td><img src=clear.gif width=1 height=1 alt=clear></td><td>'.implode("",$flags).'</td></tr></table>';
    59.  
    60.  
    61. ?>

    Die .htaccess hat folgenden Eintrag

    1. RewriteEngine On
    2.  
    3. RewriteRule ^/(typo3|typo3temp|typo3conf|t3lib|tslib|fileadmin|uploads|showpic\.php)$ - [L]
    4. RewriteRule ^/(typo3|typo3temp|typo3conf|t3lib|tslib|fileadmin|uploads|showpic\.php)/.*$ - [L]
    5.  
    6. RewriteCond %{REQUEST_FILENAME} !-f
    7. RewriteCond %{REQUEST_FILENAME} !-d
    8. RewriteCond %{REQUEST_FILENAME} !-l
    9. RewriteRule .* index.php [L]
    10.  
    11. RewriteBase /

    Leider habe ich nach tagelanger Suche keinen Beitrag gefunden, der mir bei dem Problem helfen konnte. Vielleicht hat der ein oder andere das Problem ebenfalls mal gehabt und kennt eine Lösung dazu.

    Vielen Dank im Vorraus
    burnet


  • 1
  • jenses jenses
    Flash Gordon
    0 x
    3087 Beiträge
    106 Hilfreiche Beiträge
    09. 01. 2014, 07:39

    Schmeiß das völlig veraltete (und für den Zweck untaugliche) PHP-Script raus
    und benutze stattdessen ein [b]HMENU[/b] mit [b]special = language[/b].
    Dazu gibt es auch hier im Forum massenhaft Anleitungen,
    ich wiederhole das hier also nicht zum elfunddreißigsten Mal...

  • burnet burnet
    Padawan
    0 x
    34 Beiträge
    0 Hilfreiche Beiträge
    09. 01. 2014, 09:05

    Hallo Jenses,
    ich habe von dir nicht erwartet das du irgendetwas hier zum "elfunddreißigsten Mal" wiederholen sollst. Mir reichte alleine schon dein Hinweis auf "special = language". Danke dafür.

    Ich konnte die Sache dank der Anleitung [url]http://www.typo3.net/forum/thematik/zeige/thema/116094/[/url] erfolgreich ändern.

    Danke an das Forum
    burnet

  • 1