12.11.2013 Views

powermail

powermail

powermail

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>powermail</strong><br />

Extension Key: <strong>powermail</strong><br />

Copyright 2005-2008,<br />

Alexander Kellner, Mischa Heißmann,<br />

<br />

This document is published under the Open Content License<br />

available from http://www.opencontent.org/opl.shtml<br />

The content of this document is related to TYPO3<br />

- a GNU/GPL CMS/Framework available from www.typo3.com<br />

Table of Contents<br />

<strong>powermail</strong>..................................................................................................................................1<br />

Powermail Introduction...............................................................................................................................................3<br />

What does it do?......................................................................................................................................................3<br />

Tested with TYPO3 version.......................................................................................................................................3<br />

Powermail suggested...............................................................................................................................................3<br />

Known conflicts with.................................................................................................................................................3<br />

Screenshots.................................................................................................................................................................4<br />

Frontend..................................................................................................................................................................4<br />

Frontend: Testform einpraegsam.net.........................................................................................................................6<br />

Frontend: Mailform wunschtacho.de.........................................................................................................................7<br />

Frontend: Just another screenshot (form with tt_content inside)................................................................................8<br />

Frontend: Contact form used by conject....................................................................................................................9<br />

Frontend: Using multiple pages via JS....................................................................................................................10<br />

Searching for new screenshots...............................................................................................................................10<br />

Backend Module.....................................................................................................................................................11<br />

How to use quickly....................................................................................................................................................13<br />

Standard: Use IRRE...............................................................................................................................................13<br />

Without IRRE (TYPO3 < 4.1 or IRRE deactivated)..................................................................................................13<br />

Small video tutorial.................................................................................................................................................13<br />

Plugin Configuration..................................................................................................................................................14<br />

Add a new content item..........................................................................................................................................14<br />

General: Enter a header.........................................................................................................................................14<br />

Formdata: Main settings.........................................................................................................................................15<br />

Fields: Create new Fieldsets (pages)......................................................................................................................16<br />

Fields: Add fields (IRRE).........................................................................................................................................17<br />

Fields: Add fields (without IRRE).............................................................................................................................19<br />

Fields: Overview.....................................................................................................................................................20<br />

Fields: Explanation.................................................................................................................................................21<br />

Sender: Sender email and subject...........................................................................................................................34<br />

Recipients: Receiver email and subject...................................................................................................................35<br />

Answerpage: Thx message.....................................................................................................................................36<br />

Access: Form access .............................................................................................................................................36<br />

<strong>powermail</strong> settings in the Extension Manager..........................................................................................................37<br />

<strong>powermail</strong> - 1


Constants for <strong>powermail</strong>...........................................................................................................................................38<br />

Setup for <strong>powermail</strong>..................................................................................................................................................41<br />

HTML template and markers example use................................................................................................................43<br />

Example for email for recipients..............................................................................................................................43<br />

Changing (or adding new) flexible locallang markers in any html template or RTE field:...........................................43<br />

Adding new flexible typoscript markers in any html template or RTE field:................................................................43<br />

Backend module........................................................................................................................................................45<br />

Introduction............................................................................................................................................................45<br />

Define your export file as you want via tsconfig.......................................................................................................46<br />

Features.....................................................................................................................................................................48<br />

Validation of field values..........................................................................................................................................48<br />

Saving db values to any db table.............................................................................................................................50<br />

Prefilling fields........................................................................................................................................................51<br />

Fighting spam.........................................................................................................................................................51<br />

Integrate captcha to your form................................................................................................................................51<br />

Add new field: Selectorbox with values from database.............................................................................................52<br />

FAQ.............................................................................................................................................................................53<br />

I need help/support with this plugin!........................................................................................................................53<br />

How can I prefill some fields?..................................................................................................................................53<br />

Error in backend “Unknown type: inline” - what to do?.............................................................................................53<br />

How can I overwrite the locallang translations / How can I add a new locallang marker............................................53<br />

How can I use validation of fields per Javascript?....................................................................................................53<br />

JavaScript check don't work - why?.........................................................................................................................53<br />

How can a style my form?.......................................................................................................................................54<br />

HTML Validation vailed...........................................................................................................................................54<br />

How can I choose my own html code instead of the automatic html generation........................................................54<br />

POWERMAIL ERROR: No title to current field found in DB (uidXX) ........................................................................54<br />

I want a select box in frontend where the user can choose the receiver of the form.................................................54<br />

I will check some fields (with php) if the value is an email or an URL........................................................................55<br />

I want to use captcha but no captcha field is shown................................................................................................55<br />

Onetime filling solve all my problems.......................................................................................................................55<br />

Countryselector dropdown without value (Empty field cn_short_en ...).....................................................................55<br />

There is a problem with content elements like text/image / dividers2tab problem.....................................................55<br />

I cannot add fields (TYPO3 4.2)..............................................................................................................................55<br />

CSS corner.................................................................................................................................................................56<br />

How to get labels and fields in two columns with css...............................................................................................56<br />

How to get two columns..........................................................................................................................................57<br />

Developers corner......................................................................................................................................................58<br />

Database relation model.........................................................................................................................................58<br />

Hooks in <strong>powermail</strong>................................................................................................................................................59<br />

Todos .........................................................................................................................................................................62<br />

Bugfixes.................................................................................................................................................................62<br />

Features.................................................................................................................................................................62<br />

Request..................................................................................................................................................................62<br />

Changelog .................................................................................................................................................................63<br />

Additional links..........................................................................................................................................................71<br />

<strong>powermail</strong> - 2


Powermail Introduction<br />

What does it do?<br />

Powermail is a powerful and – in addition – a very easy mailform extension with IRRE technics and a high flexibilty for the<br />

user. You can very easily define your form fields in the backend and get an output without html knowledge. Emails with html<br />

content or plaintext only.<br />

Powermail offers many features like automatic database storing (and additional database storing to any db table) for every<br />

page. Individual Excel and CSV export possible in own backend modul.<br />

Different HTML templates and RTE fields in backend for sender (email), receiver (email), form, fields, thx- and error<br />

message.<br />

Powermail can send mails to more fe- or be-users or to only one email address, field values can be prefilled from logged in<br />

fe_user and all datas will be stored in a session (so the user can come back later and finish form filling)<br />

A javascript validation checks values of fields, simple define in backend what to check (check for mandatory, numbers only,<br />

etc..)<br />

You can validate (with php) every field value (auto or regulare expressions).<br />

It's possible to select the mail receiver in frontend.<br />

You can use captcha, sr_freecap or wt_spamshield against spam in your forms.<br />

Powermail offers morestep forms (php or javascript if wanted) and works with date2cal and static_info_tables or offers<br />

information from geoip and many more...<br />

Powermail offers many features to extend <strong>powermail</strong> (hooks, ts objects and userfuncs, debugoutput, etc...)<br />

And we tried to offer all this in a very easy way. Editors can create complex mailforms without html knowledge.<br />

Tested with TYPO3 version<br />

● TYPO3 3.8<br />

● TYPO3 4.0<br />

● TYPO3 4.1<br />

● TYPO3 4.2<br />

Powermail suggested<br />

● static_info_tables (and _de, _fr, _da, etc...)<br />

● date2cal (tested with 7.0.6)<br />

●<br />

●<br />

●<br />

●<br />

●<br />

wt_spamshield<br />

<strong>powermail</strong>_optin<br />

<strong>powermail</strong>_mul<br />

<strong>powermail</strong>_frontend<br />

geoip<br />

Known conflicts with<br />

● dbal<br />

<strong>powermail</strong> - 3


Screenshots<br />

Frontend<br />

Frontend: Show Form<br />

Frontend: Form validation failed<br />

<strong>powermail</strong> - 4


Frontend: Confirmation<br />

Frontend: Thx message to user<br />

<strong>powermail</strong> - 5


Frontend: Testform einpraegsam.net<br />

Example: http://www.einpraegsam.net/fachgebiete/typo3-extensions/<strong>powermail</strong>.html<br />

<strong>powermail</strong> - 6


Frontend: Mailform wunschtacho.de<br />

Example: http://www.wunschtacho.de/support/kontakt.html<br />

<strong>powermail</strong> - 7


Frontend: Just another screenshot (form with tt_content inside)<br />

<strong>powermail</strong> - 8


Frontend: Contact form used by conject<br />

Example: http://www.conject.com/kontakt/kontakt.html<br />

<strong>powermail</strong> - 9


Frontend: Using multiple pages via JS<br />

Searching for new screenshots<br />

Do you have a cool homepage with <strong>powermail</strong> inside?<br />

If you want to support <strong>powermail</strong>, just send us a screenshot or write me an email: alexander.kellner@einpraegsam.net<br />

<strong>powermail</strong> - 10


Backend Module<br />

Backend: Powermail list<br />

Backend: Define some fields<br />

<strong>powermail</strong> - 11


Backend: Define your Answerpage<br />

<strong>powermail</strong> - 12


How to use quickly<br />

Standard: Use IRRE<br />

● Import from online repository<br />

●<br />

●<br />

●<br />

●<br />

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

Enter a new page record on any normal page and choose the <strong>powermail</strong> plugin (see below for a detailed manual),<br />

there you can define your fieldsets and fields<br />

That's all!<br />

NOTE: If you want to use IRRE, ensure that your server provides long POST variables (maybe it's useful to<br />

increase POST memory size on the server)<br />

Without IRRE (TYPO3 < 4.1 or IRRE deactivated)<br />

● Import from online repository<br />

●<br />

●<br />

●<br />

●<br />

●<br />

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

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

Add one or more new content elements to the page: fieldset (set relation to the <strong>powermail</strong> plugin)<br />

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

That's all!<br />

Small video tutorial<br />

http://www.einpraegsam.net/fachgebiete/typo3-extensions/<strong>powermail</strong>-video.html<br />

<strong>powermail</strong> - 13


Plugin Configuration<br />

Add a new content item<br />

General: Enter a header<br />

This fields are similar to the standard text plugin<br />

(header, start and stop time, frame, language...)<br />

(see TYPO3 documentation for more information)<br />

<strong>powermail</strong> - 14


Formdata: Main settings<br />

●<br />

●<br />

●<br />

●<br />

Formtitle: Enter a title for the whole form (only used intern)<br />

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

Activate confirmation page: If checked there will be a confirmation page after form-submit<br />

(like: are your values ok?)<br />

Multiple steps:<br />

●<br />

●<br />

●<br />

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

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

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

HTML/PHP<br />

<strong>powermail</strong> - 15


Fields: Create new Fieldsets (pages)<br />

●<br />

●<br />

Create new Fieldsets: You can create more pages (fieldsets), if you want to use the moresteps function. Every step<br />

is a fieldset.. It's also usefull to show fields separated in different fieldsets on one page – so you can use more than<br />

only one fieldset.<br />

NOTE: You need to choose min. 1 fieldset for every form.<br />

Preview: This iframe previews the your frontend at once, so you can see your changes.<br />

NOTE: You can deactivate this iframe in the extension manager (maybe faster working possible)<br />

<strong>powermail</strong> - 16


Fields: Add fields (IRRE)<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

Fieldset Title: Enter a title for your fieldset<br />

Fieldset Hide: You can disable the complete fieldset if you want<br />

Fieldset Starttime: Enter a starttime for the complete fieldset<br />

Fieldset Endtime: Enter a stoptime for the complete fieldset<br />

Fieldtype: Choose any fieldtype (textfield, textarea, selectbox, checkbox, radiobutton, submit, reset, text,<br />

pagecontent, html, password, file upload, hidden, datetime, date, time, button, graphicsubmit, countryselect) /<br />

NOTE: See a detailed description below<br />

Create new Fields: You have to enter your fields (like name and email)<br />

<strong>powermail</strong> - 17


●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

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

Field Hide: You can disable the current field<br />

Field Starttime: Enter a starttime for this field<br />

Field Stoptime: Enter a stoptime for this field<br />

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

Settings (Text field) Max. Length: Set max. length for textfiels<br />

Settings (Text field) Read only: Field is set to read only<br />

Settings (Text field) Mandatory field: Field is obsolete<br />

Settings (Text field) Default value: Choose a value to prefill the textfield<br />

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

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

Settings (Text field) Field example: There is an example picture of the current field<br />

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<br />

allowed fe_user fields via Ext Manager<br />

NOTE: Different fields have different setting possibilities (see below for details)<br />

<strong>powermail</strong> - 18


Fields: Add fields (without IRRE)<br />

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

