TYPO3 Powermail

Page 1

powermail

Extension Key: powermail Copyright 2005-2009, Alexander Kellner, Mischa HeiĂ&#x;mann, <Alexander.Kellner@einpraegsam.net, typo3.2008@heissmann.org> 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.com

powermail - 1


Table of Contents powermail...................................................................................................................................1 Powermail Introduction........................................................................................................................................................4 What does it do?................................................................................................................................................................4 Tested with TYPO3 version...............................................................................................................................................4 Powermail suggested (not needed – only suggested).......................................................................................................4 Known conflicts with...........................................................................................................................................................4 Screenshots...........................................................................................................................................................................5 Frontend............................................................................................................................................................................5 Frontend: Testform einpraegsam.net.................................................................................................................................7 Frontend: Mailform wunschtacho.de..................................................................................................................................8 Frontend: Just another screenshot (form with tt_content inside).......................................................................................9 Frontend: Contact form used by conject..........................................................................................................................10 Frontend: Support contact form to Zoomin Support.........................................................................................................11 Frontend: Using multiple pages via JS............................................................................................................................12 Searching for new screenshots........................................................................................................................................12 Backend Module..............................................................................................................................................................13 How to use quickly..............................................................................................................................................................14 Standard: Use IRRE........................................................................................................................................................14 Without IRRE (TYPO3 < 4.1 or IRRE deactivated)..........................................................................................................14 Small video tutorial...........................................................................................................................................................14 Plugin Configuration...........................................................................................................................................................15 Add a new content item...................................................................................................................................................15 General: Enter a header..................................................................................................................................................15 Formdata: Main settings..................................................................................................................................................16 Fields: Create new Fieldsets (pages)..............................................................................................................................17 Fields: Add fields (IRRE)..................................................................................................................................................18 Fields: Add fields (without IRRE).....................................................................................................................................20 Fields: Overview..............................................................................................................................................................21 Fields: Explanation...........................................................................................................................................................22 Sender: Sender email and subject...................................................................................................................................36 Recipients: Receiver email and subject...........................................................................................................................37 Answerpage: Thx message.............................................................................................................................................38 Access: Form access ......................................................................................................................................................38 powermail settings in the Extension Manager.................................................................................................................39 Constants for powermail....................................................................................................................................................40 Setup for powermail............................................................................................................................................................43 HTML template and markers example use........................................................................................................................48 Example for email for recipients.......................................................................................................................................48 Changing (or adding new) flexible locallang markers in any html template or RTE field:................................................48 Adding new flexible typoscript markers in any html template or RTE field:......................................................................48 Backend module..................................................................................................................................................................50 Introduction......................................................................................................................................................................50 Define your export file as you want via tsconfig...............................................................................................................51 Features................................................................................................................................................................................53 Validation of field values..................................................................................................................................................53 Saving db values to any db table.....................................................................................................................................55 Prefilling fields..................................................................................................................................................................57 Value manipulation..........................................................................................................................................................58 T3 Link syntax in labels....................................................................................................................................................59 Let the user decide if he wants a confirmation mail or not...............................................................................................60 Fighting spam..................................................................................................................................................................61 Integrate captcha to your form.........................................................................................................................................61 Add new field: Selectorbox with values from database....................................................................................................63 FAQ.......................................................................................................................................................................................64 I need help/support with this plugin!.................................................................................................................................64 How can I prefill some fields?..........................................................................................................................................64 Error in backend “Unknown type: inline” - what to do?....................................................................................................64 How can I overwrite the locallang translations / How can I add a new locallang marker.................................................64 How can I use validation of fields per Javascript?...........................................................................................................64 JavaScript check don't work - why?.................................................................................................................................64 How can a style my form?................................................................................................................................................65 HTML Validation vailed....................................................................................................................................................65 How can I choose my own html code instead of the automatic html generation..............................................................65 I want a select box in frontend where the user can choose the receiver of the form.......................................................65 I will check some fields (with php) if the value is an email or an URL..............................................................................66 I want to use captcha but no captcha field is shown........................................................................................................66 Onetime filling solve all my problems...............................................................................................................................66 Countryselector dropdown without value (Empty field cn_short_en ...)...........................................................................66 There is a problem with content elements like text/image / dividers2tab problem...........................................................66 I cannot add fields............................................................................................................................................................66 Dynamic text on answer page .........................................................................................................................................66 powermail - 2


Include google searchword in mail...................................................................................................................................67 Dynamic date in a dropdown field ...................................................................................................................................67 CSS corner...........................................................................................................................................................................68 Add a default CSS...........................................................................................................................................................68 How to get labels and fields in two columns with css.......................................................................................................69 How to get two columns...................................................................................................................................................70 Developers corner...............................................................................................................................................................71 Database relation model..................................................................................................................................................71 Hooks in powermail..........................................................................................................................................................72 Todos ...................................................................................................................................................................................75 Bugfixes...........................................................................................................................................................................75 Features...........................................................................................................................................................................75 Request............................................................................................................................................................................75 Changelog ...........................................................................................................................................................................76 Additional links....................................................................................................................................................................86

powermail - 3


Powermail Introduction What does it do?

Powermail is a powerful and – in addition – a very easy mailform extension with IRRE technics in backend and a high flexibilty for the users. You can very easily define your form fields in the backend and get an output without html knowledge. Emails with html content or plaintext are also possible. Powermail offers many features like automatic database storing as XML (and additional database storing to any db table) for every page. Individual Excel and CSV export possible in own backend modul. Different HTML templates and RTE fields in backend for sender (email), receiver (email), form, fields, thx- and error message. Powermail can send mails to more fe- or be-users or to only one email address, field values can be prefilled (e.g. from logged in fe_user) and all datas will be stored in the current user session (so the user can come back later and finish form filling) A javascript validation (mootools or prototype) checks values of fields, simple define in backend what to check (check for mandatory, numbers only, email address, URL, etc..) You can validate (with php) every field value (auto or regulare expressions). It's possible to select the mail receiver in frontend. You can use captcha, sr_freecap, jm_recaptcha, wt_calculating_captcha or wt_spamshield against spam in your forms. Powermail offers morestep forms (php or javascript if wanted) and works with date2cal and static_info_tables or offers information from geoip and many more... Powermail offers many features to extend powermail (hooks, ts objects and userfuncs, debugoutput, etc...) And we tried to offer all this in a very easy way. Editors can create complex mailforms without html knowledge.

Tested with TYPO3 version ●

TYPO3 3.8

TYPO3 4.0

TYPO3 4.1

TYPO3 4.2

Powermail suggested (not needed – only suggested) ●

static_info_tables (and _de, _fr, _da, etc...)

date2cal (tested with 7.0.6)

powermail_optin

powermail_mul

powermail_frontend

powermail_cond

wt_spamshield

wt_directory

wt_dynamictarget

wt_carmarket

geoip

xajax

jm_recaptcha

wt_calculating_captcha

Known conflicts with ●

Dbal

Javascript conflict: mootools extensions (if prototype and mootools should work on the same page)

powermail - 4


Screenshots Frontend Frontend: Show Form

Frontend: Form validation failed

powermail - 5


Frontend: Confirmation

Frontend: Thx message to user

powermail - 6


Frontend: Testform einpraegsam.net Example: http://www.einpraegsam.net/fachgebiete/typo3-extensions/powermail.html

powermail - 7


Frontend: Mailform wunschtacho.de Example: http://www.wunschtacho.de/support/kontakt.html

powermail - 8


Frontend: Just another screenshot (form with tt_content inside)

powermail - 9


Frontend: Contact form used by conject

Example: http://www.conject.com/de/unternehmen/kontakt.html

powermail - 10


Frontend: Support contact form to Zoomin Support

Used with wt_calculating_captcha to fight spam

powermail - 11


Frontend: Using multiple pages via JS

Searching for new screenshots Do you have a cool homepage with powermail inside? If you want to support powermail, just send us a screenshot or write me an email: alexander.kellner@einpraegsam.net

powermail - 12


Backend Module Backend: Powermail list

Backend: Define some fields

powermail - 13


How to use quickly Standard: Use IRRE ●

Import from online repository

Reload backend (you will see a new item in the menu “Powermail”)

Enter a new page record on any normal page and choose the powermail plugin (see below for a detailed manual), there you can define your fieldsets and fields

That's all!

