SpielwieseImpressumDatenschutz

Top 10 der zuletzt aktualisierten Seiten/Inhalte erstellen

Der folgende Code ermöglicht das Anzeigen der 10 zuletzt aktualisierten Seiten mit den zuletzt geänderten Inhalten aufzulisten und zu verlinken.
Funktioniert wunderbar falls man nur eine Sprache hat.
Bei Mehrsprachigkeit funktioniert es leider nicht bzw. zeigt nur die Standardsprache, da es laut TSRef mit select nicht möglich ist Daten aus der pages_language_overlay Tabelle zu lesen.
Weiter unten seht ihr ein anderes Beispiel, welches mehrsprachig funktioniert.

temp.top10 = COA
temp.top10 {
  10 = LOAD_REGISTER
  10 {
    lvl1uids.cObject = CONTENT
    lvl1uids.cObject {
      table=pages
      select.pidInList.data = leveluid:0
      renderObj = TEXT
      renderObj.field = uid
      renderObj.wrap = |,
    }
    lvl2uids < .lvl1uids
    lvl2uids.cObject.select.pidInList.data= register:lvl1uids
    lvl3uids < .lvl1uids
    lvl3uids.cObject.select.pidInList.data= register:lvl2uids
    lvl4uids < .lvl1uids
    lvl4uids.cObject.select.pidInList.data= register:lvl3uids
    lvl5uids < .lvl1uids
    lvl5uids.cObject.select.pidInList.data= register:lvl4uids
    alluids.cObject = COA
    alluids.cObject {
      10=TEXT
      10.data = register:lvl1uids
      20=TEXT
      20.data = register:lvl2uids
      30=TEXT
      30.data = register:lvl3uids
      40=TEXT
      40.data = register:lvl4uids
      50=TEXT
      50.data = register:lvl5uids
      60=TEXT
      60.data = leveluid:0
    }
  }
  20 = CONTENT
  20 {
    table = pages
    select {
      pidInList.data = register:alluids
      orderBy = tstamp DESC
      max = 10
    }
    renderObj = COA
    renderObj {
      10 = TEXT
      10.field = title
      10.typolink.parameter.field=uid
      10.wrap = <li>|
      20 = TEXT
      20.field = tstamp
      20.strftime = %d-%b-%Y %H:%M:%S
      20.wrap = geändert am |</li>
    }
  }
  wrap=<h1>Top 10 Updates</h1> <ol>|</ol>
}


 Dieses zweite sample umgeht schlicht das Problem in dem es nicht die pages listet sondern die Contents. Bei Contents ist es kein Problem eine andere sprache auszulesen. Es muss ein Header beim content eingegeben sein sonst bekommt man keinen Link.

temp.top10 = COA
temp.top10 {
  10 = LOAD_REGISTER
  10 {
    lvl1uids.cObject = CONTENT
    lvl1uids.cObject {
      table=pages
      select.pidInList.data = leveluid:0
      renderObj = TEXT
      renderObj.field = uid
      renderObj.wrap = |,
    }
    lvl2uids < .lvl1uids
    lvl2uids.cObject.select.pidInList.data= register:lvl1uids
    lvl3uids < .lvl1uids
    lvl3uids.cObject.select.pidInList.data= register:lvl2uids
    lvl4uids < .lvl1uids
    lvl4uids.cObject.select.pidInList.data= register:lvl3uids
    lvl5uids < .lvl1uids
    lvl5uids.cObject.select.pidInList.data= register:lvl4uids
    alluids.cObject = COA
    alluids.cObject {
      10=TEXT
      10.data = register:lvl1uids
      20=TEXT
      20.data = register:lvl2uids
      30=TEXT
      30.data = register:lvl3uids
      40=TEXT
      40.data = register:lvl4uids
      50=TEXT
      50.data = register:lvl5uids
      60=TEXT
      60.data = leveluid:0
    }
  }
  20 = CONTENT
  20 {
    table = tt_content
    select {
      pidInList.data = register:alluids
      orderBy = tstamp DESC
      languageField=sys_language_uid
      max = 10
    }
    renderObj = COA
    renderObj {
      10 = TEXT
      10.field = header
      10.typolink.parameter.field=pid
      10.typolink.parameter.stdWrap.dataWrap=#uid
      10.wrap = <li>|
      20 = TEXT
      20.field = tstamp
      20.strftime = %d-%b-%Y %H:%M:%S
      20.wrap = geändert am |</li>
    }
  }
  wrap=<h1>Top 10 Updates</h1> <ol>|</ol>
}