wrong content is cached - typo3

We have a site which sometimes delivers a wrong content for a specific URL.
The page has a plugin and by default should show the records listing (or the first record listing as the listing is grouped by initial letter). After clicking a link some records are viewable in detail on the same page.
Every now and then a cache problem occurs:
Instead of the listing a detailed record is shown.
Although we use realurl, all problems occur also with the basic urls.
For overview I will only write the url-parameters, assume www.domain.tld/index.php? in front.
The page to call is id=61.
What I see is
cHash=3df3421afc42d3d5bfa1bc50603ea00d&id=61&tx_citkoegovservicelight_ansprechpartner%5Baction%5D=show&tx_citkoegovservicelight_ansprechpartner%5Bansprechpartner%5D=282.
In the HTML-source of the page I show the page calling parameters with the extension page_params. Here I see:
tx_citkoegovservicelight_ansprechpartner[action]=show&tx_citkoegovservicelight_ansprechpartner[ansprechpartner]=282&tx_citkoegovservicelight_ansprechpartner[letter]=kontakt&id=61
Two strange notes: there is no cHash parameter, there is an additional parameter tx_citkoegovservicelight_ansprechpartner[letter] which never should be used with detail view and never should have the value kontakt (only single characters were used for the listing of all records starting with that letter = no detail view)
Using these parameters does not show the detail-view but the the list view (for letter 'A').
I do not find a reason why this special URL should be called (no link) and I don't know why TYPO3 should cache a content which belongs to another URL.
And it is a problem with TYPO3 cache as all works correct if I clear the cache of this single page.

Please check my answer to another issue. The accepted answer is right in that case, but in your case it can really be caused by failed cHash calculation, because it is not related to RealURL.
Try to clear the cache and then right after that go to tx_citkoegovservicelight_ansprechpartner[action]=show&tx_citkoegovservicelight_ansprechpartner[ansprechpartner]=282&tx_citkoegovservicelight_ansprechpartner[letter]=kontakt&id=61.
And then simply open the page id=61. If you see the wrong cached result, then the reason is in a combination of following factors:
Plugin's action is cached
Cache fails are allowed in installation
cHash calculation failed
To prevent this you should enable pageNotFoundOnCHashError in Install Tool. Then the problematic link above will just trigger 404 and will not force TYPO3 to render the page.
To a question where the link is coming from. If the website is already live, it can be everything: from a crawler, which somehow builded the link itself to a user who tried to play with parameters.

Related

Typo3 Workspace elements not shown in preview

First foremost: I am aware that this is not a general Typo3 bug/error per se, as I have working installations. I am hoping for hints/help in finding the error in this installation, as it's way too big to just set it up as a new installation.
I have an erronous Typo3 10.4.17 installation (updated to 10.4.x, no fresh install)
Problem: Edited elements in workspace are not shown in the Frontend preview (opened via "Show webpage" or other basic means in BE) nor in the BE View-module.
Additional info #1: They are however shown when preview links are generated via "Generate page preview links" and those are viewed.
Additional info #2: Changed elements only become visible after publishing them & clearing Cache
Additional info #3: Clearing any Cache does not make them visible in the preview
After comparing all settings I could think of to another working installation I decided to delve into the core in search for a hint/solution and got stuck there at following point:
TYPO3\CMS\Workspaces\Controller\PreviewController
Line 130 $workspaceItemsArray = $this->workspaceService->selectVersionsInWorkspace()
As well as:
TYPO3\CMS\Workspaces\Service\WorkspaceService
Line 220 public function selectVersionsInWorkspace()
At this point my edited workspace version of the element does get retrieved. selectVersionsInWorkspace() does get called when viewing the preview.
While the PreviewController does not further filter the staged elements, they are not displayed in the Preview.
I am looking for any hint as to where selectVersionsInWorkspace() might still be filtered or other hints as to possible reasons/solutions for this problem that I may have overlooked.
Just when I decided to post to SO a co-worker found the reason...
As it's a big installation we use a dev-domain as admins and each website (over 100) have their own domains which are also set as base in the Site-config.
Only when the preview is opened as either the base or a baseVariant the workspace-elements are displayed at all. In older version the elements would still be displayed when opened via other associated domains, just sometimes not 100% accurately.
Letting this stay in case anyone ever has a similar problem and is hopefully able to find this.

Typolinks sometimes not generated

Sometimes normal links to pages are not generated by using the typolink viewhelper like this:
<f:link.typolink parameter="{link}">{linktext}</f:link.typolink>
Without changing anything in TYPO3, but just clearing the cache, solves the problem and links are generated again without problem.
Interesting part is, that on a page only the links to one page are not generated, but other works. Example: on page 3 all links to page 4 are not generated, but to page five are working perfectly well.
This phenomenon is not reproducible, it just occurs every now and then. I can't see any errors in the TYPO3 log.
Any suggestions, how to debug?
By analysing the error more in detail I found out, that it occurred because the page was requested and cached with the language parameter L attached. The value of the parameter was a language ID, which is not present in the system.
I updated the configuration in this way, that I just allow the language parameter L with the value 0:
config.linkVars = L(0)
For the moment, this looks promising!

tx_news: Detail view always renders the article first viewed

T3 8.7.15 with latest versions of tx_news and realurl. All was running just fine. Out of a sudden the following happens:
Click the link of a news article from a list view and it renders the detail view and displays everything correctly, as expected. When I then go back and click (any) another article it will again display the article I just view previously and will only display this article anymore, no matter which other I article I choose. It is always the first article rendered that is being displayed (until cache is emptied).
The links are correct according to the article chosen, by the way. However always the first viewed article is displayed, no matter what.
Have deactivated realurl but behavior is same. Clearing all caches did not help either.
Related to news and realurl there is a special page in the manual of news: RealURL configuration, the advanced configuration includes also some settings related to chache.
Additional you might have to adjust some general cache-setting.
Another point is that you've to clean the cache of realurl perhaps after having adjusted some settings.
Furthermore there have been some changes related to cache in core and viewhelpers too, I'm just not sure if they apply to news in general or to your individual new-templates:
Remove option cHashIncludePageId from cHash calculation
Make cHash configurable in Fluid Widget Links
Concerning this issue you've to verify your templates if they use any applying viewhelper.
If all hints never help to remove the undesired caching-behavior the simplest workaround is to disable the cache on the news-pages completely till a solution is found. I will update this answer if I find further information. Here is how to disable the page cache for a single page:
Open the page-settings of the page(s) where the news-plugin is resided
Navigate to the tab "Behavior"
Adjust the cache-settings

In AEM 6.1, campaigns always showing first teaser

I have one created one campaign and underneath that I have created three teasers(each of them having different content, third teaser is default). I have linked first two teasers to two different segments and default is not assigned to any teaser. But every time my page is loading, I am seeing the first teaser(even though segments not resolving the client context). Any pointers would be highly appreciated.
If you are testing segments in same browser/window in which you have configured segments then you might see this problem. Open page in another browser or clear localStorage of your browser (to reset clientContext) and try again.

No rights on page-module level

I encounter a strange error. On page-module level i´m not allowed to create new page elements. If i do the same via the list-module page-elements are created and i can edit them (even in the page-module).
Also, if i created a flexible content element - e.g. columns - (via the list module) i CAN create new elements in the flexible content element, even in page module.
New elements are always on TOP of the page, meaning the first entry, and i can´t drag and drop them. Well, i can, but changes do not come in effect. To sort the elements I have to edit the page properties, and sort content.
The user has every right(!) given by the user settings, and it is TYPO3 4.7.4
Does anyone know where i have to look for a solution? Thanks in advance!
Edit 1
This error appears in the log:
Attempt to insert record on page '[root-level]' (0) where this table, tt_content, is not allowed (msg#1.1.11)
Again: Creating Elements IS working via the List-Module.
This error is causen because the field t3ver_swapmode in the page table was removed since TYPO3 4.7 (Maybe in combination with TemplaVoila).
I dont know whats exactly going on here (didnt had the time to find that out), but the solution is of cource simple. I uploaded my fix to the TYPO repository under the key swapmodefix http://typo3.org/extensions/repository/view/swapmodefix
The extension appears in a couple of hours, good luck!
You need to select a page inside the pagetree first. You may not create content elements on the root page.
It might be that the selection is lost, but still visibel. Just click the page again.