NOTE: If you want to use IRRE, ensure that your server provides long POST variables (maybe it's useful to increase POST memory size on the server)

Without IRRE (TYPO3 < 4.1 or IRRE deactivated) ●

Import from online repository

Reload backend (you will see a new item in the menu “Powermail”)

Enter a new page record and choose the powermail plugin (without IRRE you cannot enter some fieldsets or fields)

Add one or more new content elements to the page: fieldset (set relation to the powermail plugin)

Add one or more new content elements to the page: field (set relation to the fieldset)

That's all!

Small video tutorial

http://www.einpraegsam.net/fachgebiete/typo3-extensions/powermail-video.html

powermail - 14


Plugin Configuration Add a new content item

General: Enter a header

This fields are similar to the standard text plugin (header, start and stop time, frame, language...) (see TYPO3 documentation for more information)

powermail - 15


Formdata: Main settings

Formtitle: Enter a title for the whole form (only used intern)

Save mails in page: You can choose a page where your mails should be saved (can also set via constants)

Activate confirmation page: If checked there will be a confirmation page after form-submit (like: are your values ok?)

Multiple steps: ●

Single step: The whole form is shown on one page (All fieldsets will be shown)

Multiple steps (JS): Each fieldset (see below) is an own page. Switch between pages via Javascript

Multiple steps (PHP): Each fieldset (see below) is an own page. Swich between pages via HTML/PHP

powermail - 16


Fields: Create new Fieldsets (pages)

Create new Fieldsets: You can create more pages (fieldsets), if you want to use the moresteps function. Every step is a fieldset.. It's also usefull to show fields separated in different fieldsets on one page – so you can use more than only one fieldset. NOTE: You need to choose min. 1 fieldset for every form.

Preview: This iframe previews the your frontend at once, so you can see your changes. NOTE: You can deactivate this iframe in the extension manager (maybe faster working possible)

powermail - 17


Fields: Add fields (IRRE)

Fieldset Title: Enter a title for your fieldset

Fieldset Hide: You can disable the complete fieldset if you want

Fieldset Starttime: Enter a starttime for the complete fieldset

Fieldset Endtime: Enter a stoptime for the complete fieldset

Fieldtype: Choose any fieldtype (textfield, textarea, selectbox, checkbox, radiobutton, submit, reset, text, pagecontent, html, password, file upload, hidden, datetime, date, time, button, graphicsubmit, countryselect) / NOTE: See a detailed description below

Create new Fields: You have to enter your fields (like name and email) powermail - 18


Field Title: Enter a title for your field (title is listed as form label)

Field Hide: You can disable the current field

Field Starttime: Enter a starttime for this field

Field Stoptime: Enter a stoptime for this field

Settings (Text field) Size: If you want to enter a size. Alternative you can set the width and height via CSS

Settings (Text field) Max. Length: Set max. length for textfiels

Settings (Text field) Read only: Field is set to read only

Settings (Text field) Mandatory field: Field is obsolete

Settings (Text field) Default value: Choose a value to prefill the textfield

Settings (Text field) Validate this field for: You can activate a js validation (see below)

Settings (Text field) Name for Templates: If you want to use this value in any template, use this code

Settings (Text field) Field example: There is an example picture of the current field

Description: Enter an optional description to show a css tooltip in frontend or an additional label NOTE: CSS tooltip will be used if you choose the default css template (include via static templates)

Fill out this field with fe_user field: Prefill field (if fe_user is logged in) with any data from fe_user / You can set the allowed fe_user fields via Ext Manager

NOTE: Different fields have different setting possibilities (see below for details)

powermail - 19


Fields: Add fields (without IRRE)

If IRRE is disabled (TYPO3 < 4.1) or manually, you have to add the relation manually: ●

Add a new content element (powermail) if not yet done

Use “create new record” to add a fieldset manually (enter the relation to the powermail content on the same page)

Use “create new record” to add a field manually (enter the relation to the powermail fieldset on the same page)

NOTE: Different fields have different setting possibilities (see below for details)

powermail - 20


Fields: Overview Title:

Explanation:

Example Output:

Category:

Textfield

Simple text fields (one line)

<input type=”text” />

STANDARD

Textarea

Text fields with more lines

<textarea>text</textarea>

STANDARD

Select box

Selector box (dropdown)

<select><option>1</option></select>

STANDARD

Checkbox

Checkbox

<input type=”checkbox” />

STANDARD

Radio Button

Radio buttons

<input type=”radio” />

STANDARD

Submit Button

Submit button

<input type=”submit” />

STANDARD

Captcha Request

Captcha picture with input field to validate a human entry (captcha or sr_freecap needed)

<img src=”captcha.php” /><input type=”text” />

EXTRA

Reset Button

Reset buttons

<input type=”reset” />

EXTRA

Show some text

Enter a text and show it in the frontend

Text blabla

EXTRA

TYPO3 page content

Show any TYPO3 page content

<p class=”bodytext”>blabla</p>

EXTRA

Enter your own html code

Enter your html code

<span style=”color: red”>bla</span>

EXTRA

Password field

Password field

<input type=”password” />

EXTRA

File upload

Standard upload field for files

<input type=”file” />

EXTRA

Hidden field

Hidden value

<input type=”hidden” />

EXTRA

Date and time field Text field with a javascript calendar

<input type=”text” /><script ...>...</script>

EXTRA

Date field

Text field with a javascript calendar

<input type=”text” /><script ...>...</script>

EXTRA

Button

Simple a button without a function (maybe usefull for a javascript)

<input type=”button” />

EXTRA

Graphic as submit

Submit Image

<input type=”image” />

EXTRA

Country selection

Selector box with countries (static_info_tables needed)

<select><option>Germany</option>...</select> EXTRA

Add typoscript object

Output any value from your typoscript

Any value from typoscript

EXTRA

Multiple upload

Multiple upload fields are part of the extension powermail_mul (enables upload of more files)

<input type=”file” />...

EXTENSIO NS

powermail - 21


Fields: Explanation Fields: Add textfield

Size: Set field size (size=””) - if you want you can activate style for input fields via constants (style=”width: px”)

Max. Lengh: Set maximum length of signs in this field (maxlength=””)

Read only: Check to be a read only field (readonly=”readonly”)

Mandatory field: This field is a needed field – no db and no email without this field (check with JavaScript and PHP)

Default value: Prefill field with a value (value=””)

Validate this field for: This is a javascript validation –

check for email addresses (like test@test.com)

check for URL (like http://www.test.de)

check for digits only (like 3.6)

check for digits without comma and point (like 3)

check for letters only (a-z)

check for letters and digits only (a-z and 0-9)

Name for Templates: If you want to use this value in any template, use this code

Field example: You will see a picture example of the chosen field

powermail - 22


Fields: Add textarea

Number of columns: Set columns (cols=””) - if you want you can activate style via constants (style=”width: px;”)

Number of rows: Set rows (rows=””) - if you want you can activate style via constants (style=”height: px;”)

Read only: Set field to a read only field (readonly=”readonly”)

Mandatory field: This field is a needed field – no db and no email without this field

Default value: Prefill field with a value (<textarea>My value</textarea>)

Name for Templates: If you want to use this value in any template, use this code

Field example: You will see a picture example of the chosen field

powermail - 23


Fields: Add selectbox

Enter your options: Every line is a new option for the selececterbox like red, green and blue / - If you want different label and values, you can write: label | value / - If you're going to use the same label and value, you can write: value

Size: Set field size (size=””)

Multiple seletc allowed: Allow more than one value to select (multiple=”multiple”)

Mandatory field: This field is a needed field – no db and no email without this field

Name for Templates: If you want to use this value in any template, use this code

Option examples for selectorbox Line Example for options

Explanation of left example (html code in frontend)

1

Red

<option value="red">red</option>

2

Red | 1

<option value="1">Red</option>

3

Blue |

<option value="">Blue</option>

4

Black | black | *

<option value="black" selected="selected">Black</option>

5

White | | *

<option value="" selected="selected">White</option>

powermail - 24


Fields: Add checkbox

Enter your options: Every line is a new option for the selececterbox like red, green and blue / - If you want different label and values, you can write: label | value / - If you're going to use the same label and value, you can write: value

Mandatory field: This field is a needed field – no db and no email without this field

Name for Templates: If you want to use this value in any template, use this code

Option examples for checkboxes Line Example for options

Explanation of left example (html code in frontend)

1

Red

<label>Red</label><input value="Red" />

2

Red | 1

<label>Red</label><input value="1" />

3

Blue |

<label>Blue</label><input value="" />

4

Black | black | *

<label>Black</label><input value="black" checked="checked" />

5

White | | *

<label>White</label><input value="" checked="checked" />

powermail - 25


Fields: Add radiobutton

Enter your options: Every line is a new option for the selececterbox like red, green and blue / - If you want different label and values, you can write: label | value / - If you're going to use the same label and value, you can write: value

Mandatory field: This field is a needed field – no db and no email without this field

Name for Templates: If you want to use this value in any template, use this code

Option examples for radiobuttons Line Example for options

Explanation of left example (html code in frontend)

1

Red

<label>Red</label><input value="Red" />

2

Red | 1

<label>Red</label><input value="1" />

3

Blue |

<label>Blue</label><input value="" />

4

Black | black | *

<label>Black</label><input value="black" checked="checked" />

5

White | | *

<label>White</label><input value="" checked="checked" />

powermail - 26


Fields: Captcha request

Description: Write your own description in front of the captcha field

Name for Templates: If you want to use this value in any template, use this code

Field example: You will see a picture example of the chosen field

NOTE: First of all you have to install sr_freecap, captcha, jm_recaptcha or wt_calculating_captcha and choose (via constants) which one should be used (Standard: sr_freecap)

Fields: Add submitbutton

Field example: You will see a picture example of the chosen field

NOTE: To enter the label (value) of the button, use the label of the field

powermail - 27


Fields: Add resetbutton

Refresh page and clear whole session: Use this checkbox if a user clicks the button, the page will be refreshed without session values

Field example: You will see a picture example of the chosen field

NOTE: To enter the label (value) of the button, use the label of the field

Fields: Add text

Default value: Enter your Text here (you can define which html signs are allowed via ts constants)

Send this content via email: If you want to send this content via email, check this

Field example: You will see a picture example of the chosen field

Name for Templates: If you want to use this value in any template, use this code

NOTE: Send this content via email is not yet finished programed at this time!

powermail - 28


Fields: TYPO3 pagecontent

Default value: Choose any tt_content uid to show in frontend

Name for Templates: If you want to use this value in any template, use this code

Field example: You will see a picture example of the chosen field

Fields: HTML code

Default value: Enter your HTML code here

Name for Templates: If you want to use this value in any template, use this code

Field example: You will see a picture example of the chosen field

NOTE2: Maybe removeXSS disables all features – you can disable this function via constants

powermail - 29


Fields: Add a password field

Size: Set field size (size=””) - if you want you can activate style via constants (style=”width: px;”)

Max. Lengh: Set maximum length of signs in this field (maxlength=””)

Read only: Set field to a read only field (readonly=”readonly”)

Mandatory field: This field is a needed field – no db and no email without this field

Field example: You will see a picture example of the chosen field

Name for Templates: If you want to use this value in any template, use this code

NOTE: Password fields are described in selfhtml.org

Fields: Upload field

Size: Set field size (size=””) (we suggest you to use CSS for field width)

Mandatory field: This field is a needed field – no db and no email without this field

Name for Templates: If you want to use this value in any template, use this code

Field example: You will see a picture example of the chosen field

NOTE: You can set the upload folder via constants (see below) – only the filename will be written

Fields: Hidden field

Default value: Set your value for this field (value=””)

Name for Templates: If you want to use this value in any template, use this code

NOTE: Hidden fields are useful, if you want to send a time or the user ip or anything to the receiver. You can add some hidden fields and fill them via ts (how to fill fields via ts is descripted below in this manual)

powermail - 30


Fields: Date and Datetime field

NOTE: This fields are only supported if you have installed the extension date2cal!

Default value: Set a default value (you can use the date2cal icon for better writing in backend and frontend

Size: Set field size (size=””) (we suggest you to use CSS for field width)

Read only: Set field to a read only field (readonly=”readonly”)

Mandatory field: This field is a needed field – no db and no email without this field

Name for Templates: If you want to use this value in any template, use this code

Field example: You will see a picture example of the chosen field

Fields: Button field

Default value: Set a default value

Note: Button fields are without any function (if you don't use Javascript with this)

Field example: You will see a picture example of the chosen field

Note: JS implementation is not finished programed at this time

powermail - 31


Fields: Graphic submit field

Grafic source: Enter a source for the graphic submit button (like fileadmin/test.jpg)

Alternative Text for image: use the alt tag (alt=””)

Field example: You will see a picture example of the chosen field

NOTE: Imagebuttons are described in selfhtml.org

powermail - 32


Fields: Countryselect field

Preselect country: Select one country to be preselected in frontend

Only show this countries: If you chose some countries – ONLY this countries will be shown

Show list without this countries: Show whole list without this selected countries (Don't works with “Only show this countries”)

Mandatory field: Make this field as a mandatory field

Add Countryzone select: Add countryzone in addition if chosen country has countryzones (install Extension xajax before!)

Name for Templates: If you want to use this value in any template, use this code

Field example: You will see a picture example of the chosen field

NOTE1: This fields are only supported if you have installed the extension static_info_tables! powermail - 33


â—?

NOTE2: If you want a localized version, you can use (e.g.) static_info_tables_de (or fr etc...) (TS example: config.language = de for staticinfo_tables_de)

â—?

NOTE3: You can use utf8_encode or utf8_decode via constants

powermail - 34


Fields: Typoscript field

Typoscript object: enter an typoscript element for your output (define this element via typoscript setup)

Field example: Example for a typoscript setup

NOTE: You can use every object from typoscript for this kind of fields (maybe it's interesting to add a userfunc for some special fields, etc...)

.field enables some values from powermail: Name

Description

Example

uid

UID of current powermail field if you want to use this uid in an userFunc

33

label

Label of current powermail field (which was set in the backend)

Function

ttcontent_uid UID of content element if you need this uid in your userFunc

511

Example for using in your own userFunc: lib.Func = USER lib.Func.userFunc = yourclass->yourfunction # give values to userFunc lib.Func.userFunc.value1 = staticvalue lib.Func.userFunc.value2.field = uid lib.Func.userFunc.value3.field = label

powermail - 35


Sender: Sender email and subject

Senders email address: Choose any of your fields to mark as sender email (This is needed to send an email to the sender, This field will be checked if the value is really an email address, If empty default sender E-Mail will be used – see constants)

Senders name: Choose some of your fields (e.g. firstname and lastname) to mark as sender name NOTE: If you choose more than only one field, fields will seperated with space NOTE2: If empty senders E-Mail will be shown as name

Subject for sender's mail: Choose any email subject / NOTE: You can use markers in email subject to get a subject like “Thank you Alex for your mail”

Email-Text for sender: You can use this RTE to write the mail content for the sender

NOTE: This RTE is substituted with tmpl_emails.html / You can use all markers in the RTE and the HTML template!

powermail - 36


Recipients: Receiver email and subject

Subject for recipient's mail: Choose an email subject for the receiver / NOTE: You can use markers in email subject to get a subject like “New mail from Alex” / NOTE2: Dynamictyposcript enabled in email subject (see information below)

Recipient: Enter some email receivers (separated with comma, semicolon or with a new line) / - If you want to enter a sender name, just write: name \n email1 \n email2 \n email3 ... / - You can also use markers in this field instead of an email: test@test.de, ###UID3### / - Dynamictyposcript enabled in email subject (see information below)

Table of recipients: Choose any database table, if you want to send to one or more (e.g. Backend or Frontend) users

Recipients from upper table: If you have chosen any db table, select some email addresses

Alternative SQL-Query: You can enter an own SQL query to get your own email addresses - Example: SELECT email FROM fe_users WHERE pid = 12 - You can also use markers in the query like SELECT email FROM fe_users WHERE uid = ###UID5### - Another example: SELECT email FROM tt_address WHERE uid IN (###UID3###) - Not allowed strings: UPDATE, TRUNCATE, DELETE, INSERT, REPLACE, DO, HANDLER, LOAD, ALTER, CREATE, DROP, RENAME, DESCRIBE, USE, BEGIN, COMMIT, ROLLBACK, LOCK, SET, REVOKE, GRANT

Email-Text for receiver: You can use this RTE to write the mail content for the receiver

NOTE: This RTE is substituted with tmpl_emails.html / You can use all markers in the RTE and the HTML template!

NOTE2: Priority of recipient fields: Recipient, Table choose, SQL query

powermail - 37


Answerpage: Thx message

Response Text: This text is shown after submit

Auto-redirect after confirmation-page: You can forward the user after submit to any intern or extern URL or file (instead of using the message)

NOTE: This RTE is substituted with tmpl_thx.html / You can use all markers in the RTE and the HTML template!

Access: Form access

Similar to the default content element text: Hide, start, stop, access (see TYPO3 documentation for more information)

powermail - 38


powermail settings in the Extension Manager Property:

Description:

Default

Data type:

useIRRE

Inline Relational Record Editing (IRRE) to enter your fieldsets and fields just by opening only one content. If you want to use the listview and manually enter the relation between tt_content and fieldsets and fields you can disable IRRE (IRRE is only activated if you're using TYPO3 > 4.1)

1

boolean

usePreview

Preview window active: Activate frontend preview window under field definitions (iframe with frontend view of current page). Deactivate for a faster work with powermail.

1

boolean

TabDividers

Activate tab dividers: Powermail uses tab dividers in backend so every 1 category seems to be a new site (like General, Formdata, Fields, Sender, Recipients, Answerpage and Access). You can disable tabdividers if you want to show all stuff on only one page or if there are problems with tab dividers and other extensions.

boolean

feusersPrefill

A dropdown is shown in the backend which enables to prefill any field with the value of a current logged in feuser. You can increase or decrease the fe_user field values in the dropdown menu. Just use the wanted fieldnames of the fe_user table in a comma-separated list.

name, address, text telephone, fax, email, zip, city, country, www, company

disableIPlog

Deactivate IP logging: If you don't want to save the sender IP address in the database, you can use this checkbox.

0

boolean

disablePMRealU rlConfig

Deactivate config for Realurl: Powermail uses an automatic realurlconf array for type=3131. You can disable this feature if you want to use your own configuration or you don't need a realurl configuration. (see ext_localconf.php for configuration details)

0

boolean

disableStartSt op

Deactivate Start- and Stoptime: If there are problems with adding fields, this could be caused by date2cal. You can disable start- and stoptime for fields and fieldsets with this flag.

0

boolean

powermail - 39


Constants for powermail

You can change your constants with the constant editor Property:

Description:

Default

Data type:

template.formWrap

Template File formwrap: HTML-template file for formwrap

EXT:powermail/templates/tmpl_for file mwrap.html

template.fieldWrap

Template File fieldwrap: HTML-template file for fieldwraps

EXT:powermail/templates/tmpl_fie file ldwrap.html

template.thxMessage

Template File thx-message: HTML-template file for thx message after submit

EXT:powermail/templates/tmpl_th x.html

file

template.emails

Template File emails: HTML-template file for emails messages (sender and receiver)

EXT:powermail/templates/tmpl_e mails.html

file

template.confirmation

Template File confirmation: HTML-template file to change html code of the confirmation page

EXT:powermail/templates/tmpl_co file nfirmation.html

template.all

Template File ALL marker: HTML-template file if you want to use the marker ###POWERMAIL_ALL### here you can set the HTML code for each line

EXT:powermail/templates/tmpl_all file .html

template.mandatory

Template File mandatory: HTML-template file for mandatory page (if any mandatory field was not filled)

EXT:powermail/templates/tmpl_m andatory.html

css.MultipleJS

Multiple JS CSS: CSS file for multiple page via JS (see EXT:powermail/css/multipleJS.css file EXT:powermail/css/multipleJS.css for an example)

template.multiple JS

Template File multiple: HTML-template file for multiple pages (see EXT:powermail/templates/tmpl_multiplejs.html for an example)

EXT:powermail/templates/tmpl_m ultiplejs.html

file

allow.email2receiver

Email to receiver active: You can disable emails to receiver

1

boolean

allow.email2sender

Email to sender active: You can disable confirmation emails to sender

1

boolean

allow.dblog

Log every mail in db: Disable logging, if you want only to get mails

1

boolean

PID.dblog

PID where to save logfiles: Enter a Page ID where the form values should be saved to the db (empty: same PID as form PID)

file

boolean

emailformat.recipient_ Receivermail HTML or Plain: If you use this value, mail emails to the receiver will be send in html or plaintext or both formats (both, html or plain)

both

text

emailformat.sender_mai Sendermail HTML or Plain: If you use this value, l emails to the sender will be send in html or plaintext or both formats (both, html or plain)

both

text

enable.unique

Onetime filling: Checks if a field has already this entry (maybe email address), IP check is also possible if ip addresses will be logged) - (e.G. uid11,ip checks for unique IP and unique entry in field uid11)

email.noreply

Standard sender address: This email address is important, if no sender field was chosen in the backend, so this email address will be used for the sender (###DOMAIN### will be replaced with current domain like test.com)

noreply@###DOMAIN###

text

email.checkMX

Check MX record of sender mail: This is a small test, if senders email address exists (MX record check of domain)

1

boolean

email.overwritesender

E-Mail sender address: If you add an email address in this field, this email address will be used for the user mail as senderemail and returning email address. Normally the main receiver address is used as sender for the returning mail, but you can overwrite this if you want (e.G. mail@mail.com) Note - if you don't use a correct mail address, this field will be ignored!

hiddenfields.show

Don't show hiddenfield values: Show or hide values of hiddenfields on recipient mail, confirmation mail to sender, thx message page, confirmation message page, mandatory page (default 1,0,0,0,1)

1,0,0,0,1

text

markerALL.hideLabel

Hide label if empty value: This option hides labels if its value is empty in marker ###POWERMAIL_ALL###

0

boolean

boolean

text

powermail - 40


Property:

Description:

Default

Data type:

markerALL.notIn

Exclude fields from marker ALL: Exclude some fields from marker ###POWERMAIL_ALL### (e.g.: ###UID14###,###UID22### or UID14,UID22)

form.method

Form method: use post or get as post format (details see on selfhtml.org)

post

text

format.datetime

Frontend datetime format if datetime field is in use (only needed if you use the extension date2cal)

%H:%M %d-%m-%Y

text

format.date

Frontend date format if date field is in use (only needed %d-%m-%Y if you use the extension date2cal)

text

label.allowTags

Allowed tags in labels: Allow some tags for label fields

<p><br><b><strong><a>

text

html.removeXSS

RemoveXSS for html fields: (de)activate security function to disable Cross Site Scripting with the html field (removeXSS on or off)

1

boolean

countryselect.charset

Charset for countryselector: You can use the php functions utf8_encode or utf8_decode to change the countryselector output

description.wrap

Description wrap: Define the wrap for the field descriptio to enable a css tooltip or simply a text, etc...

<a href="#"><img text src="/typo3conf/ext/powermail/img /icon_info.gif" alt="Description" class="icon icon_info" style="border: none;" /><dfn>| </dfn></a>

mandatory.symbol

Add symbol for mandatory fields: If any field is a mandatory field, add this at the end of the label

*

text

mandatory.wrap

Wrap mandatory symbol: You can wrap the mandatory symbol with any html code

<span class="powermail_mandatory">| </span>

text

captcha.use

Use captcha extension: If you have installed sr_freecap sr_freecap and captcha, you can select which extension should be used (sr_freecap, captcha, recaptcha, wt_calculating_captcha)

pagebrowser.wrap

Wrap pagebrowser: If you use multiple pages (PHP), you can show the current page like 1 of 3

<p wrap class="powermail_pagebrowser">| </p>

upload.folder

Folder for uploaded files: If you are using min. one upload field in frontend, you can change the folder where the uploaded file is safed

uploads/tx_powermail/files/

upload.file_extensions Allow files for upload: If you are using min. one upload field in frontend, you can set the allowed extension of this files

text

options[,utf8_e ncode,utf8_de code]

option

text

jpg,gif,png,tif,txt,doc,xls,sxw,html,s text wf

upload.filesize

Allow filesize for upload: If you are using min. one 1000 upload field in frontend, you can set the allowed filesize of the files (in kB)

int

upload.attachment

Upload and attach: If checked, all files will be sent as an attachment to the receiver (if disabled, files will only stored on server)

1

boolean

clear.session

Clear Session: Check if session should be cleared after 0 submit (emails sent)

boolean

libraryToUse

Javascript Library: Set to either "mootools" or "prototype" to choose a javascript library for frontend validation (choose mootools, if you already use an extension which use mootools on the same page)

prototype

options[mooto ols,prototype]

js.mandatorydivclass

Mandatory JS DIV class: Enter your own css class for the mandatory javascript div layer (div layer which is shown, if a field was not filled, etc...)

powermail_mandatory_js

text

js.onfocus

OnFocus JavaScript: (De)activate onfocus javascript in 1 fields - removes standard value of (e.g. text-) fields onclick, so the user can click and begin to write

boolean

field.checkboxJS

Hiddenfields for checkboxes: (De)activate the hiddenfields for checkboxes. If only checkboxes are in use, there is a problem to enable a checkbox, submit, go back and deaktivate checkbox and submit again the value ist still set. To fix this, you can use a JavaScript with hiddenfields (set by default).

boolean

1

powermail - 41


Property:

Description:

Default

Data type:

rte.parse

Use rteCSStext function: Text from rich text editor will be parsed automaticly for emails and thx message (every line gets an p tag, etc...). Disabling could be useful if you want to use only plaintext mails.

1

boolean

label.parse

Use labelparse function: Labels could be used with TYPO3 LINK syntax (e.g. 1)

1

boolean

input.style

Style instead of size: Using a local stylesheet in the input fields and in all textareas instead of size or rows and cols - the value in the flexform should be in pixel (e.g. 1)

0

boolean

powermail.charset

Charset for powermail: You can use the php functions utf8_encode or utf8_decode to change the whole powermail output

options[,utf8_e ncode,utf8_de code]

barrier-free.tabindex

Manual sorting of tabindex: Powermail adds tabindex to the fields (automaticly via sorting). If you want to use another order, you can change the order with this settings (e.g. uid5,uid4,uid3_0,uid3_1 or 5,4,6,4_0,4_1,3)

text

barrier-free.accesskey Adding accesskeys: You can add some accesskeys to the fields if you want (e.g. uid1:f,uid3:g or 1:a,2:b,3_1:c)

text

geoip.file

text

Add geoip file: If you want to use geoip, you can enter the relative path to the .dat file for geo info (e.g. fileadmin/geoinfo.dat)

geoip.addValuesToMarke Add geo info to marker ALL: The most people don't rALL want to use single markers, they just use ###POWERMAIL_ALL###, if you want to add some geoinfo, you can add those to the all marker (e.g. countryName, city) (available keys - ip, countryCode, countryName, region, city, zip, lng, lat, dmaCode, areaCode)

text

debug.output

options[,all,ses sion,email,db]

Activate debug output: Possibility to print a debug output over the html. All displays session and email array, Session prints only session array, Email prints only email array (empty or all or session or email) Note: Prefix for all powermail constants: plugin.powermail.

powermail - 42


Setup for powermail Note: The most settings are possible with constants editor # POWERMAIL PLUGIN # plugin.tx_powermail_pi1 { # --- CONSTANTS --template.fieldWrap = {$plugin.powermail.template.fieldWrap} template.formWrap = {$plugin.powermail.template.formWrap} template.thxMessage = {$plugin.powermail.template.thxMessage} template.emails = {$plugin.powermail.template.emails} template.confirmation = {$plugin.powermail.template.confirmation} template.all = {$plugin.powermail.template.all} template.mandatory = {$plugin.powermail.template.mandatory} template.MultipleJS = {$plugin.powermail.template.MultipleJS} css.MultipleJS = {$plugin.powermail.css.MultipleJS} emailformat.recipient_mail = {$plugin.powermail.emailformat.recipient_mail} emailformat.sender_mail = {$plugin.powermail.emailformat.sender_mail} # --enable.unique = {$plugin.powermail.enable.unique} email.noreply = {$plugin.powermail.email.noreply} email.checkMX = {$plugin.powermail.email.checkMX} email.overwritesender = {$plugin.powermail.email.overwritesender} hiddenfields.show = {$plugin.powermail.hiddenfields.show} markerALL.hideLabel = {$plugin.powermail.markerALL.hideLabel} markerALL.notIn = {$plugin.powermail.markerALL.notIn} PID.dblog = {$plugin.powermail.PID.dblog} form.method = {$plugin.powermail.form.method} format.datetime = {$plugin.powermail.format.datetime} format.date = {$plugin.powermail.format.date} label.allowTags = {$plugin.powermail.label.allowTags} html.removeXSS = {$plugin.powermail.html.removeXSS} countryselect.charset = {$plugin.powermail.countryselect.charset} description.wrap = {$plugin.powermail.description.wrap} mandatory.symbol = {$plugin.powermail.mandatory.symbol} mandatory.wrap = {$plugin.powermail.mandatory.wrap} captcha.use = {$plugin.powermail.captcha.use} pagebrowser.wrap = {$plugin.powermail.pagebrowser.wrap} upload.folder = {$plugin.powermail.upload.folder} upload.file_extensions = {$plugin.powermail.upload.file_extensions} upload.filesize = {$plugin.powermail.upload.filesize} upload.attachment = {$plugin.powermail.upload.attachment} clear.session = {$plugin.powermail.clear.session} js.mandatorydivclass = {$plugin.powermail.js.mandatorydivclass} js.onfocus = {$plugin.powermail.js.onfocus} field.checkboxJS = {$plugin.powermail.field.checkboxJS} rte.parse = {$plugin.powermail.rte.parse} label.parse = {$plugin.powermail.label.parse} input.style = {$plugin.powermail.input.style} powermail.charset = {$plugin.powermail.powermail.charset} barrier-free.tabindex = {$plugin.powermail.barrier-free.tabindex} barrier-free.accesskey = {$plugin.powermail.barrier-free.accesskey} geoip.file = {$plugin.powermail.geoip.file} geoip.addValuesToMarkerALL = {$plugin.powermail.geoip.addValuesToMarkerALL} debug.output = {$plugin.powermail.debug.output} # Some settings for Emails email { # Settings for mail to the default receiver(s) recipient_mail { # Reply name reply.name = TEXT reply.name.value = # Reply email reply.email = TEXT reply.email.value = # Add some attachments to the email (wrap every attachment with , if you want to add more than only one) addAttachment = COA addAttachment { 10 = TEXT #10.value = fileadmin/pic.jpg 10.wrap = |, } } # Settings for mail to the user powermail - 43


sender_mail {

# Reply name reply.name = TEXT reply.name.value = # Reply email reply.email = TEXT reply.email.value = # Add some attachments to the email (split every attachment with , if you want to add more than only one) addAttachment = COA addAttachment { 10 = TEXT #10.value = fileadmin/pic.jpg 10.wrap = |, }

}

}

# Enable, Disable email to sender or receiver or db saving allow { # Enable or disable email to receiver (main mail) email2receiver = TEXT email2receiver.value = {$plugin.powermail.allow.email2receiver} # Enable or disable email to sender email2sender = TEXT email2sender.value = {$plugin.powermail.allow.email2sender}

}

# Enable or disable saving values to database dblog = TEXT dblog.value = {$plugin.powermail.allow.dblog}

# --- EXAMPLE CODE SECTION --# Manipulation of values in every mode (email to receiver, db log, etc..) mode {

# # # # # #

# # #

# # #

# # #

# # #

# Manipulation of values in dblog dblog { uid999 = TEXT uid999.field = uid999 uid999.wrap = <b>|</b>

}

uid998_0 = TEXT uid998_0.field = uid998_0 uid998_0.wrap = <b>|</b>

# Manipulation of values for email to receiver (main mail) recipient_mail { uid999 = TEXT uid999.field = uid999 uid999.wrap = <b>|</b> } # Manipulation of values for email to sender (confirmation mail) sender_mail { uid999 = TEXT uid999.field = uid999 uid999.wrap = <b>|</b> } # Manipulation of values for email to sender (confirmation mail) thx { uid999 = TEXT uid999.field = uid999 uid999.wrap = <b>|</b> } # Manipulation of values for email to sender (confirmation mail) confirmation { uid999 = TEXT uid999.field = uid999 uid999.wrap = <b>|</b> } # Manipulation of values for email to sender (confirmation mail) mandatory { powermail - 44


# # #

}

uid999 = TEXT uid999.field = uid999 uid999.wrap = <b>|</b>

}

# #

# prefilling form fields (example) prefill { # fill field uid997 with a static text uid997 = TEXT uid997.value = example value

# #

# fill field uid998 with current timestamp uid998 = TEXT uid998.data = date:U

# # #

# fill field uid998 with current date like "Date: 20.01.2009" uid996 = TEXT uid996.data = date:U uid996.strftime = Date: %d.%m.%Y

# #

# fill field uid995 with IP address of the user uid995 = TEXT uid995.data = getIndpEnv:REMOTE_ADDR } # adding (or changing) flexible locallang markers in any HTML template or RTE field (example) _LOCAL_LANG.en { locallangmarker_yourvalue = this is a new text } # adding flexible typoscript markers in any HTML template or RTE field (example) dynamicTyposcript { yourmarker = TEXT yourmarker.value = This is a new text }

# # filled) #

# extern db entry (example for tt_adress) dbEntry { # enable or disable db entry for tt_address tt_address._enable = TEXT tt_address._enable.value = 1 # write only if field email is not yet filled with current value (update - update values of existing entry) (none - no entry if field is tt_address._ifUnique.email = none

# #

# add mm relation to uid 2 of tt_address_group (via mm table) tt_address._mm = COA tt_address._mm.10 = COA # 1 is always the mm table tt_address._mm.10.1 = TEXT tt_address._mm.10.1.value = tt_address_group_mm # 2 is always the other table tt_address._mm.10.2 = TEXT tt_address._mm.10.2.value = tt_address_group # 3 is always the uid of the other table to get a relation to this (in this case uid2 of tt_address_group) tt_address._mm.10.3 = TEXT tt_address._mm.10.3.value = 2

# #

# table "tt_address" with field "email" is a static value => alexander.kellner@einpraegsam.net tt_address.email = TEXT tt_address.email.value = alexander.kellner@einpraegsam.net

# #

# table "tt_address" with field "pid" is the current pid (e.g. 12) tt_address.pid = TEXT tt_address.pid.field = uid

# #

# table "tt_address" with field "tstamp" is the current time as timestamp (like 123456789) tt_address.tstamp = TEXT tt_address.tstamp.data = date:U

# # #

# table "tt_address" with field "address" is the current formatted time (like "Date: 20.01.2009") tt_address.address = TEXT tt_address.address.data = date:U tt_address.address.strftime = Date: %d.%m.%Y

# # # # # #

# table "tt_address" with field "name" is the value from powermail (tt_content uid 88) field uid18 (###uid18###) powermail - 45


# #

tt_address.name = TEXT tt_address.name.data = TSFE:fe_user|sesData|powermail_88|uid18

# #

# table "tt_address" with field "last_name" is the value from powermail (tt_content uid 88) field uid18 (###uid18###) tt_address.last_name = TEXT tt_address.last_name.data = TSFE:fe_user|sesData|powermail_88|uid18

# table "tt_address" with field "company" is the value from powermail (tt_content uid 88) field uid21_1 (###uid21_1###) (e.g. a checkbox value) # tt_address.company = TEXT # tt_address.company.data = TSFE:fe_user|sesData|powermail_88|uid21|1 } }

# ---------------------- Additional Typoscript ---------------------

# Add Javascript files to page header if a powermail plugin is on current page lib.powermail_dynJavascript = TEXT lib.powermail_dynJavascript { wrap = <script src="|" type="text/javascript"></script> typolink.parameter.dataWrap = {TSFE:id},3131 typolink.returnLast = url } # userFunc to check if powermail is on current page # powermail is on current page and prototype should be used [userFunc = user_powermailOnCurrentPage()] && [globalVar = LIT:prototype = {$plugin.powermail.libraryToUse}] page.includeJS.file31312 = EXT:powermail/js/mandatoryjs/lib/prototype.js page.includeJS.file31313 = EXT:powermail/js/mandatoryjs/src/effects.js page.includeJS.file31314 = EXT:powermail/js/mandatoryjs/fabtabulous.js [end] # powermail is on current page and mootools should be used [userFunc = user_powermailOnCurrentPage] && [globalVar = LIT:mootools = {$plugin.powermail.libraryToUse}] page.includeJS.file31312 = EXT:powermail/js/mootools/mootools-1.2.1-packed.js [end] page.includeJS.file31311 = EXT:powermail/js/checkbox/checkbox.js page.headerData.31310 < lib.powermail_dynJavascript seite.headerData.31310 < page.headerData.31310 seite.includeJS.31311 < page.includeJS.file31311 seite.includeJS.31312 < page.includeJS.file31312 seite.includeJS.31313 < page.includeJS.file31313 seite.includeJS.31314 < page.includeJS.file31314

# TypeNum 3131 for field validation via prototype (current page with &type=3131 with Javascript) powermailJS = PAGE powermailJS { typeNum = 3131 config { disableAllHeaderCode = 1 disablePrefixComment = 1 xhtml_cleaning = 0 admPanel = 0 } 10 = TEMPLATE 10 { template = FILE template.file = EXT:powermail/js/mandatoryjs/validation.js subparts.REQUIRED = TEXT subparts.REQUIRED.data = LLL:EXT:powermail/pi1/locallang.xml:JSvalidation_label_required subparts.VALIDATE_REQUIRED = TEXT subparts.VALIDATE_REQUIRED.data = LLL:EXT:powermail/pi1/locallang.xml:JSvalidation_label_validate_number subparts.VALIDATE_DIGITS = TEXT subparts.VALIDATE_DIGITS.data = LLL:EXT:powermail/pi1/locallang.xml:JSvalidation_label_validate_digits subparts.VALIDATE_ALPHA = TEXT subparts.VALIDATE_ALPHA.data = LLL:EXT:powermail/pi1/locallang.xml:JSvalidation_label_validate_alpha subparts.VALIDATE_ALPHANUM = TEXT subparts.VALIDATE_ALPHANUM.data = LLL:EXT:powermail/pi1/locallang.xml:JSvalidation_label_validate_alphanum subparts.VALIDATE_DATE = TEXT subparts.VALIDATE_DATE.data = LLL:EXT:powermail/pi1/locallang.xml:JSvalidation_label_validate_date powermail - 46


subparts.VALIDATE_EMAIL = TEXT subparts.VALIDATE_EMAIL.data = LLL:EXT:powermail/pi1/locallang.xml:JSvalidation_label_validate_email subparts.VALIDATE_URL = TEXT subparts.VALIDATE_URL.data = LLL:EXT:powermail/pi1/locallang.xml:JSvalidation_label_validate_url subparts.VALIDATE_DATE_AU = TEXT subparts.VALIDATE_DATE_AU.data = LLL:EXT:powermail/pi1/locallang.xml:JSvalidation_label_validate_date_au subparts.VALIDATE_CURRENCY_DOLLAR = TEXT subparts.VALIDATE_CURRENCY_DOLLAR.data = LLL:EXT:powermail/pi1/locallang.xml:JSvalidation_label_validate_currency_dollar subparts.VALIDATE_SELECTION = TEXT subparts.VALIDATE_SELECTION.data = LLL:EXT:powermail/pi1/locallang.xml:JSvalidation_label_validate_selection subparts.VALIDATE_ONE_REQUIRED = TEXT subparts.VALIDATE_ONE_REQUIRED.data = LLL:EXT:powermail/pi1/locallang.xml:JSvalidation_label_validate_one_required } }

