Example TypoScript Setup

The following example shows all usable settings for the extension:

plugin.tx_dpnglossary {
    settings {
        pagination {
            characters = A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z
            insertAbove = 1
            insertBelow = 0
        }

        termWraps = CASE
        termWraps {
            key.field = term_type
            default = TEXT
            default {
                field = name
                dataWrap = |
                typolink {
                    ATagParams.dataWrap = title="{field:tooltiptext}" class="dpnglossary link"
                    ATagParams.dataWrap {
                        override = title="{field:name}" class="dpnglossary link"
                        override.if.isFalse.data = field:tooltiptext
                    }
                    useCacheHash = 1
                }
            }

            abbreviation {
                dataWrap = <abbr title="{field:tooltiptext}" lang="{field:term_lang}">|</abbr>
                dataWrap {
                    override = <abbr title="{field:name}" lang="{field:term_lang}">|</abbr>
                    override.if.isFalse.data = field:tooltiptext
                }
            }

            acronym {
                dataWrap = <acronym title="{field:tooltiptext}" lang="{field:term_lang}">|</acronym>
                dataWrap {
                    override = <acronym title="{field:name}" lang="{field:term_lang}">|</acronym>
                    override.if.isFalse.data = field:tooltiptext
                }
            }

            definition {
                dataWrap = <dfn title="{field:tooltiptext}" lang="{field:term_lang}">|</dfn>
                dataWrap {
                    override = <dfn title="{field:name}" lang="{field:term_lang}">|</dfn>
                    override.if.isFalse.data = field:tooltiptext
                }
            }
        }
    }
}

Configure Routing for terms and pagination

DpnGlossary:
  type: Extbase
  limitToPages: [YOUR_PLUGINPAGE_UID]
  extension: DpnGlossary
  plugin: glossary
  routes:
  - { routePath: '/{character}', _controller: 'Term::list', _arguments: {'character': '@widget_0/character'} }
  - { routePath: '/{localized_term}/{term_name}', _controller: 'Term::show', _arguments: {'term_name': 'term'} }
  defaultController: 'Term::list'
  defaults:
    character: ''
  aspects:
    term_name:
      type: PersistedAliasMapper
      tableName: 'tx_dpnglossary_domain_model_term'
      routeFieldName: 'url_segment'
    character:
      type: StaticMultiRangeMapper
      ranges:
        - start: 'A'
          end: 'Z'
    localized_term:
      type: LocaleModifier
      default: 'term'
      localeMap:
      - locale: 'de_DE.*'
        value: 'begriff'

Configure full url preview for the term slug field

Setting the detailpage uid in the tsconfig will enable the full url preview for terms slug fields:

TCEFORM {
  tx_dpnglossary_domain_model_term {
    url_segment.config.previewUrl.pageUid = [YOUR_PLUGINPAGE_UID]
  }
}