DEPRECATION WARNING

This documentation is not using the current rendering mechanism and is probably outdated. The extension maintainer should switch to the new system. Details on how to use the rendering mechanism can be found here.

Logical Form

Author:Kasper Skårhøj
Created:2002-11-01T00:32:00
Changed by:dirk
Changed:2015-01-08T15:19:02
Classification:logical_form
Description:This extension is helpful, if you have to evaluate the values of a form. The form will be evaluated after sending and it will differs between a success and a failure case. The form handles the result.
Keywords:form
Author:Dirk Wildt (Die Netzmacher)
Email:http://wildt.at.die-netzmacher.de
Website:http://die-netzmacher.de
Language:en

img-1 img-2 Logical Form (logical_form) img-3

Logical Form

This extension is helpful, if you have to evaluate the values of a form. The form will be evaluated after sending and it will differs between a success and a failure case. The form handles the result.

img-4

Version: 2.0.0 - 2015-01-08

Extension Key: logical_form

Language: en

Keywords: form

Copyright 2007-2015, Dirk Wildt (Die Netzmacher), <http://wildt.at .die-netzmacher.de>

This document is published under the Open Content License available from http://www.opencontent.org/opl.shtml The content of this document is related to TYPO3 - a GNU/GPL CMS/Framework available from www.typo3.org

Introduction

What does it do?

This extension is helpful, if you have to evaluate the values of a form.

The form will be evaluated after sending and it will differs between a success and a failure case. The form handles the result.

There are two alternate workflows:

  • Disclaiming: In case of a failure there will be a failure page.
  • Confirmation: In case of a failure there will be an error message in the form.

The form will configured in typoscript. So you don't have to know anything about php but you need a little experience in configuring typoscript. If you want, the form generates mails to providers and visitors.

Features
  • A plugin with a form with an internal logic, which is evaluating values and has two possible workflows.
  • In the default mode there are a select field for countries and an input field for a city. In the default mode you have to configure nothing but the pids of the success page and the failure page.
  • If you like, the web master and the provider or the visitor of your website will get a mail with values and the result.
  • It's possible to check mail addresses if they have a wrong syntax like a missing @.
  • Full multi language support with TYPO3, configuration with typoscript.
  • The form is in Xhtml.
Requirements

Nothing.

Screenshots

((generated))

Form and Workflow

Frame1 Frame1

Frame1 Frame1

Frame1 Frame1

Plugin

Frame1 img-6

Users manual

Quick start

  • Install the extension with the extension manager.

  • Create the pages

    Disclaiming

    • Success
    • Failure
  • Insert the plugin in the page content.

  • Include static extension template

  • Configure the extension logical_form in the template setup.

Update

If you are update from Version 0.0.12 or earlier you have to load the include static template a second time. See "Configure the extension template" on page 8.

Installation

Extension Manager

Open the extension manager download the Logical Form extension (key logical_form) and install it:

Frame1

Tutorial

Default mode

You can use the logical form immediately. In the default mode the logical form has

  • a country field and
  • a city field.

The form evaluates

  • if obligated fields are filled up and
  • if the visitor is from the European Union or not.
Create pages with content

Add three pages with the following structure to your typo3 backend:

Default sample

  • Success
  • Failure

Frame1

In the page “Success” you add a text element with this content e.g.:

You are European Union!

The evaluation of the data was successful.

You can publish here everything for visitors who are from a country in the European Union like

  • Germany or
  • Spain

In the page “Failure” you add a text element with this content e.g.:

Not a member of EU

You can publish here everything for visitors who are not from the European Union because they are from

  • Switzerland or
  • USA

Add the plugin “logical form” to the page “Default sample”

Configure the extension template

Next, please add an extension template with the name “+ext logical_form”.

Frame1

Configure the template:

Insert in the field “setup” the following lines (the pids are the pids of your pages “Success” and “Failure):

plugin.tx_logicalform_pi1.pids.success = 637

plugin.tx_logicalform_pi1.pids.failure = 636

Insert in the field “include static template” the template “Logical Form (logical_form)” like in the illustration below.

Frame1

The result in the frontend

Frame1

The result in the frontend have to be the logical form like in the illustration.

Please test your logical form (look the examples above in the chapter “screenshots” on page 4):

Send the form without any value: There will be two error messages.

Send it with the values “Germany” and a city of your choice: There will be the message, that you are a member of the European Union.

Send it with the values “Switzerland” and a city of your choice: There will be the message, that you aren't a member of the European Union.

If you want to know, how to configure the logical form plugin

  • give the two further examples a trial in the tutorial below or
  • take a look in the reference on page 25 or
  • check the setup of the tx_logicalform_pi1 with the typoscript object browser.

Disclaimer with two steps

In this exercise we use the logical form in a cascading way:

We ask, if the user understand our disclaimer.

If yes we will guide our visitor to the next page, where we will ask him, if he is a member of the European Union. We will add some country fields.

img-7 Illustration 13: Page tree in the backend

We need following pages and structure: Disclaiming

  • Country
    • Success
    • Failure
  • Failure

Feel free to add the following content:

Disclaiming:DisclaimerThis is the place where you can explain what to disclaim. In the first step you can ask your visitor if he understands your explanation.

  • Country:Are you a member of EU?We want to know, if a visitor is coming from a country which is a member from the european union. If yes, we will guide him to a "success"-page. We will guide all other vistors to a "unsuccess"-page.
    • SuccessYou are European Union!The evaluation of the data was successful. You can publish here everything for visitors who are from a country in the European Union like- Germany or- Spain
    • Failure:Not a member of EUYou can publish here everything for visitors who are not from the European Union because they are from- Switzerland or- USA
  • FailureSorry, you are to stupidWe can't help you anymore.

Now we build our first own logical form.

Add the plugin logical form

Add the plugin logical form in the pages

Disclaiming and

Country

Configure the extension template of the page Disclaiming

Next, please add an extension template with the name “+ext logical_form” like in the example of “configure the extension template” on page 8.

Insert in the field “setup” the following lines (the pids are the pids of your pages “Country” (case success) and “Failure” (like the illustration on page Fehler: Referenz nicht gefunden):

#

# WORKFLOW

# ========

#

plugin.tx_logicalform_pi1.workflow = failure_page

plugin.tx_logicalform_pi1.pids.failure = 493

plugin.tx_logicalform_pi1.pids.success = 494

#

# FIELDS, WE DON'T NEED

# =====================

#

plugin.tx_logicalform_pi1.fields.country >

plugin.tx_logicalform_pi1.fields.city >

#

# FIELDS

# ======

#

plugin.tx_logicalform_pi1.fields.confirm.radio.br = 0

plugin.tx_logicalform_pi1.fields.confirm.radio.required = 1

plugin.tx_logicalform_pi1.fields.confirm.radio.value.0 = no

plugin.tx_logicalform_pi1.fields.confirm.radio.value.1 = yes

plugin.tx_logicalform_pi1.fields.confirm.radio.failure.0 = no

#

# LANGUAGE EN (DEFAULT)

# =====================

#

plugin.tx_logicalform_pi1._LOCAL_LANG.en.field_confirm = I have understand the disclaimer

plugin.tx_logicalform_pi1._LOCAL_LANG.en.legend = Confirmation

plugin.tx_logicalform_pi1._LOCAL_LANG.en.value_yes = Yes

plugin.tx_logicalform_pi1._LOCAL_LANG.en.value_no = No

plugin.tx_logicalform_pi1._LOCAL_LANG.en.submit_button_label = Send

#

# LANGUAGE DE

# ===========

#

plugin.tx_logicalform_pi1._LOCAL_LANG.de.field_confirm = Ich habe den Disclaimer verstanden

plugin.tx_logicalform_pi1._LOCAL_LANG.de.legend = Bestätigung

plugin.tx_logicalform_pi1._LOCAL_LANG.de.value_yes = Ja

plugin.tx_logicalform_pi1._LOCAL_LANG.de.value_no = Nein

plugin.tx_logicalform_pi1._LOCAL_LANG.de.submit_button_label = Weiter

The whole setup is written in the file pi1/samples/setup_disclaim_1st.txt. You can read the file with the extension manager: Frame1 Or copy the code above and paste it into your setup.

Insert in the field “include static template” the template “static (logical_form)” like in the illustration in the example of “configure the extension template” on page 8.

The Logical Form should look like this in the frontend now:

Frame1

If you choose “No” the logical form will guide you to the failure page.

If you choose “Yes” the logical form will guide you to the success page.

Now we have to configure the success page. But before we explain the used setup code.

Explanation of the setup code

The “workflow” has to possibilities:

failure_page

form

The first (“failure_page”) means, that if the values aren't the values we want (the visitor doesn't understand the disclaimer), then the visitor will guided to a page with a message.

The second (“form”) means, that the visitor will get an error message on the same page – the page with the logical form. Example for this message: Sorry, there is a mistake in your mail address.

#

# WORKFLOW

# ========

#

plugin.tx_logicalform_pi1.workflow = failure_page

The pids are the pids of your pages for success (in this example the page “Country”) and failure (like the illustration on page Fehler: Referenz nicht gefunden).

plugin.tx_logicalform_pi1.pids.failure = 493

plugin.tx_logicalform_pi1.pids.success = 494

In the default mode the logical form has two fields – country and city. We don't need it, we delete it.

#

# FIELDS, WE DON'T NEED

# =====================

#

plugin.tx_logicalform_pi1.fields.country >

plugin.tx_logicalform_pi1.fields.city >

But we need a radio button with the two values “no” and “yes”.

“fields.confirm” is the name of the field.

“fields.confirm.radio” is the Html type of the field in the form.

“fields.confirm.radio.br” has the following effect:

  • 0: There will be no line break between the values
  • 1: There will be a line break between the values

“fields.confirm.radio.required” has the following effect:

  • 0: The visitor doesn't have to fill up the field.
  • 1: The visitor has to fill up the field. There will be added an asterisk to the field name in the form automatically. There will be added the comment “Please complete fields which have an asterisk” at the bottom of the form automatically.You can edit every language expression. See Chapter “How to configure language for fields and values“ on page 20.

“fields.confirm.radio.value” is an array with the values of the radio button.

“fields.confirm.radio.failure” is an array with the values, we don't want to accept for the success case.

#

# FIELDS

# ======

#

plugin.tx_logicalform_pi1.fields.confirm.radio.br = 0

plugin.tx_logicalform_pi1.fields.confirm.radio.required = 1

plugin.tx_logicalform_pi1.fields.confirm.radio.value.0 = no

plugin.tx_logicalform_pi1.fields.confirm.radio.value.1 = yes

plugin.tx_logicalform_pi1.fields.confirm.radio.failure.0 = no

With the _LOCAL_LANG array you can configure the display of your field names and values.

If you want to determine the displayed name of the field, you have to set it in this format:

language.field_name = value

“language” has the value of the language like “en” for English or “de” for german.

“field_name” has the value “field_” and than the name of the field. In the example above we defined the displayed name of the field “confirm”:_LOCAL_LANG.en.field_confirm = I have understand the disclaimer.

If you want to determine the displayed values of a field, you have to set it in this format:

language.value_name = value

“language” has the value of the language like “en” for English or “de” for german.

“value_name” has the value “value_” and than the name of the value. In the example above we defined the displayed name of the value “yes”:_LOCAL_LANG.en.value_yes = Yes

Here you have the value for the submitbutton:

_LOCAL_LANG.en.submit_button_label = Yes

#

# LANGUAGE EN (DEFAULT)

# =====================

#

plugin.tx_logicalform_pi1._LOCAL_LANG.en.field_confirm = I have understand the disclaimer

plugin.tx_logicalform_pi1._LOCAL_LANG.en.legend = Confirmation

plugin.tx_logicalform_pi1._LOCAL_LANG.en.value_yes = Yes

plugin.tx_logicalform_pi1._LOCAL_LANG.en.value_no = No

plugin.tx_logicalform_pi1._LOCAL_LANG.en.submit_button_label = Send

Below there is the same example for german language:

#

# LANGUAGE DE

# ===========

#

plugin.tx_logicalform_pi1._LOCAL_LANG.de.field_confirm = Ich habe den Disclaimer verstanden

plugin.tx_logicalform_pi1._LOCAL_LANG.de.legend = Bestätigung

plugin.tx_logicalform_pi1._LOCAL_LANG.de.value_yes = Ja

plugin.tx_logicalform_pi1._LOCAL_LANG.de.value_no = Nein

plugin.tx_logicalform_pi1._LOCAL_LANG.de.submit_button_label = Weiter

Configuring the success page

The success page “Country” is showing the same logical form like the page “Disclaiming”.

Frame1

This isn't a surprise really, because we didn't configure the extension template of the page “Country”.

Our page “Country” should look like this:

Frame1

We have to complete the following orders:

We want to display the default logical form with the fields “country” and “city”.

We have to configure the pids of the success and failure page.

We have to delete the field confirm.

Configure the extension template

Next, please add an extension template with the name “+ext logical_form”.

Frame1