● Add a new content element (<strong>powermail</strong>) if not yet done<br />

● Use “create new record” to add a fieldset manually (enter the relation to the <strong>powermail</strong> content on the same page)<br />

● Use “create new record” to add a field manually (enter the relation to the <strong>powermail</strong> fieldset on the same page)<br />

NOTE: Different fields have different setting possibilities (see below for details)<br />

<strong>powermail</strong> - 19


Fields: Overview<br />

Title: Explanation: Example Output: Category:<br />

Textfield Simple text fields (one line) STANDARD<br />

Textarea Text fields with more lines text STANDARD<br />

Select box Selector box (dropdown) 1 STANDARD<br />

Checkbox Checkbox STANDARD<br />

Radio Button Radio buttons STANDARD<br />

Submit Button Submit button STANDARD<br />

Captcha Request<br />

Captcha picture with input field to validate a human entry<br />

(captcha or sr_freecap needed)<br />

<br />

EXTRA<br />

Reset Button Reset buttons EXTRA<br />

Show some text Enter a text and show it in the frontend Text blabla EXTRA<br />

TYPO3 page<br />

content<br />

Enter your own<br />

html code<br />

Show any TYPO3 page content blabla EXTRA<br />

Enter your html code bla EXTRA<br />

Password field Password field EXTRA<br />

File upload Standard upload field for files EXTRA<br />

Hidden field Hidden value EXTRA<br />

Date and time field Text field with a javascript calendar ... EXTRA<br />

Date field Text field with a javascript calendar ... EXTRA<br />

Button<br />

Simple a button without a function (maybe usefull for a<br />

javascript)<br />

<br />

EXTRA<br />

Graphic as submit Submit Image EXTRA<br />

Country selection Selector box with countries (static_info_tables needed) Germany... EXTRA<br />

Add typoscript<br />

object<br />

Output any value from your typoscript Any value from typoscript EXTRA<br />

Multiple upload<br />

Multiple upload fields are part of the extension<br />

<strong>powermail</strong>_mul (enables upload of more files)<br />

...<br />

EXTENSIO<br />

NS<br />

<strong>powermail</strong> - 20


Fields: Explanation<br />

Fields: Add textfield<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

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

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

Read only: Check to be a read only field (readonly=”readonly”)<br />

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

Default value: Prefill field with a value (value=””)<br />

Validate this field for: This is a javascript validation<br />

– check for email addresses (like test@test.com)<br />

