[TYPO3-mvc] Extbase Cache/CHash(?) issue with realURL and Multi Language Domains

g4-lisz at tonarchiv.ch g4-lisz at tonarchiv.ch
Fri Jun 8 15:27:14 CEST 2012


Sorry for double posting - this one should go to the dev list...
Cheers
t

On 06/08/2012 03:23 PM, g4-lisz at tonarchiv.ch wrote:
> Hi there
>
> Since we switched our site to language dependent multi domain (one 
> tree concept) there's a cache issue with our extension...
>
> Typo 4.6.7 with RealURL 1.12.1 and Extbase 1.4.3
>
> We are usign 3 languages with 3 related domains:
>
> L=0 => www.defaultdom.ch
> L=1 => www.frenchdom.ch
> L=2 => www.italiandom.ch
>
> There's some TS trickery to set the right BaseURL/doc title:
>
> BASEURL = http://www.defaultdom.ch/
> PAGETITLE = Sitename Default
> [globalString = ENV:HTTP_HOST=*frenchdom.ch]
> BASEURL = http://www.frenchdom.ch/
> PAGETITLE = Sitename French
> [globalString = ENV:HTTP_HOST=*italiandom.ch]
> BASEURL = http://www.italiandom.ch/
> PAGETITLE = Sitename Italian
> [global]
>
> page {
>   config {
>     # settings for RealURL
>     simulateStaticDocuments = 0
>     baseURL = {$BASEURL}
>     tx_realurl_enable = 1
>     prefixLocalAnchors = all
>   }
>  ...
> }
> page.headerData {
>   348 = COA
>   348 {
>     wrap = <title>|</title>
>     10 = TEXT
>     10.value ={$PAGETITLE}
>     20 = TEXT
>     20.value = :&#32;
>     30 = TEXT
>     30.data = field:title
>   }
> }
>
>
> The realurl_conf.php looks like this:
>
> <?php
> $TYPO3_CONF_VARS['EXTCONF']['realurl']['_DOMAINS'] = array(
>         'encode' => array(
>                 array(
>                         'GETvar' => 'L',
>                         'value' => '0',
>                         'useConfiguration' => '_DEFAULT',
>                         'urlPrepend' => 'http://www.defaultdom.ch'
>                 ),
>                 array(
>                         'GETvar' => 'L',
>                         'value' => '1',
>                         'useConfiguration' => '_DEFAULT',
>                         'urlPrepend' => 'http://www.frenchdom.ch'
>                 ),
>                 array(
>                         'GETvar' => 'L',
>                         'value' => '2',
>                         'useConfiguration' => '_DEFAULT',
>                         'urlPrepend' => 'http://www.italiandom.ch'
>                 ),
>         ),
>         'decode' => array(
>                 '/^(www\.)?defaultdom\.ch$/' => array(
>                         'GETvars' => array(
>                                 'L' => '0',
>                         ),
>                         'useConfiguration' => '_DEFAULT'
>                 ),
>                 '/^(www\.)?frenchdom\.ch$/' => array(
>                         'GETvars' => array(
>                                 'L' => '1',
>                         ),
>                         'useConfiguration' => '_DEFAULT'
>                 ),
>                 '/^(www\.)?italiandom\.ch$/' => array(
>                         'GETvars' => array(
>                                 'L' => '2',
>                         ),
>                         'useConfiguration' => '_DEFAULT'
>                 ),
>         ),
> );
>
> On one page we embedded a pluign twice with different 
> Controller/Action. These plugin Controller/Actions are set by FlexFrom 
> configuration. The related action controller functions both use the 
> same object type in it's argument list:
>
>     public function spitalinfoAction(Tx_Hplusinfo_Domain_Model_Klinik 
> $klinik) { ... }
> and
>     public function infoAction(Tx_Hplusinfo_Domain_Model_Klinik 
> $klinik) { ... }
>
> The realURL mapping looks like this:
> $TYPO3_CONF_VARS['EXTCONF']['realurl']['_DEFAULT'] = array(
>                 'init' => array(
>                         'enableCHashCache' => '1',
>                         'appendMissingSlash' => 'ifNotFile,redirect',
>                         'adminJumpToBackend' => '1',
>                         'enableUrlDecodeCache' => '1',
>                         'enableUrlEncodeCache' => '1',
>                         'emptyUrlReturnValue' => '/',
>                         'respectSimulateStaticURLs' => '1',
>                         'disableErrorLog' => '1',
>                 ),
>                 'pagePath' => array(
>                         'type' => 'user',
>                         'userFunc' => 
> 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
>                         'spaceCharacter' => '-',
>                         'segTitleFieldList' => 
> 'tx_realurl_pathsegment,title',
>                         'languageGetVar' => 'L',
>                         'rootpage_id' => '1',
>                 ),
>                 'fileName' => array(
>                         'defaultToHTMLsuffixOnPrev' => '0',
>                         'acceptHTMLsuffix' => '1',
>                         'index' => array(
>                                 'print' => array(
>                                         'keyValues' => array(
>                                                 'type' => '98',
>                                         ),
>                                 ),
>                                 'bericht.pdf' => array(
>                                         'keyValues' => array(
>                                                 'type' => '1315357927',
>                                         ),
>                                 ),
>                         ),
>                 ),
>                 'preVars' => array(
>                         '0' => array(
>                                 'GETvar' => 'L',
>                                 'valueMap' => array(
>                                         'it' => '2',
>                                         'fr' => '1',
>                                 ),
>                                 'noMatch' => 'bypass',
>                         ),
>                 ),
>                 'postVarSets' => array(
>                         '_DEFAULT' => array(
>                                 'spital' => array(
>                                         0 => array(
>                                                 'GETvar' => 
> 'tx_hplusinfo_fe_spitalinfo[klinik]',
>                                         ),
>                                 ),
>                                 'action' => array(
>                                         0 => array(
>                                                 'GETvar' => 
> 'tx_hplusinfo_fe_spitalinfo[controller]',
>                                                 'noMatch' => 'bypass',
>                                         ),
>                                         1 => array(
>                                                  'GETvar' => 
> 'tx_hplusinfo_fe_spitalinfo[action]',
>                                                  'noMatch' => 'bypass',
>                                         ),
>                                 ),
>                         ),
>                 ),
>         ),
> );
>
>
> With this a URL looks like 
> http://www.defaultdom.ch/results/spital/233/ (<- 
> tx_hplusinfo_fe_spitalinfo[klinik]=233)
>
> Now when we open this link in a browser for the first time (cache 
> cleared) everything seams right. But after chaning the objects uid, e.g.
>    http://www.defaultdom.ch/results/spital/45/
> some content of the page (spitalinfoAction) is still the cached 
> version from tx_hplusinfo_fe_spitalinfo[klinik]=233, other parts 
> (infoAction) are updated correctly to 
> tx_hplusinfo_fe_spitalinfo[klinik]=45
>
> When i set 'enableCHashCache' = 0 then it works as long as the CHash 
> is appended to the URL... Without CHash i get the last cached version 
> for the spitalinfoAction view parts of the page.
>
> Before switching to multi language URL 
> $TYPO3_CONF_VARS['EXTCONF']['realurl']['_DEFAULT'] was looking 
> absolutely the same.
> And my extension was working properly with CHashCache.
> $TYPO3_CONF_VARS['EXTCONF']['realurl'] = array(
>         '_DEFAULT' => array(
>                 'init' => array(
>                         'enableCHashCache' => '1',
>                         'appendMissingSlash' => 'ifNotFile,redirect',
>                         'adminJumpToBackend' => '1',
>                         'enableUrlDecodeCache' => '1',
>                         'enableUrlEncodeCache' => '1',
>                         'emptyUrlReturnValue' => '/',
>                         'respectSimulateStaticURLs' => '1',
>                         'disableErrorLog' => '1',
>                 ),
>                 'pagePath' => array(
>                         'type' => 'user',
>                         'userFunc' => 
> 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
>                         'spaceCharacter' => '-',
>                         'segTitleFieldList' => 
> 'tx_realurl_pathsegment,title',
>                         'languageGetVar' => 'L',
>                         'rootpage_id' => '1',
>                 ),
>                 'fileName' => array(
>                         'defaultToHTMLsuffixOnPrev' => '0',
>                         'acceptHTMLsuffix' => '1',
>                         'index' => array(
>                                 'print' => array(
>                                         'keyValues' => array(
>                                                 'type' => '98',
>                                         ),
>                                 ),
>                                 'bericht.pdf' => array(
>                                         'keyValues' => array(
>                                                 'type' => '1315357927',
>                                         ),
>                                 ),
>                         ),
>                 ),
>                 'preVars' => array(
>                         '0' => array(
>                                 'GETvar' => 'L',
>                                 'valueMap' => array(
>                                         'it' => '2',
>                                         'fr' => '1',
>                                 ),
>                                 'noMatch' => 'bypass',
>                         ),
>                 ),
>                 'postVarSets' => array(
>                         '_DEFAULT' => array(
>                                 'spital' => array(
>                                         0 => array(
>                                                 'GETvar' => 
> 'tx_hplusinfo_fe_spitalinfo[klinik]',
>                                         ),
>                                 ),
>                                 'action' => array(
>                                         0 => array(
>                                                 'GETvar' => 
> 'tx_hplusinfo_fe_spitalinfo[controller]',
>                                                 'noMatch' => 'bypass',
>                                         ),
>                                         1 => array(
>                                                  'GETvar' => 
> 'tx_hplusinfo_fe_spitalinfo[action]',
>                                                  'noMatch' => 'bypass',
>                                         ),
>                                 ),
>                         ),
>                 ),
>         ),
> );
>
>
>
> I'm totally screwed - any help would be much appreciated!
>
> Cheers,
> T
> _______________________________________________
> TYPO3-project-typo3v4mvc mailing list
> TYPO3-project-typo3v4mvc at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-project-typo3v4mvc



More information about the TYPO3-project-typo3v4mvc mailing list