powermail - 47


HTML template and markers example use Example for email for recipients

<!--###POWERMAIL_RECIPIENT_MAIL### start--> <p> ###POWERMAIL_LOCALLANG_EMAIL_RECEIVER###<br /> ###POWERMAIL_EMAILRECIPIENT_RTE###<br /> ###UID12### ###POWERMAIL_ALL### </p> <!--###POWERMAIL_RECIPIENT_MAIL### stop-->

###POWERMAIL_LOCALL Plugin search for a value from pi1/locallang.xml with the name ANG_EMAIL_RECEIVER# locallangmarker_email_receiver (you can overwrite the xml file or set your own text ## via TS setup – see below)

That where your values:

###POWERMAIL_EMAILR This is a special marker for use in the email template. This marker will be filled with ECIPIENT_RTE### the backend RTE for receivers (NOTE: You can also use marker in the RTE fields)

New mail

###UID12###

Fill this marker with the value from the session

George Smith

###UID12_0###

If you use values in second level (like checkboxes with tx_powermail_pi1[uid3][0]) than you can use this marker. NOTE: If you want to display all values of the checkbox, simply use ###UID12###

Values: red, blue, green

###POWERMAIL_ALL### This marker shows all values of all fields. Helpful if you have a long form.

Name: George Prename: Smith Years: 34 Country: USA