Configure the template:

Insert in the field “setup” the following lines (the pids are the pids of your pages “Success” and “Failure):

#

# WORKFLOW

# ========

#

plugin.tx_logicalform_pi1.workflow = failure_page

plugin.tx_logicalform_pi1.pids.failure = 496

plugin.tx_logicalform_pi1.pids.success = 495#

# FIELDS, WE DON'T WANT AND WE DELETE

# ===================================

#

plugin.tx_logicalform_pi1.fields.confirm >

Insert in the field “include static template” the template “static (logical_form)” like in the illustration below.

Frame1

The result in the frontend should look like this:

Frame1

Confirmation mode

This exercise demonstrate, how to create a form for ordering something:

  • We need only a success page (for confirmation) and we don't need a failure page.
  • We have to delete the default fields.
  • We have to create some fields.
  • We have to configure the mails to the provider and the visitor.
Create pages with the content and the plugin

img-8 Illustration 21: Confirmation example

Add two pages in the following structure to your typo3 backend: Confirmation

Success

Please add to the page “Confirmation”

  • this content:ConfirmationThis an example for the confirmation case.E.g. a visitor like to get a document by postal delivery. He can order the document with the form above. He will get a confirmation if he filled up every field and if there is no mistake in the mail.
  • the plugin “Logical Form”
  • and an extension template “+ext logical_form”

Please add to the page “Success” this content:

Thank youThanks for ordering our document.If you have any question please call us.* Contact (Link to your contact page)

Configure the extension template of the page Confirmation

Next, please add an extension template with the name “+ext logical_form” like in the example of “configure the extension template” on page 8.

Insert in the field “include static template” the template “static (logical_form)” like in the illustration in the example of “configure the extension template” on page 8.

