20.03.2014 Views

powermail

powermail

powermail

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<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!