– check for URL (like http://www.test.de)<br />

– check for digits only (like 3.6)<br />

– check for digits without comma and point (like 3)<br />

– check for letters only (a-z)<br />

– check for letters and digits only (a-z and 0-9)<br />

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

Field example: You will see a picture example of the chosen field<br />

<strong>powermail</strong> - 21


Fields: Add textarea<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

Number of columns: Set columns (cols=””)<br />

Number of rows: Set rows (rows=””)<br />

Read only: Set field to a read only field (readonly=”readonly”)<br />

Mandatory field: This field is a needed field – no db and no email without this field<br />

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

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

Field example: You will see a picture example of the chosen field<br />

<strong>powermail</strong> - 22


Fields: Add selectbox<br />

● Enter your options: Every line is a new option for the selececterbox like red, green and blue /<br />

- If you want different label and values, you can write: label | value /<br />

- If you're going to use the same label and value, you can write: value<br />

●<br />

●<br />

●<br />

●<br />

Size: Set field size (size=””)<br />

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

Mandatory field: This field is a needed field – no db and no email without this field<br />

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

Option examples for selectorbox<br />

Line Example for options Explanation of left example (html code in frontend)<br />

1 Red red<br />

2 Red | 1 Red<br />

3 Blue | Blue<br />

4 Black | black | * Black<br />

5 White | | * White<br />

<strong>powermail</strong> - 23


Fields: Add checkbox<br />

● Enter your options: Every line is a new option for the selececterbox like red, green and blue /<br />

- If you want different label and values, you can write: label | value /<br />

- If you're going to use the same label and value, you can write: value<br />

●<br />

●<br />

Mandatory field: This field is a needed field – no db and no email without this field<br />

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

Option examples for checkboxes<br />

Line Example for options Explanation of left example (html code in frontend)<br />

1 Red Red<br />

2 Red | 1 Red<br />

3 Blue | Blue<br />

4 Black | black | * Black<br />

5 White | | * White<br />

<strong>powermail</strong> - 24


Fields: Add radiobutton<br />

● Enter your options: Every line is a new option for the selececterbox like red, green and blue /<br />

- If you want different label and values, you can write: label | value /<br />

- If you're going to use the same label and value, you can write: value<br />

●<br />

●<br />

Mandatory field: This field is a needed field – no db and no email without this field<br />

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

Option examples for radiobuttons<br />

Line Example for options Explanation of left example (html code in frontend)<br />

1 Red Red<br />

2 Red | 1 Red<br />

3 Blue | Blue<br />

4 Black | black | * Black<br />

5 White | | * White<br />

<strong>powermail</strong> - 25


Fields: Captcha request<br />

●<br />

●<br />

●<br />

●<br />

Description: Write your own description in front of the captcha field<br />

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

Field example: You will see a picture example of the chosen field<br />

NOTE: First of all you have to install sr_freecap or captcha and choose (via constants) which one should be used<br />

(Standard: sr_freecap)<br />

Fields: Add submitbutton<br />

●<br />

●<br />

Field example: You will see a picture example of the chosen field<br />

NOTE: To enter the label (value) of the button, use the label of the field<br />

<strong>powermail</strong> - 26


Fields: Add resetbutton<br />

●<br />

●<br />

●<br />

Refresh page and clear whole session: Use this checkbox if a user clicks the button, the page will be refreshed<br />

without session values<br />

Field example: You will see a picture example of the chosen field<br />

NOTE: To enter the label (value) of the button, use the label of the field<br />

Fields: Add text<br />

●<br />

●<br />

●<br />

●<br />

●<br />

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

Send this content via email: If you want to send this content via email, check this<br />

Field example: You will see a picture example of the chosen field<br />

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

NOTE: Send this content via email is not yet finished programed at this time!<br />

<strong>powermail</strong> - 27


Fields: TYPO3 pagecontent<br />

●<br />

●<br />

●<br />

Default value: Choose any tt_content uid to show in frontend<br />

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

Field example: You will see a picture example of the chosen field<br />

Fields: HTML code<br />

●<br />

●<br />

●<br />

●<br />

Default value: Enter your HTML code here<br />

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

Field example: You will see a picture example of the chosen field<br />

NOTE2: Maybe removeXSS disables all features – you can disable this function via constants<br />

<strong>powermail</strong> - 28


Fields: Add a password field<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

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

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

Read only: Set field to a read only field (readonly=”readonly”)<br />

Mandatory field: This field is a needed field – no db and no email without this field<br />

Field example: You will see a picture example of the chosen field<br />

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

NOTE: Password fields are described in selfhtml.org<br />

Fields: Upload field<br />

●<br />

●<br />

●<br />

●<br />

●<br />

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

Mandatory field: This field is a needed field – no db and no email without this field<br />

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

Field example: You will see a picture example of the chosen field<br />

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

Fields: Hidden field<br />

●<br />

●<br />

●<br />

Default value: Set your value for this field (value=””)<br />

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

NOTE: Hidden fields are useful, if you want to send a time or the user ip or anything to the receiver. You can add<br />

some hidden fields and fill them via ts (how to fill fields via ts is descripted below in this manual)<br />

<strong>powermail</strong> - 29


Fields: Date and Datetime field<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

NOTE: This fields are only supported if you have installed the extension date2cal!<br />

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

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

Read only: Set field to a read only field (readonly=”readonly”)<br />

Mandatory field: This field is a needed field – no db and no email without this field<br />

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

Field example: You will see a picture example of the chosen field<br />

Fields: Button field<br />

●<br />

●<br />

●<br />

●<br />

Default value: Set a default value<br />

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

Field example: You will see a picture example of the chosen field<br />

Note: JS implementation is not finished programed at this time<br />

<strong>powermail</strong> - 30


Fields: Graphic submit field<br />

●<br />

●<br />

●<br />

●<br />

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

Alternative Text for image: use the alt tag (alt=””)<br />

Field example: You will see a picture example of the chosen field<br />

NOTE: Imagebuttons are described in selfhtml.org<br />

<strong>powermail</strong> - 31


Fields: Countryselect field<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

Country shortage for preselect: Select one country to be preselected in frontend<br />

Only show this countries: If you chose some countries – ONLY this countries will be shown<br />

Show list without this countries: Show whole list without this selected countries<br />

(Don't works with “Only show this countries”)<br />

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

Field example: You will see a picture example of the chosen field<br />

NOTE1: This fields are only supported if you have installed the extension static_info_tables!<br />

● NOTE2: If you want a localized version, you can use (e.g.) static_info_tables_de (or fr etc...) -<br />

(TS example: config.language = de for staticinfo_tables_de)<br />

●<br />

NOTE3: You can use utf8_encode or utf8_decode via constants<br />

<strong>powermail</strong> - 32


Fields: Typoscript field<br />

●<br />

●<br />

●<br />

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

Field example: Example for a typoscript setup<br />

NOTE: You can use every object from typoscript for this kind of fields<br />

(maybe it's interesting to add a userfunc for some special fields, etc...)<br />

<strong>powermail</strong> - 33


Sender: Sender email and subject<br />

●<br />

Senders email address: Choose any of your fields to mark as sender email (This is needed to send an email to the<br />

sender, This field will be checked if the value is really an email address)<br />

● Subject for sender's mail: Choose any email subject /<br />

NOTE: You can use markers in email subject to get a subject like “Thank you Alex for your mail”<br />

●<br />

●<br />

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

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

<strong>powermail</strong> - 34


Recipients: Receiver email and subject<br />

● Subject for recipient's mail: Choose an email subject for the receiver /<br />

NOTE: You can use markers in email subject to get a subject like “New mail from Alex”<br />

● Recipient: Enter some email receivers (separated with comma, semicolon or with a new line) /<br />

- If you want to enter a sender name, just write: name \n email1 \n email2 \n email3 ... /<br />

- You can also use markers in this field instead of an email: test@test.de, ###UID3###<br />

●<br />

●<br />

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

users<br />

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

● Alternative SQL-Query: You can enter an own SQL query to get your own email addresses /<br />

- Example: SELECT email FROM fe_users WHERE pid = 12 /<br />

- You can also use markers in the query like SELECT email FROM fe_users WHERE uid = ###UID5### /<br />

- Not allowed strings: UPDATE, TRUNCATE, DELETE, INSERT, REPLACE, DO, HANDLER, LOAD, ALTER,<br />

CREATE, DROP, RENAME, DESCRIBE, USE, BEGIN, COMMIT, ROLLBACK, LOCK, SET, REVOKE, GRANT<br />

●<br />

●<br />

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

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

<strong>powermail</strong> - 35


●<br />

NOTE2: Priority of recipient fields: Recipient, Table choose, SQL query<br />

<strong>powermail</strong> - 36


Answerpage: Thx message<br />

●<br />

●<br />

●<br />

Response Text: This text is shown after submit<br />

Auto-redirect after confirmation-page: You can forward the user after submit to any intern or extern URL or file<br />

(instead of using the message)<br />

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

Access: Form access<br />

●<br />

Similar to text: Choose your access an general options (see TYPO3 documentation for more information)<br />

<strong>powermail</strong> - 37


<strong>powermail</strong> settings in the Extension Manager<br />

useIRRE<br />

Property: Description: Default Data type:<br />

usePreview<br />

TabDividers<br />

feusersPrefill<br />

disableIPlog<br />

disablePMRealU<br />

rlConfig<br />

Inline Relational Record Editing (IRRE) to enter your fieldsets and fields just by<br />

opening only one content. If you want to use the listview and manually enter the<br />

relation between tt_content and fieldsets and fields you can disable IRRE (IRRE<br />

is only activated if you're using TYPO3 > 4.1)<br />

Preview window active: Activate frontend preview window under field definitions<br />

(iframe with frontend view of current page). Deactivate for a faster work with<br />

<strong>powermail</strong>.<br />

Activate tab dividers: Powermail uses tab dividers in backend so every category<br />

seems to be a new site (like General, Formdata, Fields, Sender, Recipients,<br />

Answerpage and Access). You can disable tabdividers if you want to show all<br />

stuff on only one page or if there are problems with tab dividers and other<br />

extensions.<br />

A dropdown is shown in the backend which enables to prefill any field with the<br />

value of a current logged in feuser. You can increase or decrease the fe_user<br />

field values in the dropdown menu. Just use the wanted fieldnames of the<br />

fe_user table in a comma-separated list.<br />

Deactivate IP logging: If you don't want to save the sender IP address in the<br />

database, you can use this checkbox.<br />

Deactivate config for Realurl: Powermail uses an automatic realurlconf array for<br />

type=3131. You can disable this feature if you want to use your own<br />

configuration or you don't need a realurl configuration. (see ext_localconf.php<br />

for configuration details)<br />

1 boolean<br />

1 boolean<br />

1 boolean<br />

name, address,<br />

telephone, fax, email, zip,<br />

city, country, www,<br />

company<br />

text<br />

0 boolean<br />

0 boolean<br />

<strong>powermail</strong> - 38


Constants for <strong>powermail</strong><br />

You can change your constants with the constant editor<br />

Property: Description: Default Data type:<br />

template.formWrap<br />

template.fieldWrap<br />

template.thxMessage<br />

template.emails<br />

template.confirmation<br />

template.all<br />

template.mandatory<br />

template.MultipleJS<br />

allow.email2receiver<br />

allow.email2sender<br />

allow.dblog<br />

PID.dblog<br />

Template File formwrap: HTML-template file for<br />

formwrap<br />

Template File fieldwrap: HTML-template file for<br />

fieldwraps<br />

Template File thx-message: HTML-template file for thx<br />

message after submit<br />

Template File emails: HTML-template file for emails<br />

messages (sender and receiver)<br />

Template File confirmation: HTML-template file to<br />

change html code of the confirmation page<br />

Template File ALL marker: HTML-template file if you<br />

want to use the marker ###POWERMAIL_ALL### -<br />

here you can set the HTML code for each line<br />

Template File mandatory: HTML-template file for<br />

mandatory page (if any mandatory field was not filled)<br />

Template File multiple: HTML-template file for multiple<br />

pages (see<br />

EXT:<strong>powermail</strong>/templates/tmpl_multiplejs.html for an<br />

example)<br />

Email to receiver active: You can disable emails to<br />

receiver<br />

Email to sender active: You can disable confirmation<br />

emails to sender<br />

Log every mail in db: Disable logging, if you want only to<br />

get mails<br />

PID where to save logfiles: Enter a Page ID where the<br />

form values should be saved to the db (empty: same<br />

PID as form PID)<br />

EXT:<strong>powermail</strong>/templates/tmpl_for<br />

mwrap.html<br />

EXT:<strong>powermail</strong>/templates/tmpl_fiel<br />

dwrap.html<br />

EXT:<strong>powermail</strong>/templates/tmpl_thx.<br />

html<br />

EXT:<strong>powermail</strong>/templates/tmpl_em<br />

ails.html<br />

EXT:<strong>powermail</strong>/templates/tmpl_con<br />

firmation.html<br />

EXT:<strong>powermail</strong>/templates/tmpl_all.<br />

html<br />

EXT:<strong>powermail</strong>/templates/tmpl_ma<br />

ndatory.html<br />

EXT:<strong>powermail</strong>/templates/tmpl_mul<br />

tiplejs.html<br />

file<br />

file<br />

file<br />

file<br />

file<br />

file<br />

file<br />

file<br />

1 boolean<br />

1 boolean<br />

1 boolean<br />

boolean<br />

enable.html<br />

enable.unique<br />

email.noreply<br />

email.checkMX<br />

email.overwritesender<br />

markerALL.hideLabel<br />

markerALL.notIn<br />

form.method<br />

format.datetime<br />

format.date<br />

HTML or Plain format: If you use this value, emails will<br />

be send in html format - disable for plain text (0 or 1)<br />

Onetime filling: Checks if a field has already this entry<br />

(maybe email address), IP check is also possible if ip<br />

addresses will be logged) - (e.G. uid11,ip checks for<br />

unique IP and unique entry in field uid11)<br />

Standard sender address: This email address is<br />

important, if no sender field was chosen in the backend,<br />

so this email address will be used for the sender<br />

(###DOMAIN### will be replaced with current domain<br />

like test.com)<br />

Check MX record of sender mail: This is a small test, if<br />

senders email address exists (MX record check of<br />

domain)<br />

E-Mail sender address: If you add an email address in<br />

this field, this email address will be used for the user<br />

mail as senderemail and returning email address.<br />

Normally the main receiver address is used as sender<br />

for the returning mail, but you can overwrite this if you<br />

want (e.G. mail@mail.com) Note - if you don't use a<br />

correct mail address, this field will be ignored!<br />

Hide label if empty value: This option hides labels if its<br />

value is empty in marker ###POWERMAIL_ALL###<br />

Exclude fields from marker ALL: Exclude some fields<br />

from marker ###POWERMAIL_ALL### (e.g.:<br />

###UID14###,###UID22### or UID14,UID22)<br />

Form method: use post or get as post format (details<br />

see on selfhtml.org)<br />

Frontend datetime format if datetime field is in use (only<br />

needed if you use the extension date2cal)<br />

Frontend date format if date field is in use (only needed<br />

if you use the extension date2cal)<br />

1<br />

boolean<br />

noreply@###DOMAIN### text<br />

1 boolean<br />

text<br />

0 boolean<br />

text<br />

post<br />

text<br />

%H:%M %d-%m-%Y<br />

text<br />

%d-%m-%Y<br />

text<br />

<strong>powermail</strong> - 39


Property: Description: Default Data type:<br />

label.allowTags Allowed tags in labels: Allow some tags for label fields text<br />

html.removeXSS<br />

countryselect.charset<br />

mandatory.symbol<br />

mandatory.wrap<br />

captcha.use<br />

pagebrowser.wrap<br />

upload.folder<br />

upload.file_extensions<br />

upload.filesize<br />

upload.atachment<br />

clear.session<br />

js.mandatorycheck<br />

js.mandatordivclass<br />

js.onfocus<br />

js.Prototype<br />

js.HTMLentities<br />

field.checkboxJS<br />

rte.parse<br />

<strong>powermail</strong>.charset<br />

RemoveXSS for html fields: (de)activate security<br />

function to disable Cross Site Scripting with the html field<br />

(removeXSS on or off)<br />

Charset for countryselector: You can use the php<br />

functions utf8_encode or utf8_decode to change the<br />

countryselector output<br />

Add symbol for mandatory fields: If any field is a<br />

mandatory field, add this at the end of the label<br />

Wrap mandatory symbol: You can wrap the mandatory<br />

symbol with any html code<br />

Use captcha extension: If you have installed sr_freecap<br />

and captcha, you can select which extension should be<br />

used<br />

Wrap pagebrowser: If you use multiple pages (PHP),<br />

you can show the current page like 1 of 3<br />

Folder for uploaded files: If you are using min. one<br />

upload field in frontend, you can change the folder where<br />

the uploaded file is safed<br />

Allow files for upload: If you are using min. one upload<br />

field in frontend, you can set the allowed extension of<br />

this files<br />

Allow filesize for upload: If you are using min. one<br />

upload field in frontend, you can set the allowed filesize<br />

of the files (in kB)<br />

Upload and attach: If checked, all files will be sent as an<br />

attachment to the receiver (if disabled, files will only<br />

stored on server)<br />

Clear Session: Check if session should be cleared after<br />

submit (emails sent)<br />

Check for mandatory fields: (De)activate JavaScript<br />

check for mandatory fields (and other fields like email,<br />

url, etc..)<br />

Mandatory JS DIV class: Enter your own css class for<br />

the mandatory javascript div layer (div layer which is<br />

shown, if a field was not filled, etc...)<br />

OnFocus JavaScript: (De)activate onfocus javascript in<br />

fields - removes standard value of (e.g. text-) fields<br />

onclick, so the user can click and begin to write<br />

Load prototype.js: (De)activate loading prototype.js in<br />

html head of page where <strong>powermail</strong> is in (prototype.js is<br />

needed for JS validation of fields and for date2cal fields<br />

like date, datetime and time)<br />

HTMLentities for JS: (De)activate the php function<br />

htmlentities for the dynamic javascript in the html<br />

header. Example with htmlentities: index.php?id=1&<br />

amp;type=3131 / Example without htmlentities:<br />

index.php?id=1&type=3131<br />

Hiddenfields for checkboxes: (De)activate the<br />

hiddenfields for checkboxes. If only checkboxes are in<br />

use, there is a problem to enable a checkbox, submit, go<br />

back and deaktivate checkbox and submit again - the<br />

value ist still set. To fix this, you can use a JavaScript<br />

with hiddenfields (set by default).<br />

Use rteCSStext function: Text from rich text editor will be<br />

parsed automaticly for emails and thx message (every<br />

line gets an p tag, etc...). Disabling could be useful if you<br />

want to use only plaintext mails.<br />

Charset for <strong>powermail</strong>: You can use the php functions<br />

utf8_encode or utf8_decode to change the whole<br />

<strong>powermail</strong> output<br />

1 boolean<br />

* text<br />

|<br />

<br />

sr_freecap<br />

|<br />

<br />

uploads/tx_<strong>powermail</strong>/files/<br />

jpg,gif,png,tif,txt,doc,xls,sxw,html,s<br />

wf<br />

options[,utf8_e<br />

ncode,utf8_dec<br />

ode]<br />

text<br />

option<br />

wrap<br />

text<br />

text<br />

1000 int<br />

1 boolean<br />

0 boolean<br />

1 boolean<br />

<strong>powermail</strong>_mandatory_js<br />

text<br />

1 boolean<br />

1 boolean<br />

1 boolean<br />

1 boolean<br />

1 boolean<br />

options[,utf8_e<br />

ncode,utf8_dec<br />

ode]<br />

<strong>powermail</strong> - 40


Property: Description: Default Data type:<br />

barrier-free.tabindex<br />

barrier-free.accesskey<br />

geoip.file<br />

geoip.addValuesToMarke<br />

rALL<br />

debug.output<br />

Manual sorting of tabindex: Powermail adds tabindex to<br />

the fields (automaticly via sorting). If you want to use<br />

another order, you can change the order with this<br />

settings (e.g. uid5,uid4,uid3_0,uid3_1 or<br />

5,4,6,4_0,4_1,3)<br />

Adding accesskeys: You can add some accesskeys to<br />

the fields if you want<br />

(e.g. uid1:f,uid3:g or 1:a,2:b,3_1:c)<br />

Add geoip file: If you want to use geoip, you can enter<br />

the relative path to the .dat file for geo info (e.g.<br />

fileadmin/geoinfo.dat)<br />

Note: Prefix for all <strong>powermail</strong> constants: plugin.<strong>powermail</strong>.<br />

Add geo info to marker ALL: The most people don't want<br />

to use single markers, they just use<br />

###POWERMAIL_ALL###, if you want to add some<br />

geoinfo, you can add those to the all marker (e.g.<br />

countryName, city) (available keys - ip, countryCode,<br />

countryName, region, city, zip, lng, lat, dmaCode,<br />

areaCode)<br />

Activate debug output: Possibility to print a debug output<br />

over the html. All displays session and email array,<br />

Session prints only session array, Email prints only<br />

email array (empty or all or session or email)<br />

text<br />

text<br />

text<br />

text<br />

options[,all,ses<br />

sion,email,db]<br />

<strong>powermail</strong> - 41


Setup for <strong>powermail</strong><br />

Note: The most settings are possible with constants editor<br />

# POWERMAIL PLUGIN #<br />

plugin.tx_<strong>powermail</strong>_pi1 {<br />

# get constants<br />

template.fieldWrap = {$plugin.<strong>powermail</strong>.template.fieldWrap}<br />

template.formWrap = {$plugin.<strong>powermail</strong>.template.formWrap}<br />

template.thxMessage = {$plugin.<strong>powermail</strong>.template.thxMessage}<br />

template.emails = {$plugin.<strong>powermail</strong>.template.emails}<br />

template.confirmation = {$plugin.<strong>powermail</strong>.template.confirmation}<br />

template.all = {$plugin.<strong>powermail</strong>.template.all}<br />

template.mandatory = {$plugin.<strong>powermail</strong>.template.mandatory}<br />

template.MultipleJS = {$plugin.<strong>powermail</strong>.template.MultipleJS}<br />

allow.email2receiver = {$plugin.<strong>powermail</strong>.allow.email2receiver}<br />

allow.email2sender = {$plugin.<strong>powermail</strong>.allow.email2sender}<br />

allow.dblog = {$plugin.<strong>powermail</strong>.allow.dblog}<br />

emailformat.recipient_mail = {$plugin.<strong>powermail</strong>.emailformat.recipient_mail}<br />

emailformat.sender_mail = {$plugin.<strong>powermail</strong>.emailformat.sender_mail}<br />

enable.unique = {$plugin.<strong>powermail</strong>.enable.unique}<br />

email.noreply = {$plugin.<strong>powermail</strong>.email.noreply}<br />

email.checkMX = {$plugin.<strong>powermail</strong>.email.checkMX}<br />

email.overwritesender = {$plugin.<strong>powermail</strong>.email.overwritesender}<br />

markerALL.hideLabel = {$plugin.<strong>powermail</strong>.markerALL.hideLabel}<br />

markerALL.notIn = {$plugin.<strong>powermail</strong>.markerALL.notIn}<br />

PID.dblog = {$plugin.<strong>powermail</strong>.PID.dblog}<br />

form.method = {$plugin.<strong>powermail</strong>.form.method}<br />

format.datetime = {$plugin.<strong>powermail</strong>.format.datetime}<br />

format.date = {$plugin.<strong>powermail</strong>.format.date}<br />

label.allowTags = {$plugin.<strong>powermail</strong>.label.allowTags}<br />

html.removeXSS = {$plugin.<strong>powermail</strong>.html.removeXSS}<br />

countryselect.charset = {$plugin.<strong>powermail</strong>.countryselect.charset}<br />

mandatory.symbol = {$plugin.<strong>powermail</strong>.mandatory.symbol}<br />

mandatory.wrap = {$plugin.<strong>powermail</strong>.mandatory.wrap}<br />

captcha.use = {$plugin.<strong>powermail</strong>.captcha.use}<br />

pagebrowser.wrap = {$plugin.<strong>powermail</strong>.pagebrowser.wrap}<br />

upload.folder = {$plugin.<strong>powermail</strong>.upload.folder}<br />

upload.file_extensions = {$plugin.<strong>powermail</strong>.upload.file_extensions}<br />

upload.filesize = {$plugin.<strong>powermail</strong>.upload.filesize}<br />

upload.attachment = {$plugin.<strong>powermail</strong>.upload.attachment}<br />

clear.session = {$plugin.<strong>powermail</strong>.clear.session}<br />

js.mandatorycheck = {$plugin.<strong>powermail</strong>.js.mandatorycheck}<br />

js.mandatorydivclass = {$plugin.<strong>powermail</strong>.js.mandatorydivclass}<br />

js.onfocus = {$plugin.<strong>powermail</strong>.js.onfocus}<br />

js.Prototype = {$plugin.<strong>powermail</strong>.js.Prototype}<br />

js.HTMLentities = {$plugin.<strong>powermail</strong>.js.HTMLentities}<br />

field.checkboxJS = {$plugin.<strong>powermail</strong>.field.checkboxJS}<br />

rte.parse = {$plugin.<strong>powermail</strong>.rte.parse}<br />

<strong>powermail</strong>.charset = {$plugin.<strong>powermail</strong>.<strong>powermail</strong>.charset}<br />

barrier-free.tabindex = {$plugin.<strong>powermail</strong>.barrier-free.tabindex}<br />

barrier-free.accesskey = {$plugin.<strong>powermail</strong>.barrier-free.accesskey}<br />

geoip.file = {$plugin.<strong>powermail</strong>.geoip.file}<br />

geoip.addValuesToMarkerALL = {$plugin.<strong>powermail</strong>.geoip.addValuesToMarkerALL}<br />

debug.output = {$plugin.<strong>powermail</strong>.debug.output}<br />

# adding (or changing) flexible locallang markers in any HTML template or RTE field (example)<br />

_LOCAL_LANG.en {<br />

locallangmarker_yourvalue = this is a new text<br />

}<br />

# adding flexible typoscript markers in any HTML template or RTE field (example)<br />

dynamicTyposcript {<br />

yourmarker = TEXT<br />

yourmarker.value = This is a new text<br />

}<br />

# prefilling form fields (example)<br />

prefill {<br />

# fill field uid997 with a static text<br />

uid997 = TEXT<br />

uid997.value = example value<br />

# fill field uid998 with current timestamp<br />

uid998 = TEXT<br />

uid998.data = date:U<br />

<strong>powermail</strong> - 42


# fill field uid998 with current date like "Date: 20.01.2009"<br />

uid996 = TEXT<br />

uid996.data = date:U<br />

uid996.strftime = Date: %d.%m.%Y<br />

}<br />

# fill field uid995 with IP address of the user<br />

uid995 = TEXT<br />

uid995.data = getIndpEnv:REMOTE_ADDR<br />

checkbox value)<br />

}<br />

# extern db entry (example for tt_adress)<br />

dbEntry {<br />

# enable or disable db entry for tt_address<br />

tt_address._enable = TEXT<br />

tt_address._enable.value = 1<br />

}<br />

# add mm relation to uid 2 of tt_address_group (via mm table)<br />

tt_address._mm = COA<br />

tt_address._mm.10 = COA<br />

# 1 is always the mm table<br />

tt_address._mm.10.1 = TEXT<br />

tt_address._mm.10.1.value = tt_address_group_mm<br />

# 2 is always the other table<br />

tt_address._mm.10.2 = TEXT<br />

tt_address._mm.10.2.value = tt_address_group<br />

# 3 is always the uid of the other table to get a relation to this (in this case uid2 of tt_address_group)<br />

tt_address._mm.10.3 = TEXT<br />

tt_address._mm.10.3.value = 2<br />

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

tt_address.email = TEXT<br />

tt_address.email.value = alexander.kellner@einpraegsam.net<br />

# table "tt_address" with field "pid" is the current pid (e.g. 12)<br />

tt_address.pid = TEXT<br />

tt_address.pid.field = uid<br />

# table "tt_address" with field "tstamp" is the current time as timestamp (like 123456789)<br />

tt_address.tstamp = TEXT<br />

tt_address.tstamp.data = date:U<br />

# table "tt_address" with field "address" is the current formatted time (like "Date: 20.01.2009")<br />

tt_address.address = TEXT<br />

tt_address.address.data = date:U<br />

tt_address.address.strftime = Date: %d.%m.%Y<br />

# table "tt_address" with field "name" is the value from <strong>powermail</strong> (tt_content uid 88) field uid18 (###uid18###)<br />

tt_address.name = TEXT<br />

tt_address.name.data = TSFE:fe_user|sesData|<strong>powermail</strong>_88|uid18<br />

# table "tt_address" with field "last_name" is the value from <strong>powermail</strong> (tt_content uid 88) field uid18 (###uid18###)<br />

tt_address.last_name = TEXT<br />

tt_address.last_name.data = TSFE:fe_user|sesData|<strong>powermail</strong>_88|uid18<br />

# table "tt_address" with field "company" is the value from <strong>powermail</strong> (tt_content uid 88) field uid21_1 (###uid21_1###) (e.g. a<br />

tt_address.company = TEXT<br />

tt_address.company.data = TSFE:fe_user|sesData|<strong>powermail</strong>_88|uid21|1<br />

# TypeNum 3131 offers a dynamic javascript for <strong>powermail</strong> which allows to validate different fields<br />

<strong>powermail</strong>JS = PAGE<br />

<strong>powermail</strong>JS {<br />

typeNum = 3131<br />

10 < plugin.tx_<strong>powermail</strong>_pi1<br />

}<br />

config {<br />

disableAllHeaderCode = 1<br />

xhtml_cleaning = 0<br />

admPanel = 0<br />

}<br />

<strong>powermail</strong> - 43


HTML template and markers example use<br />

Example for email for recipients<br />

<br />

<br />

###POWERMAIL_LOCALLANG_EMAIL_RECEIVER###<br />

###POWERMAIL_EMAILRECIPIENT_RTE###<br />

###UID12###<br />

###POWERMAIL_ALL###<br />

<br />

<br />

###POWERMAIL_LOCALL<br />

ANG_EMAIL_RECEIVER#<br />

##<br />

###POWERMAIL_EMAILR<br />

ECIPIENT_RTE###<br />

###UID12###<br />

###UID12_0###<br />

Plugin search for a value from pi1/locallang.xml with the name<br />

locallangmarker_email_receiver (you can overwrite the xml file or set your own text via<br />

TS setup – see below)<br />

This is a special marker for use in the email template. This marker will be filled with the<br />

backend RTE for receivers (NOTE: You can also use marker in the RTE fields)<br />

Onchange JavaScript: (De)activate onchange javascript for select fields - adds an<br />

onchange javascript to all select fields - automatic submit onchange<br />

If you use values in sencond level (like checkboxes with tx_<strong>powermail</strong>_pi1[uid3][0])<br />

than you can use this marker. NOTE: If you want to display all values of the checkbox,<br />

simply use ###UID12###<br />

That where your values:<br />

New mail<br />

George Smith<br />

Values: red, blue, green<br />

###POWERMAIL_ALL### This marker shows all values of all fields. Helpful if you have a long form. Name: George<br />

Prename: Smith<br />

Years: 34<br />

Country: USA<br />

###POWERMAIL_BASEUR<br />

L###<br />

This marker simply enters the base url like http://www.test.de (Helpful if you want to<br />

load graphics in the email from your website)<br />

