Updated HMENU

An HMENU with the property special = updated will create a menu of the most recently updated pages.

By default the most recently updated page is displayed on top.

Mount pages are supported.

Properties

special.value

special.value
Type
list of page IDs /stdWrap

This will generate a menu of the most recently updated pages from the branches in the tree starting with the UIDs (uid=35 and uid=56) listed.

EXT:site_package/Configuration/TypoScript/setup.typoscript
20 = HMENU
20.special = updated
20.special.value = 35, 56
Copied!

special.mode

special.mode
Type
string
Default
SYS_LASTCHANGED

The field in the database, which should be used to get the information about the last update from.

Possible values are:

SYS_LASTCHANGED
Is updated to the youngest time stamp of the records on the page when a page is generated.
crdate
Uses the crdate field of the page record. This field is set once on creation of the record and left unchanged afterwards.
tstamp
Uses the tstamp field of the page record, which is set automatically when the record is changed.
manual or lastUpdated
Uses the field lastUpdated, which can be set manually in the page record.
starttime
Uses the starttime field.

Fields with empty values are generally not selected.

special.depth

special.depth
Type
integer
Default
20

Defines the tree depth.

The allowed range is 1-20.

A depth of 1 means only the start ID, depth of 2 means start ID + first level.

Note: "depth" is relative to special.beginAtLevel.

special.beginAtLevel

special.beginAtLevel
Type
integer
Default
0

Determines starting level for the page trees generated based on .value and .depth.

0 is default and includes the start id.

1 starts with the first row of subpages,

2 starts with the second row of subpages.

Note: "depth" is relative to this property.

special.maxAge

special.maxAge
Type
integer +calc

Only show pages, whose update-date at most lies this number of seconds in the past. Or with other words: Pages with update-dates older than the current time minus this number of seconds will not be shown in the menu no matter what.

By default all pages are shown. You may use +-*/ for calculations.

special.limit

special.limit
Type
integer
Default
10

Maximal number of items in the menu. Default is 10, max is 100.

special.excludeNoSearchPages

special.excludeNoSearchPages
Type
boolean
Default
false

If set, pages marked No search are not included.

Example: Recently updated pages styled with Fluid

The content element Recently Updated Pages provided by the system extension EXT:fluid_styled_content is configured with a MenuProcessor which is based on the options of the HMENU and provides all its properties:

EXT:fluid_styled_content/Configuration/TypoScript/ContentElement/MenuRecentlyUpdated.typoscript
# Recently updated pages:
# ...
#
# CType: menu_recently_updated

tt_content.menu_recently_updated =< lib.contentElement
tt_content.menu_recently_updated {
    templateName = MenuRecentlyUpdated
    dataProcessing {
        10 = menu
        10 {
            special = updated
            special {
                value.field = pages
                maxAge = 3600*24*7
                excludeNoSearchPages = 1
            }
            dataProcessing {
                10 = files
                10 {
                    references.fieldName = media
                }
            }
        }
    }
}
Copied!

The following Fluid template can be used to style the menu:

EXT:fluid_styled_content/Resources/Private/Templates/MenuRecentlyUpdated.html
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<f:layout name="Default" />
<f:section name="Main">

    <f:if condition="{menu}">
        <ul>
            <f:for each="{menu}" as="page">
                <li>
                    <a href="{page.link}"{f:if(condition: page.target, then: ' target="{page.target}"')}{f:if(condition: page.current, then: ' aria-current="page"')} title="{page.title}">
                        <span>{page.title}</span>
                    </a>
                </li>
            </f:for>
        </ul>
    </f:if>

</f:section>
</html>
Copied!