VF DSL 468x60

Create top 10 last updated pages / contents

Submitting your vote...
Rating: 4.0 of 5. 7 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


No comments

Add comment

* - required field

*



*
*

Top 10 Updates

Creating a simple Infocenter using TYPO3 geändert am  17-Nov-2009 11:12:52
Making the Section Menu work correctly with TemplaVoila geändert am  05-May-2009 10:27:17
Show pages with type "Not in Menu" in a sitemap geändert am  05-May-2009 10:11:17
Implementation of the DHTML menu from brainjar.com  geändert am  01-Feb-2009 13:02:48
Sample DHTML menu geändert am  01-Feb-2009 12:51:25
A introduction to the CONTENT object geändert am  26-Jan-2009 12:20:39
Sample for dynamic image masks geändert am  16-Dec-2008 15:42:32
Useful Links geändert am  11-Dec-2008 10:06:17
Using Transparent PNG's in IE5/6 without JavaScript geändert am  04-Oct-2008 12:27:15
Using lightbox without extension geändert am  13-Jun-2008 14:20:51

Latest comments

23-Feb-2010 04:40:25
Janna schrieb: what about the css? I am still not clear how to link typoscript with the css. Kindly...
Text menu
05-Feb-2010 18:38:50
Martin Terber schrieb: Didn't work for me neither. I will try in TMENU now.
Alternativ sorting for menu items
27-Jan-2010 23:41:31
romx schrieb: U know its dob't work apply to Tmenu))
Alternativ sorting for menu items
Deutsch
Search: