Zum Inhalt springen

Formhandler - Verschiedene Empfänger über Conditions

Erstellt am 13. November 2012 · Noch keine Antworten

Tags: Formhandler, Frage

aussteiger ·

Hallo zusammen,

habe ein Problem mit dem Formhandler mit dem ich langsam nicht mehr klar komme. Das Formular ist Standard. Anrede, Name, Vorname usw. und funktioniert auch soweit.

Nun möchte ich gerne eine Abfrage hineinsetzen, die das Ziel verfolgt verschiedene Empfänger anzuschreiben.

1. Drop-Downfeld: Region (Europa, Amerika, Asien)
2. Radio-Buttons: Technisch oder Komfort

Nun mein Ziel:
Drop-Down Europa + Radio-Button Technisch => Empfänger 1
Drop-Down Amerika + Radio-Button Komfort => Empfänger 2

Also sollte es doch möglich sein diese Abfrage über "conditions" zu regeln.

Hier habe ich mal mein formhandler TypoScript. Ich hoffe es ist einfach zu verstehen. Bitte nicht erschrecken falls es sehr rudimentär und nicht standardmässig aufbereitet ist.

plugin.Tx_Formhandler.settings {
  masterTemplateFile = fileadmin/templates/ext/formhandler/mailform.html
  langFile           = fileadmin/templates/ext/formhandler/mailform_lang.xml
  
  
  
  predef.default {
    
    # GENERAL CONFIGURATION
    name = Default
    formValuesPrefix = formhandler
    debug = 1
    addErrorAnchors = 0
    templateFile = fileadmin/templates/ext/formhandler/mailform.html
    
    
    # ERRORS LAYOUT
    singleErrorTemplate {
      totalWrap = |
      singleWrap = |
    }
    
    errorListTemplate {
      totalWrap = <ul>|</ul>
      singleWrap = <li class="error">|</li>
    }
    
    
    #input select country
    markers {
      countries = CONTENT
      countries {
        table = static_countries
        select {
          pidInList = 0
          orderBy = cn_short_en
          selectFields = uid,cn_iso_3,cn_short_en
          where = cn_eu_member = 0
        }
        
        renderObj = COA
        renderObj {
          #value
          10 = TEXT
          10.wrap = <option value=”|”
          10.field = cn_iso_3
          
          #selected
          20 = TEXT
          20.wrap = ###selected_country_|###>
          20.field = cn_iso_3
          
          #label
          30 = TEXT
          30.wrap = |</option>
          30.field = cn_short_en
        }
      }
    }
  }
  
  
  validators {
    1 {
      class = Validator_Default
      disable = 1
      config.fieldConf {
        salutation.errorCheck.1 = required
        prename.errorCheck.1 = required
        name.errorCheck.1 = required
        company.errorCheck.1 = required
        zipcity.errorCheck.1 = required
        region.errorCheck.1 = required
        phone.errorCheck.1 = required
        email.errorCheck.1 = required
        interest.errorCheck.1 = required
        freecapfield.errorCheck.1 = srFreecap
      }
    }
  }
  
  finishers {
    disable = 0
#    1.class = Finisher_Mail
#    1.config {
#      admin {
#        to_email = info@domain.com
#        subject = TEXT
#        subject.data = LLL:fileadmin/templates/ext/formhandler/mailform_lang.xml:email_admin_subject
#        sender_email = email
#        attachment >
#      }
#      user {
#        to_email = email
#        subject = TEXT
#        subject.data = LLL:fileadmin/templates/ext/formhandler/mailform_lang.xml:email_user_subject
#        sender_email = info@domain.com
#        attachment >
#     }
#    }
        2.class = Finisher_SubmittedOK
        2.config {
          returns = 1
        }
    
#    3.class = Tx_Formhandler_Finisher_Redirect
#    3.config {
#      redirectPage = 265
#    }
  }
}


plugin.Tx_Formhandler.settings.predef.default {
  if {
    1 {
      conditions {
        OR1 {
          AND1 = region = Amerika
          AND2 = interest = Technische Schaumstoffe
        }
        isTrue {
          finishers {
            disable = 0
            1.class = Finisher_Mail
            1.config {
              admin {
                to_email = info@domain.com
                subject = TEXT
                subject.data = LLL:fileadmin/templates/ext/formhandler/mailform_lang.xml:email_admin_subject
                sender_email = email
                attachment >
              }
              user {
                to_email = email
                subject = TEXT
                subject.data = LLL:fileadmin/templates/ext/formhandler/mailform_lang.xml:email_user_subject
                sender_email = info@domain.com
                attachment >
              }
            }
            
            3.class = Tx_Formhandler_Finisher_Redirect
            3.config {
              redirectPage = 265
            }
          }
        }
      }
    }
      
      
    2 {
      conditions {
        OR1 {
          AND1 = region = Asien&Pazifik
          AND2 = interest = Technische Schaumstoffe
        }
        isTrue {
          finishers {
            disable = 0
            1.class = Finisher_Mail
            1.config {
              admin {
                to_email = info2@domain.com
                subject = TEXT
                subject.data = LLL:fileadmin/templates/foampartner/ext/formhandler/mailform_lang.xml:email_admin_subject
                sender_email = email
                attachment >
              }
              user {
                to_email = email
                subject = TEXT
                subject.data = LLL:fileadmin/templates/foampartner/ext/formhandler/mailform_lang.xml:email_user_subject
                sender_email = info@domain.com
                attachment >
              }
            }
            
            3.class = Tx_Formhandler_Finisher_Redirect
            3.config {
              redirectPage = 20
            }
          }
        }
        
      }
    }
  }
}

Einen Teil vom Code habe ich auskommentiert. Liegt an verschiedenen Tests.

Ich hoffe, dass mir jemand helfen kann. Hänge schon einweilchen an diesem Problem. Fall jemand einen Schnippsel TS hat, das mich weiterbringen könnte würde ich mich schon freuen.

Grüsse

Kai