[TYPO3-german] Sprachmenu mit ISO-Codes

Andreas Becker ab.becker at web.de
Mon Jun 18 11:24:01 CEST 2007


Am 18.06.07 schrieb Adrian Nussbaum <a.n at xpure.ch>:
>
> Hoi Andi
>
> Also, ich hab mich nun für CoolURI entschieden. Es scheint sich an
> sich um eine spannende (und modernere?) Lösung zu handeln...


Gute Entscheidung und auch JAN wird sich darueber sehr freuen :-)

Gehen wir mal Stueck fuer Stueck durch deinen Code

----- MEIN TS: -------------------------------------------
>
> page = PAGE
> page.typeNum = 0
> page.stylesheet = fileadmin/_template/hn-styles_main.css
>
> # CoolURi
> config.simulateStaticDocuments = 0
> config.baseURL = http://www.meine-domain.com
> config.tx_cooluri_enable = 1
> config.redirectOldLinksToNew = 1

-----------------------
Bis hierhin ist alles richtig eingefuegt in TS

----------------------

# Localization:
> config {
> linkVars = L
> sys_language_mode = content_fallback
> sys_language_overlay = 1
> }
>
> [globalVar = GP:L=0]
> config {
> sys_language_uid = 1
> language = de
> #locale_all = en_EN
> metaCharset = utf-8
> }
>
> [globalVar = GP:L=1]
> config {
> sys_language_uid = 1
> language = de
> }
>
> [globalVar = GP:L=2]
> config {
> sys_language_uid = 2
> language = fr
> }
>
> [global]


------------------
Das ist auch noch OK
Anstatt Thai wie wir benuetzt Du franzoesisch ist OK :-)
------------------

#LanguageMenu
> lib.languageMenu < plugin.tx_srlanguagemenu_pi1
> lib.languageMenu.languagesUidsList = 0,1,2
> lib.languageMenu.defaultLayout= 0
> lib.languageMenu.link.INACT.doNotLinkIt=0
> #subparts.LANGMENU < lib.languageMenu
>
> #same localized structure
> config.sys_language_overlay = 1


------------------------
Ab jetzt jedoch geht's etwas durcheinander denke ich!
Ich arbeite mit TemplaVoila und mappe nun lediglich den Platz wo das
Language Menu hinkommt als TS Object und gebe lib.languageMenu an (Gross und
klein Schreibung beachten

-------------------
Du arbeitest Traditionell und da reicht folgendes

temp.languageMenu < plugin.tx_srlanguagemenu_pi1

temp.languageMenu.languagesUidsList = 1,3,4,7

temp.languageMenu.defaultLayout= 1

Das ist alles!

 Das hier ist ueberfluessig, da das Menu ja von der Extension schon erzeugt
wird.
-------------------------

        temp.navi1 = HMENU
>         temp.navi1.entryLevel = 0
>         temp.navi1 {
>           1 = TMENU


und so weiter ....

Du brauchst dann jedoch noch das hier

>
> subparts.LANGMENU < lib.languageMenu
>
>
was wieder OK ist



--- XML ---------
>
> <?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>alias,subtitle,title</title>
>      <saveto>id</saveto>
>      <default>0</default>
>      <userfunc>tx_cooluri->getPageTitle</userfunc>
>    </pagepath>
>
>    <uriparts>
>      <part>
>        <parameter>tx_ttnews[tt_news]</parameter>
>        <lookindb>
>          <to>SELECT title FROM tt_news WHERE uid=$1</to>
>          <translatetoif>
>            <match>^[0-9]+$</match>
>          </translatetoif>
>          <urlize>1</urlize>
>        </lookindb>
>      </part>


Hast Du kein eeblog - kannste das loeschen was jetzt folgt!

     <part>
>        <parameter>tx_eeblog[showUid]</parameter>
>        <lookindb>
>          <to>SELECT subject FROM tx_eeblog_maintable WHERE uid=$1</to>
>          <translatetoif>
>            <match>^[0-9]+$</match>
>          </translatetoif>
>          <urlize>1</urlize>
>        </lookindb>
>      </part>


bis hierher und den Rest beibehalten

   </uriparts>
>
>    <predefinedparts>
>      <part>
>        <parameter>tx_ttnews[backPid]</parameter>
>      </part>
>      <part>
>        <parameter>cHash</parameter>
>      </part>


Wenn kein eeblog vorhanden dann kann man das hier wieder loeschen was folgt

     <part>
>        <parameter>tx_eeblog[pointer]</parameter>
>      </part>
>      <part>
>        <parameter>tx_eeblog[backPID]</parameter>
>      </part>


bis hierher und den Rest beibehalten

     <part>
>        <parameter>no_cache</parameter>
>      </part>
>    </predefinedparts>
>
>    <valuemaps>
>      <valuemap>
>        <parameter>L</parameter>
>        <value key="de">0</value>
>        <value key="en">1</value>
>        <value key="fr">2</value>
>      </valuemap>
>    </valuemaps>
>
>    <paramorder>
>      <param>L</param>
>    </paramorder>
> <partorder>
>       <part>valuemaps</part>
>       <part>pagepath</part>
>       <part>uriparts</part>
>       <part>predefinedparts</part>
>    </partorder>
>
> </cooluri>
>
> ----


Ansonsten ist alles bis hierher OK

Doch es fehlt etwas ganz wichtiges!
Der Eintrag in den  Constants.

Um die Buchstaben anzuzeigen musst Du dort folgendes eintragen

------------------

### To show ISO Code like de|en|fr
plugin.tx_srlanguagemenu_pi1 {
  useIsoLanguageCountryCode = 1
  showLinkWithFlag = 1
  separator = &#124;
  token = &#124;
}

-----------------

 Damit CoolUri funktioniert benoetigst Du wie bei RealUrl den Eintrag in der
.htaccess wie folgt:

-----------------

### PHP5 Activation ###

# If your ISP provides php5 but the server is running on php4
AddHandler application/x-httpd-php5 .php

### End PHP5 Activation ###

### Rewriting Stuff ###

# Enable URL rewriting
RewriteEngine On
RewriteRule
^/(typo3|typo3temp|typo3conf|t3lib|tslib|fileadmin|uploads|showpic\.php)/ -
[L]
RewriteRule
^/(typo3|typo3temp|typo3conf|t3lib|tslib|fileadmin|uploads|showpic\.php)/.*$
- [L]
RewriteRule ^typo3$ typo3/index_re.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l

# Main URL rewriting.
RewriteRule .* index.php [L]

### End: Rewrite stuff ###

### PHP Optimisation ###

# TYPO3 works fine with register_globals turned off.
# This is highly recommended!
php_flag register_globals On

# TYPO3 doesn't need this, so just turn it off.
php_flag register_argc_argv off

# Magic quotes for runtime-generated data (data from SQL, exec(), etc.)
php_flag magic_quotes_gpc off

# Order in which PHP registers GET, POST, Cookie and Built-in variables
php_value variables_order GPCS

### End: PHP optimisation ###

### Begin: Miscellaneous ###

# Make sure that directory listings are disabled
#Options -Indexes

# There is a problem with Internet Explorer and mod_gzip on Apache servers.
# For more information, see
# http://typo3.org/documentation/document-library/rtehtmlarea/Tutorial-79/
#mod_gzip_item_exclude file \.css$
#mod_gzip_item_exclude file \.png$
#mod_gzip_item_exclude file \.gif$
#mod_gzip_item_exclude file \.jpg$
#mod_gzip_item_exclude file \.jpeg$
#mod_gzip_item_exclude file \.js$

### End: Miscellaneous ###

# Add your own rules here
# ...

-------------------

Jetzt muesste sowohl CoolUri als auch das Language Menu funktionieren.
Ich bin online also melde dich ggf. via ICQ 254229402

-----------------
Ich habe unser Menu inzwischen auch abgeaendert - sieht besser aus :-) -
danke fuer deine Anfrage hier!
http://www.t3pack.org

--------
Ein TIP am Rande Adrian

Lege Dir unterhalb des General Storage Folders einen SYS Folder an "Template
STO"
Hier erzeugst Du nun ein EXT: Template nach dem anderen :-)

Spaeter bindest Du diese Templates in Dein Haupttemplate ein. Das
erleichtert die Arbeit ungemein.
Diese "EXT-Templates" lassen sich spaeter auch als t3d exportieren und in
anderen Projekten wiederverwerten.

Ich habe an Deine Mailadresse 3 t3ds gemailt die Du dort entpacken kannst.
Sie enthalten den Code fuer sr_languageMenu TV de|en|...  , flags und
dropdown
Du musst lediglich das traditionelle Template noch reinpacken ;-)
Dann als Basistemplate in dein Main Template einbinden und schon muesste es
gehen.

Viel Spass

Andi


adrian
>
>
> ----
>    xpure | adrian nussbaum | linsentalstrasse 5 | 8482 winterthur |
> switzerland
>   + 41 764 283 913 | a.n at xpure.ch | http://www.xpure.ch
> ----
>
> Am 14.06.2007 um 21:05 schrieb Andreas Becker:
>
> > Hallo Adrian
> >
> > Wenn ich das richtig sehe, hast Du zwei Menus installiert und
> > vermischt.
> > Beschraenke dich besserauf ein einziges CAB oder SR
> > Kopiere dein TS separat und sichere es da erst einmal ab, ebenso deine
> > constants. (ZurSicherheit)
> > Danach loescht du alles was mit sr_languagemenu zu tun hat aus den
> > Constants, der localconf und dem TS Setup.
> > Es duerfte danach nur noch CAB uebrig sein!
> >
> >
> > ODER due loeschst alles was mit CAB zu tun hast raus und benutzt
> > SR_languagemenu
> >
> > Ins Setup:
> > ----------------------------------------------------------------------
> > ---------------
> >
> > temp.languageMenu = COA
> > temp.languageMenu {
> > 10 = RECORDS
> > 10.tables = tt_content
> > 10.source = 456  //Der Storagefolder wo du die Sprachen abgelegt
> > hast. Siehe
> > Manual
> > }
> >
> > subparts.languageMenu < temp.languageMenu
> >
> > //Im Template den Marker setzten. Achte auf den Namen und die Gross
> > und
> > Kleinschreibung
> > ----------------------------------------------------------------------
> > --------------
> > ODER mache es mit den Sprachen aus der "Weltkugel"
> >
> > temp.languageMenu < plugin.tx_srlanguagemenu_pi1
> > temp.languageMenu.languagesUidsList = 1,3,4,7
> > temp.languageMenu.defaultLayout= 1
> >
> > subparts.languageMenu < temp.languageMenu
> >
> > //Die Liste der Sprachen die Du in der "Weltkugel"definiert hast. Die
> > Reihenfolge         bestimmt die Anzeige!
> > ----------------------------------------------------------------------
> > ---------
> > ODER wie wir es machen mit CoolUri und sr_languageMenu
> >
> > 1. KEIN EINTRAG IN localconf.php noetig!!!  Bitte alle
> > RealUrlSachen aus der
> > localconf loeschen wie im Tutorial beschrieben.
> >     TIP ein Backup auf jeden Fall machen!!!
> >
> > 2. Sprachen in der Welkugel definieren
> > 3. CoolUri und sr_languageMenu installieren (siehe Manual und
> > Tutorials)
> > -----------
> > Danach in Constants:
> >
> > plugin.tx_srlanguagemenu_pi1 {
> >   useIsoLanguageCountryCode = 1
> >   showLinkWithFlag = 1
> >   separator = &#124;
> >   token = &#124;
> > }
> >
> > ---------
> > In Setup:
> >
> > # CoolURi
> > config.simulateStaticDocuments = 0
> > config.baseURL = http://www.domain.com      //Deine Base eingeben !!!
> > config.tx_cooluri_enable = 1
> > config.redirectOldLinksToNew = 1
> >
> > # Localization:
> > config {
> > linkVars = L
> > sys_language_mode = content_fallback
> > sys_language_overlay = 1
> > }
> >
> > [globalVar = GP:L=1]
> > config {
> > sys_language_uid = 1
> > language = en
> > locale_all = en_EN
> > metaCharset = utf-8
> > }
> >
> > [globalVar = GP:L=2]
> > config {
> > sys_language_uid = 2
> > language = de
> > }
> >
> > [globalVar = GP:L=3]
> > config {
> > sys_language_uid = 3
> > language = th
> > }
> >
> > [global]
> >
> > #LanguageMenu
> > lib.languageMenu < plugin.tx_srlanguagemenu_pi1
> > lib.languageMenu.languagesUidsList = 1,2,3
> > lib.languageMenu.defaultLayout= 0
> > lib.languageMenu.link.INACT.doNotLinkIt=0
> > subparts.languageMenu < lib.languageMenu
> >
> > #same localized structure
> > config.sys_language_overlay = 1
> >
> > --------------------------------------------------------
> > Diese CoolConf.xml in das typo3conf directory kopieren.
> >
> > xml
> > ----------------
> > <?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>alias,subtitle,title</title>
> >     <saveto>id</saveto>
> >     <default>0</default>
> >     <userfunc>tx_cooluri->getPageTitle</userfunc>
> >   </pagepath>
> >
> >   <uriparts>
> >     <part>
> >       <parameter>tx_ttnews[tt_news]</parameter>
> >       <lookindb>
> >         <to>SELECT title FROM tt_news WHERE uid=$1</to>
> >         <translatetoif>
> >           <match>^[0-9]+$</match>
> >         </translatetoif>
> >         <urlize>1</urlize>
> >       </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>
> >         <urlize>1</urlize>
> >       </lookindb>
> >     </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>
> >     </valuemap>
> >   </valuemaps>
> >
> >   <paramorder>
> >     <param>L</param>
> >   </paramorder>
> >
> > </cooluri>
> >
> > -----------------
> > Um nun deine Sprachen zu ergaenzen musst du hier nur noch die
> > Valuemap zum
> > parameter L (Language) ergaenzen.
> > Fuege fuer jede Sprache den Language key hinzu.
> > <value key="so_soll_das_URL_SEGMENT_aussehen">Nummer der Sprache
> > aus der
> > Weltkugel</value>
> >
> > Beispiel siehst Du hier
> > http://docs.google.com/View?docid=dd33gg45_3f8j96p#XML-EXAMPLES
> >
> > Wo die URL Segmente erscheinen sollen wird drch die reihenfolge der
> > Parameter eintraege definiert ODER (finde ich einfacher)
> > man haengt einen paramorder befehl hinten dran (siehe die Beispiele)
> >
> > SPRACHE VORNE
> > *<partorder>
> >      <part>valuemaps</part>
> >      <part>pagepath</part>
> >      <part>uriparts</part>
> >      <part>predefinedparts</part>
> >   </partorder>
> >
> > *SPRACHE HINTEN*
> > **<partorder>
> >      <part>pagepath</part>
> >      <part>uriparts</part>
> >      <part>predefinedparts</part>
> >       <part>valuemaps</part>
> >   </partorder>
> >
> > *Man verschiebt lediglich die Valuemaps.
> >
> > In die Valuemaps kannst Du dann selber bestimmen, wie die Sprachen
> > in derURL
> > erscheinen sollen - wie oben beschrieben.
> > z.B.
> > en
> > englisch
> > english
> > oder auch
> > das_ist_nun _diese_Seite_in_Aenglidsch
> >
> > Das bleibt dir voellig selbst ueberlassen.
> >
> > Viel Spass
> > Bis morgen - bei uns ist schon 2h nachts
> >
> > Andi
> > * *
> >
> >
> >
> > -----------------
> >
> > Wie man genau CoolUri INstalliert siehst Du hier:
> > http://docs.google.com/View?docid=dd33gg45_3f8j96p
> > Danach sieht es so aus wie auf unserer Seite gerade eben
> > http://www.t3pack.org.
> >
> > Ich denke so soll es aussehen oder?
> >
> > Probiere es und komme ggf. zurueck
> > Andi
> > _______________________________________________
> > TYPO3-german mailing list
> > TYPO3-german at lists.netfielders.de
> > http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-german
>
> _______________________________________________
> TYPO3-german mailing list
> TYPO3-german at lists.netfielders.de
> http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-german


More information about the TYPO3-german mailing list