http://www.test.de<br />

Changing (or adding new) flexible locallang markers in any html template or RTE field:<br />

HTML example<br />

###POWERMAIL_LOCALLANG_CONFIRMATION_BACK###<br />

###POWERMAIL_LOCALLANG_NEWLANGUAGEMARKER###<br />

Typoscript example<br />

You can use this both locallang files for example in the html templates by using ###POWERMAIL_LOCALLANG_VALUE###<br />

plugin.tx_<strong>powermail</strong>_pi1._LOCAL_LANG.en {<br />

locallangmarker_confirmation_back = Go back<br />

locallangmarker_newlanguagemarker = This is a new marker text<br />

JSvalidation_label_required = Please fill this mandatory field!<br />

}<br />

plugin.tx_<strong>powermail</strong>_pi1._LOCAL_LANG.de {<br />

locallangmarker_confirmation_back = Zum Formular<br />

locallangmarker_newlanguagemarker = Das ist ein neuer Marker Text<br />

JSvalidation_label_required = Dieses Feld ist ein Pflichtfeld!<br />

}<br />

# Only needed if JS language marker should be changed (Jsvalidation_label_...)<br />

<strong>powermail</strong>JS.10 < plugin.tx_<strong>powermail</strong>_pi1<br />

Adding new flexible typoscript markers in any html template or RTE field:<br />

HTML example<br />

###POWERMAIL_TYPOSCRIPT_YOURFIELD1###<br />

###POWERMAIL_TYPOSCRIPT_YOURFIELD2###<br />

###POWERMAIL_TYPOSCRIPT_YOURFIELD3###<br />

Typoscript example<br />

Add some new markers with all typoscript features (TEXT, IMAGE, COA, USER, etc...) you already know<br />

plugin.tx_<strong>powermail</strong>_pi1.dynamicTyposcript {<br />

yourfield1 = TEXT<br />

yourfield1.value = this is a text<br />

<strong>powermail</strong> - 44


yourfield2 = TEXT<br />

yourfield2.field = uid<br />

}<br />

yourfield3 = USER<br />

yourfield3.userFunc = user_various->listContentRecordsOnPage<br />

<strong>powermail</strong> - 45


Backend module<br />

Introduction<br />

Powermail offers a backend module to view all mails in the database<br />

●<br />

Choose Powermail in the Web menu on the left site of the backend<br />

●<br />

●<br />

●<br />

●<br />

Now you can choose any page of the pagetree<br />

If the chosen page contents <strong>powermail</strong>s, a list with mails is shown to you<br />

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

Export symbols:<br />

● Excel symbol: Export the current list to an xls file<br />

● CSV symbol: Generate and download a CSV file<br />

● HTML table symbol: Just generate a html table without any formats<br />

<strong>powermail</strong> - 46


Define your export file as you want via tsconfig<br />

Use tsconfig of the page where your <strong>powermail</strong>s are listed, to manipulate the export file or the listing in the backend<br />

(see example)<br />

Example<br />

# set columns<br />

tx_<strong>powermail</strong>_mod1.export {<br />

number = #<br />

uid42 = Title<br />

uid43 = Prename<br />

uid44 = Lastname<br />

uid45 = Email<br />

date = Registration-Date<br />

time = Registration-Time<br />

}<br />

