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

Property
special.value
Data type
list of page ids /stdWrap
Description

This will generate a menu of the most recently updated pages from the branches in the tree starting with the uid's (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

Property
special.mode
Data type
string
Default
SYS_LASTCHANGED
Description

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

The following values are possible:

SYS\_LASTCHANGED: Is updated to the youngest tstamp of the records on the page when a page is generated.

crdate: Uses the "crdate"-field of the pagerecord.

tstamp: Uses the "tstamp"-field of the pagerecord, 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

Property
special.depth
Data type
integer
Default
20
Description

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 "beginAtLevel".

special.beginAtLevel

Property
special.beginAtLevel
Data type
integer
Default
0
Description

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

Property
special.maxAge
Data type
integer +calc
Description

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

Property
special.limit
Data type
integer
Default
10
Description
Maximal number of items in the menu. Default is 10, max is 100.

special.excludeNoSearchPages

Property
special.excludeNoSearchPages
Data type
boolean
Default
0 (false)
Description
If set, pages marked "No search" are not included.

[tsref:(cObject).HMENU.special = updated]

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!