Insert in the field “setup” the following lines (the pid is the pid of your page “Success”:

#

# WORKFLOW

# ========

#

plugin.tx_logicalform_pi1.workflow = form

plugin.tx_logicalform_pi1.pids.failure >

plugin.tx_logicalform_pi1.pids.success = 634

#

# MAIL TO THE CLIENT, THE VISITOR OF OUR WEBSITE

# ==============================================

#

plugin.tx_logicalform_pi1.mail.to_client = 1

plugin.tx_logicalform_pi1.mail.to_client.from.mail = name@my.provider.com

plugin.tx_logicalform_pi1.mail.to_client.from.name = my provider company

plugin.tx_logicalform_pi1.mail.to_client.bcc = dirk.wildt@think- visually.com

plugin.tx_logicalform_pi1.mail.to_client.field = mail

plugin.tx_logicalform_pi1.mail.to_client.body = mail_client

plugin.tx_logicalform_pi1.mail.to_client.signature.0 = my provider company

plugin.tx_logicalform_pi1.mail.to_client.signature.1 = my provider contact

plugin.tx_logicalform_pi1.mail.to_client.signature.2 = my provider street

plugin.tx_logicalform_pi1.mail.to_client.signature.3 = my provider zip and city

plugin.tx_logicalform_pi1.mail.to_client.signature.4 = my provider phone

plugin.tx_logicalform_pi1.mail.to_client.signature.5 = my provider mail address

#

# FIELDS, WE DON'T NEED

# =====================

#

plugin.tx_logicalform_pi1.fields.country >

plugin.tx_logicalform_pi1.fields.city >

#

# NEW FIELDS

# ==========

#

plugin.tx_logicalform_pi1.fields.mail.input.failure.0 = my.name@example.com

plugin.tx_logicalform_pi1.fields.mail.input.failure.1 = dirk.wildt @think-visually.com

plugin.tx_logicalform_pi1.fields.mail.input.default = my.name@example.com

plugin.tx_logicalform_pi1.fields.mail.input.size = 30

plugin.tx_logicalform_pi1.fields.mail.input.maxlength = 60

plugin.tx_logicalform_pi1.fields.mail.input.required = 1

plugin.tx_logicalform_pi1.fields.mail.input.mail = 1

plugin.tx_logicalform_pi1.fields.sexus.radio.br = 0

plugin.tx_logicalform_pi1.fields.sexus.radio.required = 1

plugin.tx_logicalform_pi1.fields.sexus.radio.value.0 = male

plugin.tx_logicalform_pi1.fields.sexus.radio.value.1 = female

plugin.tx_logicalform_pi1.fields.name.input.size = 30

plugin.tx_logicalform_pi1.fields.name.input.maxlength = 60

plugin.tx_logicalform_pi1.fields.name.input.required = 1

plugin.tx_logicalform_pi1.fields.street.input.size = 30

plugin.tx_logicalform_pi1.fields.street.input.maxlength = 60

plugin.tx_logicalform_pi1.fields.street.input.required = 1

plugin.tx_logicalform_pi1.fields.zip_city.input.size = 30

plugin.tx_logicalform_pi1.fields.zip_city.input.maxlength = 60

plugin.tx_logicalform_pi1.fields.zip_city.input.required = 1

plugin.tx_logicalform_pi1.fields.phone.input.size = 30

plugin.tx_logicalform_pi1.fields.phone.input.maxlength = 60

plugin.tx_logicalform_pi1.fields.phone.input.required = 1

plugin.tx_logicalform_pi1.fields.note.textarea.cols = 30

plugin.tx_logicalform_pi1.fields.note.textarea.rows = 5

plugin.tx_logicalform_pi1.fields.note.textarea.required = 0

#

# LANGUAGE EN (DEFAULT)

# =====================

#

plugin.tx_logicalform_pi1._LOCAL_LANG.en.legend = I want this document

plugin.tx_logicalform_pi1._LOCAL_LANG.en.field_mail = Mail

plugin.tx_logicalform_pi1._LOCAL_LANG.en.field_name = First and last Name

plugin.tx_logicalform_pi1._LOCAL_LANG.en.field_note = Message to the provider

plugin.tx_logicalform_pi1._LOCAL_LANG.en.field_phone = Phone

plugin.tx_logicalform_pi1._LOCAL_LANG.en.field_sexus = Gender

plugin.tx_logicalform_pi1._LOCAL_LANG.en.field_street = Street

plugin.tx_logicalform_pi1._LOCAL_LANG.en.field_zip_city = ZIP and City

plugin.tx_logicalform_pi1._LOCAL_LANG.en.mail_client_subject = Delivery of the ordered document

plugin.tx_logicalform_pi1._LOCAL_LANG.en.mail_client_text (

Dear ###VALUE_NAME###,

Thanks for ordering our document.

We will send it with postal delivery to your address:

###VALUE_NAME###

###VALUE_STREET###

###VALUE_ZIP_CITY###

You have send the following data:

###VALUES###

If there is any mistake please send the correct data.

Please visit this page and fill up the form:

###URL###

This is a mechanical message.

Best Regards

###SIGNATURE###

)

plugin.tx_logicalform_pi1._LOCAL_LANG.en.value_female = Female

plugin.tx_logicalform_pi1._LOCAL_LANG.en.value_male = Male

#

# LANGUAGE DE

# ===========

#

plugin.tx_logicalform_pi1._LOCAL_LANG.de.legend = Ich möchte das Dokument

plugin.tx_logicalform_pi1._LOCAL_LANG.de.field_mail = eMail

plugin.tx_logicalform_pi1._LOCAL_LANG.de.field_name = Vor- und Nachname

plugin.tx_logicalform_pi1._LOCAL_LANG.de.field_note = Nachricht an den Betreiber

plugin.tx_logicalform_pi1._LOCAL_LANG.de.field_phone = Telefon

plugin.tx_logicalform_pi1._LOCAL_LANG.de.field_sexus = Anrede

plugin.tx_logicalform_pi1._LOCAL_LANG.de.field_street = Straße

plugin.tx_logicalform_pi1._LOCAL_LANG.de.field_zip_city = PLZ und Ort

plugin.tx_logicalform_pi1._LOCAL_LANG.de.mail_client_subject = Versand des bestellten Dokuments

plugin.tx_logicalform_pi1._LOCAL_LANG.de.mail_client_text (

Hallo ###VALUE_NAME###,

herzlichen Dank für die Bestellung unseres Dokuments.

Wir senden Ihnen das Dokument per Post an Ihre Adresse:

###VALUE_NAME###

###VALUE_STREET###

###VALUE_ZIP_CITY###

Sie haben uns folgende Daten gesendet:

###VALUES###

Sollte in den Daten ein Fehler stecken, senden Sie uns Ihre richtigen Daten bitte ein zweites Mal.

Besuchen Sie dafür bitte folgende Seite:

###URL###

Dies ist eine automatische generierte Mitteilung.

Mit freundlichen Grüßen

###SIGNATURE###

)

plugin.tx_logicalform_pi1._LOCAL_LANG.de.value_female = Frau

plugin.tx_logicalform_pi1._LOCAL_LANG.de.value_male = Herr

The whole setup is written in the file pi1/samples/setup_disclaim_2nd.txt. You can read the file with the extension manager: Frame1 Or copy the code above and paste it into your setup.

Explanation of the setup code

We don't repeat the explanation of the example above “Explanation of the setup code” on page 11. If you didn't read it, please read and understand it now.

The workflow value is “form”, because there is only the failure case of missing data or wrong mail addresses. In this case every error should displayed with a message in the form and not in a failure page:

  • We set workflow to: form
  • We delete the value pids.failure

#

# WORKFLOW

# ========

#

plugin.tx_logicalform_pi1.workflow = form

plugin.tx_logicalform_pi1.pids.failure >

plugin.tx_logicalform_pi1.pids.success = 634

The array mail.to_client is explained in the chapter “mail” on page 21.

How to configure fields

img-9 Illustration 23: The form without language configuration

In our form we need the following fields: - mail (input)

  • sexus (radio)
  • name (input)
  • street (input)
  • zip_city (input)
  • note (input)

It is easier to understand the controlling of the Logical Form, if we don't use the language configuration.

Therefor we commented out the lines with the language configuration as shown below:

#plugin.tx_logicalform_pi1._LOCAL_LANG.en.legend = I want this document

#plugin.tx_logicalform_pi1._LOCAL_LANG.en.field_mail = Mail

#plugin.tx_logicalform_pi1._LOCAL_LANG.en.field_name = First and last Name

#plugin.tx_logicalform_pi1._LOCAL_LANG.en.field_note = Message to the provider

#plugin.tx_logicalform_pi1._LOCAL_LANG.en.field_phone = Phone

#plugin.tx_logicalform_pi1._LOCAL_LANG.en.field_sexus = Gender

#plugin.tx_logicalform_pi1._LOCAL_LANG.en.field_street = Street

#plugin.tx_logicalform_pi1._LOCAL_LANG.en.field_zip_city = ZIP and City

#plugin.tx_logicalform_pi1._LOCAL_LANG.en.value_female = Female

#plugin.tx_logicalform_pi1._LOCAL_LANG.en.value_male = Male

The following images show, how to control fields.

Field name, field type and field values

Frame1 Frame1

Frame1

Required fields

Frame1

Default values and evaluating of a mail address

Frame1 Frame1

How to configure language for fields and values

In our example we want that

  • the field “mail” will be displayed as “Mail”,
  • “sexus” as “Gender” and
  • the values “male” as “Male” and “female” as “Female”

#

# LANGUAGE EN (DEFAULT)

# =====================

#

...

plugin.tx_logicalform_pi1._LOCAL_LANG.en.field_mail = Mail

...

Frame1

Frame1 Frame1

Mail

Configuring the mail to the client – the visitor of our website

You have to configure the array “ mail.to_client...”.

You have to set the flag “mail.to_client” to 1, otherwise the server won't send any mail to a client.

#

# MAIL TO THE CLIENT, THE VISITOR OF OUR WEBSITE

# ==============================================

#

plugin.tx_logicalform_pi1.mail.to_client = 1

plugin.tx_logicalform_pi1.mail.to_client.from.mail = name@my.provider.com

plugin.tx_logicalform_pi1.mail.to_client.from.name = my provider company

plugin.tx_logicalform_pi1.mail.to_client.bcc = dirk.wildt@think- visually.com

plugin.tx_logicalform_pi1.mail.to_client.field = mail

plugin.tx_logicalform_pi1.mail.to_client.body = mail_client

plugin.tx_logicalform_pi1.mail.to_client.signature.0 = my provider company

plugin.tx_logicalform_pi1.mail.to_client.signature.1 = my provider contact

plugin.tx_logicalform_pi1.mail.to_client.signature.2 = my provider street

plugin.tx_logicalform_pi1.mail.to_client.signature.3 = my provider zip and city

plugin.tx_logicalform_pi1.mail.to_client.signature.4 = my provider phone

plugin.tx_logicalform_pi1.mail.to_client.signature.5 = my provider mail address

We hope, that the illustration below shows the relation between the mail and the controlling with the setup understandably.

With the value

plugin.tx_logicalform_pi1.mail.to_client.field = mail

you determine, in which field of the form we found the mail address of the client.

We explain in step II, how to configure the mail subject and the mail message.

Frame1 Frame1

Configuring the subject and the message of the mail to the client

You have to define

  • the subject and
  • the message text

in the language array “_LOCAL_LANG”. You are free, to define the string, which is marked yellow. But is has to be the same string like in the setup variable “.mail.to_client.body.

plugin.tx_logicalform_pi1.mail.to_client.body = mail_client

...

plugin.tx_logicalform_pi1._LOCAL_LANG.en.mail_client_subject = ...

plugin.tx_logicalform_pi1._LOCAL_LANG.en.mail_client_text = ...

In the message – the mail body – you may work with markers.

If you want use values, which the client have written in the form, there is this main principle:

###VALUE_ fieldname ###

For example:

In the form is a field called “street”, than the marker in the mail is ###VALUE_STREET###.

If you want a list of all form values, than you use the marker ###VALUES###.

There a two markers additionaly:

  • ###URL###: The Url of the form
  • ###SIGNATURE###: The setup array “.mail.to_client.signature...”

Our Example

plugin.tx_logicalform_pi1._LOCAL_LANG.en.mail_client_subject = Delivery of the ordered document

plugin.tx_logicalform_pi1._LOCAL_LANG.en.mail_client_text (

Dear ###VALUE_NAME###,

Thanks for ordering our document.

We will send it with postal delivery to your address:

###VALUE_NAME###

###VALUE_STREET###

###VALUE_ZIP_CITY###

You have send the following data:

###VALUES###

If there is any mistake please send the correct data.

Please visit this page and fill up the form:

###URL###

This is a mechanical message.

Best Regards

###SIGNATURE###

)

And the result:

Frame1 Frame1

Configuring a report mail

With Logical Form you can configure a report mail.

This mail send all datas of the form to a mail address of your choice.

Example for a configuration:

#

# MAIL REPORT I.E. TO THE ADMIN OR/AND THE PROVIDER OF THE WEBSITE

# ================================================================

#

plugin.tx_logicalform_pi1.mail.report = 1

plugin.tx_logicalform_pi1.mail.report.from.mail = webmaster@my- domain.com

plugin.tx_logicalform_pi1.mail.report.from.name = Typo3 Logical Form Report

plugin.tx_logicalform_pi1.mail.report.to.0 = henry@statistic.com

plugin.tx_logicalform_pi1.mail.report.to.1 = mary@statistic.com

plugin.tx_logicalform_pi1.mail.report.signature.0 = My company

plugin.tx_logicalform_pi1.mail.report.signature.1 = My name

plugin.tx_logicalform_pi1.mail.report.signature.2 = My street

plugin.tx_logicalform_pi1.mail.report.signature.3 = My zipcode and my city

plugin.tx_logicalform_pi1.mail.report.signature.4 = My phone

plugin.tx_logicalform_pi1.mail.report.signature.5 = my.name@my- domain.com

If you want to edit the mail content, please edit

pi1/locallang.xml (see chapter “Language” on page 31)

Avoid Spam

If you want to avoid spam use captcha.

Please install the extension Captcha Library (extension key: captcha) or freeCap CAPTCHA (extension key: sr_freecap)

Configure the use of captcha in the logical form

plugin.tx_logicalform_pi1.captcha.extkey.captcha = 1

or

plugin.tx_logicalform_pi1.captcha.extkey.sr_freecap = 1

Troubleshooting

If the logical_form extension doesn't display anything (not even an error message) check the following:

  • Did you set a “static template (from Extensions)” in your TS-template?
  • Clear all TYPO3 caches, including the temp files in typo3conf, clear your Browser cache.
Debug Mode

The Logical Form has a debug mode. In this mode the extension will print messages in your Html code. The debug mode makes sense, if you have any problem with mailing.

Turn the debug mode on:

plugin.tx_logicalform_pi1.mail.debug = 1

You will get the following output e.g.:

Frame1

Reference

plugin.tx_logicalform_pi1 properties: TS configuration.

General Settings

templateFile

Property

templateFile

Data type

string

Description

The template file for the form

Example:

plugin.tx_logicalform_pi1 {
  templateFile = typo3conf/ext/logical_form/ \
    pi1/template.html
}

Default

typo3conf/ext/logical_form/pi1/template.html

code

Property

code

Data type

string

Description

The marker for the form subpart in the template file

Example:

plugin.tx_logicalform_pi1 {
  code = FORM
}

Default

FORM

key_prod

Property

key_prod

Data type

int

Description

You need this key for encrypting input values.Integer values will be multiplied with key_prod.

See also the reference "input.send_keyed" on page 28.

Example:

plugin.tx_logicalform_pi1 {
  key_prod = 4523
}

Default

123

error.wrap

Property

error.wrap

Data type

string

Description

The wrap for an error message in the form.

The message will be displayed, if a field is required but the value of this field is an empty string.

Example:

plugin.tx_logicalform_pi1.error {
  wrap = <dd><div style="font-weight:bold; \
    font-size:small;color:red;">|</div></dd>
}

Default

<div style="font-weight:bold;font-size:small;color:red;">|</div>

required.wrap

Property

required.wrap

Data type

string

Description

The wrap for the line required in the form.The required line will be displayed, if there is any field which is required.

Example:

plugin.tx_logicalform_pi1.required {
  wrap = <dd><div style="font-size:small; \
    padding-top:2em;">|</div></dd>
}

Default

<div style="font-size:small;padding-top:2em;">|</div>

date

Property

date

Data type

string

Description

Output format for a timestamp.

A timestamp is used in a report mail.

plugin.tx_logicalform_pi1{
  date = Y-m-d H:i:s
}

Default

Y-m-d H:i:s

Captcha

captcha

Property

captcha

Data type

deprecated

Description

Please use captcha.extkey (see below)

Default

captcha.extkey.captcha

Property

captcha.extkey.captcha

captcha.extkey.sr_freecap

Data type

boolean

Description

If you want use captcha or sr_freecap, you have to activate it with a 1 (true)

You have to install the extension captcha or sr_freecap of course.

Example:

plugin.tx_logicalform_pi1 {
  captcha.extkey.captcha = 1
}

Default

0

captcha.wrap.error

Property

captcha.wrap.error

Data type

string

Description

Example:

plugin.tx_logicalform_pi1 {
  captcha.wrap.error =
             <div class="my-error-wrap">|</div>
}

Default

<div style="font-weight:bold;font-size:small;color:red;">|</div>

Workflow and Pids

debug

Property

debug

Data type

boolean

Description

Debug mode of the logical form.

Maybe you will get a helpful hint.

If you like to debug problems with mails, please see mail.debug below.

Example:

plugin.tx_logicalform_pi1 {
  debug = 1
}

Default

0

workflow

Property

workflow

Data type

string

failure_page,

form

Description

The workflow of the logical form.

failure_page: In case of a failure the visitor will be guidedto a failure page. You have to configure the setup value pids.failure!

form: In case of a failure there will be an error messagein the form.

Example:

plugin.tx_logicalform_pi1 {
  workflow = failure_page
}

Default

failure_page

pids.failure

Property

pids.failure

pids.success

Data type

integer

Description

The ids of the pages with the failure and success message.

You have to configure the value pids.success in every case!

You have to configure the value pids.failure, if your workflow (see above) is failure_page (this is the default mode).

Example:

plugin.tx_logicalform_pi1.pids {
  failure = 417
  success = 418
}

Default

General Field Settings

Settings for all field in the extension logical_form

fields.[field_name].[field_type]

Property

fields.[field_name].[field_type]

Data type

array

[field_type]:

input

textarea

radio

checkbox

select

Description

Create a field

Example for a select field:

plugin.tx_logicalform_pi1.fields.country.select {
  ...
}

Example for an input field:

plugin.tx_logicalform_pi1.fields.city.input {
  ...
}

See tables below

Default

country.select,

city.input

fields.[field_name].[field_type].required

Property

fields.[field_name].[field_type].required

Data type

boolean

Description

If the field is required the extension won't accept an empty value

The field name will be completed with an asterisk.

The last line in the form will be an information, that required fields have to be completed.

Example:

plugin.tx_logicalform_pi1.fields.country.select {
  required = 1
}

Default

fields.[field_name].[field_type].failure. x

Property

fields.[field_name].[field_type].failure. x

Data type

string

Description

Value, which shouldn't be accepted

Example:

plugin.tx_logicalform_pi1.fields.country.select {
  failure.0 = Switzerland
  failure.1 = USA
}

Default

fields.[field_name].[field_type].default

Property

fields.[field_name].[field_type].default

Data type

string

Description

Default value of a field

Example:

plugin.tx_logicalform_pi1.fields.city.input {
  default = Berlin
}

Default

Settings for an Input Field

fields.[field_name].input.size

Property

fields.[field_name].input.size

Data type

integer

Description

Html length of the input field

Example:

plugin.tx_logicalform_pi1.fields.city.input {
  size = 30
}

Default

fields.[field_name].input.maxlength

Property

fields.[field_name].input.maxlength

Data type

integer

Description

Allowed length of the value in the input field

Example:

plugin.tx_logicalform_pi1.fields.city.input {
  maxlength = 60
}

Default

fields.[field_name].input.mail

Property

fields.[field_name].input.mail

Data type

boolean

Description

If set the value of the input field have to be a valid mail address m(e.g. with an @). Otherwise there will be an error message

Example:

plugin.tx_logicalform_pi1.fields.email.input {
  mail = 1
}

Default

0

fields.[field_name].input.int

Property

fields.[field_name].input.int

Data type

boolean

Description

If set the value of the input field have to be an integer. Otherwise there will be an error message

Example:

plugin.tx_logicalform_pi1.fields.email.input {
  int = 1
}

Default

0

fields.[field_name].input.send_keyed

Property

fields.[field_name].input.send_keyed

Data type

boolean

Description

If set, this value will bey keyed in mails.

Example output in a mail:

- Sended value: 12345678

- Displayed value: ########

Output in the report mail:

- if input.int = 1 then there will be displayed: 1518518394/123

(value * key_prod, keyprod is the value after the slash)key_prod: see General Settings key_prod.

- without input.int there will be displayed 87654321/rev

Example:

plugin.tx_logicalform_pi1.fields.account_no.input {
  send_keyed = 1
}

You can configure the output for the client mail (see the below)

Default

0

fields.[field_name].input.send_keyed.start

Property

fields.[field_name].input.send_keyed.start

Data type

int

Description

Start point of the mask in the client mail.

Example for start value 3:

- Sended value: 12345678

- Displayed value: 123#####

Example:

plugin.tx_logicalform_pi1.fields.account_no.input {
  send_keyed.start = 3
}

Default

0

fields.[field_name].input.send_keyed.symbol

Property

fields.[field_name].input.send_keyed.symbol

Data type

char

Description

You can set the symbol, with which values will be substituted in the client mail

Example:

plugin.tx_logicalform_pi1.fields.account_no.input {
  send_keyed.symbol = *
}

Default

#

Settings for a Textarea

fields.[field_name].texarea.cols

Property

fields.[field_name].texarea.cols

Data type

integer

Description

Html cols of the texarea

Example:

plugin.tx_logicalform_pi1.fields.note.texarea {
  cols = 30
}

Default

fields.[field_name].texarea.rows

Property

fields.[field_name].texarea.rows

Data type

integer

Description

Html rows of the texarea

Example:

plugin.tx_logicalform_pi1.fields.note.texarea {
  rows = 5
}

Default

Settings for a Radio Button

fields.[field_name].radio.value. x

Property

fields.[field_name].radio.value. x

Data type

string

Description

Option field of a radio button

Example:

plugin.tx_logicalform_pi1.fields.sexus.radio {
  value.0 = male
  value.1 = female
}

Default

fields.[field_name].radio.br

Property

fields.[field_name].radio.br

Data type

boolean

Description

If set, then there will be a <br />-tag between the option fields

Example:

plugin.tx_logicalform_pi1.fields.sexus {
  br = 1
}

Default

Settings for a Checkbox

fields.[field_name].checkbox.value. x

Property

fields.[field_name].checkbox.value. x

Data type

string

Description

Option field of a checkbox

Example:

plugin.tx_logicalform_pi1.fields.profile.checkbox {
  value.0 = sport
  value.1 = culture
  value.2 = vacation
}

Default

fields.[field_name].checkbox.default.x

Property

fields.[field_name].checkbox.default.x

Data type

string

Description

Default value of a field

Example:

plugin.tx_logicalform_pi1.fields.profile.checkbox {
  default.0 = sport
  default.1 = vacation
}

Default

Settings for a Selectbox

fields.[field_name].select.size

Property

fields.[field_name].select.size

Data type

integer

Description

Amount of the displayed items in the option list

Example:

plugin.tx_logicalform_pi1.fields.country.select {
  size = 5
}

Default

fields.[field_name].select.value. x

Property

fields.[field_name].select.value. x

Data type

string

Description

Option value of a selectbox

Example:

plugin.tx_logicalform_pi1.fields.country.select {
  value.0 =
  value.1 = Germany
  value.2 = Spain
  value.3 = Switzerland
  value.4 = USA
}

Default

fields.[field_name].select.multiple

Property

fields.[field_name].select.multiple

Data type

boolean

Description

Enable the multiple choice of a selectbox

Example:

plugin.tx_logicalform_pi1.fields.country.select {
  multiple = 1
}

Default

General Mail Settings

mail.from

Property

mail.from

Data type

string

Description

The sender of the mail, which will send in cases of failure and success to the provider of the website and others

Example:

plugin.tx_logicalform_pi1.mail {
  from = webmaster@my-client.com
}
mail.debug

Property

mail.debug

Data type

boolean

Description

If set there is a output in Html

Example:

plugin.tx_logicalform_pi1.mail {
  debug = 1
}

Default

0

mail.charset

Property

mail.charset

Data type

string

Description

The charset for the mail

Example:

plugin.tx_logicalform_pi1.mail {
  charset = UTF-8
}

Default

iso-8859-15

Mail Settings for a Report Mail

mail.report

Property

mail.report

Data type

boolean, array

Description

Activating a report mail (you have to configure the report array).

Example:

plugin.tx_logicalform_pi1.mail {
  report = 1
}

Default

0

mail.report.from.mail,

Property

mail.report.from.mail,

mail.report.from.name

Data type

strings

Description

Sender of the report mail

Example:

plugin.tx_logicalform_pi1.mail.report {
  from.mail = webmaster@my-domain.com
  from.name = Typo3 Logical Form Report
}

Default

mail.report.to. x

Property

mail.report.to. x

Data type

string

Description

Receiver of the report mail

Example:

plugin.tx_logicalform_pi1.mail.report {
  to.0 = webmaster@my-domain.com
  to.1 = henry@statistics.com
}

Default

mail.report.signature. x

Property

mail.report.signature. x

Data type

string

Description

Signature of the report mail

Example:

plugin.tx_logicalform_pi1.mail.report {
  signature.0 = My company
  signature.1 = My name
  signature.2 = webmaster@my-domain.com
}

Default

Mail Settings for the Client Mail

mail.client

Property

mail.client

Data type

boolean, array

Description

Activating a mail to the client, the visitor, who filled up the values in the form (you have to configure the mail client array).

Example:

plugin.tx_logicalform_pi1.mail {
  client = 1
}

Default

0

mail.client.from.mail,

Property

mail.client.from.mail,

mail.client.from.name

Data type

strings

Description

Sender of the report mail

Example:

plugin.tx_logicalform_pi1.mail.client {
  from.mail = name@my.provider.com
  from.name = My provider company
}

Default

mail.client.bcc

Property

mail.client.bcc

Data type

string

Description

Comma separated list of mail addresses for a blind copy

Example:

plugin.tx_logicalform_pi1.mail.client {
  bcc = name@my.provider.com, \
          webmaster@my-domain.com
}

Default

mail.client.field

Property

mail.client.field

Data type

string

Description

The name of the field in the form, which contained the mail address of the visitor (see the mail tutorial on page 21)

Example:

plugin.tx_logicalform_pi1.mail.client {
  field = mail
}

Default

mail.client.body

Property

mail.client.body

Data type

string

Description

The name of the field for mail subject and mail message in the language configuration (see the mail tutorial on page 21)

Example:

plugin.tx_logicalform_pi1.mail.client {
  body = mailclient
}

Default

mail.client.signature. x

Property

mail.client.signature. x

Data type

string

Description

Signature of the report mail

Example:

plugin.tx_logicalform_pi1.mail.client {
  signature.0 = My provider company
  signature.1 = My provider name
  signature.2 = name@my-provider.com
}

Default

Language and translation

There are translations for some words and phrases in the file

pi1/locallang.xml

especially for

  • error_mail: "There is a mistake in your mail address ###MAIL###”
  • error_not_accepted: "The system doesn't accept this value!”
  • error_not_accepted_checkbox "The system doesn't accept one of the values!”
  • "error_not_accepted_select: "The system doesn't accept one of the values!”
  • legend: "Logical Form”
  • mail_report_subject: "Logical Form Report”
  • mail_report_text: A text with markers.

If you want to change the values,

  • you can edit locallang.xml (but maybe you will get trouble in case of updating the extension)
  • or edit the array “_Local_Lang” (recommended).

If you want to edit the array “_LOCAL_LANG” please take a look in the tutorial “How to configure language for fields and values” on page 20.

Files

Files for the configuration of language items and for documentation.

pi1/class.tx_logicalform_pi1.php

File

pi1/class.tx_logicalform_pi1.php

Description

Main PHP-class used to display the form and the confirmation. The class validates mail addresses and sends mails to logical_form and the subscriber or unsubscriber.

pi1/locallang.xml

File

pi1/locallang.xml

Description

Language file for class.tx_logicalform_pi1.php

pi1//template.html

File

pi1//template.html

Description

Template file for the form.

ext_php_api.dat

File

ext_php_api.dat

Description

API documentation of the logical_form extension.

pi1/samples/*

File

pi1/samples/*

Description

Setup code for the tutorial

Helpful suggestions

If you have helpful suggestions, feel free to contact me: Dirk Wildt (Die Netzmacher), http://wildt.at.die-netzmacher.de.

ToDo

  • Extend for tt_news categories
  • Check related tt_news

Further Information

Other extensions published by Die Netzmacher

  • img-10 +AOE Linkhandler Configurator: Configure the AOE linkhandler supported by userinterfaces. Out-of-the-box templates for cal, org, tt_news and tt_products. Don't edit page TSconfig any longer. http://typo3.org/extensions/repository/view/linkhandlerconf/
  • img-11 autositemap: A smart site-map optimised for the footer. It groups menus in columns. Great menus will get two columns. Configuration is based on TypoScript HMENU. http://typo3.org/extensions/repository/view/autositemap/
  • img-12 Browser – TYPO3 without PHP. Develop your TYPO3 extension 8 times faster! You need one line TypoScript for a result list with a search form, a record browser and an index browser. Images are wrapped self-acting. SEO, Search Engine Optimization, is integrated. http://typo3.org/extensions/repository/view/browser/
  • img-13 Caddy – the TYPO3 shopping cart. You can use it for your own needs. You need a database with products or any other items only. You can install Caddy out of the box with one mouse click – see Quick Shop below. http://typo3.org/extensions/repository/view/caddy/
  • img-13 Deal! – TYPO3 Quick Shop interface for the marketplace ebay. Manage all items with TYPO3 and publish it on ebay. Amazon is under construction. http://typo3.org/extensions/repository/view/deal/
  • img-14 Duty – collection of helpful scheduler tasks. Here: remove deprecated files from directories. http://typo3.org/extensions/repository/view/duty/
  • img-15 Flip it! offers lovely and smooth page flip transitions. It enables you to run over pages in PDF documents like in a real magazine. It is based on flash. Flipt it! can convert PDF documents to swf files automatically. http://typo3.org/extensions/repository/view/flipit/
  • img-16 Jobmarket is a catalogue with job offers. Views, the a-z-browser, the page-browser, the search, social bookmarks and a lot of other stuff can configured by the Browser plugin with the mouse. Job Market hasn't any PHP code, it should be easy to adapt it to your needs. http://typo3.org/extensions/repository/view/job_market/
  • img-17 Organiser – TYPO3 for the lobby and the organisers. Handle news, events, staff, headquarters, locations, workshops and a calendar with one extension. Sell online tickets! Install the Organiser with one mouse click! http://typo3-organiser.de/
  • img-13 Quick Shop – the fastest shop in the history of TYPO3. Install it with one mouse click! Quick Shop is based on the browser (see above) and powermail. http://typo3-quick-shop.de/
  • img-18 PDF Controller: Easy to install. Add to your HTML page the PDF-controller-button. Link from the button to the controller. Adjust the controller by mouseclicks. The PDF Controller supports CSS 3. http://typo3-pdfcontroller.de/
  • img-19 Radial Search (Umkreissuche) – Enable the browsing through your data by geo location. 'Your data must have a latitude and a longitude. Address data can geocoded automatically by the Browser - TYPO3 without PHP. http://typo3.org/extensions/repository/view/radialsearch/
  • img-19 Route – Publish your routes with GoogleMaps or OpenStreetMap. Routes have points of interest (POI). You can categorise and filter both: routes and POI. Address data can geocoded automatically. http://typo3.org/extensions/repository/view/route/
  • img-20 seo_dynamic_tag: Search Engine Optimization for the title tag, the canonical tag and the meta tags author, description and keywords. Configuration by a user interface. http://typo3.org/extensions/repository/view/seo_dynamic_tag/
  • img-21 Slick - jQuery Carousel: Fully responsive. Scales with its container. Separate settings per breakpoint. Uses CSS3 when available. Swipe enabled. Desktop mouse dragging. Infinite looping. Fully accessible. http://typo3.org/extensions/repository/view/slick/
  • img-22 TSconfig Pages and Users by extManager (extkey: tsconf): Configure the the eight most commonly used TSconfig porperties with the mouse - like page tree uids, activated extended view, activated clipboard, ... http://typo3.org/extensions/repository/view/tsconf/

Changelog

2.0.0 Maintenance * #i0001: Update for TYPO3 6.2

1.0.0 New Main Version - Change status to stable- Corporate Design Die Netzmacher GbR

0.0.13 Bugfix - There was a php warning, if a checkbox hasn't any default value. Maintenance - There is only one proper static template now.- Every dd-tag and dl-tag got a class- Empty mail fields will be now accepted, if they aren't required

0.0.12 Maintenance - We deleted a link to an empty typoscript template in ext_tables.php

0.0.10 New Feature - It's possible to choose between captcha and sr_freecap. New Feature - General debug modeImprovement- The form is XHTML-strict.

0.0.9 Bugfix - Manual: There was a syntax error

0.0.8- Bugfix - We fixed a problem with handling the subject in mails

0.0.7 Bugfix - There was a bug in the setup. Now it is possible to install this extension global too.

0.0.6 Improvement - Captcha

0.0.5 New Feature - Captcha

0.0.4 Bugfix - There was a bug with evaluating integers. We fixed it.

0.0.3 New Feature - It is possible to choose the charset in mails by typoscript

0.0.2 New Feature - We added the options- to send values of input fields in mails keyed – for bank accounts e.g.- to evaluate, if a value of an input field is an integer – for bank accounts e.g.

0.0.1 Initial release

Illustration Index

Illustration 1: Logical Form in the default mode 4

Illustration 2: Obligate fields will be evaluated 4

Illustration 3: Case 1 - visitor is member of EU country 4

Illustration 4: Case 1 - content for EU members 4

Illustration 5: Case 2 - visitor isn't a member of EU 4

Illustration 6: Case 2 - content for non EU members 4

Illustration 7: Logical Form in the typo3 backend 4

Illustration 8: Extension Logical Form 6

Illustration 9: Default example 8

Illustration 10: Default sample with the plugin and the template 8

Illustration 11: Configuration of the extension template 9

Illustration 12: The logical form in the frontend 9

Illustration 13: Page tree in the backend 9

Illustration 14: The setup code 11

Illustration 15: Your first logical form 11

Illustration 16: Page "Country" without configuration 13

Illustration 17: Page "Country" with configuration 13

Illustration 18: Default sample with the plugin and the template 14

Illustration 19: Configuration of the extension template 14

Illustration 20: Page "Country" with configuration 14

Illustration 21: Confirmation example 16

Illustration 22: The setup code 18

Illustration 23: The form without language configuration 19

Illustration 24:plugin.tx_logicalform_pi1.fields.mail...plugin.tx_l ogicalform_pi1.fields.sexus... 19

Illustration 25:plugin.tx_logicalform_pi1.fields.mail.input...plugin .tx_logicalform_pi1.fields.sexus.radio... 19

Illustration 26:plugin.tx_logicalform_pi1.fields.sexus.radio.value.0 = maleplugin.tx_logicalform_pi1.fields.sexus.radio.value.1 = female 19

Illustration 27:plugin.tx_logicalform_pi1.fields.mail.input.required = 1plugin.tx_logicalform_pi1.fields.sexus.radio.required = 1 20

Illustration 28:plugin.tx_logicalform_pi1.fields.mail.input.default = my.name... 20

Illustration 29:plugin.tx_logicalform_pi1.fields.mail.input.mail = 1 20

Illustration 30: Our form without any translation 20

Illustration 31:..._LOCAL_LANG.en.field_mail = Mail..._LOCAL_LANG.en.field_sexus = Gender 20

Illustration 32:..._LOCAL_LANG.en.value_female = Female'..._LOCAL_LANG.en.value_male = Male 20

Illustration 33:The field name of the mail address is “mail”.In the setup it's the line:plugin.tx_logicalform_pi1.fields.mail... 21

Illustration 34: The sent mail and the controlling with the setup 21

Illustration 35: Fields and values in the form 22

Illustration 36: Mail with values of the form and of the setup 22

Illustration 37: Example for Html output in the debug mode 24

Alphabetical Index

38