###POWERMAIL_BASEUR This marker simply enters the base url like http://www.test.de (Helpful if you want to L### load graphics in the email from your website)

http://www.test.de

###FILE_0###

File_12345.jpg

Name of uploaded file

Changing (or adding new) flexible locallang markers in any html template or RTE field: HTML example

###POWERMAIL_LOCALLANG_CONFIRMATION_BACK### ###POWERMAIL_LOCALLANG_NEWLANGUAGEMARKER###

Typoscript example You can use this both locallang files for example in the html templates by using ###POWERMAIL_LOCALLANG_VALUE### plugin.tx_powermail_pi1._LOCAL_LANG.en { locallangmarker_confirmation_back = Go back locallangmarker_newlanguagemarker = This is a new marker text JSvalidation_label_required = Please fill this mandatory field!

} plugin.tx_powermail_pi1._LOCAL_LANG.de { locallangmarker_confirmation_back = Zum Formular locallangmarker_newlanguagemarker = Das ist ein neuer Marker Text JSvalidation_label_required = Dieses Feld ist ein Pflichtfeld! } # Only needed if JS language marker should be changed (Jsvalidation_label_...) powermailJS.10 < plugin.tx_powermail_pi1

Adding new flexible typoscript markers in any html template or RTE field: HTML example

###POWERMAIL_TYPOSCRIPT_YOURFIELD1### ###POWERMAIL_TYPOSCRIPT_YOURFIELD2### ###POWERMAIL_TYPOSCRIPT_YOURFIELD3###

Typoscript example

Add some new markers with all typoscript features (TEXT, IMAGE, COA, USER, etc...) you already know plugin.tx_powermail_pi1.dynamicTyposcript { yourfield1 = TEXT yourfield1.value = this is a text

powermail - 48


yourfield2 = TEXT yourfield2.field = uid

}

yourfield3 = USER yourfield3.userFunc = user_various->listContentRecordsOnPage

Explanation

Dynamic typoscript fields or dynamiclocallangmarker can be used in every HTML Template, in every RTE in the content element and in the subject or receiver field.

powermail - 49


Backend module Introduction

Powermail offers a backend module to view all mails in the database

Choose Powermail in the Web menu on the left site of the backend

Now you can choose any page of the pagetree

If the chosen page contents powermails, a list with mails is shown to you

You can filter the mails by using the two fields above the list (first field is the starttime, second field the endtime)

Export symbols: ●

Excel symbol: Export the current list to an xls file

CSV symbol: Generate and download a CSV file

HTML table symbol: Just generate a html table without any formats

Enable deleting of mails after export (or disabling)

powermail - 50


Define your export file as you want via tsconfig

Use tsconfig of the page where your powermails are listed, to manipulate the export file or the listing in the backend (see example)

Example

# set columns tx_powermail_mod1.export { number = # uid42 = Title uid43 = Prename uid44 = Lastname uid45 = Email date = Registration-Date time = Registration-Time } # set config tx_powermail_mod1.config { export.useTitle = 1 export.dateformat = d.m.Y export.timeformat = H:i list.perPage = 50 list.filterstart = 2008-04-01 00:00 list.filterend = 2008-12-01 00:00 list.dateformat = d.m.Y H:i }

Example file for tsconfig above #

