Zum Inhalt springen

Browserweiche und Caching mit tt-news Einträgen

Erstellt am 3. Februar 2013 · 8 Antworten · letzte Antwort am 12. Februar 2013

Tags: tt_news, Cache & Performance, Frage

bugblatterbeast ·

Hallo,

es ist bei meinem jetzigen Projekt leider unumgänglich eine Browserweiche für den Safari zu implementieren. Ich habe das mit folgendem Code im Typoscript-Setup realisiert:

[useragent = *Safari*]
  page.headerData.25 = TEXT
  page.headerData.25.value = <link rel="stylesheet" type="text/css" href="fileadmin/template/{$prjpath}page/css/safarifixes.css">
[global]

Das funktioniert so weit auch gut aber leider wird jeweils nur die zuerst angeforderte Version richtig gecached. Wenn ich die Seite zuerst im Firefox öffne, fehlen sämtliche News-Einträge in der Safari-Version und wenn ich den cache lösche und die Seite zuerst im Safari öffne fehlen die News-Einträge in allen anderen Browsern.

Am liebsten wäre es mir ja, nur den Header-Bereich separat für diese Condition zu cachen und den selben cache für den Inhalt zu verwenden. Ich würde mich aber über jeden Ansatz zur Lösung des Problems freuen.

bugblatterbeast ·

Ich musste leider feststellen, dass mein Problem eine noch größere Tragweite hat. Es wird von allen Conditions immer nur eine einzige Version richtig dargestellt!!!

Ich habe die Safari-Weiche erst mal deaktiviert und habe aber das gleiche Problem mit der Mehrsprachigkeit. Die Grundkonfiguration sieht so aus:

config {
  linkVars = L(0-2)
  uniqueLinkVars = 1
}
[globalVar = GP:L = 0]
  config {
    sys_language_uid = 0
    language = de
    locale_all = de_DE.utf-8
  }
[globalVar = GP:L = 2]
  config {
    sys_language_uid = 2
    language = en
    locale_all = en_EN.utf-8
  }
[global]

Dann ist da noch das Sprachmenu (ein wenig speziell, da immer nur der Textlink auf die jeweils andere Sprache angezeigt werden soll. Passiver Link bei fehlender Übersetzung):

temp.langmenu = HMENU
temp.langmenu {
  special = language
  special {
  value = 0,2
    normalWhenNoLanguage = 0
  } 
  wrap = |
  1 = TMENU
  1 {
    noBlur = 1
    NO = 1
    NO {
      linkWrap = |
      stdWrap.override = SEITE AUF DEUTSCH || SITE IN ENGLISH
      stdWrap.typolink {
        parameter.data = page:uid
        additionalParams = &L=0 || &L=2
        addQueryString = 1
        addQueryString.exclude = id
        addQueryString.method = GET
      }
    }
    ACT < .NO
    ACT.doNotShowLink = 1
    ACT.ATagParams= class="act"
    USERDEF1 < .NO
    USERDEF1.doNotLinkIt = 1
    USERDEF2 < .ACT
  }
}

Es existieren nur die Sprachen 0 und 2. Das ist so eine Altlast für die ich nichts kann...

Das Problem betrifft anscheinend nur tt_news. Die gesamte Ausgabe des PlugIns wird nur in der zuerst angeforderten Version gezeigt. In den anderen Versionen bleiben die Conatainer komplett leer und es wird nur die Element-Überschrift angezeigt.

Dies ist die komplette tt_news-Konfiguration einer betroffenen Seite (aus dem TypoScript Object-Browser)

[plugin]
  [tt_news] = USER
    [userFunc] = tx_ttnews->main_news
    [enableConfigValidation] = 1
    [archiveTitleCObject]
      [10]
        [strftime] = %d.%m.%Y
    [getRelatedCObject]
      [20]
        [strftime] = %d.%m.%Y
    [displaySingle]
      [date_stdWrap]
        [strftime] = %d.%m.%Y
      [time_stdWrap]
        [strftime] = %H:%M
      [age_stdWrap]
        [age] = Minuten | Stunden | Tage | Jahre
      [substitutePagetitle] = 1
      [image]
        [file]
          [maxW] = 400
          [maxH] = 400
    [displayLatest]
      [date_stdWrap]
        [strftime] = %d.%m.%Y
      [time_stdWrap]
        [strftime] = %H:%M
      [subheader_stdWrap]
        [crop] = 600 | ... | 1
      [image]
        [file]
          [maxW] = 82
          [maxH] = 115
    [displayList]
      [date_stdWrap]
        [strftime] = %d.%m.%Y
      [time_stdWrap]
        [strftime] = %H:%M
      [subheader_stdWrap]
        [crop] = 300 | ... | 1
      [image]
        [file]
          [maxW] = 400
          [maxH] = 400
    [templateFile] = fileadmin/template/...
    [limit] = 50
    [pid_list] = 194
    [recursive] = 1
    [singlePid] = 195
    [searchPid] = 196
    [archive] = 1
    [archiveTypoLink]
      [parameter] = 198
    [enableArchiveDate] = 1
    [reverseAMenu] = 1
    [backPid] = 5
    [latestLimit] = 8
    [useBidirectionalRelations] = 1
    [usePiBasePagebrowser] = 1
    [pageBrowser]
      [showFirstLast] = 1
      [showRange] = 1
      [maxPages] = 200
      [showPBrowserText] = 0
      [browseBoxWrap] = <div class=...
      [showResultsWrap] = |
      [LinksWrap] = |
      [browseLinksWrap] = |
      [activeLinkWrap] = <li class="menu-sel"></li>
      [disabledLinkWrap] = <li class="menu-disabled">|</li>
      [inactiveLinkWrap] = <li>|</li>