# set config<br />

tx_<strong>powermail</strong>_mod1.config {<br />

export.useTitle = 1<br />

export.dateformat = d.m.Y<br />

export.timeformat = H:i<br />

list.perPage = 50<br />

list.filterstart = 2008-04-01 00:00<br />

list.filterend = 2008-12-01 00:00<br />

list.dateformat = d.m.Y H:i<br />

}<br />

Example file for tsconfig above<br />

# Title Prename Lastname Email Registration-Date Registration-Time<br />

1. Dr. Alex Kellner test@test.de 01.01.2009 12:23<br />

2. Mischa Heissmann test@test.com 23.12.2208 16:11<br />

<strong>powermail</strong> - 47


Available markers for tsconfig<br />

Export settings (prefix: tx_<strong>powermail</strong>_mod1.export)<br />

Name Explanation What is this Default if no<br />

tsconfig set<br />

number Just an ascending number Field value 1<br />

date Registration date (format can be set – see below) Field value 1<br />

time Registration time (format can be set – see below) Field value 1<br />

sender Email of sender Field value 1<br />

senderIP IP address of sender Field value 1<br />

recipient Email of recipient Field value 1<br />

subject_r Email subject to recipient Field value 1<br />

formid Page ID where the form is in Field value 1<br />

content Email content Field value 0<br />

UserAgent UserAgent of sender Field value 1<br />

Referer Referer of sender Field value 1<br />

SP_TZ Location of sender Field value 1<br />

uid This automaticly fills columns with ALL pivars Field value 1<br />

uid[NUMBER] Define your own columns and use it like uid55 Field value 0<br />

uid[NUMBER]_[NU<br />

MBER]<br />

Define your own columns for values in second level (maybe<br />

checkboxes or multiple selections) like uid55_0 and uid55_1<br />

Field value 0<br />

Configuration of export and list (prefix: tx_<strong>powermail</strong>_mod1.config)<br />

Name Explanation What is this Default if no<br />

tsconfig set<br />

export.useTitle<br />

Configure if title should be displayed in the first line of<br />

the export file (boolean)<br />

Configuration<br />

of export<br />

file<br />

1<br />

export.dateform<br />

at<br />

export.timeform<br />

at<br />

list.perPage<br />

list.filterstar<br />

t<br />

list.filterend<br />

list.dateformat<br />

