Erstellen Top 10 der zuletzt aktualisierten Seiten / Inhalte

Submitting your vote...
Rating: 5.0 of 5. 2 vote(s).
Click the rating bar to rate this item.

Folgendes Code Snippet ermöglicht es die 10 zuletzt upgedateten Seiten mit den zuletzt geänderten Inhalten aufzulisten und zu verlinken (top10). Dieses Snippet ist eine aktualisierte Version der beiden nachfolgenden, es wird hier ein HMENU Objekt zum auslesen der Seiten-Ids verwendet.

 

 

temp.top10=CONTENT
temp.top10 {
  table = tt_content
  wrap=<h1>Top 10 Updates</h1> <ol>|</ol>
  select{
    orderBy = tstamp DESC
    languageField=sys_language_uid
    max = 10
    pidInList.cObject = HMENU
    pidInList.cObject {
      entryLevel = 0
      1 = TMENU
      1 {
        expAll = 1
        NO {
          doNotLinkIt = 1
          stdWrap.field = uid
          stdWrap.wrap = | |*|  ,| |*|
                              # Hier wird optionSplit benötigt
                              # Damit die erste uid kein , erhält
        }
      }
      2 = TMENU
      2 {
        expAll = 1
        NO {
          doNotLinkIt = 1
          stdWrap.field = uid
          stdWrap.wrap = ,|
        }
      }
      3 < .2
      4 < .2
                  # usw. für alle verfübaren Ebenen.
    }
  }
  renderObj = COA
  renderObj {
    10 = TEXT
    10{
      field = header
      typolink.parameter.field=pid
      typolink.parameter.stdWrap.dataWrap=|#{field:uid}
      wrap = <li>|
    }
    20 = TEXT
    20{
      field = tstamp
      strftime = %d-%b-%Y %H:%M:%S
      wrap =  &nbsp;ge&auml;ndert am &nbsp;| </li>
    }
  }
}

 

 

Folgendes Code snippet ermöglicht es die 10 zuletzt upgedateten 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. Unten seht ihr ein anderes sample 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 =  &nbsp;ge&auml;ndert am &nbsp;| </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 :). Rechts kann man sehen wie es ausieht.

 

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 =  &nbsp;ge&auml;ndert am &nbsp;| </li>
    }
     
     
  }
   
   
  wrap=<h1>Top 10 Updates</h1> <ol>|</ol>
   
}

 

Hier noch ein paar Links zur offiziellen Dokumentation:

TSREF LOAD_REGISTER

TSREF CONTENT

TSREF SELECT

 

 

 


Top 10 Updates

Transparente PNG's in IE5/6 ohne JavaScript geändert am  04-Okt-2008 12:28:14
Typoscript Eigenschaften mit stdWrap erweitern geändert am  13-Jun-2008 14:16:12
Anderes Feld für GMENU alt Text geändert am  13-Jun-2008 13:55:51
Lightbox ohne Extension einbinden geändert am  13-Jun-2008 13:46:21
Menü erstellen mit Daten aus anderen Tabellen als pages V2 geändert am  24-Mär-2008 13:02:25
Login geändert am  17-Mär-2008 12:18:29
Forum geändert am  17-Mär-2008 10:07:40
Wer sind wir? geändert am  26-Dez-2007 16:06:55
Menu als unnested lists (iphone navigation) geändert am  29-Okt-2007 15:05:47
If Bedingungen mit UND und ODER Operator... geändert am  16-Okt-2007 19:04:17
English
Suche: