Letzte Änderungen

Zulezt geänderten Inhalte - in TYPO3 V10

Um die zulezt geänderten Inhalte aus allen Unterseiten der aktuellen Seite aufzulisten kann folgendes Typoscript verwendet werden (hier eingebettet in mein Gridelements Setup):

tt_content.menu_recently_updated >
tt_content.menu_recently_updated =< lib.contentElement
tt_content.menu_recently_updated {
################
### TEMPLATE ###
################
templateName = MenuRecentlyUpdated

##########################
### DATA PREPROCESSING ###
##########################
dataProcessing {
  10 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
  10 {
   table = tt_content
   selectFields = tt_content.*
   groupBy = uid
   pidInList.data = leveluid : 0
   orderBy = tstamp DESC
   recursive = 99
   join.data = field:pid
   join.wrap = pages ON tt_content.pid = pages.uid  AND pages.pid IN(|)
   as = content
   max = 15
  }
}
}

Das Template zur Ausgabe, gruppiert nach Monaten:

<f:if condition="{content}">
    <ul>
        <f:variable name="month" value="" />
        <f:variable name="lastmonth" value="---" />
        <f:for each="{content}" as="record">
            <f:variable name="month" value="{record.data.tstamp  -> f:format.date(format: '%m.%Y')}" />
            <f:if condition="{lastmonth} != {month}">
                     </ul>
                    <h3>{month}</h3>
                     <ul>
            </f:if>
            <f:variable name="lastmonth" value="{month}" />

            <li>
            <f:link.page pageUid="{record.data.pid}" section="c{record.data.uid}">

                <f:if condition="{record.data.header} ">
                    <f:then>
                        {record.data.header}
                    </f:then>
                    <f:else>
                        Inhalt anzeigen
                    </f:else>
                </f:if>

            </f:link.page>
                <small>- {record.data.tstamp  -> f:format.date(format: '%d.%m.%Y - %H:%M')} Uhr</small>
            </li>
        </f:for>

    </ul>
</f:if>

Erstellt: 08/2021| Geändert: 08/2021

RSYS_LASTCHANGED (ältere TYPO3 Versionen)

Um eine Liste der letzten Änderungen anzuzeigen verwende ich den Marker ###RSYS_LASTCHANGED###. Er ist im HTML Template und wird standardmässig per TS Template auf leer gesetzt:

 RSYS_LASTCHANGED=CONTENT
      RSYS_LASTCHANGED {
 }

Um den Inhalt nun anzuzeigen folgendes TS Template der Seite zuordnen:

    # --- RSYS_LASTCHANGED
  page.10.marks.RSYS_LASTCHANGED=CONTENT
  page.10.marks.RSYS_LASTCHANGED {
     
      table = tt_content
      wrap=<div class="lastchanged"><h3>Letzte Änderungen</h3> <ul>|</ul></div>
      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 class="menu">|
        }
        20 = TEXT
        20{
          #field = tstamp
          #strftime = %d.%m.%y
          # %H:%M:%S
          #wrap =   (|)</li>
          wrap =  |</li>
        }
      }
     }
     # ---------- end RSYS_LASTCHANGED ----------

Erstellt: 07/2010| Geändert: 08/2021