TYPO3-Testaccount
Testen Sie die aktuellste TYPO3-Version kostenlos und unverbindlich für einen Monat!

Jetzt testen!

Schulungen

jetzt buchen

Defekte Sprachparameter im Menü


Autor Nachricht
Verfasst am: 27. 01. 2012 [10:03]
Chrissli
Themenersteller
Dabei seit: 19.04.2010
Beiträge: 297
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:
TYPOSCRIPT
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?


God's in his Heaven -
All's right with the world!
ProfilICQ
Verfasst am: 20. 02. 2012 [16:04]
Chrissli
Themenersteller
Dabei seit: 19.04.2010
Beiträge: 297
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:
TYPOSCRIPT
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:

TYPOSCRIPT
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.

God's in his Heaven -
All's right with the world!
ProfilICQ