in2code-de / powermail_cond

Add conditions (via AJAX) to TYPO3 powermail forms for fields and pages
8 stars 23 forks source link

?type=3132 Error #39

Closed Kartoffl closed 4 years ago

Kartoffl commented 5 years ago

Hello, i use TYPO3 9.5.5, Powermail 7.3.0 and Powermail Conditions 7.0.0.

I can't get Powermail Conditions to work. I have a request form and some fields should pop up when the condition is met. But the fields are always showing and it isn't just working

The console throws me the following error: POST https://URL/index.php?id=3?type=3132 500 (Internal Server Error)

and the error in TYPO3: Core: Exception handler (WEB): Uncaught TYPO3 Exception: Argument 1 passed to In2code\PowermailCond\Controller\ConditionController::setTextFields() must be an instance of In2code\Powermail\Domain\Model\Form, null given, called in /www/htdocs/URL/typo3conf/ext/powermail_cond/Classes/Controller/ConditionController.php on line 53 | TypeError thrown in file /www/URL/typo3conf/ext/powermail_cond/Classes/Controller/ConditionController.php in line 69. Requested URL: https://URL/index.php?id=3?type=3132

The Submit Button also doesn't work when Powermail Conditions is enabled. If I disable Powermail Conditions, Powermail works just fine.

Could somebody help me to fix this problem? Thanks

Patta commented 5 years ago

@Kartoffl you need a PageTypeEnhancer for type=3132 https://docs.typo3.org/typo3cms/extensions/core/Changelog/9.5/Feature-86160-PageTypeEnhancerForMappingTypeParameter.html

Kartoffl commented 5 years ago

@Patta Oh well thanks for the reply, but I think this is too much for me, since i am really new to TYPO3. Would you mind to explain me how to achieve this? What do I need to write in the sites config.yaml?

Patta commented 5 years ago

Of course. Just add powermail_cond.json: 3132 to the map of your PageTypeEnhancer in the site config file.

Example:

routeEnhancers:
    PageTypeSuffix:
        type: PageType
        map:
            powermail_cond.json: 3132

The filename of powermail_cond.json can by anything.

Maybe @einpraegsam can adapt the docs for this issue.

Kartoffl commented 5 years ago

@Patta Ok I inserted this into my config.yaml of the site but now I get nearly the same error. Actually it is not showing ?type=3132 anymore, but instead powermail_cond.json POST https://URL/de/anfrage/powermail_cond.json 500 (Internal Server Error)

Is there anything else I need to do?

My whole config.yaml looks like this:

rootPageId: 1
base: /
baseVariants: {  }
languages:
  -
    title: Deutsch
    enabled: true
    languageId: '0'
    base: /de/
    typo3Language: de
    locale: de_DE
    iso-639-1: de
    navigationTitle: DE
    hreflang: de-DE
    direction: ''
    flag: de
  -
    title: Italienisch
    enabled: true
    languageId: '1'
    base: /it/
    typo3Language: it
    locale: it_IT
    iso-639-1: it
    navigationTitle: IT
    hreflang: it-IT
    direction: ''
    fallbackType: fallback
    fallbacks: '0'
    flag: it
errorHandling: {  }
routes:
  -
    route: ''
    type: uri

routeEnhancers:
    PageTypeSuffix:
        type: PageType
        map:
            powermail_cond.json: 3132

Thanks

Patta commented 5 years ago

Did you cleared all caches?

agendartobias commented 5 years ago

Of course. Just add powermail_cond.json: 3132 to the map of your PageTypeEnhancer in the site config file.

Example:

routeEnhancers:
    PageTypeSuffix:
        type: PageType
        map:
            powermail_cond.json: 3132

The filename of powermail_cond.json can by anything.

Maybe @einpraegsam can adapt the docs for this issue.

I works for me. TNX

einpraegsam commented 4 years ago

so, I will close this issue