Zum Inhalt springen

realurl und die sprachumschaltung

Erstellt am 12. Juli 2004 · 42 Antworten · letzte Antwort am 16. November 2005 · Seite 3 von 3

Tags: RealURL, Frage

tymo3 ·
chukks schrieb

Das verstehe ich nicht, was hat simulatestatic mit realurl zu tun??

Ich habe den selben Problem, mit realurl3. Hat jemand ein script für das sprachmenu?
Mir geht's darum dass die url freundlich bleibt auch bei Sprachumschaltung.

Danke

Gruß aus Paris

Vielleicht hilft dir das Skript von Typo3Wiki weiter.
Siehe ganz unten auf dieser Seite: http://wiki.typo3.org/index.php/EXT/realurl/testing

Unbekannter Benutzer ·

hat da inzwischen jemand eine funktionierende Lösung, die auch bei der 0.3er realurl Version greift? Das Wiki Skript müsste man auch erst mal debuggen scheint mir. Vielleicht hat das ja schon jemand gemacht?

Viele Grüße!
Niki

Unbekannter Benutzer ·

ok, Kollege Björn hat das Sprachauswahl PHP Skript etwas angepasst.

if (!is_object($this)) die ('Error: No parent object present.');

 // First, select all pages_language_overlay records on the current page. Each represents a possibility for a language.
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', 'pages_language_overlay', 'pid='.intval($GLOBALS['TSFE']->id).$GLOBALS['TSFE']->sys_page->enableFields('pages_language_overlay'), 'sys_language_uid');

$langArr = array();
while($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res))	{
	$langArr[$row['sys_language_uid']] = $row['title'];
}

$linkarray = array(
			'0'  => '',
			'1' => '',
			'2' => ''
			);
		
$localTempl = new t3lib_TStemplate;

foreach($linkarray as $key=>$lang)
{

$LD = $localTempl->linkData($GLOBALS['TSFE']->page,
				'', // $oTarget
				'', // $no_cache
				'', // $script
				'', // $overrideArray
				'&L='.$key, //.$def['uid'], // $addParams, need the & prefix to work
				'0');

$linkarray[$key] = $LD['totalURL'];
}

$flags = array();

$flags[] = ($GLOBALS['TSFE']->sys_language_uid==0?$pointer:'').'<li><a href="'.htmlspecialchars($linkarray[0]).'" target="_top">Deutsch</a></li>';
$flags[] = ($GLOBALS['TSFE']->sys_language_uid==1?$pointer:'').'<li><a href="'.htmlspecialchars($linkarray[1]).'" target="_top">English</a></li>';
$flags[] = ($GLOBALS['TSFE']->sys_language_uid==2?$pointer:'').'<li><a href="'.htmlspecialchars($linkarray[2]).'" target="_top">Francais</a></li>';

$content = implode('',$flags);

Im localconf das Standardteil verwenden.

Damit klappts mit der 0.3.0 Version von realurl. Zumindest bei uns 😃 Als Links haben wir jetzt hier Textlinks genommen aber da könnte man genauso die Flaggen einsetzen, sh. mitgeliefertes Beispiel-PHP im T3 Packerl.

Viele Grüße
Niki

rosiner ·

hallo,

vielleicht kann mir jemand von euch weiterhelfen..

ok, mit dem lang php skript von björn klappt die ausgabe schon perfekt. schön.

nur die sprache der seite schaltet nicht um. kann ja eigentlich bloß noch eine kleinigkeit sein.

was muss in das typoscript rein?

danke,
gruß,
johannes.

Perrin ·

Vielen Dank für den Code Niki. Hat bei mir wunderbar funktioniert.
Anbei noch eine kleine Änderung für das Flaggenmenu.
Hier: 2 Sprachen 0=Deutsch, 1=Englisch

if (!is_object($this)) die ('Error: No parent object present.');

// First, select all pages_language_overlay records on the current page. Each represents a possibility for a language.
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', 'pages_language_overlay', 'pid='.intval($GLOBALS['TSFE']->id).$GLOBALS['TSFE']->sys_page->enableFields('pages_language_overlay'), 'sys_language_uid');

$langArr = array();

while($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
  $langArr[$row['sys_language_uid']] = $row['title'];
}

$linkarray = array(
  '0' => '',
  '1' => ''
);

$localTempl = new t3lib_TStemplate;

foreach($linkarray as $key=>$lang){
  $LD = $localTempl->linkData($GLOBALS['TSFE']->page,
    '', // $oTarget
    '', // $no_cache
    '', // $script
    '', // $overrideArray
    '&L='.$key, //.$def['uid'], // $addParams, need the & prefix to work
    '0');
  $linkarray[$key] = $LD['totalURL'];
}

$pointer = '<img src="fileadmin/language_menu_arrow.gif" width="7" height="10" alt="" />';

$flags = array();

