Zum Inhalt springen

RSS von tt_content - Safari zeigt nur neusten Eintrag

Erstellt am 17. November 2010 · 1 Antwort · letzte Antwort am 18. November 2010

Tags: Frage

Niklas Lazinbee ·

Hallo,
ich möchte einen RSS-Feed von tt_content erstellen. Dazu habe ich die Extensions in2rss und content2rss auprobiert. Die funktionieren auch wunderbar (Firefox etc.), allerdings zeigen Safari und Apple Mail nur den neusten Eintrag auf der ausgewählten Seite. Da beide Extensions das gleiche Ergebnis bringen, scheint das ja ein grundsätzliches Problem zu sein. Hat jemand eine Ahnung woran es liegen könnte? Im Forum gab es ansatzweise schon mal ähnliche Problemschilderungen (allerdings mit dem IE), aber bisher keine Anwort.

Beste Grüße
Niklas

Niklas Lazinbee ·

Inzwischen habe ich das Problem endeckt, wenn in der XML Struktur alle <link> Angaben der Einträge gleich sind, zeigt Safari nur einen Feed, zumindest ist das bei mir so. Ich habe nun die Extension in2rss ergänzt. Die Extension liefert statisches Typoscript Setup mit, dort habe ich eine Zeile ergänzt und zwar "typolink.parameter.dataWrap=|#{field:uid}".
Damit wird noch die jeweilige UID des Content-Elements an den Link angehängt. Das ist auch ganz praktisch, da man so vom Feed gleich zum entsprechenden Anker auf der Seite springen kann.

Das gesamte Typoscript-Setup der Extension lautet also:

# IN2RSS PLUGIN #
includeLibs.in2rss_main = EXT:in2rss/lib/class.tx_in2rss_main.php

# settings for in2rss
lib.in2rssFeed {
  template = {$plugin.in2rss.template}
  sorting = {$plugin.in2rss.sorting}
  limit = {$plugin.in2rss.limit}
  uft8_coding = {$plugin.in2rss.uft8_coding}
  
  // rss feed from the first table
  10 {
    settings {
      table = {$plugin.in2rss.settings.table}
      fieldTitle = {$plugin.in2rss.settings.fieldTitle}
      fieldBody = {$plugin.in2rss.settings.fieldBody}
      fieldSorting = {$plugin.in2rss.settings.fieldSorting}
      fieldCrdate = {$plugin.in2rss.settings.fieldCrdate}
      pid = {$plugin.in2rss.settings.pid}
      pid_recursive = {$plugin.in2rss.settings.pid_recursive}
      additionalWhereClause = {$plugin.in2rss.settings.additionalWhereClause}
      limit = 1000
    }
    fields {
      rssTitle = TEXT
      rssTitle {
        field = rssTitle
      }
      
      rssBody = TEXT
      rssBody {
        field = rssBody
      }
      
      rssSorting = TEXT
      rssSorting {
        field = rssSorting
      }
      
      rssCrdate = TEXT
      rssCrdate {
        field = rssCrdate
      }
      
      rssLink = COA
      rssLink {
        10 = TEXT
        10 {
          wrap = http://|/
          data = getIndpEnv: HTTP_HOST
        }
        20 = TEXT
        20 {
          typolink.parameter.field = pid
          typolink.parameter.dataWrap=|#{field:uid}
          typolink.returnLast = url
        }
      }
    }
  }

  
  // rss feed from a second table (show fe_users)
  #20 < .10
  #20 {
  #  settings {
  #    pid = 89
  #    table = fe_users
  #    fieldTitle = username
  #    fieldBody = address
  #  }
  #}
}

# TypeNum 101 to show the rss feed
in2rss = PAGE
in2rss {
  typeNum = 101
  
  config {
    disableAllHeaderCode = 1
      additionalHeaders = Content-type:application/xml
    disablePrefixComment = 1
    xhtml_cleaning = 0
    admPanel = 0
  }
  
  10 = USER
  10 {
    userFunc = user_in2rss_main->showRSS
    userFunc {
      config < lib.in2rssFeed
    }
  }
}