Keywords - menu of related pages
Makes a menu of pages, which contain one or more keywords also found on the current page.
Mount pages are supported.
Properties
| Name | Type | Default |
|---|---|---|
| integer /stdWrap | ||
| string |
SYS_
|
|
| integer | ||
| integer | 20 | |
| integer | 10 | |
| boolean | false | |
| boolean | ||
| string /stdWrap | ||
| string |
keywords
|
|
| string |
keywords
|
special.value
-
- Type
- integer /stdWrap
- Example
- Example: Find related pages of the current page
UID of the page for which related pages by keyword should be found.
special.mode
-
- Type
- string
- Default
SYS_LASTCHANGED
Which field in the
pagestable should be used for sorting?Possible values are:
SYS_LASTCHANGED - Is updated to the youngest time stamp of the records on the page when a page is generated.
manualorlastUpdated - Uses the field
last, which can be set manually in the page record.Updated tstamp- Uses the
tstampfield of the page record, which is set automatically when the record is changed. crdate- Uses the
crdatefield of the page record. This field is set once on creation of the record and left unchanged afterwards. starttime- Uses the
starttimefield.
special.entryLevel
-
- Type
- integer
Where in the root line the search begins.
See property entryLevel in the HMENU.
special.depth
-
- Type
- integer
- Default
- 20
Same as in section "special = updated".
special.limit
-
- Type
- integer
- Default
- 10
Maximal number of items in the menu. Default is 10, maximum is 100.
special.excludeNoSearchPages
-
- Type
- boolean
- Default
- false
If set, pages marked
No searchare not included.
special.begin
-
- Type
- boolean
special.setKeywords
-
- Type
- string /stdWrap
Lets you define the keywords manually by defining them as a comma- separated list. If this property is defined, it overrides the default, which is the keywords of the current page.
special.keywordsField
-
- Type
- string
- Default
keywords
Defines the field in the
pagestable in which to search for the keywords. Default is the field namekeyword. No check is done to see if the field you enter here exists, so make sure to enter an existing field.
special.keywordsField.sourceField
-
- Type
- string
- Default
keywords
Defines the field from the current page from which to take the keywords being matched. The default is
keyword. (Notice that special.setKeywords is only setting the page record field to search in!)
Examples
Example: Menu of related pages
The content element Menu > Related pages provided by the system
Extension EXT:fluid_styled_content is configured with a
Menu
which is based on the options of the HMENU and provides
all its properties:
# Related pages (based on keywords):
# ...
#
# CType: menu_related_pages
tt_content.menu_related_pages =< lib.contentElement
tt_content.menu_related_pages {
templateName = MenuRelatedPages
dataProcessing {
10 = menu
10 {
special = keywords
special {
value.field = pages
excludeNoSearchPages = 1
}
alternativeSortingField = title
dataProcessing {
10 = files
10 {
references.fieldName = media
}
}
}
}
}
The following Fluid template can be used to style the menu:
<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>
Example: Find related pages of the current page
lib.relatedPagesMenu = HMENU
lib.relatedPagesMenu {
special = keywords
special {
value.data = TSFE:id
entryLevel = 1
mode = manual
}
// render the menu
}