Ich freue mich über jeden Hinweis. Ich weiss noch nicht einmal wo ich noch suchen soll.

bugblatterbeast ·

Es wäre ganz toll, wenn ein Redakteur diesen Thread in die Kategorie "Module, Erweiterungen und Applikationen" >> "News-Modul" verschieben könnte. Es scheint doch in erster Linie ein tt_news-Problem zu sein und ich möchte nicht doppelt posten.

Norman2k ·

Zum Verständnis:
Cache gelöscht, News in der Default-Sprache aufgerufen --> News werden in der korrekten Sprache angezeigt. Danach die Sprache gewechselt --> News werden nicht angezeigt
Cache gelöscht, News in der 2. Sprache aufgerufen --> News werden in der korrekten Sprache angezeigt. Danach auf die Default-Sprache gewechselt --> News werden nicht angezeigt
So richtig?

Deaktiviere mal den Cache komplett für die News-Seite, besteht das Problem dann immer noch?
Mein 1. Gedanke war, dass eventuell eine Condition oder Klammer irgendwo in deinem TS nicht geschlossen wird.

Welche TYPO3 und tt_news Version?

bugblatterbeast ·
Norman2k schrieb

Zum Verständnis:
Cache gelöscht, News in der Default-Sprache aufgerufen --> News werden in der korrekten Sprache angezeigt. Danach die Sprache gewechselt --> News werden nicht angezeigt
Cache gelöscht, News in der 2. Sprache aufgerufen --> News werden in der korrekten Sprache angezeigt. Danach auf die Default-Sprache gewechselt --> News werden nicht angezeigt
So richtig?

Genau so ist es.

Norman2k schrieb

Deaktiviere mal den Cache komplett für die News-Seite, besteht das Problem dann immer noch?

Ja - das hätte ich jetzt nicht erwartet aber es ist genau das gleiche Dilemma.

Norman2k schrieb

Mein 1. Gedanke war, dass eventuell eine Condition oder Klammer irgendwo in deinem TS nicht geschlossen wird.

Du meinst kein schließendes [global]? oder ein fehlendes "]" bzw. "}"? Unwahrscheinlich aber natürlich nicht unmöglich. Werde es in aller Ruhe überprüfen...

Norman2k schrieb

Welche TYPO3 und tt_news Version?

Typo3 4.5.22
tt_news 3.4.0

bugblatterbeast ·

@Norman2k

Ein wichtiger Nachtrag. Ich hatte das caching über die Seiteneigenschaften deaktiviert. Mir kam es so komisch vor, dass das keine Auswirkung auf das Problem hatte, dass ich das caching nochmal testweise über config.nocache = 1 im Setup deaktiviert habe. Das führt tatsächlich dazu, dass alles richtig angezeigt wird.

Leider ist die Seite zu groß und wird zu viel Traffic haben, um dies als Option für die News-Seiten in Betracht zu ziehen. Ich habe auch das gesamte Typoscript nach Syntax-Fehlern durchsucht und durch einen Parser laufen lassen. Daran liegt es eher nicht.

bugblatterbeast ·

Ich bin leider wirklich auf eine Lösung hier angewiesen. Dass das Problem an der Browserweiche liegen könnte war ein Irrtum. Mir fiel es halt nur in diesem Zusammenhang erstmals auf.

Könnte bitte ein Redakteur dieses Forums diesen Thread in die Kategorie Module, Erweiterungen und Applikationen » News-Modul verschieben? Ich möchte es vermeiden, die gleiche Frage doppelt zu posten aber dort ist er einfach besser platziert.

bugblatterbeast ·

Als ich die Seite übernommen habe, hatte ich bei den Aufräumarbeiten die Template-Datensätze gelöscht, in denen das static-template für tt_news eingebunden wurde. Bin blöder Weise davon ausgeganegen, dass das im Haupt-Template erledigt wird und habe gar nicht nachgesehen.