$flags[] = ($GLOBALS['TSFE']->sys_language_uid==0?$pointer:'').'<a href="'.htmlspecialchars($linkarray[0]).'" target="_top"><img src="media/uploads/flag_de.gif" width="16" height="10" hspace="5" border="0" alt="" /></a>';
$flags[] = ($GLOBALS['TSFE']->sys_language_uid==1?$pointer:'').'<a href="'.htmlspecialchars($linkarray[1]).'" target="_top"><img src="media/uploads/flag_uk'.($langArr[1]?" :="" _dgif="" width="16" height="10" hspace="5" border="0" alt="" /></a>';

$content = implode('',$flags);
Sid79 ·

also das Script oben mit den Bildern läuft bei mir nicht so
hier meine Version. Die tut, zumindest bei mir 🙂

<?php
/***************************************************************
*  Copyright notice
*
*  (c) 1999-2004 Kasper Skaarhoj (kasper@typo3.com)
*  All rights reserved
*
*  This script is part of the TYPO3 project. The TYPO3 project is
*  free software; you can redistribute it and/or modify
*  it under the terms of the GNU General Public License as published by
*  the Free Software Foundation; either version 2 of the License, or
*  (at your option) any later version.
*
*  The GNU General Public License can be found at
*  http://www.gnu.org/copyleft/gpl.html.
*  A copy is found in the textfile GPL.txt and important notices to the license
*  from the author is found in LICENSE.txt distributed with these scripts.
*
*
*  This script is distributed in the hope that it will be useful,
*  but WITHOUT ANY WARRANTY; without even the implied warranty of
*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
*  GNU General Public License for more details.
*
*  This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/


if (!is_object($this)) die ('Error: No parent object present.');
 
// First, select all pages_language_overlay records on the current page. Each represents a possibility for a language.
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', 'pages_language_overlay', 'pid='.intval($GLOBALS['TSFE']->id).$GLOBALS['TSFE']->sys_page->enableFields('pages_language_overlay'), 'sys_language_uid');
 
$langArr = array();
 
while($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
  $langArr[$row['sys_language_uid']] = $row['title'];
}
 
$linkarray = array(
  '0' => '',
  '1' => ''
);
 
$localTempl = new t3lib_TStemplate;
 
foreach($linkarray as $key=>$lang){
  $LD = $localTempl->linkData($GLOBALS['TSFE']->page,
    '', // $oTarget
    '', // $no_cache
    '', // $script
    '', // $overrideArray
    '&L='.$key, //.$def['uid'], // $addParams, need the & prefix to work
    '0');
  $linkarray[$key] = $LD['totalURL'];
}
 
$pointer = '<img src="fileadmin/language_menu_arrow.gif" width="7" height="10" alt="" />';
 
$flags = array();
 
$flags[] = ($GLOBALS['TSFE']->sys_language_uid==0?$pointer:'').'<a href="'.htmlspecialchars($linkarray[0]).'" target="_top"><img src="media/uploads/flag_de.gif" width="16" height="10" hspace="5" border="0" alt="" /></a>';
$flags[] = ($GLOBALS['TSFE']->sys_language_uid==1?$pointer:'').'<a href="'.htmlspecialchars($linkarray[1]).'" target="_top"><img src="media/uploads/flag_uk'.($langArr[1]?'':'_dgif').'.gif" width="16" height="10" hspace="5" border="0" alt="" /></a>';
 
$content = implode('',$flags); 

?>

Die $langarr[1] musste angepasst werden

rosiner ·

@sid79:

vielleicht kannst du mir helfen. irgendwas stimmt immernoch nicht. die urls und die links werden wunderbar angezeigt, aber die seite schaltet nicht um.

was hast du denn z.b. noch für einstellungen und was steht in deinem typoscript?

gruß,
johannes.

rosiner ·

ich nochmal..

habe es mittlerweile hinbekommen. habe ewig rumgefuchtelt und nach löschen und neu anlegen hat es dann geklappt. kein plan wieso..

Imagine ·

Hi,

wie bekomme ich eigentlich bei "make_printlink" das print.gif so sauber rein, dass es auch funktioniert?
Diese Lösung hier

  marks.CONTENT < styles.content.get
  marks.PRINT = IMAGE
  marks.PRINT.file = fileadmin/img/print.gif
  marks.PRINT.postUserFunc = tx_make_printlink
  marks.PRINT.postUserFunc.include_post_vars = 1
  marks.PRINT.postUserFunc.target = _blank
  marks.PRINT.postUserFunc.popup =  1
  marks.PRINT.postUserFunc.windowparams = (resizable=yes,toolbar=no,scrollbars=yes,menubar=no,width=900,height=500)
  marks.PRINT.postUserFunc.windowname = printwindow

liefert zwar ein Bildchen. Das ist aber nicht mit einem Anker und dem entsprechenden Link zur Druckseite verbunden.
Diese Version jedoch schon

  marks.CONTENT < styles.content.get
  marks.PRINT = TEXT
  marks.PRINT.value = drucken
  marks.PRINT.postUserFunc = tx_make_printlink
  marks.PRINT.postUserFunc.include_post_vars = 1
  marks.PRINT.postUserFunc.target = _blank
  marks.PRINT.postUserFunc.popup =  1
  marks.PRINT.postUserFunc.windowparams = (resizable=yes,toolbar=no,scrollbars=yes,menubar=no,width=900,height=500)
  marks.PRINT.postUserFunc.windowname = printwindow

mit dem Nachteil, dass hier eben nur Text drinnen steht.

Grüsse

Imagine

Sid79 ·

das Script läuft bei mir soweit mit deutsch und englisch. Allerdings wenn ich auf engl umschalte steht nicht "en" als url Ergänzung sondern "de" in der Adressleiste! :o
und Wenn ich jetzt noch ne Sprache erweitere mit der id3 wird immer "dk" genommen obwohl ich das nicht verwende! ich habe schon weiß Gott alles probiert und komme nicht drauf wo und wie ich das ändern kann??