Configure your wanted date format in the export file (see<br />

http://php.net/manual/function.date.php for details)<br />

Configure your wanted time format in the export file (see<br />

http://php.net/manual/function.date.php for details)<br />

Change the number of listed mails per page in the<br />

backendform (default: 100)<br />

Set your own static filter starttime, if you want to show<br />

or hide some old mails (like: 2008-12-23 12:19)<br />

Set your own static filter endtime, if you want to show or<br />

hide some old mails (like: 2015-01-01 12:00)<br />

Date format for the backend listing (see<br />

http://php.net/manual/function.date.php for details)<br />

Configuration<br />

of export<br />

file<br />

Configuration<br />

of export<br />

file<br />

Configuration<br />

of listing in<br />

backend<br />

Configuration<br />

of listing in<br />

backend<br />

Configuration<br />

of listing in<br />

backend<br />

Configuration<br />

of listing in<br />

backend<br />

Y-m-d<br />

H:i:s<br />

100<br />

[currentYea<br />

r]-<br />

[currentMon<br />

th]-01<br />

00:00<br />

Current<br />

time like<br />

2008-01-01<br />

00:00<br />

Y-m-d H:i<br />

<strong>powermail</strong> - 48


Features<br />

Validation of field values<br />

JavaScript validation<br />

Example<br />

If you have activated validation JS in constants (default), than you can validate values of textfields just after input in<br />

frontend:<br />

Example: Mandatory check<br />

Example: E-Mail check<br />

Check for:<br />

This validation of textfields are currently possible:<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

Mandatory<br />

E-Mail<br />

URL<br />

Numbers<br />

Numbers (with comma or point)<br />

Letters<br />

Letters and numbers<br />

Error Message:<br />

Note: Current error messages are in german and english – you can change or add your own messages via locallang or<br />

typoscript (see above)<br />

Stylesheet classes to manipulate validation messages and input fields:<br />

● If error in inputfields: <br />

● If no error in inputfields: <br />

● DIV Layer of errormessage: error<br />

<strong>powermail</strong> - 49


PHP validation<br />

Email of sender<br />

Email of user will be automaticly checked, as soon as the email field is selected in backend<br />

Autocheck via typoscript<br />

Use typoscript to check any field like (example to check uid41 if it is an email):<br />

plugin.tx_<strong>powermail</strong>_pi1 {<br />

validate.uid41.auto = email<br />

validate.uid41.errormsg = Please check your email, there is an error!<br />

}<br />

This autochecks are possible:<br />

●<br />

●<br />

●<br />

●<br />

●<br />

email: check if value is an email<br />

url: check if value is a correct url<br />

numbers: only numbers allowed<br />

phone: numbers and / and + and - allowed<br />

alphanum: only numbers and characters allowed<br />

Manual check via typoscript (using regulare expressions)<br />

Use typoscript (in the setup) to check any field like (example to check uid41 if it is an url):<br />

plugin.tx_<strong>powermail</strong>_pi1 {<br />

validate.uid41.expression = ^(http://)?([a-z0-9-]+\.)+([a-z0-9-]{2,3})$^<br />

validate.uid41.errormsg = Sorry, but this is not a correct URL, try again!<br />

}<br />

You can enter any regulare expression go check your field values<br />

Further regex examples:<br />

Field (e.g.: ###UID23###) should contain alex@wunschtacho.de:<br />

plugin.tx_<strong>powermail</strong>_pi1 {<br />

validate.uid23.expression = /^alex\@wunschtacho\.de$/<br />

validate.uid23.errormsg = Sorry, but this field should contain alex@wunschtacho.de!<br />

}<br />

Field (e.g.: ###UID25### and ###UID26###) should contain the same text (maybe for passwords):<br />

plugin.tx_<strong>powermail</strong>_pi1 {<br />

validate.uid25.expression = /^###UID26###$/<br />

validate.uid25.errormsg = Sorry, but your password fields are different – try again!<br />

}<br />

<strong>powermail</strong> - 50


Saving db values to any db table<br />

Introduction<br />

With <strong>powermail</strong> you can save your values to any db table (e.g. fe_users or tt_address)<br />

Example typoscript part in setup<br />

plugin.tx_<strong>powermail</strong>_pi1 {<br />

# extern db entry (example for tt_adress)<br />

dbEntry {<br />

# enable or disable db entry for tt_address<br />

tt_address._enable = TEXT<br />

tt_address._enable.value = 1<br />

# add mm relation to uid 2 of tt_address_group (via mm table)<br />

tt_address._mm = COA<br />

tt_address._mm.10 = COA<br />

# 1 is always the mm table<br />

tt_address._mm.10.1 = TEXT<br />

tt_address._mm.10.1.value = tt_address_group_mm<br />

# 2 is always the other table<br />

tt_address._mm.10.2 = TEXT<br />

tt_address._mm.10.2.value = tt_address_group<br />

# 3 is always the uid of the other table to get a relation to this (in this case uid2<br />

of tt_address_group)<br />

tt_address._mm.10.3 = TEXT<br />

tt_address._mm.10.3.value = 2<br />

# table "tt_address" with field "email" is a static value =><br />

alexander.kellner@einpraegsam.net<br />

tt_address.email = TEXT<br />

tt_address.email.value = alexander.kellner@einpraegsam.net<br />

# table "tt_address" with field "pid" is the current pid (e.g. 12)<br />

tt_address.pid = TEXT<br />

tt_address.pid.field = uid<br />

# table "tt_address" with field "tstamp" is the current time as timestamp (like 123456789)<br />

tt_address.tstamp = TEXT<br />

tt_address.tstamp.data = date:U<br />

# table "tt_address" with field "address" is the current formatted time (like "Date:<br />

20.01.2009")<br />

tt_address.address = TEXT<br />

tt_address.address.data = date:U<br />

tt_address.address.strftime = Date: %d.%m.%Y<br />

# table "tt_address" with field "name" is the value from <strong>powermail</strong> (tt_content uid 88) field<br />

uid18 (###uid18###)<br />

tt_address.name = TEXT<br />

tt_address.name.data = TSFE:fe_user|sesData|<strong>powermail</strong>_88|uid18<br />

# table "tt_address" with field "last_name" is the value from <strong>powermail</strong> (tt_content uid 88)<br />

field uid18 (###uid18###)<br />

tt_address.last_name = TEXT<br />

tt_address.last_name.data = TSFE:fe_user|sesData|<strong>powermail</strong>_88|uid18<br />

# table "tt_address" with field "company" is the value from <strong>powermail</strong> (tt_content uid 88)<br />

field uid21_1 (###uid21_1###) (e.g. a checkbox value)<br />

tt_address.company = TEXT<br />

tt_address.company.data = TSFE:fe_user|sesData|<strong>powermail</strong>_88|uid21|1<br />

}<br />

}<br />

Some information about saving to other tables<br />

● Saving is available only if table and field are existing<br />

●<br />

●<br />

●<br />

Every table contains one record<br />

If you want to use more than only one mm relation, you can use tt_address._mm.10 and tt_address._mm.20<br />

and so on...<br />

With this small add to <strong>powermail</strong>, you can use <strong>powermail</strong> for many features like guestbook form, tipafriend form,<br />

fe_user registration, tt_address registration and so on...<br />

<strong>powermail</strong> - 51


Prefilling fields<br />

Sequence of prefilling fields<br />

1. Is there a fitting piVar like &tx_<strong>powermail</strong>_pi1[uid11]=text, than use this value, and if not...<br />

2. Is there a value in the session, so fill field with this value, and if not...<br />

3. Is there a value set in the backend flexform, take this value, and if not...<br />

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

5. Was typoscript used to prefill a field, use this (see example below), and if not<br />

6. Don't fill<br />

Example to prefill fields via typoscript setup<br />

plugin.tx_<strong>powermail</strong>_pi1 {<br />

prefill {<br />

# fill field uid997 with a static text<br />

uid997 = TEXT<br />

uid997.value = example value<br />

# fill field uid998 with current timestamp<br />

uid998 = TEXT<br />

uid998.data = date:U<br />

# fill field uid998 with current date like "Date: 20.01.2009"<br />

uid996 = TEXT<br />

uid996.data = date:U<br />

uid996.strftime = Date: %d.%m.%Y<br />

}<br />

}<br />

# fill field uid995 with IP address of the user<br />

uid995 = TEXT<br />

uid995.data = getIndpEnv:REMOTE_ADDR<br />

Maybe it's usefull to fill some hidden fields with hidden but important values (IP address, timestamp, Language, GET<br />

params, etc..)<br />

Fighting spam<br />

●<br />

●<br />

We suggest you to use the extension wt_spamshield for fighting spam entries<br />

(see details in manual wt_spamshield)<br />

You can also use captcha (see next paragraph)<br />

Integrate captcha to your form<br />

● First of all install a captcha extension like captcha or sr_freecap<br />

●<br />

●<br />

●<br />

●<br />

Be sure, that you have chosen this extension via constants (captcha or sr_freecap)<br />

As you can add a normal textfield, you can add a captcha field, thats all<br />

If you have installed captcha AND sr_freecap, the extension use sr_freecap<br />

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

Example: Using captcha<br />

<strong>powermail</strong> - 52


Example: Using sr_freecap<br />

Add new field: Selectorbox with values from database<br />

Step by step<br />

1. Add new field (typoscript) and use (e.g.) lib.object in this field<br />

2. Add your typoscript in the setup field to fill lib.object (see example below)<br />

Example typoscript for selectorbox from table tt_address<br />

# Get all tt_address datas from pid=5<br />

lib.object = COA_INT<br />

lib.object {<br />

10 = TEXT<br />

10.value = Select:<br />

}<br />

20 = CONTENT<br />

20.wrap = |<br />

20 {<br />

table = tt_address<br />

select {<br />

pidInList = 5<br />

orderBy = name<br />

}<br />

renderObj = COA<br />

renderObj {<br />

10 = COA<br />

10 {<br />

10 = TEXT<br />

10 {<br />

field = uid<br />

wrap = <br />

}<br />

20 = TEXT<br />

20 {<br />

field = name<br />

wrap = |<br />

}<br />

}<br />

}<br />

}<br />

Example output (html) of example typoscript<br />

Select:<br />

<br />

Name1<br />

Name2<br />

<br />

<strong>powermail</strong> - 53


FAQ<br />

I need help/support with this plugin!<br />

Use the TYPO3 forum http://www.typo3.net or http://www.typo3forum.net for help! The author will checks this both forums<br />

and give a little bit free support.<br />

How can I prefill some fields?<br />

● Prefill fields with values from backend or<br />

●<br />

●<br />

●<br />

●<br />

Prefill fields via typoscript (see example above) or<br />

Prefill fields with feuser values (set in backend)<br />

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

form page later<br />

Prefilling from outside like index.php?id=1&tx_<strong>powermail</strong>[uid55] (if you want to prefill with a pre form)<br />

Error in backend “Unknown type: inline” - what to do?<br />

Deactivate IRRE and set the relations manually!<br />

If you have already deactivated IRRE or use TYPO3 < 4.1, don't care about this error – set the relations manually via list<br />

modul<br />

How can I overwrite the locallang translations / How can I add a new locallang marker<br />

You can overwrite the locallang via typoscript or you can change the locallang.xml in the ext folder.<br />

Details - see “HTML Templates and markers use” in manual above<br />

How can I use validation of fields per Javascript?<br />

This check is activated for default for textfields<br />

You can turn of the validation via TS constants<br />

JavaScript check don't work - why?<br />

Check if the 4 js files are correctly implemented in the HTML HEAD area:<br />

●<br />

●<br />

●<br />

●<br />

<br />

<br />

<br />

<br />

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<br />

<strong>powermail</strong> - 54


should show you a dynamic JavaScript file!<br />

If you want to check of mandatory fields, check if “required” is in the input class.<br />

If you want to check of email fields, check if “validate-email” is in the input class.<br />

Of course you can mix this.<br />

See standard form for all needed classes.<br />

How can a style my form?<br />

All can be done with css.<br />

Note: If you only need one page (no multiple page), you can anyway add more than only one fieldset. So you can float<br />

fieldsets horizontal (e.g.).<br />

Note1: See “CSS corner” for css examples below<br />

Note2: We offer a sample css in the extension folder: ext/<strong>powermail</strong>/css/sampleCSS.css<br />

Note3: Have a look into an existing <strong>powermail</strong> example and copy the css of this homepage (examples are listed above)<br />

HTML Validation vailed<br />

HTML validation failed on such form action:<br />

index.php?id=1&tx_<strong>powermail</strong>_pi1[mailId]=1&cHash=1234567<br />

●<br />

●<br />

Try to use RealUrl to remove cHash<br />

If you have chosen XHTML strict in your TYPO3 backend, the & will be written as &amp;<br />

How can I choose my own html code instead of the automatic html generation<br />

Sometimes it could be useful to use an own html code instead of the automatic html code. You can simply generate some<br />

fields and copy the html source between the form tags in the formwrap.html template – thats all.<br />

Note: This method is not very flexible (no prefilling, no multiple, etc...)<br />

POWERMAIL ERROR: No title to current field found in DB (uidXX)<br />

If you are installing <strong>powermail</strong> and fill out the form (submit) and you will delete a field after this, the field value is still set in<br />

the session.<br />

Just delete the current FE cookie in your browser or close and re-open your browser and fill out the form again – that's all!<br />

I want a select box in frontend where the user can choose the receiver of the form<br />

Main explanation:<br />

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

●<br />

●<br />

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

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

Example pictures:<br />

<strong>powermail</strong> - 55


Different Examples to select receiver in frontend:<br />

Query for selecting one fe user (e.g.: UID42 is fe_user uid):<br />

SELECT email FROM fe_users WHERE uid = ###UID42### AND hidden = 0 AND deleted = 0<br />

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

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

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

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

I will check some fields (with php) if the value is an email or an URL<br />

plugin.tx_<strong>powermail</strong>_pi1 {<br />

validate.uid41.auto = email<br />

validate.uid41.errormsg = Please check your email, there is an error!<br />

}<br />

validate.uid56.auto = url<br />

validate.uid56.errormsg = Please check your url, there is an error!<br />

Details or how to use own regulare expression see above!<br />

I want to use captcha but no captcha field is shown<br />

Maybe you have installed and loaded the extension captcha and in constants is set sr_freecap (standard) instead of<br />

captcha.<br />

Onetime filling solve all my problems<br />

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

address already exists. See constants editor...<br />

Countryselector dropdown without value (Empty field cn_short_en ...)<br />

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<br />

the database. Powermail shows an errormessage in the dropwdown like “Empty field cn_short_en (uid 33)”<br />

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

We know about this problem (< TYPO3 4.2) and there is an entry in the typo3 bugtracker:<br />

http://bugs.typo3.org/view.php?id=7297<br />

Workarround: You can disable dividers2tab in the extension manager of <strong>powermail</strong>, so tt_content is without dividers2tab (but<br />

<strong>powermail</strong> too)<br />

I cannot add fields (TYPO3 4.2)<br />

Just try to disable the dividers2tab checkbox in the extension manager for <strong>powermail</strong>. If this don't helps, we advise you to<br />

disable IRRE in the extension manager.<br />

NOTE: If you want to use IRRE, ensure that your server provides long POST variables<br />

(maybe it's useful to increase POST memory size on the server)<br />

<strong>powermail</strong> - 56


CSS corner<br />

How to get labels and fields in two columns with css<br />

Example picture:<br />

Example css:<br />

fieldset.tx-<strong>powermail</strong>-pi1_fieldset {<br />

/* Disable border */<br />

border: none;<br />

}<br />

fieldset.tx-<strong>powermail</strong>-pi1_fieldset label {<br />

/* Style labels */<br />

display: block;<br />

width: 150px;<br />

float: left;<br />

clear: both;<br />

}<br />

fieldset.tx-<strong>powermail</strong>-pi1_fieldset input,<br />

fieldset.tx-<strong>powermail</strong>-pi1_fieldset select {<br />

/* Style input fields */<br />

width: 200px;<br />

border: none;<br />

border-bottom: 1px solid black;<br />

margin-left: 10px;<br />

}<br />

div.tx_<strong>powermail</strong>_pi1_fieldwrap_html {<br />

/* Increase margin between every field */<br />

margin: 10px 0;<br />

}<br />

Additional note (clearfloat):<br />

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

<br />

<strong>powermail</strong> - 57


How to get two columns<br />

Note:<br />

You can use more than only one fieldset to style your form with more columns.<br />

So you should add two pages (fieldsets) to your form and choose “single step”.<br />

Example picture:<br />

Example css:<br />

fieldset.tx-<strong>powermail</strong>-pi1_fieldset {<br />

/* Disable border */<br />

border: none;<br />

}<br />

fieldset.tx-<strong>powermail</strong>-pi1_fieldset_1 {<br />

/* Style left fieldset */<br />

width: 45%;<br />

float: left;<br />

}<br />

fieldset.tx-<strong>powermail</strong>-pi1_fieldset_2 {<br />

width: 45%;<br />

}<br />

Additional note (clearfloat):<br />

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

<br />

<strong>powermail</strong> - 58


Developers corner<br />

Database relation model<br />

(also available in extension folder <strong>powermail</strong>/doc/database_relation)<br />

tt_content: Original tt_content field extended with some <strong>powermail</strong> fields<br />

tx_<strong>powermail</strong>_fieldsets: Table with all fieldsets<br />

tx_<strong>powermail</strong>_fields: Table with all fields<br />

tx_<strong>powermail</strong>_mails: If you submit in a form the values are saved to this table<br />

<strong>powermail</strong> - 59


Hooks in <strong>powermail</strong><br />

Introduction<br />

With the possibilitiy of hooks, you can manipulate extensions and TYPO3 without changing the code. So you enter your own<br />

code from outside.<br />

Hook documentation<br />

# Hookname File Folde<br />

r<br />

1 Hook for<br />

main<br />

manipulat<br />

ion1<br />

2 Hook for<br />

main<br />

manipulat<br />

ion2<br />

3 FormWrap<br />

outerMark<br />

erArray<br />

Hook<br />

4 FormWrap<br />

innerMark<br />

erArray<br />

Hook<br />

5 Hook for<br />

adding<br />

new<br />

fields<br />

6 Hook<br />

after<br />

field<br />

generatio<br />

n<br />

class.tx_<br />

<strong>powermail</strong><br />

_pi1.php<br />

class.tx_<br />

<strong>powermail</strong><br />

_pi1.php<br />

class.tx_<br />

<strong>powermail</strong><br />

_form.php<br />

class.tx_<br />

<strong>powermail</strong><br />

_form.php<br />

class.tx_<br />

<strong>powermail</strong><br />

_html.php<br />

class.tx_<br />

<strong>powermail</strong><br />

_html.php<br />

pi1<br />

pi1<br />

pi1<br />

pi1<br />

pi1<br />

pi1<br />

Function Input Retur<br />

n<br />

PM_MainC<br />

ontentBe<br />

foreHook<br />

PM_MainC<br />

ontentAf<br />

terHook<br />

PM_FormW<br />

rapMarke<br />

rHook<br />

PM_FormW<br />

rapMarke<br />

rHookInn<br />

er<br />

PM_Field<br />

Hook<br />

PM_Field<br />

WrapMark<br />

erHook<br />

$this-<br />

>sessionfi<br />

elds,<br />

$this-<br />

>piVars,<br />

$this<br />

$this-<br />

>content,<br />

$this-<br />

>piVars,<br />

$this<br />

$this-<br />

>OuterMark<br />

erArray,<br />

$this-<br />

>subpartAr<br />

ray,<br />

$this-<br />

>conf,<br />

$this<br />

$this-<br />

>InnerMark<br />

erArray,<br />

$this-<br />

>conf,<br />

$this<br />

$this-<br />

>xml,<br />

$this-<br />

>title,<br />

$this-<br />

>type,<br />

$this-<br />

>uid,<br />

$this-<br />

>markerArr<br />

ay, $this-<br />

>piVarsFro<br />

mSession,<br />

$this<br />

$this-<br />

>uid,$this<br />

->xml,<br />

$this-<br />

>type,<br />

$this-<br />

>title,<br />

$this-<br />

>markerArr<br />

ay,<br />

$content,<br />

$this-<br />

>piVarsFro<br />

mSession,<br />

$this<br />

Note<br />

- You can change the<br />

sessions or piVars or<br />

something like that<br />

- Change the whole<br />

output $content<br />

- This hook will be<br />

opened before the<br />

outerMarker array is<br />

substituted with HTML<br />

template on the form<br />

page.<br />

- This hook will be<br />

opened before the<br />

innerMarker array is<br />

substituted with HTML<br />

template on the form<br />

page.<br />

$this<br />

-<br />

>cont<br />

ent<br />

This hook allows you<br />

to add new fields to<br />

<strong>powermail</strong> (see<br />

<strong>powermail</strong>_mul for an<br />

example)<br />

- This hook will be<br />

opened before the html<br />

code of the current<br />

field is given back<br />

(at the end of<br />

fieldgeneration).<br />

Maybe if you want to<br />

manipulate a special<br />

field<br />

Example use<br />

$GLOBALS['TYPO3_CON<br />

F_VARS']['EXTCONF']<br />

['<strong>powermail</strong>']['PM_M<br />

ainContentHookBefor<br />

e'][]<br />

$GLOBALS['TYPO3_CON<br />

F_VARS']['EXTCONF']<br />

['<strong>powermail</strong>']['PM_M<br />

ainContentHookAfter<br />

'][]<br />

$GLOBALS['TYPO3_CON<br />

F_VARS']['EXTCONF']<br />

['<strong>powermail</strong>']['PM_F<br />

ormWrapMarkerHook']<br />

[]<br />

$GLOBALS['TYPO3_CON<br />

F_VARS']['EXTCONF']<br />

['<strong>powermail</strong>']['PM_F<br />

ormWrapMarkerHookIn<br />

ner'][]<br />

$GLOBALS['TYPO3_CON<br />

F_VARS']['EXTCONF']<br />

['<strong>powermail</strong>']['PM_F<br />

ieldHook']['FIELDNA<br />

ME'][]<br />

$GLOBALS['TYPO3_CON<br />

F_VARS']['EXTCONF']<br />

['<strong>powermail</strong>']['PM_F<br />

ieldWrapMarkerHook'<br />

][]<br />

<strong>powermail</strong> - 60


# Hookname File Folde<br />

r<br />

7 Hook for<br />

markerArr<br />

ay in<br />

field<br />

generatio<br />

n<br />

8 Hook for<br />

confirmat<br />

ion page<br />

9 Mandatory<br />

and error<br />

check<br />

hook<br />

1<br />

0<br />

1<br />

1<br />

1<br />

2<br />

1<br />

3<br />

Hook for<br />

email<br />

change<br />

Submit<br />

hook<br />

before<br />

submit<br />

Submit<br />

hook<br />

after<br />

emails<br />

Thx<br />

message<br />

hook<br />

class.tx_<br />

<strong>powermail</strong><br />

_html.php<br />

class.tx_<br />

<strong>powermail</strong><br />

_confirma<br />

tion.php<br />

class.tx_<br />

<strong>powermail</strong><br />

_mandator<br />

y.php<br />

class.tx_<br />

<strong>powermail</strong><br />

_submit.p<br />

hp<br />

class.tx_<br />

<strong>powermail</strong><br />

_submit.p<br />

hp<br />

class.tx_<br />

<strong>powermail</strong><br />

_submit.p<br />

hp<br />

class.tx_<br />

<strong>powermail</strong><br />

_submit.p<br />

hp<br />

pi1<br />

pi1<br />

pi1<br />

pi1<br />

pi1<br />

pi1<br />

pi1<br />

Function Input Retur<br />

n<br />

PM_Field<br />

WrapMark<br />

erArrayH<br />

ook<br />

PM_Confi<br />

rmationH<br />

ook<br />

PM_Manda<br />

toryHook<br />

PM_Submi<br />

tEmailHo<br />

ok<br />

PM_Submi<br />

tBeforeM<br />

arkerHoo<br />

k<br />

PM_Submi<br />

tAfterMa<br />

rkerHook<br />

PM_Submi<br />

tLastOne<br />

Hook<br />

$this-<br />

>uid,$this<br />

->xml,<br />

$this-<br />

>type,<br />

$this-<br />

>title,<br />

$this-<br />

>markerArr<br />

ay, $this-<br />

>piVarsFro<br />

mSession,<br />

$this<br />

$this-<br />

>markerArr<br />

ay, $this<br />

$this-<br />

>error,<br />

$this-<br />

>markerArr<br />

ay, $this-<br />

>innerMark<br />

erArray,<br />

$this-<br />

>sessionfi<br />

elds,<br />

$this<br />

$this-<br />

>subpart,<br />

$this-<br />

>maildata,<br />

$this-<br />

>sessionda<br />

ta, $this-<br />

>markerArr<br />

ay, $this<br />

$this,<br />

$this-<br />

>markerArr<br />

ay, $this-<br />

>sessionda<br />

ta<br />

$this,<br />

$this-<br />

>markerArr<br />

ay, $this-<br />

>sessionda<br />

ta<br />

$this-<br />

>content,<br />

$this-<br />

>conf,<br />

$this-<br />

>sessionda<br />

ta, $this-<br />

>ok, $this<br />

Note<br />

- This hook will be used<br />

for every kind of<br />

field. You can<br />

manipulate the<br />

markerArray before the<br />

field is generated<br />

- This hook will be<br />

opened before the<br />

marker array is<br />

substituted with HTML<br />

template on the<br />

confirmation page.<br />

- If you set $this-<br />

>error to 1, <strong>powermail</strong><br />

will stop the submit<br />

process, with $this-<br />

>sessionfields you can<br />

write your own error<br />

message<br />

- This hook allows to<br />

change the emails<br />

(subject, receiver,<br />

sender, etc..)<br />

Error<br />

code<br />

(0/1<br />

bolea<br />

n)<br />

If you want to stop<br />

the submit (emails and<br />

db insert), you can<br />

return TRUE<br />

- If you want to do<br />

something after a<br />

correct submit, you<br />

can use this hook<br />

(maybe an additional<br />

db entry)<br />

- If you want to<br />

manipulate the thx<br />

message after submit<br />

Example use<br />

$GLOBALS['TYPO3_CON<br />

F_VARS']['EXTCONF']<br />

['<strong>powermail</strong>']['PM_F<br />

ieldWrapMarkerArray<br />

Hook'][]<br />

$GLOBALS['TYPO3_CON<br />

F_VARS']['EXTCONF']<br />

['<strong>powermail</strong>']['PM_C<br />

onfirmationHook'][]<br />

$GLOBALS['TYPO3_CON<br />

F_VARS']['EXTCONF']<br />

['<strong>powermail</strong>']['PM_M<br />

andatoryHook'][]<br />

$GLOBALS['TYPO3_CON<br />

F_VARS']['EXTCONF']<br />

['<strong>powermail</strong>']['PM_S<br />

ubmitEmailHook'][]<br />

$GLOBALS['TYPO3_CON<br />

F_VARS']['EXTCONF']<br />

['<strong>powermail</strong>']['PM_S<br />

ubmitBeforeMarkerHo<br />

ok'][]<br />

$GLOBALS['TYPO3_CON<br />

F_VARS']['EXTCONF']<br />

['<strong>powermail</strong>']['PM_S<br />

ubmitAfterMarkerHoo<br />

k'][]<br />

$GLOBALS['TYPO3_CON<br />

F_VARS']['EXTCONF']<br />

['<strong>powermail</strong>']['PM_S<br />

ubmitLastOne'][]<br />

How to use a hook in my own extension?<br />

Example for using a <strong>powermail</strong> hook in your own extension in the ext_localconf.php:<br />

$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['<strong>powermail</strong>']['PM_FormWrapMarkerHook'][] =<br />

'EXT:yourextension/targetphpfile:tx_yourphpclass';<br />

This hook want to use the function PM_FormWrapMarkerHook() in your class<br />

Note: The class name must start with a tx_<br />

Additional information<br />

Hook documentation is also available in extension folder <strong>powermail</strong>\doc\hook<br />

●<br />

●<br />

hooks.ods could be open with OpenOffice<br />

hooks.html can be read with a browser<br />

<strong>powermail</strong> - 61


Look into another extension which uses a <strong>powermail</strong> hook to manipulate <strong>powermail</strong><br />

The antispam extension wt_spamshield uses two <strong>powermail</strong> hooks, look into the code, if you want to know more:<br />

http://typo3.org/extensions/repository/view/wt_spamshield/0.1.6/<br />

TYPO3 hook documentation<br />

http://typo3.org/documentation/document-library/core-documentation/doc_core_api/current/view/3/4/<br />

http://typo3.org/development/articles/how-to-use-existinghooks/page/1/?tx_rlmpofficedocuments_pi1%5Bview%5D=multiple&cHash=e106c40cbd<br />

Do you really need a hook?<br />

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

Do you need a new hook?<br />

Do you need a special hook? Write us!<br />

<strong>powermail</strong> - 62


Todos<br />

Bugfixes<br />

●<br />

A list of known bugs is viewable at forge.typo3.org:<br />

http://forge.typo3.org/projects/extension-<strong>powermail</strong>/issues<br />

Features<br />

●<br />

A list of useful features is viewable at forge.typo3.org:<br />

http://forge.typo3.org/projects/extension-<strong>powermail</strong>/issues<br />

Request<br />

Do you need a new feature or maybe you've found a bug?<br />

Please add a new issue at http://forge.typo3.org/projects/extension-<strong>powermail</strong>/issues or write us an email!<br />

<strong>powermail</strong> - 63


Changelog<br />

Powermail version 1.3.x stable<br />

Update on 03.08.2008 version 1.3.11<br />

● New Hook: Inner Form markerArray<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

Changed HTML Template Formwrap and Fieldwrap for other extensions<br />

Removed too much code and files<br />

Bugfix #1189: unique with empty values<br />

Bugfix #1122: preparing mandatory for radio buttons<br />

Bugifx for <strong>powermail</strong>_multiple<br />

Prepare for <strong>powermail</strong>_cond (conditions for <strong>powermail</strong>)<br />

Update on 28.07.2008 version 1.3.10<br />

● New languages: PL, ES, PT<br />

●<br />

●<br />

●<br />

●<br />

New global Markers in fieldwrap (formname and formtarget)<br />

Uploaded files could be deleted<br />

Reset button with clearing whole session<br />

Small change in the three fieldwrap hook (session will be delivered)<br />

Update on 14.07.2008 version 1.3.9<br />

● Backend module with possibility to delete mails manually<br />

●<br />

●<br />

●<br />

Backend module with possibility to delete mails after export<br />

Powermail suggests geoip for geo information<br />

Added markerArray hook for field generation<br />

Update on 06.07.2008 version 1.3.8<br />

● Bugfix: Dividers2tab for TYPO3 4.2<br />

● Start and Stop added for TYPO3 4.2<br />

●<br />

●<br />

●<br />

●<br />

●<br />

Start and Stop added for fields and fieldsets<br />

Add icon to CType selection<br />

Language selection is no more shown twice<br />

Bugfix: Values of submit and reset<br />

Bugfix: Save mails was shown in other plugins<br />

Update on 29.06.2008 version 1.3.7<br />

● Errormessage if no TS found<br />

●<br />

●<br />

Sorting of pagebrowser in js multiple fixed<br />

Value of submit and reset removed<br />

Update on 21.06.2008 version 1.3.6<br />

● PID where to save could be set via plugin now (and via ts too)<br />

●<br />

●<br />

●<br />

●<br />

●<br />

Sender E-Mail can be set via constants<br />

Labels for ts fields can be used now<br />

Bugfix: Shows breaks on confirmation page (e.g. textarea)<br />

NoIRRE: uid added to dropdown (fieldset and content choose)<br />

Debug output: Added array with db values<br />

<strong>powermail</strong> - 64


●<br />

●<br />

●<br />

Removed SQL debug output<br />

Some bugfixes in php files<br />

Small improvement in english locallang part<br />

Update on 07.06.2008 version 1.3.5<br />

● Small fix for mm relations with external db entries<br />

●<br />

Small fix for <strong>powermail</strong>_mul<br />

Update on 28.05.2008 version 1.3.4<br />

● Fixed problem with localization on some systems<br />

Update on 25.05.2008 version 1.3.3<br />

● Improvement for Plaintext (html tags will be removed)<br />

●<br />

●<br />

Improvement in constants for plaintext and html mails<br />

Small fix in Sender name<br />

Update on 21.05.2008 version 1.3.2<br />

● Debug output added (activate via constants)<br />

Update on 20.05.2008 version 1.3.1<br />

● Set date2cal date format via constants<br />

●<br />

Manual fix<br />

Update on 15.05.2008 version 1.3.0<br />

● Db entries to other tables with mm relations available<br />

(Attention: New dbEntry typoscript)<br />

●<br />

●<br />

●<br />

●<br />

Plaintext available (enable in constants)<br />

RTE parsing can be disabled via constants<br />

No more removeXSS for piVars<br />

Bugfix: MX check for windows disabled<br />

Powermail version 1.2.x stable<br />

Update on 12.05.2008 version 1.2.4<br />

● Failure fixex: tt_address entries activated by default<br />

Update on 08.05.2008 version 1.2.3<br />

● New feature: Accesskeys available in fields (automaticly or manually via constants)<br />

●<br />

New feature: Tabindex available in fields (via constants)<br />

Update on 07.05.2008 version 1.2.2<br />

● Adding new field to <strong>powermail</strong>: Typoscript element -<br />

Possibility to use a userfunc, etc... as a new field<br />

●<br />

Adding a new hook: Easy adding new fields to <strong>powermail</strong><br />

Update on 06.05.2008 version 1.2.1<br />

● Onetime filling available (check by fieldcontent or IP address)<br />

● Bugfix for checkbox (javascript was not included in 1.2.0)<br />

Update on 05.05.2008 version 1.2.0<br />

● Fields can be prefilled with typoscript<br />

●<br />

●<br />

Dynamic typoscriptmarker can be used in every HTML Template or RTE field<br />

Dynamic locallangmarker can be used in every HTML Template or RTE field now<br />

<strong>powermail</strong> - 65


●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

MX Record check of sender email address (disabling via constants)<br />

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

Removed unnecessary p-tags in emails<br />

DB entries in other tables (use typoscript)<br />

Mandatory check of checkboxes<br />

Disable automatic realurl settings in extension manager (if wanted)<br />

DB entry in other db table in second level (like uid3_0)<br />

Hiddenfields and JavaScript for checkboxes can be disabled (via constants)<br />

(Attention: Changes HTML Template tmpl_fieldwrap.html)<br />

Fix: Checkbox CSS classes added<br />

Country selection available with static_info_tables_de, _fr, _da, and so on...<br />

RemoveXSS for HTML fields can be disabled if wanted (via constants)<br />

Charset of output can be set via constants (utf8)<br />

Small fix in html for countryselection<br />

Powermail version 1.1.x stable<br />

Update on 05.05.2008 version 1.1.10<br />

● Security fix<br />

Update on 20.04.2008 version 1.1.9<br />

● Update for handling checkboxes (disabling of checkbox values possible – via JS)<br />

Update on 14.04.2008 version 1.1.8<br />

● Extern db entry (timestamp and current pid enabled)<br />

Update on 10.04.2008 version 1.1.7<br />

● Improved hook loop in submit.php<br />

●<br />

●<br />

●<br />

Fixed CSS class of previous and next button<br />

Small fix in realurlconf<br />

Prepared fileupload in second level (in array)<br />

Update on 09.04.2008 version 1.1.6<br />

● Small bugfix<br />

Update on 09.04.2008 version 1.1.5<br />

● File upload: Error messages if file is to large or has wrong extension<br />

●<br />

●<br />

●<br />

Added new div layer to html_fieldwrap for checkboxes and radiobuttons<br />

Export with piVars in second level available (checboxes, multiple selctions, etc...)<br />

Filter is always visible in backend module (even if current page has no <strong>powermail</strong>s)<br />

Update on 07.04.2008 version 1.1.4<br />

● Small fixes in use with <strong>powermail</strong>_optin<br />

Update on 06.04.2008 version 1.1.3<br />

● Enabled <strong>powermail</strong>_optin with <strong>powermail</strong><br />

●<br />

●<br />

●<br />

3 more hooks added<br />

redirect fix<br />

small fix for mod1<br />

<strong>powermail</strong> - 66


Update on 01.04.2008 version 1.1.2<br />

● Individual configuration of export files via tsconfig now available!<br />

●<br />

●<br />

●<br />

Backend module with some configuration possibilities<br />

Pagebrowser to backend module added<br />

Small fix for redirect after submit (without baseurl)<br />

Update on 27.03.2008 version 1.1.1<br />

● Preselection for checkbox, radiobuttons and selectfields available<br />

●<br />

●<br />

Small fix for country preselection<br />

CSS example added to manual<br />

Update on 25.03.2008 version 1.1.0<br />

● Noreply email address (sender) can be set via constants<br />

●<br />

●<br />

●<br />

Easy saving values to any db table via typoscript<br />

No more emails to noreply@domain.org<br />

Allowed upload file extensions decreased to lower case letters<br />

Powermail version 1.0.x stable<br />

Update on 21.03.2008 version 1.0.12<br />

● Small fix for formsonpage use<br />

●<br />

Small fix if you want to send text in emails<br />

Update on 19.03.2008 version 1.0.11<br />

● SQL debug output deactivated<br />

● Small change for TYPO3 4.2<br />

Update on 14.03.2008 version 1.0.10<br />

● New feature: Markers available in receiver field<br />

●<br />

●<br />

Added a new hook to manipulate email receiver, sender and subject<br />

Hook documentation added to manual<br />

Update on 12.03.2008 version 1.0.9<br />

● Bugfix: Multiple within select fields available<br />

Update on 09.03.2008 version 1.0.8<br />

● New feature: Markers allowed in email subjects<br />

●<br />

●<br />

●<br />

●<br />

New feature: Markers allowed in regulare expressions (php validation check of fields)<br />

Added realurl example in the folder ext/<strong>powermail</strong>/doc/<br />

Bugfix: Confirmationpage error if content was only available for a special usergroup<br />

Manual: Addes some new examples<br />

Update on 08.03.2008 version 1.0.7<br />

● Bugfix: require_once error on a few server<br />

●<br />

Some kind of “code cleaning”<br />

Update on 06.03.2008 version 1.0.6<br />

● New feature: Uploaded files will be attached to emails<br />

●<br />

If captcha and sr_freecap is loaded, select one via constants<br />

<strong>powermail</strong> - 67


Update on 04.03.2008 version 1.0.5<br />

● Fixed a language problem with javascript validation error messages<br />

●<br />

●<br />

Javascript validation of text fields: Added german umlauts<br />

Constants splitted into two parts<br />

Update on 02.03.2008 version 1.0.4<br />

● date2cal is not needed any more<br />

Update on 01.03.2008 version 1.0.3<br />

● Bugfixing linebreaks (e.g. In textareas)<br />

Update on 29.02.2008 version 1.0.1 / 1.0.2<br />

● Uses new API from date2cal 7.0.0<br />

(faster and better work between <strong>powermail</strong> and date2cal)<br />

●<br />

Some mall bugfixes<br />

Update on 28.02.2008 version 1.0.0<br />

● Fields and Fieldsets can be set to hidden<br />

●<br />

●<br />

●<br />

●<br />

●<br />

HTMLentities for JS integration can be disabled per constants<br />

Bugfix: JS errormessage in IE removed<br />

Bugfix: Files could not be uploaded on some TYPO3 installations<br />

Bugfix: Content with <strong>powermail</strong> can be set to hidden<br />

Bugfix: Starttime and Endtime available in Content with <strong>powermail</strong><br />

Powermail version 0.7.x beta<br />

Update on 27.02.2008 version 0.7.2<br />

● Main bug finally fixed: On some T3 installations no field could be added!<br />

Update on 25.02.2008 version 0.7.1<br />

● Auto PHP validation of every field available<br />

●<br />

●<br />

●<br />

●<br />

Manual PHP validation of every field available (with regulare expressions)<br />

Bugfix: Addslashes two times to one time<br />

Small HTML bugfix for id in frontend<br />

Sender email address will be automaticly validated<br />

Update on 23.02.2008 version 0.7.0<br />

● Select, Checkboxes, Radiobuttons with different label/values available<br />

●<br />

●<br />

●<br />

●<br />

●<br />

You can set a sender name<br />

First email as sender, rest with cc<br />

Marker available in receiver db select<br />

Possibilty to select receiver in frontend<br />

Hook documentation added<br />

Powermail version 0.6.x beta<br />

Update on 21.02.2008 version 0.6.3<br />

● Small bugfix (“array” in ###POWERMAIL_ALL###)<br />

●<br />

Database relation added to manual<br />

Update on 20.02.2008 version 0.6.2<br />

● Recipients sql query finally possible in backend<br />

<strong>powermail</strong> - 68


●<br />

●<br />

●<br />

●<br />

French translation added to <strong>powermail</strong><br />

trim() will be used for all values<br />

Single quote allowed in fields<br />

Bugfix if “onfocus” is not used<br />

Update on 18.02.2008 version 0.6.1<br />

● Small bugfix for checkbox css classes in frontend<br />

●<br />

Standard values from datetime fields will be filled correctly (no more timestamp)<br />

Update on 17.02.2008 version 0.6.0<br />

● Multiple page via javascript finally added<br />

●<br />

●<br />

Changes in manual<br />

Sample CSS added<br />

Powermail version 0.5.x beta<br />

Update on 15.02.2008 version 0.5.9<br />

● JavaScript validation enabled with simulatestaticdocuments<br />

●<br />

●<br />

IP logging can be disabled<br />

Bugfix: Date fields will be prefilled now<br />

Update on 14.02.2008 version 0.5.8<br />

● Small bugfix in upload fields<br />

●<br />

New screenshot in manual<br />

Update on 11.02.2008 version 0.5.7<br />

● Bugfix: Sender email<br />

●<br />

●<br />

HTML validation passed<br />

ID's for checkboxes and radiobuttons improved<br />

Update on 10.02.2008 version 0.5.6<br />

● New global marker added: ###POWERMAIL_UPLOADFOLDER###<br />

●<br />

●<br />

●<br />

Check: Upload field function<br />

Bugfix in sender email address if no address defined (noreplay@domain.com)<br />

Bugfix in ext_localconf.php in realurl settings (no more foreach error)<br />

Update on 03.02.2008 version 0.5.5<br />

● New translation added: Dutch<br />

Update on 31.01.2008 version 0.5.4<br />

● Bugfix: No more error message if you choose the backend module<br />

●<br />

●<br />

Marker ###POWERMAIL_BASEURL### filled with baseurl or absolute URL to your Server<br />

Powermail can be used in TYPO3 4.2 if wanted<br />

Update on 26.01.2008 version 0.5.3<br />

● Prototype.js can be disabled via constants<br />

●<br />

●<br />

●<br />

●<br />

Bugfix: Another umlauts problem (utf-8)<br />

Disallow quotes in tags<br />

You can disable tab dividers if wanted<br />

Define which fe_users fields are available for prefilling<br />

<strong>powermail</strong> - 69


Update on 26.01.2008 version 0.5.2<br />

● Bugfix: Small change in showing error message (wt_spamshield)<br />

●<br />

Spam Hook with further objects<br />

Update on 24.01.2008 version 0.5.1<br />

● Bugfix: Default values in RTE: ###POWERMAIL_ALL###<br />

●<br />

●<br />

●<br />

●<br />

Bugfix: Break in textareas is allowed now (NOTE: Changes in tmpl_all.html)<br />

Fields submit, reset, check and radio with better css class<br />

Umlauts in emails possible<br />

Frontend preview can be deactivated in backend<br />

Update on 22.01.2008 version 0.5.0<br />

● Change of version status: from alpha to beta<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

Redirect instead of thx message possible<br />

Marker of each field will be displayed in backend<br />

Small security fix<br />

Captcha fix<br />

Bug in countryselect fixed<br />

Small bugfixes for content element in backend<br />

Global Marker ###POWERMALL_ALL### fix (with checkboxes)<br />

Constants markerALL.notIn changed<br />

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

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

Changes in php<br />

● Pagebrowser in multiple available (2 of 4)<br />

Powermail version 0.4.x alpha<br />

Update on 21.01.2008 version 0.4.1<br />

● Bugfix: Captcha use with Confirmation page<br />

Update on 20.01.2008 version 0.4.0<br />

● Security update<br />

●<br />

●<br />

●<br />

●<br />

●<br />

Captcha can be used: sr_freecap<br />

Captcha can be used: captcha<br />

PHP bugfixes<br />

Example pictures for every field in the backend<br />

New screenshots in manual<br />

Powermail version 0.3.x alpha<br />

Update on 18.01.2008 version 0.3.4<br />

● Mandatory JS check was disabled if date2cal was in use<br />

●<br />

●<br />

●<br />

Some bugfixes in php<br />

Now: User int plugin<br />

Small changes in locallang.xml<br />

Update on 16.01.2008 version 0.3.3<br />

● Add mandatory and validation javascript for fieldcheck<br />

<strong>powermail</strong> - 70


Update on 16.01.2008 version 0.3.2<br />

● Some changes in the manual<br />

●<br />

●<br />

●<br />

Some small fixes<br />

Small change in html template: fieldwrap<br />

Now, you can clear session after submit (set via constants)<br />

Update on 16.01.2008 version 0.3.1<br />

● Upload field enabled (updated constants)<br />

●<br />

●<br />

●<br />

Get values from logged in fe_user<br />

Checks for valid sender email address<br />

Improved error management<br />

Powermail version 0.2.x alpha<br />

Update on 15.01.2008 version 0.2.2<br />

● Mandatory fields will be added with a symbol (*) (Symbol can be wrapped in constants)<br />

●<br />

Bugfix in Excel export<br />

● Powermail can be used with older TYPO3 versions (tested on TYPO3 3.8)<br />

●<br />

●<br />

IRRE can be deactivated if wanted (so you can enter the relation by hand)<br />

Bugfix (checkbox label)<br />

Update on 14.01.2008 version 0.2.1<br />

● Mandatory field check enabled<br />

Update on 13.01.2008 version 0.2.0<br />

● Backend module with list-, export- and filter functions<br />

●<br />

Bugfixes in main code<br />

Powermail version 0.1.x alpha<br />

Update on 10.01.2008 version 0.1.4<br />

● Backend module integrated<br />

●<br />

Many bugfixes<br />

Initial Release to TER on 08.01.2008 version 0.1.3<br />

● Main functions for <strong>powermail</strong><br />

<strong>powermail</strong> - 71


Additional links<br />

You can use one of the following links, to get more informations about this plugin:<br />

●<br />

●<br />

●<br />

●<br />

●<br />

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

Authors (Mischa Heißmann) homepage: http://www.heissmann.org<br />

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

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

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

<strong>powermail</strong> - 72

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!