Title

Prename

Lastname

Email

Registration-Date

Registration-Time

1.

Dr.

Alex

Kellner

test@test.de

01.01.2009

12:23

Mischa

Heissmann

test@test.com

23.12.2208

16:11

2.

powermail - 51


Available markers for tsconfig Export settings (prefix: tx_powermail_mod1.export) Name

Explanation

What is this

Default if no tsconfig set

number

Just an ascending number

Field value

1

date

Registration date (format can be set – see below)

Field value

1

time

Registration time (format can be set – see below)

Field value

1

sender

Email of sender

Field value

1

senderIP

IP address of sender

Field value

1

recipient

Email of recipient

Field value

1

subject_r

Email subject to recipient

Field value

1

formid

Page ID where the form is in

Field value

1

content

Email content

Field value

0

UserAgent

UserAgent of sender

Field value

1

Referer

Referer of sender

Field value

1

SP_TZ

Location of sender

Field value

1

uid

This automaticly fills columns with ALL pivars

Field value

1

uid[NUMBER]

Define your own columns and use it like uid55

Field value

0

uid[NUMBER]_[NU MBER]

Define your own columns for values in second level (maybe checkboxes or multiple selections) like uid55_0 and uid55_1

Field value

0

Default if no tsconfig set

Configuration of export and list (prefix: tx_powermail_mod1.config) Name

Explanation

What is this

export.useTitle

Configure if title should be displayed in the first line of the export file (boolean)

Configuration 1 of export file

export.dateform at

