featdd / dpn_glossary

Glossary extension for TYPO3
http://typo3.org/extensions/repository/view/dpn_glossary
GNU General Public License v2.0
20 stars 29 forks source link

URL configuration #175

Closed danaron closed 2 years ago

danaron commented 2 years ago

Hi, I did try to make human readable URLs, but did not succed.

In the page configuration file config.yaml i do have this code:

DpnGlossary:
  type: Extbase
  limitToPages: 88
  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_CH.*'
        value: 'begriff'

And in the page-TSconfig, where the Plugin for detail view is i did write:

TCEFORM {
  tx_dpnglossary_domain_model_term {
    url_segment.config.previewUrl.pageUid = 88
  }
}

Any ideas, why this is not working? Thank you for your help and the great plugin! Best regards Dan

featdd commented 2 years ago

Hi @danaron,

it seems you're using an older configuration still using the widget param for the character. Please have a look into the documentation, you can find the latest example here.

Greetings Daniel

danaron commented 2 years ago

Hi Daniel, @featdd Thank you for your quick answer. When I do follow the link you mentioned, it is ecactly the same configuration, or I am wrong?

DpnGlossary:
  type: Extbase
  limitToPages: [YOUR_PLUGINPAGE_UID]
  extension: DpnGlossary
  plugin: glossary
  routes:
  - { routePath: '/{character}', _controller: 'Term::list', _arguments: {'character': 'currentCharacter'} }
  - { 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'

Thanks for clarification. Have a nice weekend Dan

featdd commented 2 years ago

Hi @danaron,

Please read and compare the configuration properly... You're using {'character': '@widget_0/character'} Current version should be this: {'character': 'currentCharacter'}

Greetings Daniel

danaron commented 2 years ago

Hi @featdd, Sorry, this was unfortunate that I did not see the change. Unfortunately it is never the less not working for me with this code. Is localMap 'de_DE.*' important. My site is in de_CH. What else could cause a problem? Sorry, not my day. Best regards Dan

featdd commented 2 years ago

Hi @danaron,

the localMap locale must be the same as defined in the site configuration. If this still doesn't work out you may have to debug the routing resolver.

The example is used a lot and should work, unfortunately I can't give you TYPO3 support beyond this extension. I still whish you a happy weekend.

Greetings Daniel

danaron commented 2 years ago

To all that are curious. It was not working because of the missing "routeEnhancers:" in the first line. This is how it works now:

routeEnhancers:
  DpnGlossary:
    type: Extbase
    limitToPages: 88
    extension: DpnGlossary
    plugin: glossary
    routes:
      - routePath: '/{character}'
        _controller: 'Term::list'
        _arguments:
          character: currentCharacter
      - routePath: '/{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_CH.*'
            value: 'begriff'
danaron commented 2 years ago

@featdd if you could add this to the documentation, it would be clear, even vor dummys like I am one ;-) Thank you for the excellent extension dpn_glossary!