[TYPO3-core] RFC: #9046: Nested domain linking with domain record on root page
Daniel Pötzinger
nospam at nospam.de
Mon Sep 21 17:42:28 CEST 2009
+1 on testing
Also the latest patch do not work because of small adustments in trunk
I attached new onw
> Ingmar and i had a review session during the T3CON. We discussed the
> solution, tested serveral situations.
> The attached patch fixes some issues regarding the forced domain mainly.
>
> i'm sure about Ingmar's +1, but we still need another +1.
>
> Further we need to fix the cache issues (see below, add domain to the
> cache identifier).
>
> So if you can help out and need any help from my side (further
> explanation or test-setup), do not hesitate to contact me.
>
>
> regards
> tobias
>
>
>
> Tobias Liebig schrieb:
>> Hej,
>>
>> sorry for being that late on this issue!
>>
>> After some discussions we (at least Ingmar, Christopher, Dmitry and
>> some more people during the T3DD) decided for the following solution:
>>
>> * if the current page is part of the target pages rootline, the target
>> page is reachable within the current domain and thus we do not need to
>> prepend the domain to the link
>> * if not, step downwards the rootline of the *target page*
>> * search for the first domain record in the target rootline
>> * if this 'targetDomain' is not the same as the currently called
>> HTTP_HOST, prepend the link with this domain
>>
>> * the flag is_siteroot (oage properties) does not play here any role
>> anymore
>>
>>
>> Additionaly we think it makes sense to be able to force a domain
>> prepending (always prepend that domain). So i've added a 'forced' flag
>> to sys_domain, and:
>>
>> * search for a domain record which has the 'forced' flag within the
>> target page rootline
>>
>> So a subpage would be prepended with the 'forced' domain, even if the
>> page would be available within the current domain. This is pretty
>> helpful for independent subpages like in christophers example.
>>
>>
>> The attached patch implements this solution. It's created initially by
>> Oli and discussed with Ingmar. Addionally i implemented the 'forced'
>> flag in the domain record.
>>
>>
>>
>> Known Issues:
>> * caching / domain name
>>
>> The patch takes the current domain (HTTP_HOST) into account.
>> If a page is available by multiple domains, and is cached the solution
>> may fail, if the page is delivered from cache.
>> So we need separate caches per HTTP_HOST, which can be achieved easily
>> by adding the HTTP_HOST to teh cache identifier/hash
>> I'm not that into the caching mechanism, so someone need to help out.
>> If i remember right, Dmirty told he started to implement something
>> like that for memcache caching.
>>
>>
>> * speed up by using a cache for sys_domains
>>
>> currently we do a database query on sys_domains for *each* typolink on
>> the page. I'm sure we can save some queries, if we memroize all
>> records in an array (i think sys_domain would not contain many records
>> usually).
>> But i'm not sure where to store that array. Any suggestions? (TSFE,
>> GLOBALS)
>>
>>
>> Note:
>> i'm not sure, if this is a new feature (due to the forced flag in
>> sys_domain), or more like an 'enhanced' bugfix
>>
>> Note II:
>> Before we can commit this, we should solve the caching issue!
>> For testing and reviewing the patch, you may want to turn off caching.
>>
>> regards
>> tobias
>>
>>
>>
>>
>> Christopher Hlubek schrieb:
>>> Hi,
>>>
>>> This is an SVN patch request.
>>>
>>> Type: Bugfix
>>>
>>> Branches: Trunk, TYPO3_4-2
>>>
>>> Bugtracker references:
>>> http://bugs.typo3.org/view.php?id=9046
>>>
>>>
>>> Problem:
>>>
>>> Consider the following setup with multiple domains:
>>>
>>> + root (domain A, siteroot)
>>> |
>>> +--+ Subsite (domain B, siteroot)
>>> | |
>>> | +--+ Subpage
>>> |
>>> +--+ Some Page
>>> |
>>> +--+ Other Page
>>>
>>> Even with typolinkEnableLinksAcrossDomains enabled, the links from
>>> the subsite (domain B) back to some page on domain A won't get domain
>>> A prepended.
>>>
>>>
>>> How to reproduce:
>>>
>>> Create a site with a similar page structure and multiple, nested
>>> domain records like above. Create a link from the inner domain to
>>> some page with the outer domain -> The link doesn't get the outer
>>> domain prepended.
>>>
>>> Solution:
>>> In class.tslib_content.php (5324) there is a check for every part in
>>> the rootline, if the linked page shares a root page with the current
>>> page. It does! The recently added check for is_siteroot is not
>>> considered, because it is checked after this. So these checks should
>>> be swapped to check for is_siteroot first and find the domain record
>>> on the root page.
>>>
>>> Additionally there should be another tweak to not always include the
>>> domain for pages that link between the outer domain (which will
>>> always be found). This could be accomplished by comparing the
>>> HTTP_HOST with the domain that should be prepended.
>>>
>>>
>>> Thanks
>>> Christopher
>>
>
More information about the TYPO3-team-core
mailing list