Configure your wanted date format in the export file (see http://php.net/manual/function.date.php for details)

Configuration Y-m-d of export file

export.timeform at

Configure your wanted time format in the export file (see http://php.net/manual/function.date.php for details)

Configuration H:i:s of export file

list.perPage

Change the number of listed mails per page in the backendform (default: 100)

Configuration 100 of listing in backend

list.filterstar t

Set your own static filter starttime, if you want to show or hide some old mails (like: 2008-12-23 12:19)

Configuration [currentYea of listing in r]backend [currentMon th]-01 00:00

list.filterend

Set your own static filter endtime, if you want to show or hide some old mails (like: 2015-01-01 12:00)

Configuration Current of listing in time like backend 2008-01-01 00:00

list.dateformat

Date format for the backend listing (see http://php.net/manual/function.date.php for details)

Configuration Y-m-d H:i of listing in backend

powermail - 52


Features Validation of field values JavaScript validation Example

If you have activated validation JS in constants (default), than you can validate values of textfields just after input in frontend:

Example: Mandatory check

Example: E-Mail check

Check for: This validation of textfields are currently possible: ●

Mandatory

E-Mail

URL

Numbers

Numbers (with comma or point)

Letters

Letters and numbers

Error Message: Note: Current error messages are in german and english – you can change or add your own messages via locallang or typoscript (see above)

Stylesheet classes to manipulate validation messages and input fields: ● ● ●

If error in inputfields: <input class=“validation-failed” /> If no error in inputfields: <input class=“validation-passed” /> DIV Layer of errormessage: <div class=”powermail_mandatory_js”>error</div>

powermail - 53


PHP validation Email of sender Email of user will be automaticly checked, as soon as the email field is selected in backend

Setting a field to mandatory via typoscript instead of flexform setting plugin.tx_powermail_pi1 { validate.uid41.required = 1 }

With this possibilitiy you can set fields to required, if another field was not filled (phone field could be mandatory if email field is empty) [globalVar = GP:tx_powermail_pi1|uid40= ] [else] plugin.tx_powermail_pi1.validate.uid66.required = 1 [end]

Autocheck via typoscript Use typoscript to check any field like (example to check uid41 if it is an email): plugin.tx_powermail_pi1 { validate.uid41.auto = email validate.uid41.errormsg = Please check your email, there is an error! }

This autochecks are possible: ●

email: check if value is an email

url: check if value is a correct url

numbers: only numbers allowed

phone: numbers and / and + and - allowed

alphanum: only numbers and characters allowed

Manual check via typoscript (using regulare expressions) Use typoscript (in the setup) to check any field like (example to check uid41 if it is an url): plugin.tx_powermail_pi1 { validate.uid41.expression = ^(http://)?([a-z0-9-]+\.)+([a-z0-9-]{2,3})$^ validate.uid41.errormsg = Sorry, but this is not a correct URL, try again! }

You can enter any regulare expression go check your field values

Further regex examples: Field (e.g.: ###UID23###) should contain alex@wunschtacho.de: plugin.tx_powermail_pi1 { validate.uid23.expression = /^alex\@wunschtacho\.de$/ validate.uid23.errormsg = Sorry, but this field should contain alex@wunschtacho.de!

}

Field (e.g.: ###UID25### and ###UID26###) should contain the same text (maybe for passwords): plugin.tx_powermail_pi1 { validate.uid25.expression = /^###UID26###$/ validate.uid25.errormsg = Sorry, but your password fields are different – try again!

}

powermail - 54


Saving db values to any db table Introduction

With powermail you can save your values to any db table (e.g. fe_users or tt_address)

Example typoscript part in setup (adding values to tt_address and tt_address_group) plugin.tx_powermail_pi1 { # extern db entry (example for tt_adress) dbEntry { # enable or disable db entry for tt_address tt_address._enable = TEXT tt_address._enable.value = 1

# write only if field is not yet filled # (update - update values of existing entry) # (none - no entry if field is filled) # (disable – always add values – don't care about existing values) tt_address._ifUnique.email = none # add mm relation to uid 2 of tt_address_group (via mm table) tt_address._mm = COA tt_address._mm.10 = COA # 1 is always the mm table tt_address._mm.10.1 = TEXT tt_address._mm.10.1.value = tt_address_group_mm # 2 is always the other table tt_address._mm.10.2 = TEXT tt_address._mm.10.2.value = tt_address_group # 3 is always the uid of the other table to get a relation to this (in this case uid2 of tt_address_group) tt_address._mm.10.3 = TEXT tt_address._mm.10.3.value = 2 # table "tt_address" with field "email" is a static value => alexander.kellner@einpraegsam.net tt_address.email = TEXT tt_address.email.value = alexander.kellner@einpraegsam.net # table "tt_address" with field "pid" is the current pid (e.g. 12) tt_address.pid = TEXT tt_address.pid.field = uid # table "tt_address" with field "tstamp" is the current time as timestamp (like 123456789) tt_address.tstamp = TEXT tt_address.tstamp.data = date:U # table "tt_address" with field "address" is the current formatted time (like "Date: 20.01.2009") tt_address.address = TEXT tt_address.address.data = date:U tt_address.address.strftime = Date: %d.%m.%Y # table "tt_address" with field "name" is the value from powermail (tt_content uid 88) field uid18 (###uid18###) tt_address.name = TEXT tt_address.name.data = TSFE:fe_user|sesData|powermail_88|uid18 # table "tt_address" with field "last_name" is the value from powermail (tt_content uid 88) field uid18 (###uid18###) tt_address.last_name = TEXT tt_address.last_name.data = TSFE:fe_user|sesData|powermail_88|uid18 # table "tt_address" with field "company" is the value from powermail (tt_content uid 88) field uid21_1 (###uid21_1###) (e.g. a checkbox value) tt_address.company = TEXT tt_address.company.data = TSFE:fe_user|sesData|powermail_88|uid21|1 } }

Example typoscript part in setup (adding values to tt_news) plugin.tx_powermail_pi1 { dbEntry { tt_news._enable = TEXT tt_news._enable.value = 1 tt_news.pid = TEXT tt_news.pid.value = 13 tt_news.tstamp = TEXT tt_news.tstamp.data = date:U powermail - 55


tt_news.crdate = TEXT tt_news.crdate.data = date:U tt_news.datetime = TEXT tt_news.datetime.data = date:U tt_news.title = TEXT tt_news.title.value = Neue News tt_news.author_email = TEXT tt_news.author_email.data = TSFE:fe_user|sesData|powermail_2|uid2 tt_news.author = TEXT tt_news.author.data = TSFE:fe_user|sesData|powermail_2|uid1 tt_news.short = TEXT tt_news.short.data = TSFE:fe_user|sesData|powermail_2|uid3 tt_news.short.wrap = Short version: |

}

}

tt_news.bodytext = TEXT tt_news.bodytext.data = TSFE:fe_user|sesData|powermail_2|uid3 tt_news.bodytext.wrap = <b>|</b>

Some information about saving to other tables ●

We advise you to enable the debug output (via constants) to check if the values will be correctly saved or if there is an error

Saving is only availbal if table and fields are existing

Every table contains one record

If you want to use more than only one mm relation, you can use tt_address._mm.10 and and so on...

tt_address._mm.20

If you want to update old entries or if you don't want to overwrite existing values, you can use the option table._ifUnique.email (see details above)

With this small add to powermail, you can use powermail for many features like guestbook form, tipafriend form, fe_user registration, tt_address registration and so on...

With this example the value of uid3 with tt_content 2 should be used: TSFE:fe_user|sesData|powermail_2|uid3

powermail - 56


Prefilling fields Sequence of prefilling fields 1.

Is there a fitting piVar like &tx_powermail_pi1[uid11]=text, than use this value, and if not...

2.

Is there a value in the session, so fill field with this value, and if not...

3.

Is there a value set in the backend flexform, take this value, and if not...

4.

Should this field filled with logged in fe_user datas (set in backend), take this value, and if not...

5.

Was typoscript used to prefill a field, use this (see example below), and if not

6.

Don't fill

Example to prefill fields via typoscript setup plugin.tx_powermail_pi1 { prefill { # fill field uid997 with a static text uid997 = TEXT uid997.value = example value # fill field uid998 with current timestamp uid998 = TEXT uid998.data = date:U # fill field uid998 with current date like "Date: 20.01.2009" uid996 = TEXT uid996.data = date:U uid996.strftime = Date: %d.%m.%Y # fill field uid995 with IP address of the user uid995 = TEXT uid995.data = getIndpEnv:REMOTE_ADDR } } Maybe it's usefull to fill some hidden fields with hidden but important values (IP address, timestamp, Language, GET params, etc..)

powermail - 57


Value manipulation Explanation

Since 1.4.0 it's possible to use the stdWrap syntax of TYPO3 to manipulate every powermail value.

Example use

It's possible that the user enters a date in the format like 2008-12-24, but it's shown 24 December 08 at the confirmation page and the unix timestamp will be written to the database

Example typoscript

plugin.tx_powermail_pi1 { # Manipulation of values in every mode (email to receiver, db log, etc..) mode { # Manipulation of values in dblog dblog { uid999 = TEXT uid999.field = uid999 uid999.wrap = <b>|</b>

}

uid998_0 = TEXT uid998_0.field = uid998_0 uid998_0.wrap = <b>|</b>

# Manipulation of values for email to receiver (main mail) recipient_mail { uid999 = TEXT uid999.field = uid999 uid999.wrap = <b>|</b> } # Manipulation of values for email to sender (confirmation mail) sender_mail { uid999 = TEXT uid999.field = uid999 uid999.wrap = <b>|</b> } # Manipulation of values for email to sender (confirmation mail) thx { uid999 = TEXT uid999.field = uid999 uid999.wrap = <b>|</b> } # Manipulation of values for email to sender (confirmation mail) confirmation { uid999 = TEXT uid999.field = uid999 uid999.wrap = <b>|</b> } # Manipulation of values for email to sender (confirmation mail) mandatory { uid999 = TEXT uid999.field = uid999 uid999.wrap = <b>|</b> } }

}

powermail - 58


T3 Link syntax in labels Explanation

Since powermail 1.4.0 it's possible to use the link syntax in field labels (also in labels for checkboxes and radiobuttons)

Example

Yes I accept the <link 234>terms of conditions</link>

powermail - 59


Let the user decide if he wants a confirmation mail or not Explanation

Since powermail 1.4.0 it's possible to use T3 stdWrap for the confirmation mail, main mail and db entry

Default Typoscript

plugin.tx_powermail_pi1 { # Enable, Disable email to sender or receiver or db saving allow { # Enable or disable email to receiver (main mail) email2receiver = TEXT email2receiver.value = {$plugin.powermail.allow.email2receiver} # Enable or disable email to sender email2sender = TEXT email2sender.value = {$plugin.powermail.allow.email2sender} # Enable or disable saving values to database dblog = TEXT dblog.value = {$plugin.powermail.allow.dblog} }

}

Example

# Only if the checkbox with the uid 34 was checked (tt_content uid 88) the user should get a confirmation mail plugin.tx_powermail_pi1.allow.email2sender > plugin.tx_powermail_pi1.allow.email2sender = TEXT plugin.tx_powermail_pi1.allow.email2sender.data = TSFE:fe_user|sesData|powermail_88|uid34|0

Note

In the same way you can let the user decide if there should be a mail to the main receiver or if there should be a DB entry or if there should be an entry to another db table

powermail - 60


Fighting spam ●

We suggest you to use the extension wt_spamshield for fighting spam entries (see details in manual wt_spamshield)

You can also use captcha (see next paragraph)

Integrate captcha to your form Description ●

First of all install a captcha extension like captcha, sr_freecap, jm_recaptcha or wt_calculating_captcha

Be sure, that you have chosen this extension via constants (captcha, sr_freecap, jm_recaptcha or wt_calculating_captcha)

As you can add a normal textfield, you can add a captcha field, thats all

If you have installed captcha AND sr_freecap, the extension use sr_freecap

If you have not installed one of this extensions, an error message in frontend is shown

Examples Example: Using captcha

Example: Using sr_freecap

Example: Using jm_recaptcha

NOTE: jm_recaptcha works only if you don't use multiple PHP – or if you want to use multiple PHP, than integrate this captcha on the last page

Example: Using wt_calculating_captcha

NOTE: This is not a normal captcha – here you have to calculate and enter the result

powermail - 61


Add new field: Selectorbox with values from database Step by step 1.

Add new field (typoscript) and use (e.g.) lib.object in this field

2.

Add your typoscript in the setup field to fill lib.object (see example below)

Example typoscript for selectorbox from table tt_address # Get all tt_address datas from pid=5 lib.object = COA_INT lib.object { 10 = TEXT 10.value = <label for="uid33">Select:</label>

}

20 = CONTENT 20.wrap = <select id="uid33" name="tx_powermail_pi1[uid33]" size="1">|</select> 20 { table = tt_address select { pidInList = 5 orderBy = name } renderObj = COA renderObj { 10 = COA 10 { 10 = TEXT 10 { field = uid wrap = <option value="|"> } 20 = TEXT 20 { field = name wrap = |</option> } } } }

Example output (html) of example typoscript <label for="uid33">Select:</label> <select id="uid33" name="tx_powermail_pi1[uid33]" size="1"> <option value="23">Name1</option> <option value="24">Name2</option> </select>

Example at typo3.net

http://www.typo3.net/forum/list/list_post/x/77259/?howto=1

powermail - 62


FAQ I need help/support with this plugin!

Use the TYPO3 forum http://www.typo3.net or http://www.typo3forum.net for help! The author will checks this both forums and give a little bit free support.

How can I prefill some fields? ●

Prefill fields with values from backend or

Prefill fields via typoscript (see example above) or

Prefill fields with feuser values (set in backend)

Prefill if some fields are already filled and than the user submits form and leaves this page but comes back to the form page later

Prefilling from outside like index.php?id=1&tx_powermail_pi1[uid55] (if you want to prefill with a pre form)

Prefill fields with hook use (PM_FieldWrapMarkerHook1)

Error in backend “Unknown type: inline” - what to do?

Deactivate IRRE and set the relations manually! If you have already deactivated IRRE or use TYPO3 < 4.1, don't care about this error – set the relations manually via list modul

How can I overwrite the locallang translations / How can I add a new locallang marker You can overwrite the locallang via typoscript or you can change the locallang.xml in the ext folder. Details - see “HTML Templates and markers use” in manual above

How can I use validation of fields per Javascript? This check is activated for default for textfields

You can turn of the validation via TS constants

JavaScript check don't work - why? Check if the 4 js files are correctly implemented in the HTML HEAD area: ●

<script src="typo3conf/ext/powermail/js/mandatoryjs/lib/prototype.js" type="text/javascript"></script>

<script src="typo3conf/ext/powermail/js/mandatoryjs/src/effects.js" type="text/javascript"></script>

<script src="typo3conf/ext/powermail/js/mandatoryjs/fabtabulous.js" type="text/javascript"></script>

<script src="validation/fachgebiete/typo3-extensions/powermail.html" type="text/javascript"></script>

The last file is a little bit tricky – It is the current page with type=3131. If you copy this relative path to your browser, this should powermail - 63


show you a dynamic JavaScript file! If you want to check of mandatory fields, check if “required” is in the input class. If you want to check of email fields, check if “validate-email” is in the input class. Of course you can mix this. See standard form for all needed classes. NOTE: If you use mootools within your homepage, there is a conflict with prototype. You can field validation via mootools in the constants

How can a style my form? All can be done with css. Note: If you only need one page (no multiple page), you can anyway add more than only one fieldset. So you can float fieldsets horizontal (e.g.). Note1: See “CSS corner” for css examples below Note2: We offer a sample css in the extension folder: ext/powermail/css/sampleCSS.css Note3: Have a look into an existing powermail example and copy the css of this homepage (examples are listed above)

HTML Validation vailed

HTML validation failed on such form action: index.php?id=1&tx_powermail_pi1[mailId]=1&cHash=1234567 ●

Try to use RealUrl to remove cHash

If you have chosen XHTML strict in your TYPO3 backend, the & will be written as &

How can I choose my own html code instead of the automatic html generation Sometimes it could be useful to use an own html code instead of the automatic html code. You can simply generate some fields and copy the html source between the form tags in the formwrap.html template or you can use markers like ###UID23### to get the HTML code of this field – thats all.

I want a select box in frontend where the user can choose the receiver of the form Main explanation: ●

Add new fe_users in backend with email (e.g. UID1 info@test.com and UID2 with support@test.com)

Create a new select field in powermail (value e.g. Info | 1 \n Support | 2) (select like ###UID42#)

Use db query for recipients in TYPO3 backend (e.g. SELECT email FROM fe_users WHERE uid = ###UID42###)

Example pictures:

Different Examples to select receiver in frontend: Query for selecting one fe user (e.g.: UID42 is fe_user uid):

SELECT email FROM fe_users WHERE uid = ###UID42### AND hidden = 0 AND deleted = 0 powermail - 64


Query for selecting a fe usergroup (e.g.: UID43 is fe_user group uid):

SELECT email FROM fe_users WHERE find_in_set(###UID43###,usergroup) > 0 AND hidden = 0 AND deleted = 0

Query for sending form to a static fe usergroup (e.g.: usergroup with uid 44)

SELECT email FROM fe_users WHERE find_in_set(44,usergroup) > 0 AND hidden = 0 AND deleted = 0

I will check some fields (with php) if the value is an email or an URL plugin.tx_powermail_pi1 { validate.uid41.auto = email validate.uid41.errormsg = Please check your email, there is an error! validate.uid56.auto = url validate.uid56.errormsg = Please check your url, there is an error!

}

Details or how to use own regulare expression see above!

I want to use captcha but no captcha field is shown Maybe you have installed and loaded the extension captcha and in constants is set sr_freecap (standard) instead of captcha.

Onetime filling solve all my problems

It's possible to enable one time filling via constants. Check if a value already exists (maybe an email address) or check if IP address already exists. See constants editor...

Countryselector dropdown without value (Empty field cn_short_en ...) If you use static_info_tables or (e.g.) static_info_tables_de and you forgot to import the data, the value fields are empty in the database. Powermail shows an errormessage in the dropwdown like “Empty field cn_short_en (uid 33)”

There is a problem with content elements like text/image / dividers2tab problem

We know about this problem (< TYPO3 4.2) and there is an entry in the typo3 bugtracker: http://bugs.typo3.org/view.php?id=7297 Workarround: You can disable dividers2tab in the extension manager of powermail, so tt_content is without dividers2tab (but powermail too)

I cannot add fields ●

Do you use date2cal? So disable start- and stoptime for fieldsets and fields in the extension manager

Just try to disable the dividers2tab checkbox in the extension manager for powermail.

If this don't helps, we advise you to disable IRRE in the extension manager.

NOTE: If you want to use IRRE, ensure that your server provides long POST variables (maybe it's useful to increase POST memory size on the server)

Dynamic text on answer page ●

“Sehr geehrter Herr” if male or “Sehr geehrte Frau” if female

http://www.typo3.net/forum/list/list_post/x/78897/?howto=1

Include google searchword in mail ●

If someone comes from google to your page – maybe you want to add the searchterm to your mail

http://www.typo3.net/forum/list/list_post//x78365/?howto=1

Dynamic date in a dropdown field ●

Another userFunc example, which shows the next days in a powermail select box

http://www.typo3.net/forum/list/list_post/x/78670/?howto=1

powermail - 65


CSS corner Add a default CSS Example picture (adding static template):

Example picture (default CSS in Frontend):

Explanation: Adding the static template “Add default CSS (powermail)� integrates the default CSS from powermail folder: css/sampleCSS.css

powermail - 66


How to get labels and fields in two columns with css Example picture:

Example css:

fieldset.tx-powermail-pi1_fieldset { /* Disable border */ border: none; } fieldset.tx-powermail-pi1_fieldset label { /* Style labels */ display: block; width: 150px; float: left; clear: both; } fieldset.tx-powermail-pi1_fieldset input, fieldset.tx-powermail-pi1_fieldset select { /* Style input fields */ width: 200px; border: none; border-bottom: 1px solid black; margin-left: 10px; } div.tx_powermail_pi1_fieldwrap_html { /* Increase margin between every field */ margin: 10px 0; }

Additional note (clearfloat):

Maybe it's useful to add a div layer to the tmpl_formwrap.html at the end, to clear the floats like: <div style=�clear: both�></div>

powermail - 67


How to get two columns Note:

You can use more than only one fieldset to style your form with more columns. So you should add two pages (fieldsets) to your form and choose “single step”.

Example picture:

Example css:

fieldset.tx-powermail-pi1_fieldset { /* Disable border */ border: none; } fieldset.tx-powermail-pi1_fieldset_1 { /* Style left fieldset */ width: 45%; float: left; } fieldset.tx-powermail-pi1_fieldset_2 { width: 45%; }

Additional note (clearfloat):

Maybe it's useful to add a div layer to the tmpl_formwrap.html at the end, to clear the floats like: <div style=”clear: both”></div>

powermail - 68


Developers corner Database relation model

(also available in extension folder powermail/doc/database_relation)

tt_content: Original tt_content field extended with some powermail fields tx_powermail_fieldsets: Table with all fieldsets tx_powermail_fields: Table with all fields tx_powermail_mails: If you submit in a form the values are saved to this table

powermail - 69


Hooks in powermail Introduction

With the possibilitiy of hooks, you can manipulate extensions and TYPO3 without changing the code. So you enter your own code from outside.

Hook documentation #

Hookname

File

Folde r

Function Input

Retur n

Note

Example use

1

Real markerArr ay hook

class.tx_ powermail _markers. php

lib

PM_marke $thisrArrayHo >what, ok $this>geoArray, $this>markerArr ay, $this>sessionda ta, $this>tmpl, $this

-

This is the main markerArray hook. Every action in powermail (show confirmationpage, show thx page, show mandatory page, generate email to receiver, generate email to sender) uses the marker class to show fieldvalues. With this you you can manipulate this output as you want

$GLOBALS['TYPO3_CON F_VARS']['EXTCONF'] ['powermail'] ['PM_MarkerArrayHoo k'][]

2

Adding or changing markers (for all views)

class.t x_power mail_ma rkers.p hp

lib

PM_Field $markerArr MarkerAr ay, rayHook $formValue s, $k, $v, $kv, $vv, $this

-

Every marker (confirmation page, mandatory page, thx page, email sender, email receiver) will be using this hook

$GLOBALS['TYPO3_CON F_VARS']['EXTCONF'] ['powermail'] ['PM_FieldMarkerArr ayHook'][]

3

Hook for main manipulat ion1

class.tx_ powermail _pi1.php

pi1

PM_MainC $thisontentBe >sessionfi foreHook elds, $this>piVars, $this

-

You can change the sessions or piVars or something like that

$GLOBALS['TYPO3_CON F_VARS']['EXTCONF'] ['powermail'] ['PM_MainContentHoo kBefore'][]

4

Hook for main manipulat ion2

class.tx_ powermail _pi1.php

pi1

PM_MainC $thisontentAf >content, terHook $this>piVars, $this

-

Change the whole output $content

$GLOBALS['TYPO3_CON F_VARS']['EXTCONF'] ['powermail'] ['PM_MainContentHoo kAfter'][]

5

Hook for page with form

class.tx_ powermail _form.php

pi1

PM_FormW $thisrapMarke >OuterMark rHook erArray, $this>subpartAr ray, $this>conf, $this

-

This hook will be opened before the outerMarker array is substituted with HTML template on the form page.

$GLOBALS['TYPO3_CON F_VARS']['EXTCONF'] ['powermail'] ['PM_FormWrapMarker Hook'][]

6

Hook for page with form for inner wrap

class.tx_ powermail _form.php

pi1

PM_For mWrapM arkerH ookInn er

-

This hook allows to change markers in the formwrap (inner loop)

$GLOBALS['TYPO3_CON F_VARS']['EXTCONF'] ['powermail'] ['PM_FormWrapMarker HookInner']

7

Hook for adding new fields

class.tx_ powermail _html.php

pi1

PM_Field $thisHook >xml, $this>title, $this>type, $this>uid, $this>markerArr ay, $this>piVarsFro mSession, $this

$this >cont ent

This hook allows you to add new fields to powermail (see powermail_mul for an example)

$GLOBALS['TYPO3_CON F_VARS']['EXTCONF'] ['powermail'] ['PM_FieldHook'] ['FIELDNAME'][]

$this>InnerMark erArray, $this>conf, $row, $this

powermail - 70


#

Hookname

File

Folde r

Function Input

Retur n

Note

Example use

8

Hook after field generatio n

class.tx_ powermail _html.php

pi1

PM_Field $thisWrapMark >uid, erHook $this>xml, $this>type, $this>title, $this>markerArr ay, $this>content, $this>piVarsFro mSession, $this

-

This hook will be opened before the html code of the current field is given back (at the end of fieldgeneration). Maybe if you want to manipulate a special field

$GLOBALS['TYPO3_CON F_VARS']['EXTCONF'] ['powermail'] ['PM_FieldWrapMarke rHook'][]

9

Hook for markerArr ay in field generatio n

class.tx_ powermail _html.php

pi1

PM_Field WrapMark erArrayH ook

$this>uid, $this>xml, $this>type, $this>title, $this>markerArr ay, $this>piVarsFro mSession, $this

-

This hook will be used for every kind of field. You can manipulate the markerArray before the field is generated

$GLOBALS['TYPO3_CON F_VARS']['EXTCONF'] ['powermail'] ['PM_FieldWrapMarke rArrayHook'][]

1 0

Hook for markerArr ay in field generatio n (inner markerArr ay for checkboxe s, radiobutt ons, and so on)

class.tx_ powermail _html.php

pi1

PM_Field WrapMark erHookIn ner

$this>uid, $this>xml, $this>type, $this>title, $markerArr ay, $this>piVarsFro mSession, $this

-

This hook will be used for every kind of field. You can manipulate the markerArray before the field is generated (this hook will be used for innerMarkerArray – checkbox, radiobuttons, etc...)

$GLOBALS['TYPO3_CON F_VARS']['EXTCONF'] ['powermail'] ['PM_FieldWrapMarke rArrayHookInner'][]

1 1

Hook for manipulat ion of default markers

class.tx_ powermail _html.php

pi1

PM_Field $thisWrapMark >uid, erHook1 $this>xml, $this>type, $this>title, $this>markerArr ay, $this>piVarsFro mSession, $this

-

Useful if you want to prefill some powermail fields with your own stuff, etc...

$GLOBALS['TYPO3_CON F_VARS']['EXTCONF'] ['powermail'] ['PM_FieldWrapMarke rHook1'][]

1 2

Hook for confirmat ion page

class.tx_ powermail _confirma tion.php

pi1

PM_Confi $thisrmationH >markerArr ook ay, $this

-

This hook will be opened before the marker array is substituted with HTML template on the confirmation page.

$GLOBALS['TYPO3_CON F_VARS']['EXTCONF'] ['powermail'] ['PM_ConfirmationHo ok'][]

1 3

Mandatory and error check hook

class.tx_ powermail _mandator y.php

pi1

PM_Manda $thistoryHook >error, $this>markerArr ay, $this>innerMark erArray, $this>sessionfi elds, $this

-

If you set $this>error to 1, powermail will stop the submit process, with $this>sessionfields you can write your own error message

$GLOBALS['TYPO3_CON F_VARS']['EXTCONF'] ['powermail'] ['PM_MandatoryHook' ][]

powermail - 71


#

Hookname

File

Folde r

Function Input

Retur n

Note

Example use

1 4

Hook for email change

class.tx_ powermail _submit.p hp

pi1

PM_Submi $thistEmailHo >subpart, ok $this>maildata, $this>sessionda ta, $this>markerArr ay, $this

-

This hook allows to change the emails (subject, receiver, sender, etc..)

$GLOBALS['TYPO3_CON F_VARS']['EXTCONF'] ['powermail'] ['PM_SubmitEmailHoo k'][]

1 5

Submit hook before submit

class.tx_ powermail _submit.p hp

pi1

PM_Submi tBeforeM arkerHoo k

Error code (0/1 bolea n)

If you want to stop the submit (emails and db insert), you can return TRUE

$GLOBALS['TYPO3_CON F_VARS']['EXTCONF'] ['powermail'] ['PM_SubmitBeforeMa rkerHook'][]

1 6

Submit hook after emails

class.tx_ powermail _submit.p hp

pi1

PM_Submi $this, tAfterMa $thisrkerHook >markerArr ay, $this>sessionda ta

-

If you want to do something after a correct submit, you can use this hook (maybe an additional db entry)

$GLOBALS['TYPO3_CON F_VARS']['EXTCONF'] ['powermail'] ['PM_SubmitAfterMar kerHook'][]

1 7

Thx message hook

class.tx_ powermail _submit.p hp

pi1

PM_Submi $thistLastOne >content, Hook $this>conf, $this>sessionda ta, $this>ok, $this

-

If you want to manipulate the thx message after submit

$GLOBALS['TYPO3_CON F_VARS']['EXTCONF'] ['powermail'] ['PM_SubmitLastOne' ][]

$this, $this>markerArr ay, $this>sessionda ta

How to use a hook in my own extension? Example for using a powermail hook in your own extension in the ext_localconf.php: $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['powermail']['PM_FormWrapMarkerHook'][] = 'EXT:yourextension/targetphpfile:tx_yourphpclass';

This hook want to use the function PM_FormWrapMarkerHook() in your class

Note: The class name must start with a tx_ Additional information

Hook documentation is also available in extension folder powermail\doc\hook ●

hooks.ods could be open with OpenOffice

hooks.html can be read with a browser

Look into another extension which uses a powermail hook to manipulate powermail

The antispam extension wt_spamshield uses two powermail hooks, look into the code, if you want to know more: http://typo3.org/extensions/repository/view/wt_spamshield/0.1.6/

TYPO3 hook documentation

http://typo3.org/documentation/document-library/core-documentation/doc_core_api/current/view/3/4/ http://typo3.org/development/articles/how-to-use-existing-hooks/page/1/?tx_rlmpofficedocuments_pi1%5Bview %5D=multiple&cHash=e106c40cbd

Do you really need a hook?

You can easily add a new marker with “dynamic typoscript marker” - so there is the possibility to use a userfunc...

Do you need a new hook?

Do you need a special hook? Write us!

powermail - 72


Todos Bugfixes â—?

A list of known bugs is viewable at forge.typo3.org: http://forge.typo3.org/projects/extension-powermail/issues

Features â—?

A list of useful features is viewable at forge.typo3.org: http://forge.typo3.org/projects/extension-powermail/issues

Request

Do you need a new feature or maybe you've found a bug or maybe you want to help us? Please add a new issue at http://forge.typo3.org/projects/extension-powermail/issues or write us an email!

powermail - 73


Changelog Powermail version 1.4.x stable Update on 24.02.2009 version 1.4.10 ●

Bugfix #2695: JS Validation for checkboxes

Bugfix #2694: Fix in JS Validation for checkboxes and radiobuttons

Bugfix #2657: ERROR array in mandatory class was wrong

Bugfix #2656: Hook name changed in mandatory class

Feature #2703: New class added: Odd or Even

Feature #2701: Hook for adding file attachments added

Feature #2697: Select mootools or prototype for JS validation

Feature #2690: Manual field creation added

Feature #2658: Print and close function in detail view of backend plugin

Feature #2654: Prefilling text fields like input fields

Feature #2651: Db entries in extern tables: Don't overwrite existing values

Feature #2647: Logging FEUSER Id in mail

Feature #2624: Dynamic markers in recipient field

Update on 16.02.2009 version 1.4.9 ●

Bugfix #2625: JS validation and SimulateStaticDocuments

Bugfix #2622: Saving values to more than only one extern db table

Bugfix #2434: Improvement of alphanum and alpha JS validation (with umlauts)

Bugfix #2433: Using absRefPrefix

Bugfix #2127: More powermail forms on one page

Feature #2624: Enabling dynamictyposcript for subject and email of recipient mail

Update on 04.02.2009 version 1.4.8 ●

Bugfix #2433: Using of absRefPrefix in a current T3 installation fixed

Bugfix #2290: typoscript fields could disable session datas

Feature #2571: Setting reply name and reply email address for emails

Feature #2569: Using style information instead if cols, rows and size

Feature #2568: Adding attachments to emails via typoscript stdWrap

Feature #2561: Enabling LINK syntax in Radiobutton and Checkbox labels

Feature #2559: Random filenames for export

Update on 26.01.2009 version 1.4.7 ●

Bugfix #2500: Sessionproblems - this bugfix is integrated in TYPO3 4.2.5

Bugfix #2460: Powermail work with sr_freecal (all versions)

Bugfix #2490: JS validation for checkboxes

Small improvement of debug output (set IP address in Install Tool)

Update on 10.01.2009 version 1.4.6 ●

wt_calculating_captcha integration

Small fix in JS integration

Small fix in captcha code

Update on 08.01.2009 version 1.4.5 ●

Bugfix #2430, 2429, 2261: Fatal error with GLOBALS[TSFE] in FE

Feature #2428: Danish translation added powermail - 74


Update on 07.01.2009 version 1.4.4 ●

Bugfix #2390: ###POWERMAIL_TARGET### with wrong target

Bugfix #1414: Copy to other languages copies fields and fieldsets

Feature #2255: Tooltip and Description function added

Feature #1181: Localization in Backend with fieldsets and fields

Update on 21.12.2008 version 1.4.3 ●

Bugfix #2261: JS library will be only included if powermail on same page

Bugfix #2263: Every Radiobutton get an own DIV container and JS validation works

Bugfix #2272: dd and dt tags can be used with plaintext mails

Bugfix #2278: Small bugfix in french language with JS validation

Bugfix #2280: German umlauts enabled in alphanum validation

Feature #2282: Add slovenian language

Update on 01.12.2008 version 1.4.2 ●

Bugfix #2197: Empty captcha label

Bugfix #2196: Powermail work with date2cal 1.1.0 now

Bugfix #2173: MultipleJS css will be included again

Bugfix #2171: Dynamic JS will be included in the right way via ext_typoscript_setup.txt

Bugfix #2161: Errormessage in markers class

Bugfix #2157: Mandatory html Template now XHTML valid

Bugfix #2153: Value for next and previous button no more empty

Update on 09.11.2008 version 1.4.1 ●

Small bugfix in ext_typoscript_setup.txt

Some explanations in the manual to 1.4.0 features

Update on 07.11.2008 version 1.4.0 ●

Feature #1534: Support for LINK syntax in labels

Feature #1919: User checks for confirmation mail (mail via typoscript)

Feature #1915: TS Manipulation of every field

Feature: Debug output for externdbentries

Bugfix #1889: Problems with CSV export fixed in export class

Bugfix #1773: JS Path available via setup

Bugfix #1752: File validation

Bugfix #1733: Mandatory upload field

Bugfix #1540: "Cannot redeclare xajaxerrorhandler" countryzoneselector

Bugfix #1914: absRefPrefix supported now

Bugfix #1122: Mandatory Radio Buttons (no more xhtml valide)

Bugfix: URL problem with reset button

Code cleaning

Powermail version 1.3.x stable Update on 22.10.2008 version 1.3.16 ●

Feature #1777: Individual labels in html Template enabled

Feature #1704: Prototype.js update

Bugfix #1721: Default CSS typoscript fix

Bugfix #1720: Submit redirect fixed

Bugfix #1530: Countryselect prefilling powermail - 75


Update on 12.10.2008 version 1.3.15 ●

Bugfix #1648: Better links in multiple pages

Bugfix #1686: Disable hiddenfields in confirmation page

Update on 30.09.2008 version 1.3.14 ●

Bugfix #1530: Countryzone fix

Feature new Hook: Prefilling fields

Feature #1504: Small changes in Hook, add new hook

Update on 11.09.2008 version 1.3.13 ●

Feature #1499: Choose more than only one field for sendername in flexform

Feature #1497: Countryzone Selectorbox via AJAX (add to countryselector)

Feature #1419: Make .field available for typoscript fields for powermail

Feature #1358: Integrate recaptcha as third captcha possibility

Bugfix #1498: Small fix in using wt_spamshield

Bugfix #1395: Error in MX Check (user goes back and tries to submit again)

Bugfig #1393: If empty sendername don't take “x”

Bugfix #1022: Export of mails (XLS, CSV, HTML) without umlauts problems

Update on 24.08.2008 version 1.3.12 ●

Feature #1203: Disable hiddenfields for sender (via constants)

Feature #1275: Get RTE configuration from tsconfig

Feature #1207: Errormessage if no html template could be found

Feature #1308: Mandatory fields can be set via typoscript (to use ts conditions)

Feature #1309: Set sendername via flexform

Feature #1313: Add static template for default css

Fix for #1059: Workarround: Disable start- / stoptime for fields/fieldsets (avoid problem with date2cal in BE)

Fix for #1293: redirect with absRefPrefix

Fix for #1299: UTF8 Problem in backend

Fix for #1304: Small change in fieldwrap.html (onClick -> onclick)

Fix for #1122: Radio buttons no more mandatory

Feature: Prepare for InnerMarkerArray in fieldwrap (powermail_cond within checkboxes)

Feature: Real markerArray hook in marker function

Feature: Audio feature for sr_freecap

Small Fix for unique Check and savetopid via Flexform

Update on 03.08.2008 version 1.3.11 ●

New Hook: Inner Form markerArray

Changed HTML Template Formwrap and Fieldwrap for other extensions

Removed too much code and files

Bugfix #1189: unique with empty values

Bugfix #1122: preparing mandatory for radio buttons

Bugifx for powermail_multiple

Prepare for powermail_cond (conditions for powermail)

Update on 28.07.2008 version 1.3.10 ●

New languages: PL, ES, PT

New global Markers in fieldwrap (formname and formtarget)

Uploaded files could be deleted powermail - 76


Reset button with clearing whole session

Small change in the three fieldwrap hook (session will be delivered)

Update on 14.07.2008 version 1.3.9 ●

Backend module with possibility to delete mails manually

Backend module with possibility to delete mails after export

Powermail suggests geoip for geo information

Added markerArray hook for field generation

Update on 06.07.2008 version 1.3.8 ●

Bugfix: Dividers2tab for TYPO3 4.2

Start and Stop added for TYPO3 4.2

Start and Stop added for fields and fieldsets

Add icon to CType selection

Language selection is no more shown twice

Bugfix: Values of submit and reset

Bugfix: Save mails was shown in other plugins

Update on 29.06.2008 version 1.3.7 ●

Errormessage if no TS found

Sorting of pagebrowser in js multiple fixed

Value of submit and reset removed

Update on 21.06.2008 version 1.3.6 ●

PID where to save could be set via plugin now (and via ts too)

Sender E-Mail can be set via constants

Labels for ts fields can be used now

Bugfix: Shows breaks on confirmation page (e.g. textarea)

NoIRRE: uid added to dropdown (fieldset and content choose)

Debug output: Added array with db values

Removed SQL debug output

Some bugfixes in php files

Small improvement in english locallang part

Update on 07.06.2008 version 1.3.5 ●

Small fix for mm relations with external db entries

Small fix for powermail_mul

Update on 28.05.2008 version 1.3.4 ●

Fixed problem with localization on some systems

Update on 25.05.2008 version 1.3.3 ●

Improvement for Plaintext (html tags will be removed)

Improvement in constants for plaintext and html mails

Small fix in Sender name

Update on 21.05.2008 version 1.3.2 ●

Debug output added (activate via constants)

Update on 20.05.2008 version 1.3.1 ●

Set date2cal date format via constants

Manual fix

powermail - 77


Update on 15.05.2008 version 1.3.0 ●

Db entries to other tables with mm relations available (Attention: New dbEntry typoscript)

Plaintext available (enable in constants)

RTE parsing can be disabled via constants

No more removeXSS for piVars

Bugfix: MX check for windows disabled

Powermail version 1.2.x stable Update on 12.05.2008 version 1.2.4 ●

Failure fixex: tt_address entries activated by default

Update on 08.05.2008 version 1.2.3 ●

New feature: Accesskeys available in fields (automaticly or manually via constants)

New feature: Tabindex available in fields (via constants)

Update on 07.05.2008 version 1.2.2 ●

Adding new field to powermail: Typoscript element Possibility to use a userfunc, etc... as a new field

Adding a new hook: Easy adding new fields to powermail

Update on 06.05.2008 version 1.2.1 ●

Onetime filling available (check by fieldcontent or IP address)

Bugfix for checkbox (javascript was not included in 1.2.0)

Update on 05.05.2008 version 1.2.0 ●

Fields can be prefilled with typoscript

Dynamic typoscriptmarker can be used in every HTML Template or RTE field

Dynamic locallangmarker can be used in every HTML Template or RTE field now

MX Record check of sender email address (disabling via constants)

###POWERMAIL_ALL### Don't show label if value is empty (enabling via constants)

Removed unnecessary p-tags in emails

DB entries in other tables (use typoscript)

Mandatory check of checkboxes

Disable automatic realurl settings in extension manager (if wanted)

DB entry in other db table in second level (like uid3_0)

Hiddenfields and JavaScript for checkboxes can be disabled (via constants) (Attention: Changes HTML Template tmpl_fieldwrap.html)

Fix: Checkbox CSS classes added

Country selection available with static_info_tables_de, _fr, _da, and so on...

RemoveXSS for HTML fields can be disabled if wanted (via constants)

Charset of output can be set via constants (utf8)

Small fix in html for countryselection

Powermail version 1.1.x stable Update on 05.05.2008 version 1.1.10 ●

Security fix

Update on 20.04.2008 version 1.1.9 ●

Update for handling checkboxes (disabling of checkbox values possible – via JS)

powermail - 78


Update on 14.04.2008 version 1.1.8 ●

Extern db entry (timestamp and current pid enabled)

Update on 10.04.2008 version 1.1.7 ●

Improved hook loop in submit.php

Fixed CSS class of previous and next button

Small fix in realurlconf

Prepared fileupload in second level (in array)

Update on 09.04.2008 version 1.1.6 ●

Small bugfix

Update on 09.04.2008 version 1.1.5 ●

File upload: Error messages if file is to large or has wrong extension

Added new div layer to html_fieldwrap for checkboxes and radiobuttons

Export with piVars in second level available (checboxes, multiple selctions, etc...)

Filter is always visible in backend module (even if current page has no powermails)

Update on 07.04.2008 version 1.1.4 ●

Small fixes in use with powermail_optin

Update on 06.04.2008 version 1.1.3 ●

Enabled powermail_optin with powermail

3 more hooks added

redirect fix

small fix for mod1

Update on 01.04.2008 version 1.1.2 ●

Individual configuration of export files via tsconfig now available!

Backend module with some configuration possibilities

Pagebrowser to backend module added

Small fix for redirect after submit (without baseurl)

Update on 27.03.2008 version 1.1.1 ●

Preselection for checkbox, radiobuttons and selectfields available

Small fix for country preselection

CSS example added to manual

Update on 25.03.2008 version 1.1.0 ●

Noreply email address (sender) can be set via constants

Easy saving values to any db table via typoscript

No more emails to noreply@domain.org

Allowed upload file extensions decreased to lower case letters

Powermail version 1.0.x stable Update on 21.03.2008 version 1.0.12 ●

Small fix for formsonpage use

Small fix if you want to send text in emails

Update on 19.03.2008 version 1.0.11 ●

SQL debug output deactivated

Small change for TYPO3 4.2 powermail - 79


Update on 14.03.2008 version 1.0.10 ●

New feature: Markers available in receiver field

Added a new hook to manipulate email receiver, sender and subject

Hook documentation added to manual

Update on 12.03.2008 version 1.0.9 ●

Bugfix: Multiple within select fields available

Update on 09.03.2008 version 1.0.8 ●

New feature: Markers allowed in email subjects

New feature: Markers allowed in regulare expressions (php validation check of fields)

Added realurl example in the folder ext/powermail/doc/

Bugfix: Confirmationpage error if content was only available for a special usergroup

Manual: Addes some new examples

Update on 08.03.2008 version 1.0.7 ●

Bugfix: require_once error on a few server

Some kind of “code cleaning”

Update on 06.03.2008 version 1.0.6 ●

New feature: Uploaded files will be attached to emails

If captcha and sr_freecap is loaded, select one via constants

Update on 04.03.2008 version 1.0.5 ●

Fixed a language problem with javascript validation error messages

Javascript validation of text fields: Added german umlauts

Constants splitted into two parts

Update on 02.03.2008 version 1.0.4 ●

date2cal is not needed any more

Update on 01.03.2008 version 1.0.3 ●

Bugfixing linebreaks (e.g. In textareas)

Update on 29.02.2008 version 1.0.1 / 1.0.2 ●

Uses new API from date2cal 7.0.0 (faster and better work between powermail and date2cal)

Some mall bugfixes

Update on 28.02.2008 version 1.0.0 ●

Fields and Fieldsets can be set to hidden

HTMLentities for JS integration can be disabled per constants

Bugfix: JS errormessage in IE removed

Bugfix: Files could not be uploaded on some TYPO3 installations

Bugfix: Content with powermail can be set to hidden

Bugfix: Starttime and Endtime available in Content with powermail

Powermail version 0.7.x beta Update on 27.02.2008 version 0.7.2 ●

Main bug finally fixed: On some T3 installations no field could be added!

Update on 25.02.2008 version 0.7.1 ●

Auto PHP validation of every field available

Manual PHP validation of every field available (with regulare expressions) powermail - 80


Bugfix: Addslashes two times to one time

Small HTML bugfix for id in frontend

Sender email address will be automaticly validated

Update on 23.02.2008 version 0.7.0 ●

Select, Checkboxes, Radiobuttons with different label/values available

You can set a sender name

First email as sender, rest with cc

Marker available in receiver db select

Possibilty to select receiver in frontend

Hook documentation added

Powermail version 0.6.x beta Update on 21.02.2008 version 0.6.3 ●

Small bugfix (“array” in ###POWERMAIL_ALL###)

Database relation added to manual

Update on 20.02.2008 version 0.6.2 ●

Recipients sql query finally possible in backend

French translation added to powermail

trim() will be used for all values

Single quote allowed in fields

Bugfix if “onfocus” is not used

Update on 18.02.2008 version 0.6.1 ●

Small bugfix for checkbox css classes in frontend

Standard values from datetime fields will be filled correctly (no more timestamp)

Update on 17.02.2008 version 0.6.0 ●

Multiple page via javascript finally added

Changes in manual

Sample CSS added

Powermail version 0.5.x beta Update on 15.02.2008 version 0.5.9 ●

JavaScript validation enabled with simulatestaticdocuments

IP logging can be disabled

Bugfix: Date fields will be prefilled now

Update on 14.02.2008 version 0.5.8 ●

Small bugfix in upload fields

New screenshot in manual

Update on 11.02.2008 version 0.5.7 ●

Bugfix: Sender email

HTML validation passed

ID's for checkboxes and radiobuttons improved

Update on 10.02.2008 version 0.5.6 ●

New global marker added: ###POWERMAIL_UPLOADFOLDER###

Check: Upload field function powermail - 81


Bugfix in sender email address if no address defined (noreplay@domain.com)

Bugfix in ext_localconf.php in realurl settings (no more foreach error)

Update on 03.02.2008 version 0.5.5 ●

New translation added: Dutch

Update on 31.01.2008 version 0.5.4 ●

Bugfix: No more error message if you choose the backend module

Marker ###POWERMAIL_BASEURL### filled with baseurl or absolute URL to your Server

Powermail can be used in TYPO3 4.2 if wanted

Update on 26.01.2008 version 0.5.3 ●

Prototype.js can be disabled via constants

Bugfix: Another umlauts problem (utf-8)

Disallow quotes in tags

You can disable tab dividers if wanted

Define which fe_users fields are available for prefilling

Update on 26.01.2008 version 0.5.2 ●

Bugfix: Small change in showing error message (wt_spamshield)

Spam Hook with further objects

Update on 24.01.2008 version 0.5.1 ●

Bugfix: Default values in RTE: ###POWERMAIL_ALL###

Bugfix: Break in textareas is allowed now (NOTE: Changes in tmpl_all.html)

Fields submit, reset, check and radio with better css class

Umlauts in emails possible

Frontend preview can be deactivated in backend

Update on 22.01.2008 version 0.5.0 ●

Change of version status: from alpha to beta

Redirect instead of thx message possible

Marker of each field will be displayed in backend

Small security fix

Captcha fix

Bug in countryselect fixed

Small bugfixes for content element in backend

Global Marker ###POWERMALL_ALL### fix (with checkboxes)

Constants markerALL.notIn changed

Additional RTE fields for both emails in backend (can be used with existing HTML template)

Field “name” in backend of each field removed (not in use any more)

Changes in php

Pagebrowser in multiple available (2 of 4)

Powermail version 0.4.x alpha Update on 21.01.2008 version 0.4.1 ●

Bugfix: Captcha use with Confirmation page

Update on 20.01.2008 version 0.4.0 ●

Security update

Captcha can be used: sr_freecap powermail - 82


Captcha can be used: captcha

PHP bugfixes

Example pictures for every field in the backend

New screenshots in manual

Powermail version 0.3.x alpha Update on 18.01.2008 version 0.3.4 ●

Mandatory JS check was disabled if date2cal was in use

Some bugfixes in php

Now: User int plugin

Small changes in locallang.xml

Update on 16.01.2008 version 0.3.3 ●

Add mandatory and validation javascript for fieldcheck

Update on 16.01.2008 version 0.3.2 ●

Some changes in the manual

Some small fixes

Small change in html template: fieldwrap

Now, you can clear session after submit (set via constants)

Update on 16.01.2008 version 0.3.1 ●

Upload field enabled (updated constants)

Get values from logged in fe_user

Checks for valid sender email address

Improved error management

Powermail version 0.2.x alpha Update on 15.01.2008 version 0.2.2 ●

Mandatory fields will be added with a symbol (*) (Symbol can be wrapped in constants)

Bugfix in Excel export

Powermail can be used with older TYPO3 versions (tested on TYPO3 3.8)

IRRE can be deactivated if wanted (so you can enter the relation by hand)

Bugfix (checkbox label)

Update on 14.01.2008 version 0.2.1 ●

Mandatory field check enabled

Update on 13.01.2008 version 0.2.0 ●

Backend module with list-, export- and filter functions

Bugfixes in main code

Powermail version 0.1.x alpha Update on 10.01.2008 version 0.1.4 ●

Backend module integrated

Many bugfixes

Initial Release to TER on 08.01.2008 version 0.1.3 ●

Main functions for powermail

powermail - 83


Additional links You can use one of the following links, to get more informations about this plugin: ●

Authors (Alex Kellner) homepage: http://www.einpraegsam.net

Tuning parts for your car: http://www.wunschtacho.de

Stuff for snowboarder and skier: http://www.justpowder.de

Do you need help with this plugin: http://www.typo3.net

powermail - 84


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.