Zum Inhalt springen

Sprachauswahlsmenu positionieren

Erstellt am 19. November 2003 · 16 Antworten · letzte Antwort am 1. Juni 2006

Tags: Templates & Layouts, Frage

l_j_silver ·

Hallo,
ich habe mal ne Frage bezüglich des Auswahlmenüs.
Alles klappt wunderbar, ich seh die Flaggen und das Umschalten zwischen den Sprachen funktioniert auch.
Jetzt möchte ich die Flaggen aber nicht unten links haben sondern im header_teil der Tabelle.
kann mir jemand nen tip geben, wo ich das einstellen kann? 😉
Mfg
Thomas

sw-student ·

Man füge einen neuen Marker namens ###XYZ### in sein HTML Template ein, und weiße das Script im Setup mit

# SPRACHWAHL
               marks.XYZ = PHP_SCRIPT
               marks.XYZ.file = fileadmin/scripts/my_languageMenu.php

dem Typo zu.

ganesch ·

Hallo

Man füge einen neuen Marker namens ###XYZ### in sein HTML Template ein, und weiße das Script im Setup mit

Code:
# SPRACHWAHL
marks.XYZ = PHP_SCRIPT
marks.XYZ.file = fileadmin/scripts/my_languageMenu.php

dem Typo zu.

Das PHP-File wird bei mir zwar eingebunden, doch komischerweise ganz am Anfang der Seite. Ich wollte in der TypoScript Reference etwas über "marks" nachlesen und habe nichts gefunden. Kann mir jemand erkären, was es mit marks auf sich hat?

Vielen Dank
Nick

sw-student ·

Marker sind einfach Platzhalter, denen später im Setup Inhalt zugewiesen werden. Du setzt den Marker genau an die Stelle, wo später auch deine Flaggen erscheinen sollen, z.B. positionierst ihn in einer Tabelle deines Html Templates.

Gruß
|SW|student

ganesch ·

Ich benutze den Template Auto-parser um die Marker automatisch einfügen zu lassen, z.B. mit

subparts.sprache < styles.content.getRight

Das funktioniert auch ohne Probleme. Wenn ich jedoch ein PHP-Skript im TS-Template einbinde, geht das irgendwie nicht.

Wenn ich

# SPRACHWAHL
marks.sprache = PHP_SCRIPT
marks.sprache.file = fileadmin/scripts/test.php

in das Typo3-Template schreibe und test.php so aussieht

<?php echo ("Sprachwähler");?>

, dann erscheint der Text "Sprachwähler" nicht dort, wo ich den Marker definiert habe, sondern am Anfang der Seite :o

