Create top 10 last updated pages / contents

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

Following code snippet displays the 10 last updated pages and links them (top10). This is a changed version of the two following Snippet that uses a HMENU to read the unique page id's.

 

 

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 = | |*|  ,| |*|
                              # Here we need a optionSplit
                              # so that the first uid has  no ,
        }
      }
      2 = TMENU
      2 {
        expAll = 1
        NO {
          doNotLinkIt = 1
          stdWrap.field = uid
          stdWrap.wrap = ,|
        }
      }
      3 < .2
      4 < .2
                  # etc for all available menu levels
    }
  }
  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>
    }
  }
}

 

 

 

This code displays the 10 last updated pages and links them. This works great if you only have one language. It doesn't work on multilanguage pages because you cannot get records from the pages_language_overlay table using a select. The second sample works multilanguage.

 

 

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>
   
}

 

 

This sample works on multilanguage pages, because it doesn't list the updated pages but the contents. You have to add always a header to the content otherwise you won't get a link :). In the right column you can see what this looks like.

 

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>
   
}

 

Here some link to the official documentation:

TSREF LOAD_REGISTER

TSREF CONTENT

TSREF SELECT

 

 

 



Comments


Cowboydan, 06-12-11 10:23:
There's a syntax error in the last example.
The line :
10.typolink.parameter.stdWrap.dataWrap=#uid
should be replaced by :
typolink.parameter.stdWrap.dataWrap=|#{field:uid}
Otherwise the script works perfectly.
Cowboydan, 06-12-11 10:24:
Sorry, I've made an error myself. The right syntax is :
10.typolink.parameter.stdWrap.dataWrap=|#{field:uid}

Add comment

* - required field

*



*
*

Top 10 Updates

Nice fonts using Google font API geändert am  20-May-2010 16:36:47
TS-based Searchbox for Indexed Search  geändert am  18-May-2010 18:27:15
TYPO3 SEO geändert am  30-Apr-2010 09:44:22
Search engine friendly graphical headers in TYPO3 geändert am  30-Apr-2010 09:33:44
Creating a simple Infocenter using TYPO3 geändert am  17-Nov-2009 12:12:52
Making the Section Menu work correctly with TemplaVoila geändert am  05-May-2009 12:27:17
Show pages with type "Not in Menu" in a sitemap geändert am  05-May-2009 12:11:17
Implementation of the DHTML menu from brainjar.com  geändert am  01-Feb-2009 14:02:48
Sample DHTML menu geändert am  01-Feb-2009 13:51:25
A introduction to the CONTENT object geändert am  26-Jan-2009 13:20:39

Latest comments

21-Jan-2012 20:22:24
jemmkwc jemmkwc schrieb: MOGWOX , [url=http://prdpuhwzxyrc.com/]prdpuhwzxyrc[/url],...
fe_useradmin form does not save
20-Jan-2012 20:35:32
fsivjktiuld fsivjktiuld schrieb: idCmnv <a href="http://gakbrrkrxhye.com/">gakbrrkrxhye</a>
fe_useradmin form does not save
19-Jan-2012 18:05:25
bvffee bvffee schrieb: jl2vQt , [url=http://xcinvpbclrbm.com/]xcinvpbclrbm[/url],...
External links and shortcuts directly in the menu
Deutsch
Search: