Zum Inhalt springen

Defekte Sprachparameter im Menü

Erstellt am 27. Januar 2012 · 1 Antwort · letzte Antwort am 20. Februar 2012

Tags: Links, Frage

Chrissli ·

Hallo Zusammen,

ich habe ein kleines Problem mit meiner Sidebar, vielleicht kann mir jemand
helfen das zu beheben, bzw. weiß woran das liegen könnte.

Ich baue mit diesem TS meine Sidebar auf:

temp.sidebar = HMENU                                                                
temp.sidebar {                                                                      
  special = directory                                                            
  special.value = 1                                                              
  1 = TMENU
  1.wrap = <ul class="menu-level1">|</ul>
  1 {
    # no state: normale Formatierung
    NO{
      # nicht linken, da typolinks verwendet werden
      doNotLinkIt = 1
      linkWrap = <li>|</li>
      wrap = <ul class="sidebar">|</ul>
      stdWrap.cObject = CASE
      stdWrap.cObject {
        key.field = doktype
        default = TEXT
        default {
          field = nav_title
          typolink.parameter.field = uid
          stdWrap.htmlSpecialChars = 1
        }
        # 4 = shortcut
        4 = TEXT
        4 {
          field = nav_title
          typolink.parameter.field = shortcut
        }    
        #3 = Link to external page
        3 = TEXT
        3 {
          field = nav_title
          typolink.parameter.field = url
          #typolink.extTarget = _blank
        }    
      }  
    }
    ACTIFSUB = 1
    ACTIFSUB {
      linkWrap = <li class="active">|</li>
    }
    CUR = 1
    CUR {
      linkWrap = <li class="active">|</li>
    }
  }
  2 < .1
  2 {
    wrap = <li class="sub"><ul class="sub1">|</ul></li>
  }
  3 < .2
  3 {
    wrap = <li class="sub"><ul class="sub2">|</ul></li>
  }
}

Das klappt auch Wunderbar und generiert mir Links wie diese hier:
http://meinedomain/index.php?id=61&L=0
http://meinedomain/index.php?id=63&L=0
http://meinedomain/index.php?id=63&L=4

Allerdings kommt es in unregelmäßigen Abständen vor,
das die Sprachparameter in den Links irgenwie "ersetzt" werden ( als
ob hier ein Leerzeichen eingebaut würde ).
Anschließend sehen manche ( nicht alle, i.d.R. Unterseiten ) Links aus diesem Menü
so aus:
Statt
http://meinedomain/index.php?id=63&L=0
bekomme ich
http://meinedomain/index.php?id=63&L=4%25
was einen ungewollten Sprachwechsel zur Folge hat ( da dann ja L=4 gilt ).

Ein löschen des Typo3-Caches behebt das Problem dann wieder auf weiteres.

Irgendwelche Ideen?

Chrissli ·

Ich weiß pushen ist böse, aber das Problem wird langsam akut, da demnächst eine
größere Umstellung beim Kunden bevorsteht.

Kleines Update:

- Die defekten Links kommen nur in der Standardsprache. Wenn ein existierender Sprachparameter mitgeliefert wird
bleibt alles ok.
- Zum temporären beheben des Problems reicht es aus das TS-Template zu öffnen und zu speichern
- Das Problem tritt erst nach einiger Zeit auf, ich vermute mal, wenn Typo3 den Cache selbstständig aktualisiert ( reine Vermutung ),
ca. nach 0,5-1,0 Stunden, aber nie sofort.
- Das Problem ist sowohl in Version 4.5.5 als auch in der aktuellen Version 4.5.11 vorhanden

Ich habe mal Testweise das TS für's Menü reduziert:

temp.sidebar = HMENU                                                                
temp.sidebar {                                                                      
  special = directory                                                            
  special.value = 1                                                              
  1 = TMENU
  1.wrap = <ul class="menu-level1">|</ul>
  1 {    
    NO{     
      linkWrap = <li>|</li>
    }
    ACTIFSUB = 1
    ACTIFSUB {
      linkWrap = <li class="active">|</li>
    }
    CUR = 1
    CUR {
      linkWrap = <li class="active">|</li>
    }
  }
  2 < .1
  2 {
    wrap = <li class="sub"><ul class="sub1">|</ul></li>
  }
  3 < .2
  3 {
    wrap = <li class="sub"><ul class="sub2">|</ul></li>
  }
}

Effekt ist aber der Selbe.

Interessanterweise werden teilweise Parameter mit angehängt die offensichtlich zu einer DB-Query gehören:
'http://www.meinedomain.de/?id=33&L=0 and 1%3D1--' oder auch 'http://www.meinedomain.de/?id=50&L=0 and 1=1'

Auf einer Seite mit Google-Maps-Plugin aber auch mal 'http://www.meinedomain.de/index.php?id=59&L=4robots.txt',
wobei die Seite weder im HTML-Template, noch im TS einen Verweis auf eine robots.txt hat da diese auch gar nicht existiert.

Hat ausser mir denn sonst noch jemand dieses Problem bzw. kann dieses Verhalten bestätigen?? Oder bin ich der einzige?

Vielleicht noch zur Info mein page-Config:

page = PAGE
page.typeNum = 0
page.config.linkVars = L
page.config.sys_language_uid = 0
page.config.locale_all = en_GB
page.config.language = en
page.config.noPageTitle = 2

includeLibs.T3Meta = myphp/typo3_metaTags/class.user_T3Meta.global.inc.php

[globalVar = GP:L = 2]
page.config.sys_language_uid = 0
page.config.locale_all = en_GB
page.config.language = en
[global]

[globalVar = GP:L = 3]
page.config.sys_language_uid = 3
page.config.language = fr
page.config.locale_all = fr_FR
[global]

[globalVar = GP:L = 4]
page.config.sys_language_uid = 4
page.config.language = de
page.config.locale_all = de_DE
[global]

[globalVar = GP:L = 5]
page.config.sys_language_uid = 5
page.config.language = it
page.config.locale_all = it_IT
[global]

[globalVar = GP:L = 6]
page.config.sys_language_uid = 6
page.config.language = pt
page.config.locale_all = pt_PT
[global]

[globalVar = GP:L = 7]
page.config.sys_language_uid = 7
page.config.language = es
page.config.locale_all = es_ES
[global]

config.doctype = <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
config.spamProtectEmailAddresses = ascii
config.disableAllHeaderCode = 0
page.config.metaCharset = utf-8

Die Sprache mit der ID=1 ist "Englisch" wurde aber nur angelegt für das Sprachmenü, in diesem Fall wird der default-Wert ( ID=0 ) verwendet.