Und das allerkomischste ist, dass wenn ich den HTML-Quelltext öffne und nach "Sprachwähler" suche, nichts gefunden wird (Im Browser wird jedoch das verdammte durch das PHP-Skript erzeugte Wort "Sprachwähler" oben links angezeigt #evil# ) Wie kann etwas im Browser angezeigt werden, dass nicht im HTML-Code steht #paralyzed#

Mir kommt das alles ziemlich Spanisch vor! Hilfe!
Nick

ganesch ·

Ich hab das Problem ohne "marks" gelöst:

# Defining the Subpart "sprache"
temp.sprache = PHP_SCRIPT
temp.sprache.file = fileadmin/scripts/my_languageMenu.php

und dann

# Substitute the ###sprache### subpart
  subparts.sprache < temp.sprache

Cheers
Nick

krs ·

Hallo alle.
I am Kristian in Denmark. I understand German but i am not so good at writing. So you can answer in DE if you like.
I hope it is ok i put my question EN.
I need help with the alternative language.

I have the code working so i can change language with the &L=en in URL manually, but it refuses to show the flags !!
Here is what i have done :

# Right at the begining of Setup:
# Sprog kommer her
config.sys_language_uid = 0
config.language = dk
config.locale_all = dk_DK
config.linkVars = L

# English language, sys_language.uid = 1
[globalVar = GP:L = en]
config.sys_language_uid = 1
config.language = uk
config.locale_all = english
[global]

#Danish language, sys_language.uid = 0
[globalVar = GP:L = dk]
config.sys_language_uid = 0
config.language = dk
config.locale_all = dk_DK
[global]

Since i use plugin.tx_automaketemplate_pi1 i have done it a little different from the most of the tutorial - like i have read here in this forum.

###################################
# Defining the Subpart "LANGUAGE"
temp.LANGUAGE = PHP_SCRIPT
temp.LANGUAGE.file = fileadmin/Steelcork/scripts/example_languageMenu.php
#example_languageMenu.php
###################################
page = PAGE
page.typeNum = 0
page.stylesheet = fileadmin/Steelcork/template/css/steelcork.css
page.1 = TEMPLATE
page.1.marks.PAGE_UID = TEXT
page.1.marks.PAGE_UID.field = uid
page.1 {
template =< plugin.tx_automaketemplate_pi1
workOnSubpart = DOCUMENT_BODY

# Substitute the ###sprache### subpart
subparts.LANGUAGE < temp.LANGUAGE

subparts.CONTENT_LEFT < styles.content.getLeft
......

It is just like it refuse to run the php script. I have look in the html source, and i see that the marks "###LANGUAGE### begin" is not replaced.

I have tried to make a test with
fileadmin/Steelcork/scripts/test.php that just say HELLO WORLD. Nothing.

At the end of localconf.php i have also put :
$TYPO3_CONF_VARS["BE"]["fileExtensions"]["webspace"]["deny"] = 'php3';
$TYPO3_CONF_VARS["BE"]["fileExtensions"]["webspace"]["allow"] = 'php';
$TYPO3_CONF_VARS["BE"]["fileDenyPattern"] = '.php3.';
$TYPO3_CONF_VARS["FE"]["noPHPscriptInclude"]='0';

Nothing !?

Now i am lost... :-(

ganesch ·

I have tried to make a test with
fileadmin/Steelcork/scripts/test.php that just say HELLO WORLD. Nothing.

I had the same problem and then tried to sort it out by including a 'Hello World' PHP script in a very simple TS template.

My problem was that I had a spelling mistake in my PHP file name #giggle#

Sorry that I don't have any better suggestions but I'm new to Typo3. Maybe someone else can help with more details...

Cheers
Nick

yogi ·

Ich habe auch ein Problem mit der Positionierung der Flaggen auf der Seite. Ich hoffe jemand kann mir helfen.

In dem Template habe ich einen Marker gesetzt:

<!-- ###SPRACHENMENU### -->

Dann versuche ich den Marker im setup zu ersetzen:

(...)
# marks.SPRACHENMENU = PHP_SCRIPT
# marks.SPRACHENMENU.file = fileadmin/scripts/my_languageMenu.php
marks.SPRACHENMENU = TEXT
marks.SPRACHENMENU.value = Hello World!

Erst habe ich es mit dem Script probiert, aber es hat nicht geklappt auch das "Hello World!" ersetzt er nicht!

Hat jemand ne Ahnung? Die Seite kann man sich auf http://amerikanetz.netbla.de anschauen!

Danke schonmal für Eurer Interesse!!![/quote]

PS: Ich habe das Template mit TemplaVoila eingebunden!

theo ·
yogi schrieb

In dem Template habe ich einen Marker gesetzt:

<!-- ###SPRACHENMENU### -->

nein.
das ist kein marker.

theo ·
yogi schrieb

was wäre denn ein Marker auf HTML basis?

###SPRACHENMENU###

p.s.: vielleicht solltest du dir mal eine dokumentation antun... 😉

yogi ·

Ich habe inzwischen alle Möglichen Dokumentationen gelesen und ich bin mir fast sicher, das es so wie ich es jetzt mache, klappen müsste! Das blöde ist aber, dass es das nicht tut.

Vielleicht kann einer mal einen blick auf folgende Seite werfen: http://typo3.netbla.de/index.php?id=45

Auf der rechten Seite sieht man den Marker ###SPRACHENMENU###

im Setup vom Template habe ich ua folgenden Code stehen:

# marks.SPRACHENMENU = PHP_SCRIPT
# marks.SPRACHENMENU.file = fileadmin/scripts/my_languageMenu.php
marks.SPRACHENMENU = TEXT
marks.SPRACHENMENU.value = Hallo!

Hab ich da nen Denkfehler drin?

Bemerkung: Ich habe längere Zeit mit der Suche bei google, in Dokus und anderen Foren verbracht, aber leider keine brauchbaren Infos gefunden, die erklären würden warum das so nicht funktioniert...

Danke für eure Hilfe!

mbecker ·

Ebenso das Problem bei mir, Typo3 will den Marker einfach nicht ersetzen.

Der Marker hat die Form

###MENUE###

und im Setup steht folgendes

marks.MENUE = PHP_SCRIPT
marks.MENUE.file = fileadmin/scripts/my_lang_2.php

Weiß hier noch jemand einen guten Tipp ? Denn, wie mein Vorredner es auch schon erwähnt hat, ist es ja soweit von der Form richtig.

Würd mich über ein paar Antworten Tipps freuen.

P.S. Leider hat auch Gamesch's Tipp nicht geholfen, subtitles zu verwenden.

Gruß

Mats Becker

glasschristian ·

Hi, hab das Problem das das Sprachmenü bei mir nicht angezeigt, wird, verwende das Template "CrCPH" habe folgenden TypoScript im Setup verwendet.

# SPRACHWAHL
marks.SUB_MENU_ITEM = PHP_SCRIPT
marks.SUB_MENU_ITEM.file = fileadmin/scripts/my_languageMenu.php

Warum wird nichts angezeigt??

DaliNeko ·

Haltet mich für bescheuert aber vielleicht hat Yogi im Template einfach vergessen css styled content zu aktivieren (bei nem extension template kann das auch gut vorkommen).

Ich hatte mit dem PHP Script nur Probleme und hab es über eine schlichte Textauswahl gelöst. Zu beachten ist immer wie die UIDs sind und WO der Code steht. Denn nur eine umgebrochene Klammer macht den ganzen Code zunichte.

Das verhilft mir zu einer normalen kleinen Textauswahl, mit der man die Sprache wechselt. Wahrlich nicht sehr edel, weil es drei Marker beinhaltet, aber was macht das denn aus wenns funzt?!

Englisch = TEXT
   Englisch {
   10.field = uid
   wrap = <a href="index.php?id=|&L=1">English</a>
}
Deutsch = TEXT
   Deutsch {
   20.field = uid
   wrap = <a href="index.php?id=|&L=0">Deutsch</a>
    }
Französisch = TEXT
   Französisch {
   30.field = uid
   wrap = <a href="index.php?id=|&L=2">Französisch</a>
}

Es geht so einfach, man kann sichs aber auch sehr kompliziert machen. Zugegeben ich arbeite selbst unter der recht konfortablen V4 noch mit normalen Markern und Scripting (ich liebe Verschachtelung! *g*).

Fröhliches Schaffen! 8-)

Ich muss mich korrigieren. Hab eben gerade ne echt elegantere Lösung gefunden, die in jedem Fall auch funktioniert. Allerdings ist diese genauso verschachtelt wie die obere. So sieht sie aus:

10.marks {
SPRACHE = COA
   SPRACHE {
# Sprache 1
1= TEXT 
   1.data = TSFE:id
   1.wrap = <a href="index.php?id=|&L=0">Deutsch</a>
# Sprache 2
2 = TEXT
   2.data = TSFE:id
   2.wrap = <a href="index.php?id=|&L=1">Englisch</a>    
#Sprache 3   
3 = TEXT
   3.data = TSFE:id
   3.wrap = <a href="index.php?id=|&L=2">Française</a>    
}
...