Вы находитесь на странице: 1из 72

powermail

Extension Key: powermail


Copyright 2005-2008,
Alexander Kellner, Mischa Heißmann,
<Alexander.Kellner@einpraegsam.net, typo3.2008@heissmann.org>

This document is published under the Open Content License


available from http://www.opencontent.org/opl.shtml

The content of this document is related to TYPO3


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

Table of Contents
powermail...................................................................................................................................1
Powermail Introduction........................................................................................................................................................3
What does it do?...............................................................................................................................................................3
Tested with TYPO3 version...............................................................................................................................................3
Powermail suggested........................................................................................................................................................3
Known conflicts with..........................................................................................................................................................3
Screenshots...........................................................................................................................................................................4
Frontend............................................................................................................................................................................4
Frontend: Testform einpraegsam.net................................................................................................................................6
Frontend: Mailform wunschtacho.de.................................................................................................................................7
Frontend: Just another screenshot (form with tt_content inside)......................................................................................8
Frontend: Contact form used by conject...........................................................................................................................9
Frontend: Using multiple pages via JS............................................................................................................................10
Searching for new screenshots.......................................................................................................................................10
Backend Module..............................................................................................................................................................11
How to use quickly..............................................................................................................................................................13
Standard: Use IRRE........................................................................................................................................................13
Without IRRE (TYPO3 < 4.1 or IRRE deactivated).........................................................................................................13
Small video tutorial..........................................................................................................................................................13
Plugin Configuration...........................................................................................................................................................14
Add a new content item...................................................................................................................................................14
General: Enter a header..................................................................................................................................................14
Formdata: Main settings..................................................................................................................................................15
Fields: Create new Fieldsets (pages)..............................................................................................................................16
Fields: Add fields (IRRE).................................................................................................................................................17
Fields: Add fields (without IRRE).....................................................................................................................................19
Fields: Overview..............................................................................................................................................................20
Fields: Explanation..........................................................................................................................................................21
Sender: Sender email and subject..................................................................................................................................34
Recipients: Receiver email and subject..........................................................................................................................35
Answerpage: Thx message.............................................................................................................................................36
Access: Form access .....................................................................................................................................................36
powermail settings in the Extension Manager.................................................................................................................37
Constants for powermail....................................................................................................................................................38

powermail - 1
Setup for powermail............................................................................................................................................................41
HTML template and markers example use.......................................................................................................................43
Example for email for recipients......................................................................................................................................43
Changing (or adding new) flexible locallang markers in any html template or RTE field:...............................................43
Adding new flexible typoscript markers in any html template or RTE field:.....................................................................43
Backend module..................................................................................................................................................................45
Introduction......................................................................................................................................................................45
Define your export file as you want via tsconfig..............................................................................................................46
Features...............................................................................................................................................................................48
Validation of field values..................................................................................................................................................48
Saving db values to any db table.....................................................................................................................................50
Prefilling fields.................................................................................................................................................................51
Fighting spam..................................................................................................................................................................51
Integrate captcha to your form........................................................................................................................................51
Add new field: Selectorbox with values from database...................................................................................................52
FAQ.......................................................................................................................................................................................53
I need help/support with this plugin!................................................................................................................................53
How can I prefill some fields?..........................................................................................................................................53
Error in backend “Unknown type: inline” - what to do?....................................................................................................53
How can I overwrite the locallang translations / How can I add a new locallang marker................................................53
How can I use validation of fields per Javascript?..........................................................................................................53
JavaScript check don't work - why?.................................................................................................................................53
How can a style my form?...............................................................................................................................................54
HTML Validation vailed....................................................................................................................................................54
How can I choose my own html code instead of the automatic html generation............................................................54
POWERMAIL ERROR: No title to current field found in DB (uidXX) ..............................................................................54
I want a select box in frontend where the user can choose the receiver of the form......................................................54
I will check some fields (with php) if the value is an email or an URL.............................................................................55
I want to use captcha but no captcha field is shown.......................................................................................................55
Onetime filling solve all my problems..............................................................................................................................55
Countryselector dropdown without value (Empty field cn_short_en ...)..........................................................................55
There is a problem with content elements like text/image / dividers2tab problem..........................................................55
I cannot add fields (TYPO3 4.2)......................................................................................................................................55
CSS corner...........................................................................................................................................................................56
Add a default CSS...........................................................................................................................................................56
How to get labels and fields in two columns with css......................................................................................................57
How to get two columns..................................................................................................................................................58
Developers corner...............................................................................................................................................................59
Database relation model..................................................................................................................................................59
Hooks in powermail.........................................................................................................................................................60
Todos ...................................................................................................................................................................................63
Bugfixes...........................................................................................................................................................................63
Features...........................................................................................................................................................................63
Request...........................................................................................................................................................................63
Changelog ...........................................................................................................................................................................64
Additional links....................................................................................................................................................................72

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

Tested with TYPO3 version


● TYPO3 3.8
● TYPO3 4.0
● TYPO3 4.1
● TYPO3 4.2

Powermail suggested
● static_info_tables (and _de, _fr, _da, etc...)
● date2cal (tested with 7.0.6)
● wt_spamshield
● wt_directory
● powermail_optin
● powermail_mul
● powermail_frontend
● powermail_cond
● geoip

Known conflicts with


● dbal

powermail - 3
Screenshots
Frontend
Frontend: Show Form

Frontend: Form validation failed

powermail - 4
Frontend: Confirmation

Frontend: Thx message to user

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

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

powermail - 7
Frontend: Just another screenshot (form with tt_content inside)

powermail - 8
Frontend: Contact form used by conject
Example: http://www.conject.com/kontakt/kontakt.html

powermail - 9
Frontend: Using multiple pages via JS

Searching for new screenshots


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

powermail - 10
Backend Module

Backend: Powermail list

Backend: Define some fields

powermail - 11
Backend: Define your Answerpage

powermail - 12
How to use quickly
Standard: Use IRRE
● Import from online repository
● Reload backend (you will see a new item in the menu “Powermail”)
● Enter a new page record on any normal page and choose the powermail plugin (see below for a detailed manual),
there you can define your fieldsets and fields
● That's all!
● NOTE: If you want to use IRRE, ensure that your server provides long POST variables (maybe it's useful to increase
POST memory size on the server)

Without IRRE (TYPO3 < 4.1 or IRRE deactivated)


● Import from online repository
● Reload backend (you will see a new item in the menu “Powermail”)
● Enter a new page record and choose the powermail plugin (without IRRE you cannot enter some fieldsets or fields)
● Add one or more new content elements to the page: fieldset (set relation to the powermail plugin)
● Add one or more new content elements to the page: field (set relation to the fieldset)
● That's all!

Small video tutorial


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

powermail - 13
Plugin Configuration
Add a new content item

General: Enter a header

This fields are similar to the standard text plugin


(header, start and stop time, frame, language...)
(see TYPO3 documentation for more information)

powermail - 14
Formdata: Main settings

● Formtitle: Enter a title for the whole form (only used intern)
● Save mails in page: You can choose a page where your mails should be saved (can also set via constants)
● Activate confirmation page: If checked there will be a confirmation page after form-submit
(like: are your values ok?)
● Multiple steps:
● Single step: The whole form is shown on one page (All fieldsets will be shown)
● Multiple steps (JS): Each fieldset (see below) is an own page. Switch between pages via Javascript
● Multiple steps (PHP): Each fieldset (see below) is an own page. Swich between pages via
HTML/PHP

powermail - 15
Fields: Create new Fieldsets (pages)

● Create new Fieldsets: You can create more pages (fieldsets), if you want to use the moresteps function. Every step
is a fieldset.. It's also usefull to show fields separated in different fieldsets on one page – so you can use more than
only one fieldset.
NOTE: You need to choose min. 1 fieldset for every form.
● Preview: This iframe previews the your frontend at once, so you can see your changes.
NOTE: You can deactivate this iframe in the extension manager (maybe faster working possible)

powermail - 16
Fields: Add fields (IRRE)

● Fieldset Title: Enter a title for your fieldset


● Fieldset Hide: You can disable the complete fieldset if you want
● Fieldset Starttime: Enter a starttime for the complete fieldset
● Fieldset Endtime: Enter a stoptime for the complete fieldset
● Fieldtype: Choose any fieldtype (textfield, textarea, selectbox, checkbox, radiobutton, submit, reset, text,
pagecontent, html, password, file upload, hidden, datetime, date, time, button, graphicsubmit, countryselect) /
NOTE: See a detailed description below
● Create new Fields: You have to enter your fields (like name and email)
● Field Title: Enter a title for your field (title is listed as form label)

powermail - 17
● Field Hide: You can disable the current field
● Field Starttime: Enter a starttime for this field
● Field Stoptime: Enter a stoptime for this field
● Settings (Text field) Size: If you want to enter a size. Alternative you can set the width and height via CSS
● Settings (Text field) Max. Length: Set max. length for textfiels
● Settings (Text field) Read only: Field is set to read only
● Settings (Text field) Mandatory field: Field is obsolete
● Settings (Text field) Default value: Choose a value to prefill the textfield
● Settings (Text field) Validate this field for: You can activate a js validation (see below)
● Settings (Text field) Name for Templates: If you want to use this value in any template, use this code
● Settings (Text field) Field example: There is an example picture of the current field
● Fill out this field with fe_user field: Prefill field (if fe_user is logged in) with any data from fe_user / You can set the
allowed fe_user fields via Ext Manager
NOTE: Different fields have different setting possibilities (see below for details)

powermail - 18
Fields: Add fields (without IRRE)

If IRRE is disabled (TYPO3 < 4.1) or manually, you have to add the relation manually:
● Add a new content element (powermail) if not yet done
● Use “create new record” to add a fieldset manually (enter the relation to the powermail content on the same page)
● Use “create new record” to add a field manually (enter the relation to the powermail fieldset on the same page)
NOTE: Different fields have different setting possibilities (see below for details)

powermail - 19
Fields: Overview
Title: Explanation: Example Output: Category:
Textfield Simple text fields (one line) <input type=”text” /> STANDARD
Textarea Text fields with more lines <textarea>text</textarea> STANDARD
Select box Selector box (dropdown) <select><option>1</option></select> STANDARD
Checkbox Checkbox <input type=”checkbox” /> STANDARD
Radio Button Radio buttons <input type=”radio” /> STANDARD
Submit Button Submit button <input type=”submit” /> STANDARD
Captcha Request Captcha picture with input field to validate a human <img src=”captcha.php” /><input type=”text” /> EXTRA
entry (captcha or sr_freecap needed)
Reset Button Reset buttons <input type=”reset” /> EXTRA
Show some text Enter a text and show it in the frontend Text blabla EXTRA
TYPO3 page Show any TYPO3 page content <p class=”bodytext”>blabla</p> EXTRA
content
Enter your own Enter your html code <span style=”color: red”>bla</span> EXTRA
html code
Password field Password field <input type=”password” /> EXTRA
File upload Standard upload field for files <input type=”file” /> EXTRA
Hidden field Hidden value <input type=”hidden” /> EXTRA
Date and time field Text field with a javascript calendar <input type=”text” /><script ...>...</script> EXTRA
Date field Text field with a javascript calendar <input type=”text” /><script ...>...</script> EXTRA
Button Simple a button without a function (maybe usefull for a <input type=”button” /> EXTRA
javascript)
Graphic as submit Submit Image <input type=”image” /> EXTRA
Country selection Selector box with countries (static_info_tables needed) <select><option>Germany</option>...</select> EXTRA
Add typoscript Output any value from your typoscript Any value from typoscript EXTRA
object
Multiple upload Multiple upload fields are part of the extension <input type=”file” />... EXTENSIO
powermail_mul (enables upload of more files) NS

powermail - 20
Fields: Explanation
Fields: Add textfield

● Size: Set field size (size=””) (we suggest you to use CSS for field width)
● Max. Lengh: Set maximum length of signs in this field (maxlength=””)
● Read only: Check to be a read only field (readonly=”readonly”)
● Mandatory field: This field is a needed field – no db and no email without this field (check with JavaScript and PHP)
● Default value: Prefill field with a value (value=””)
● Validate this field for: This is a javascript validation
– check for email addresses (like test@test.com)
– check for URL (like http://www.test.de)
– check for digits only (like 3.6)
– check for digits without comma and point (like 3)
– check for letters only (a-z)
– check for letters and digits only (a-z and 0-9)
● Name for Templates: If you want to use this value in any template, use this code
● Field example: You will see a picture example of the chosen field

powermail - 21
Fields: Add textarea

● Number of columns: Set columns (cols=””)


● Number of rows: Set rows (rows=””)
● Read only: Set field to a read only field (readonly=”readonly”)
● Mandatory field: This field is a needed field – no db and no email without this field
● Default value: Prefill field with a value (<textarea>My value</textarea>)
● Name for Templates: If you want to use this value in any template, use this code
● Field example: You will see a picture example of the chosen field

powermail - 22
Fields: Add selectbox

● Enter your options: Every line is a new option for the selececterbox like red, green and blue /
- If you want different label and values, you can write: label | value /
- If you're going to use the same label and value, you can write: value
● Size: Set field size (size=””)
● Multiple seletc allowed: Allow more than one value to select (multiple=”multiple”)
● Mandatory field: This field is a needed field – no db and no email without this field
● Name for Templates: If you want to use this value in any template, use this code

Option examples for selectorbox


Line Example for options Explanation of left example (html code in frontend)
1 Red <option value="red">red</option>
2 Red | 1 <option value="1">Red</option>
3 Blue | <option value="">Blue</option>
4 Black | black | * <option value="black" selected="selected">Black</option>
5 White | | * <option value="" selected="selected">White</option>

powermail - 23
Fields: Add checkbox

● Enter your options: Every line is a new option for the selececterbox like red, green and blue /
- If you want different label and values, you can write: label | value /
- If you're going to use the same label and value, you can write: value
● Mandatory field: This field is a needed field – no db and no email without this field
● Name for Templates: If you want to use this value in any template, use this code

Option examples for checkboxes


Line Example for options Explanation of left example (html code in frontend)
1 Red <label>Red</label><input value="Red" />
2 Red | 1 <label>Red</label><input value="1" />
3 Blue | <label>Blue</label><input value="" />
4 Black | black | * <label>Black</label><input value="black" checked="checked" />
5 White | | * <label>White</label><input value="" checked="checked" />

powermail - 24
Fields: Add radiobutton

● Enter your options: Every line is a new option for the selececterbox like red, green and blue /
- If you want different label and values, you can write: label | value /
- If you're going to use the same label and value, you can write: value
● Mandatory field: This field is a needed field – no db and no email without this field
● Name for Templates: If you want to use this value in any template, use this code

Option examples for radiobuttons


Line Example for options Explanation of left example (html code in frontend)
1 Red <label>Red</label><input value="Red" />
2 Red | 1 <label>Red</label><input value="1" />
3 Blue | <label>Blue</label><input value="" />
4 Black | black | * <label>Black</label><input value="black" checked="checked" />
5 White | | * <label>White</label><input value="" checked="checked" />

powermail - 25
Fields: Captcha request

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


● Name for Templates: If you want to use this value in any template, use this code
● Field example: You will see a picture example of the chosen field
● NOTE: First of all you have to install sr_freecap or captcha and choose (via constants) which one should be used
(Standard: sr_freecap)

Fields: Add submitbutton

● Field example: You will see a picture example of the chosen field
● NOTE: To enter the label (value) of the button, use the label of the field

powermail - 26
Fields: Add resetbutton

● Refresh page and clear whole session: Use this checkbox if a user clicks the button, the page will be refreshed
without session values
● Field example: You will see a picture example of the chosen field
● NOTE: To enter the label (value) of the button, use the label of the field

Fields: Add text

● Default value: Enter your Text here (you can define which html signs are allowed via ts constants)
● Send this content via email: If you want to send this content via email, check this
● Field example: You will see a picture example of the chosen field
● Name for Templates: If you want to use this value in any template, use this code
● NOTE: Send this content via email is not yet finished programed at this time!

powermail - 27
Fields: TYPO3 pagecontent

● Default value: Choose any tt_content uid to show in frontend


● Name for Templates: If you want to use this value in any template, use this code
● Field example: You will see a picture example of the chosen field

Fields: HTML code

● Default value: Enter your HTML code here


● Name for Templates: If you want to use this value in any template, use this code
● Field example: You will see a picture example of the chosen field
● NOTE2: Maybe removeXSS disables all features – you can disable this function via constants

powermail - 28
Fields: Add a password field

● Size: Set field size (size=””) (we suggest you to use CSS for field width)
● Max. Lengh: Set maximum length of signs in this field (maxlength=””)
● Read only: Set field to a read only field (readonly=”readonly”)
● Mandatory field: This field is a needed field – no db and no email without this field
● Field example: You will see a picture example of the chosen field
● Name for Templates: If you want to use this value in any template, use this code
● NOTE: Password fields are described in selfhtml.org

Fields: Upload field

● Size: Set field size (size=””) (we suggest you to use CSS for field width)
● Mandatory field: This field is a needed field – no db and no email without this field
● Name for Templates: If you want to use this value in any template, use this code
● Field example: You will see a picture example of the chosen field
● NOTE: You can set the upload folder via constants (see below) – only the filename will be written

Fields: Hidden field

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


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

powermail - 29
Fields: Date and Datetime field

● NOTE: This fields are only supported if you have installed the extension date2cal!
● Default value: Set a default value (you can use the date2cal icon for better writing in backend and frontend
● Size: Set field size (size=””) (we suggest you to use CSS for field width)
● Read only: Set field to a read only field (readonly=”readonly”)
● Mandatory field: This field is a needed field – no db and no email without this field
● Name for Templates: If you want to use this value in any template, use this code
● Field example: You will see a picture example of the chosen field

Fields: Button field

● Default value: Set a default value


● Note: Button fields are without any function (if you don't use Javascript with this)
● Field example: You will see a picture example of the chosen field
● Note: JS implementation is not finished programed at this time

powermail - 30
Fields: Graphic submit field

● Grafic source: Enter a source for the graphic submit button (like fileadmin/test.jpg)
● Alternative Text for image: use the alt tag (alt=””)
● Field example: You will see a picture example of the chosen field
● NOTE: Imagebuttons are described in selfhtml.org

powermail - 31
Fields: Countryselect field

● Country shortage for preselect: Select one country to be preselected in frontend


● Only show this countries: If you chose some countries – ONLY this countries will be shown
● Show list without this countries: Show whole list without this selected countries
(Don't works with “Only show this countries”)
● Name for Templates: If you want to use this value in any template, use this code
● Field example: You will see a picture example of the chosen field
● NOTE1: This fields are only supported if you have installed the extension static_info_tables!
● NOTE2: If you want a localized version, you can use (e.g.) static_info_tables_de (or fr etc...) -
(TS example: config.language = de for staticinfo_tables_de)
● NOTE3: You can use utf8_encode or utf8_decode via constants

powermail - 32
Fields: Typoscript field

● Typoscript object: enter an typoscript element for your output (define this element via typoscript setup)
● Field example: Example for a typoscript setup
● NOTE: You can use every object from typoscript for this kind of fields
(maybe it's interesting to add a userfunc for some special fields, etc...)

powermail - 33
Sender: Sender email and subject

● Senders email address: Choose any of your fields to mark as sender email
(This is needed to send an email to the sender, This field will be checked if the value is really an email address, If
empty default sender E-Mail will be used – see constants)
● Senders name: Choose any of your fields to mark as sender name (If empty senders E-Mail will be shown as name)
● Subject for sender's mail: Choose any email subject /
NOTE: You can use markers in email subject to get a subject like “Thank you Alex for your mail”
● Email-Text for sender: You can use this RTE to write the mail content for the sender
● NOTE: This RTE is substituted with tmpl_emails.html / You can use all markers in the RTE and the HTML template!

powermail - 34
Recipients: Receiver email and subject

● Subject for recipient's mail: Choose an email subject for the receiver /
NOTE: You can use markers in email subject to get a subject like “New mail from Alex”
● Recipient: Enter some email receivers (separated with comma, semicolon or with a new line) /
- If you want to enter a sender name, just write: name \n email1 \n email2 \n email3 ... /
- You can also use markers in this field instead of an email: test@test.de, ###UID3###
● Table of recipients: Choose any database table, if you want to send to one or more (e.g. Backend or Frontend)
users
● Recipients from upper table: If you have chosen any db table, select some email addresses
● Alternative SQL-Query: You can enter an own SQL query to get your own email addresses /
- Example: SELECT email FROM fe_users WHERE pid = 12 /
- You can also use markers in the query like SELECT email FROM fe_users WHERE uid = ###UID5### /
- Not allowed strings: UPDATE, TRUNCATE, DELETE, INSERT, REPLACE, DO, HANDLER, LOAD, ALTER,
CREATE, DROP, RENAME, DESCRIBE, USE, BEGIN, COMMIT, ROLLBACK, LOCK, SET, REVOKE, GRANT
● Email-Text for receiver: You can use this RTE to write the mail content for the receiver
● NOTE: This RTE is substituted with tmpl_emails.html / You can use all markers in the RTE and the HTML template!
● NOTE2: Priority of recipient fields: Recipient, Table choose, SQL query

powermail - 35
Answerpage: Thx message

● Response Text: This text is shown after submit


● Auto-redirect after confirmation-page: You can forward the user after submit to any intern or extern URL or file
(instead of using the message)
● NOTE: This RTE is substituted with tmpl_thx.html / You can use all markers in the RTE and the HTML template!

Access: Form access

● Similar to text: Choose your access an general options (see TYPO3 documentation for more information)

powermail - 36
powermail settings in the Extension Manager
Property: Description: Default Data type:
useIRRE Inline Relational Record Editing (IRRE) to enter your fieldsets and fields just 1 boolean
by opening only one content. If you want to use the listview and manually
enter the relation between tt_content and fieldsets and fields you can disable
IRRE (IRRE is only activated if you're using TYPO3 > 4.1)
usePreview Preview window active: Activate frontend preview window under field 1 boolean
definitions (iframe with frontend view of current page). Deactivate for a faster
work with powermail.
TabDividers Activate tab dividers: Powermail uses tab dividers in backend so every 1 boolean
category seems to be a new site (like General, Formdata, Fields, Sender,
Recipients, Answerpage and Access). You can disable tabdividers if you want
to show all stuff on only one page or if there are problems with tab dividers
and other extensions.
feusersPrefill A dropdown is shown in the backend which enables to prefill any field with the name, address, text
value of a current logged in feuser. You can increase or decrease the fe_user telephone, fax, email, zip,
field values in the dropdown menu. Just use the wanted fieldnames of the city, country, www,
fe_user table in a comma-separated list. company
disableIPlog Deactivate IP logging: If you don't want to save the sender IP address in the 0 boolean
database, you can use this checkbox.
disablePMRealU Deactivate config for Realurl: Powermail uses an automatic realurlconf array 0 boolean
rlConfig for type=3131. You can disable this feature if you want to use your own
configuration or you don't need a realurl configuration. (see ext_localconf.php
for configuration details)
disableStartSt Deactivate Start- and Stoptime: If there are problems with adding fields, this 0 boolean
op could be caused by date2cal. You can disable start- and stoptime for fields
and fieldsets with this flag.

powermail - 37
Constants for powermail
You can change your constants with the constant editor

Property: Description: Default Data type:


template.formWrap Template File formwrap: HTML-template file for EXT:powermail/templates/tmpl_fo file
formwrap rmwrap.html
template.fieldWrap Template File fieldwrap: HTML-template file for EXT:powermail/templates/tmpl_fie file
fieldwraps ldwrap.html
template.thxMessage Template File thx-message: HTML-template file for thx EXT:powermail/templates/tmpl_th file
message after submit x.html
template.emails Template File emails: HTML-template file for emails EXT:powermail/templates/tmpl_e file
messages (sender and receiver) mails.html
template.confirmation Template File confirmation: HTML-template file to EXT:powermail/templates/tmpl_co file
change html code of the confirmation page nfirmation.html
template.all Template File ALL marker: HTML-template file if you EXT:powermail/templates/tmpl_all file
want to use the marker ###POWERMAIL_ALL### - .html
here you can set the HTML code for each line
template.mandatory Template File mandatory: HTML-template file for EXT:powermail/templates/tmpl_m file
mandatory page (if any mandatory field was not filled) andatory.html
template.multiple Template File multiple: HTML-template file for multiple EXT:powermail/templates/tmpl_m file
JS pages (see ultiplejs.html
EXT:powermail/templates/tmpl_multiplejs.html for an
example)
allow.email2receiver Email to receiver active: You can disable emails to 1 boolean
receiver
allow.email2sender Email to sender active: You can disable confirmation 1 boolean
emails to sender
allow.dblog Log every mail in db: Disable logging, if you want only 1 boolean
to get mails
PID.dblog PID where to save logfiles: Enter a Page ID where the boolean
form values should be saved to the db (empty: same
PID as form PID)
emailformat.recipient_ Receivermail HTML or Plain: If you use this value, both text
mail emails to the receiver will be send in html or plaintext
or both formats (both, html or plain)
emailformat.sender_mai Sendermail HTML or Plain: If you use this value, both text
l emails to the sender will be send in html or plaintext or
both formats (both, html or plain)

enable.unique Onetime filling: Checks if a field has already this entry boolean
(maybe email address), IP check is also possible if ip
addresses will be logged) - (e.G. uid11,ip checks for
unique IP and unique entry in field uid11)
email.noreply Standard sender address: This email address is noreply@###DOMAIN### text
important, if no sender field was chosen in the
backend, so this email address will be used for the
sender (###DOMAIN### will be replaced with current
domain like test.com)
email.checkMX Check MX record of sender mail: This is a small test, if 1 boolean
senders email address exists (MX record check of
domain)
email.overwritesender E-Mail sender address: If you add an email address in text
this field, this email address will be used for the user
mail as senderemail and returning email address.
Normally the main receiver address is used as sender
for the returning mail, but you can overwrite this if you
want (e.G. mail@mail.com) Note - if you don't use a
correct mail address, this field will be ignored!
hiddenfields.show Don't show hiddenfield values: Show or hide values of 1,0,0,0,1 text
hiddenfields on recipient mail, confirmation mail to
sender, thx message page, confirmation message
page, mandatory page (default 1,0,0,0,1)
markerALL.hideLabel Hide label if empty value: This option hides labels if its 0 boolean
value is empty in marker ###POWERMAIL_ALL###

powermail - 38
Property: Description: Default Data type:
markerALL.notIn Exclude fields from marker ALL: Exclude some fields text
from marker ###POWERMAIL_ALL### (e.g.:
###UID14###,###UID22### or UID14,UID22)
form.method Form method: use post or get as post format (details post text
see on selfhtml.org)
format.datetime Frontend datetime format if datetime field is in use %H:%M %d-%m-%Y text
(only needed if you use the extension date2cal)
format.date Frontend date format if date field is in use (only %d-%m-%Y text
needed if you use the extension date2cal)
label.allowTags Allowed tags in labels: Allow some tags for label fields <p><br><b><strong><a> text
html.removeXSS RemoveXSS for html fields: (de)activate security 1 boolean
function to disable Cross Site Scripting with the html
field (removeXSS on or off)
countryselect.charset Charset for countryselector: You can use the php options[,utf8_e
functions utf8_encode or utf8_decode to change the ncode,utf8_de
countryselector output code]
mandatory.symbol Add symbol for mandatory fields: If any field is a * text
mandatory field, add this at the end of the label
mandatory.wrap Wrap mandatory symbol: You can wrap the mandatory <span text
symbol with any html code class="powermail_mandatory">|</
span>
captcha.use Use captcha extension: If you have installed sr_freecap option
sr_freecap and captcha, you can select which
extension should be used
pagebrowser.wrap Wrap pagebrowser: If you use multiple pages (PHP), <p wrap
you can show the current page like 1 of 3 class="powermail_pagebrowser">|
</p>
upload.folder Folder for uploaded files: If you are using min. one uploads/tx_powermail/files/ text
upload field in frontend, you can change the folder
where the uploaded file is safed
upload.file_extensions Allow files for upload: If you are using min. one upload jpg,gif,png,tif,txt,doc,xls,sxw,html, text
field in frontend, you can set the allowed extension of swf
this files
upload.filesize Allow filesize for upload: If you are using min. one 1000 int
upload field in frontend, you can set the allowed
filesize of the files (in kB)
upload.attachment Upload and attach: If checked, all files will be sent as 1 boolean
an attachment to the receiver (if disabled, files will only
stored on server)
clear.session Clear Session: Check if session should be cleared 0 boolean
after submit (emails sent)
js.mandatorycheck Check for mandatory fields: (De)activate JavaScript 1 boolean
check for mandatory fields (and other fields like email,
url, etc..)
js.mandatorydivclass Mandatory JS DIV class: Enter your own css class for powermail_mandatory_js text
the mandatory javascript div layer (div layer which is
shown, if a field was not filled, etc...)
js.onfocus OnFocus JavaScript: (De)activate onfocus javascript in 1 boolean
fields - removes standard value of (e.g. text-) fields
onclick, so the user can click and begin to write
js.Prototype Load prototype.js: (De)activate loading prototype.js in 1 boolean
html head of page where powermail is in (prototype.js
is needed for JS validation of fields and for date2cal
fields like date, datetime and time)
js.HTMLentities HTMLentities for JS: (De)activate the php function 1 boolean
htmlentities for the dynamic javascript in the html
header. Example with htmlentities: index.php?id=1&
amp;type=3131 / Example without htmlentities:
index.php?id=1&type=3131
field.checkboxJS Hiddenfields for checkboxes: (De)activate the 1 boolean
hiddenfields for checkboxes. If only checkboxes are in
use, there is a problem to enable a checkbox, submit,
go back and deaktivate checkbox and submit again -
the value ist still set. To fix this, you can use a
JavaScript with hiddenfields (set by default).

powermail - 39
Property: Description: Default Data type:
rte.parse Use rteCSStext function: Text from rich text editor will 1 boolean
be parsed automaticly for emails and thx message
(every line gets an p tag, etc...). Disabling could be
useful if you want to use only plaintext mails.
powermail.charset Charset for powermail: You can use the php functions options[,utf8_e
utf8_encode or utf8_decode to change the whole ncode,utf8_de
powermail output code]
barrier-free.tabindex Manual sorting of tabindex: Powermail adds tabindex text
to the fields (automaticly via sorting). If you want to use
another order, you can change the order with this
settings (e.g. uid5,uid4,uid3_0,uid3_1 or
5,4,6,4_0,4_1,3)
barrier-free.accesskey Adding accesskeys: You can add some accesskeys to text
the fields if you want
(e.g. uid1:f,uid3:g or 1:a,2:b,3_1:c)
geoip.file Add geoip file: If you want to use geoip, you can enter text
the relative path to the .dat file for geo info (e.g.
fileadmin/geoinfo.dat)
geoip.addValuesToMarke Add geo info to marker ALL: The most people don't text
rALL want to use single markers, they just use
###POWERMAIL_ALL###, if you want to add some
geoinfo, you can add those to the all marker (e.g.
countryName, city) (available keys - ip, countryCode,
countryName, region, city, zip, lng, lat, dmaCode,
areaCode)
debug.output Activate debug output: Possibility to print a debug options[,all,ses
output over the html. All displays session and email sion,email,db]
array, Session prints only session array, Email prints
only email array (empty or all or session or email)
Note: Prefix for all powermail constants: plugin.powermail.

powermail - 40
Setup for powermail
Note: The most settings are possible with constants editor
# POWERMAIL PLUGIN #
plugin.tx_powermail_pi1 {
# get constants
template.fieldWrap = {$plugin.powermail.template.fieldWrap}
template.formWrap = {$plugin.powermail.template.formWrap}
template.thxMessage = {$plugin.powermail.template.thxMessage}
template.emails = {$plugin.powermail.template.emails}
template.confirmation = {$plugin.powermail.template.confirmation}
template.all = {$plugin.powermail.template.all}
template.mandatory = {$plugin.powermail.template.mandatory}
template.MultipleJS = {$plugin.powermail.template.MultipleJS}
allow.email2receiver = {$plugin.powermail.allow.email2receiver}
allow.email2sender = {$plugin.powermail.allow.email2sender}
allow.dblog = {$plugin.powermail.allow.dblog}
emailformat.recipient_mail = {$plugin.powermail.emailformat.recipient_mail}
emailformat.sender_mail = {$plugin.powermail.emailformat.sender_mail}

enable.unique = {$plugin.powermail.enable.unique}
email.noreply = {$plugin.powermail.email.noreply}
email.checkMX = {$plugin.powermail.email.checkMX}
email.overwritesender = {$plugin.powermail.email.overwritesender}
hiddenfields.show = {$plugin.powermail.hiddenfields.show}
markerALL.hideLabel = {$plugin.powermail.markerALL.hideLabel}
markerALL.notIn = {$plugin.powermail.markerALL.notIn}
PID.dblog = {$plugin.powermail.PID.dblog}
form.method = {$plugin.powermail.form.method}
format.datetime = {$plugin.powermail.format.datetime}
format.date = {$plugin.powermail.format.date}
label.allowTags = {$plugin.powermail.label.allowTags}
html.removeXSS = {$plugin.powermail.html.removeXSS}
countryselect.charset = {$plugin.powermail.countryselect.charset}
mandatory.symbol = {$plugin.powermail.mandatory.symbol}
mandatory.wrap = {$plugin.powermail.mandatory.wrap}
captcha.use = {$plugin.powermail.captcha.use}
pagebrowser.wrap = {$plugin.powermail.pagebrowser.wrap}
upload.folder = {$plugin.powermail.upload.folder}
upload.file_extensions = {$plugin.powermail.upload.file_extensions}
upload.filesize = {$plugin.powermail.upload.filesize}
upload.attachment = {$plugin.powermail.upload.attachment}
clear.session = {$plugin.powermail.clear.session}
js.mandatorycheck = {$plugin.powermail.js.mandatorycheck}
js.mandatorydivclass = {$plugin.powermail.js.mandatorydivclass}
js.onfocus = {$plugin.powermail.js.onfocus}
js.Prototype = {$plugin.powermail.js.Prototype}
js.HTMLentities = {$plugin.powermail.js.HTMLentities}
field.checkboxJS = {$plugin.powermail.field.checkboxJS}
rte.parse = {$plugin.powermail.rte.parse}
powermail.charset = {$plugin.powermail.powermail.charset}
barrier-free.tabindex = {$plugin.powermail.barrier-free.tabindex}
barrier-free.accesskey = {$plugin.powermail.barrier-free.accesskey}
geoip.file = {$plugin.powermail.geoip.file}
geoip.addValuesToMarkerALL = {$plugin.powermail.geoip.addValuesToMarkerALL}
debug.output = {$plugin.powermail.debug.output}

# adding (or changing) flexible locallang markers in any HTML template or RTE field (example)
_LOCAL_LANG.en {
locallangmarker_yourvalue = this is a new text
}

# adding flexible typoscript markers in any HTML template or RTE field (example)
dynamicTyposcript {
yourmarker = TEXT
yourmarker.value = This is a new text
}

# prefilling form fields (example)


prefill {
# fill field uid997 with a static text
uid997 = TEXT
uid997.value = example value

# fill field uid998 with current timestamp


uid998 = TEXT
uid998.data = date:U

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

# fill field uid995 with IP address of the user


uid995 = TEXT
uid995.data = getIndpEnv:REMOTE_ADDR
}

# extern db entry (example for tt_adress)


dbEntry {
# enable or disable db entry for tt_address
# tt_address._enable = TEXT
# tt_address._enable.value = 1

# add mm relation to uid 2 of tt_address_group (via mm table)


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

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


# tt_address.email = TEXT
# tt_address.email.value = alexander.kellner@einpraegsam.net

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

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

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

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

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

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

# TypeNum 3131 offers a dynamic javascript for powermail which allows to validate different fields
powermailJS = PAGE
powermailJS {
typeNum = 3131
10 < plugin.tx_powermail_pi1

config {
disableAllHeaderCode = 1
xhtml_cleaning = 0
admPanel = 0
}
}

powermail - 42
HTML template and markers example use
Example for email for recipients
<!--###POWERMAIL_RECIPIENT_MAIL### start-->
<p>
###POWERMAIL_LOCALLANG_EMAIL_RECEIVER###<br />
###POWERMAIL_EMAILRECIPIENT_RTE###<br />
###UID12###
###POWERMAIL_ALL###
</p>
<!--###POWERMAIL_RECIPIENT_MAIL### stop-->

###POWERMAIL_LOCALL Plugin search for a value from pi1/locallang.xml with the name That where your values:
ANG_EMAIL_RECEIVER# locallangmarker_email_receiver (you can overwrite the xml file or set your own text
## via TS setup – see below)
###POWERMAIL_EMAILR This is a special marker for use in the email template. This marker will be filled with New mail
ECIPIENT_RTE### the backend RTE for receivers (NOTE: You can also use marker in the RTE fields)
###UID12### Onchange JavaScript: (De)activate onchange javascript for select fields - adds an George Smith
onchange javascript to all select fields - automatic submit onchange
###UID12_0### If you use values in sencond level (like checkboxes with tx_powermail_pi1[uid3][0]) Values: red, blue, green
than you can use this marker. NOTE: If you want to display all values of the
checkbox, simply use ###UID12###
###POWERMAIL_ALL### This marker shows all values of all fields. Helpful if you have a long form. Name: George
Prename: Smith
Years: 34
Country: USA
###POWERMAIL_BASEUR This marker simply enters the base url like http://www.test.de (Helpful if you want to http://www.test.de
L### load graphics in the email from your website)
###FILE_0### Name of uploaded file File_12345.jpg

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

Typoscript example
You can use this both locallang files for example in the html templates by using ###POWERMAIL_LOCALLANG_VALUE###
plugin.tx_powermail_pi1._LOCAL_LANG.en {
locallangmarker_confirmation_back = Go back
locallangmarker_newlanguagemarker = This is a new marker text
JSvalidation_label_required = Please fill this mandatory field!
}
plugin.tx_powermail_pi1._LOCAL_LANG.de {
locallangmarker_confirmation_back = Zum Formular
locallangmarker_newlanguagemarker = Das ist ein neuer Marker Text
JSvalidation_label_required = Dieses Feld ist ein Pflichtfeld!
}

# Only needed if JS language marker should be changed (Jsvalidation_label_...)


powermailJS.10 < plugin.tx_powermail_pi1

Adding new flexible typoscript markers in any html template or RTE field:
HTML example
###POWERMAIL_TYPOSCRIPT_YOURFIELD1###
###POWERMAIL_TYPOSCRIPT_YOURFIELD2###
###POWERMAIL_TYPOSCRIPT_YOURFIELD3###

Typoscript example
Add some new markers with all typoscript features (TEXT, IMAGE, COA, USER, etc...) you already know
plugin.tx_powermail_pi1.dynamicTyposcript {
yourfield1 = TEXT

powermail - 43
yourfield1.value = this is a text

yourfield2 = TEXT
yourfield2.field = uid

yourfield3 = USER
yourfield3.userFunc = user_various->listContentRecordsOnPage
}

powermail - 44
Backend module
Introduction
Powermail offers a backend module to view all mails in the database

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

● Now you can choose any page of the pagetree


● If the chosen page contents powermails, a list with mails is shown to you
● You can filter the mails by using the two fields above the list (first field is the starttime, second field the endtime)
● Export symbols:
● Excel symbol: Export the current list to an xls file
● CSV symbol: Generate and download a CSV file
● HTML table symbol: Just generate a html table without any formats
● Enable deleting of mails after export (or disabling)

powermail - 45
Define your export file as you want via tsconfig
Use tsconfig of the page where your powermails are listed, to manipulate the export file or the listing in the backend
(see example)

Example
# set columns
tx_powermail_mod1.export {
number = #
uid42 = Title
uid43 = Prename
uid44 = Lastname
uid45 = Email
date = Registration-Date
time = Registration-Time
}

# set config
tx_powermail_mod1.config {
export.useTitle = 1
export.dateformat = d.m.Y
export.timeformat = H:i
list.perPage = 50
list.filterstart = 2008-04-01 00:00
list.filterend = 2008-12-01 00:00
list.dateformat = d.m.Y H:i
}

Example file for tsconfig above


# Title Prename Lastname Email Registration-Date Registration-Time
1. Dr. Alex Kellner test@test.de 01.01.2009 12:23
2. Mischa Heissmann test@test.com 23.12.2208 16:11

powermail - 46
Available markers for tsconfig

Export settings (prefix: tx_powermail_mod1.export)


Name Explanation What is this Default if no
tsconfig set
number Just an ascending number Field value 1
date Registration date (format can be set – see below) Field value 1
time Registration time (format can be set – see below) Field value 1
sender Email of sender Field value 1
senderIP IP address of sender Field value 1
recipient Email of recipient Field value 1
subject_r Email subject to recipient Field value 1
formid Page ID where the form is in Field value 1
content Email content Field value 0
UserAgent UserAgent of sender Field value 1
Referer Referer of sender Field value 1
SP_TZ Location of sender Field value 1
uid This automaticly fills columns with ALL pivars Field value 1
uid[NUMBER] Define your own columns and use it like uid55 Field value 0
uid[NUMBER]_[NU Define your own columns for values in second level (maybe Field value 0
MBER] checkboxes or multiple selections) like uid55_0 and uid55_1

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


Name Explanation What is this Default if no
tsconfig set
export.useTitle Configure if title should be displayed in the first line of Configuration 1
the export file (boolean) of export
file
export.dateform Configure your wanted date format in the export file (see Configuration Y-m-d
at http://php.net/manual/function.date.php for details) of export
file
export.timeform Configure your wanted time format in the export file (see Configuration H:i:s
at http://php.net/manual/function.date.php for details) of export
file
list.perPage Change the number of listed mails per page in the Configuration 100
backendform (default: 100) of listing in
backend
list.filterstar Set your own static filter starttime, if you want to show Configuration [currentYea
t or hide some old mails (like: 2008-12-23 12:19) of listing in r]-
backend [currentMon
th]-01
00:00
list.filterend Set your own static filter endtime, if you want to show or Configuration Current
hide some old mails (like: 2015-01-01 12:00) of listing in time like
backend 2008-01-01
00:00
list.dateformat Date format for the backend listing (see Configuration Y-m-d H:i
http://php.net/manual/function.date.php for details) of listing in
backend

powermail - 47
Features
Validation of field values
JavaScript validation

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

Example: Mandatory check

Example: E-Mail check

Check for:
This validation of textfields are currently possible:
● Mandatory
● E-Mail
● URL
● Numbers
● Numbers (with comma or point)
● Letters
● Letters and numbers

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

Stylesheet classes to manipulate validation messages and input fields:


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

powermail - 48
PHP validation

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

Setting a field to mandatory via typoscript instead of flexform setting


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

Autocheck via typoscript


Use typoscript to check any field like (example to check uid41 if it is an email):
plugin.tx_powermail_pi1 {
validate.uid41.auto = email
validate.uid41.errormsg = Please check your email, there is an error!
}
This autochecks are possible:
● email: check if value is an email
● url: check if value is a correct url
● numbers: only numbers allowed
● phone: numbers and / and + and - allowed
● alphanum: only numbers and characters allowed

Manual check via typoscript (using regulare expressions)

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

Further regex examples:

Field (e.g.: ###UID23###) should contain alex@wunschtacho.de:


plugin.tx_powermail_pi1 {
validate.uid23.expression = /^alex\@wunschtacho\.de$/
validate.uid23.errormsg = Sorry, but this field should contain alex@wunschtacho.de!
}

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

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

Example typoscript part in setup


plugin.tx_powermail_pi1 {
# extern db entry (example for tt_adress)
dbEntry {
# enable or disable db entry for tt_address
tt_address._enable = TEXT
tt_address._enable.value = 1

# add mm relation to uid 2 of tt_address_group (via mm table)


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

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


alexander.kellner@einpraegsam.net
tt_address.email = TEXT
tt_address.email.value = alexander.kellner@einpraegsam.net

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

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

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

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

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

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

Some information about saving to other tables


● Saving is available only if table and field are existing
● Every table contains one record
● If you want to use more than only one mm relation, you can use tt_address._mm.10 and tt_address._mm.20
and so on...

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

powermail - 50
Prefilling fields
Sequence of prefilling fields
1. Is there a fitting piVar like &tx_powermail_pi1[uid11]=text, than use this value, and if not...
2. Is there a value in the session, so fill field with this value, and if not...
3. Is there a value set in the backend flexform, take this value, and if not...
4. Should this field filled with logged in fe_user datas (set in backend), take this value, and if not...
5. Was typoscript used to prefill a field, use this (see example below), and if not
6. Don't fill

Example to prefill fields via typoscript setup


plugin.tx_powermail_pi1 {
prefill {
# fill field uid997 with a static text
uid997 = TEXT
uid997.value = example value

# fill field uid998 with current timestamp


uid998 = TEXT
uid998.data = date:U

# fill field uid998 with current date like "Date: 20.01.2009"


uid996 = TEXT
uid996.data = date:U
uid996.strftime = Date: %d.%m.%Y

# fill field uid995 with IP address of the user


uid995 = TEXT
uid995.data = getIndpEnv:REMOTE_ADDR
}
}
Maybe it's usefull to fill some hidden fields with hidden but important values (IP address, timestamp, Language, GET params,
etc..)

Fighting spam
● We suggest you to use the extension wt_spamshield for fighting spam entries
(see details in manual wt_spamshield)
● You can also use captcha (see next paragraph)

Integrate captcha to your form


● First of all install a captcha extension like captcha or sr_freecap
● Be sure, that you have chosen this extension via constants (captcha or sr_freecap)
● As you can add a normal textfield, you can add a captcha field, thats all
● If you have installed captcha AND sr_freecap, the extension use sr_freecap
● If you have not installed one of this extensions, an error message in frontend is shown

Example: Using captcha

powermail - 51
Example: Using sr_freecap

Add new field: Selectorbox with values from database


Step by step
1. Add new field (typoscript) and use (e.g.) lib.object in this field
2. Add your typoscript in the setup field to fill lib.object (see example below)

Example typoscript for selectorbox from table tt_address


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

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

Example output (html) of example typoscript


<label for="uid33">Select:</label>
<select id="uid33" name="tx_powermail_pi1[uid33]" size="1">
<option value="23">Name1</option>
<option value="24">Name2</option>
</select>

powermail - 52
FAQ
I need help/support with this plugin!
Use the TYPO3 forum http://www.typo3.net or http://www.typo3forum.net for help! The author will checks this both forums
and give a little bit free support.

How can I prefill some fields?


● Prefill fields with values from backend or
● Prefill fields via typoscript (see example above) or
● Prefill fields with feuser values (set in backend)
● Prefill if some fields are already filled and than the user submits form and leaves this page but comes back to the
form page later
● Prefilling from outside like index.php?id=1&tx_powermail[uid55] (if you want to prefill with a pre form)

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

Deactivate IRRE and set the relations manually!


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

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

How can I use validation of fields per Javascript?


This check is activated for default for textfields

You can turn of the validation via TS constants

JavaScript check don't work - why?


Check if the 4 js files are correctly implemented in the HTML HEAD area:
● <script src="typo3conf/ext/powermail/js/mandatoryjs/lib/prototype.js" type="text/javascript"></script>
● <script src="typo3conf/ext/powermail/js/mandatoryjs/src/effects.js"
type="text/javascript"></script>
● <script src="typo3conf/ext/powermail/js/mandatoryjs/fabtabulous.js"
type="text/javascript"></script>
● <script src="validation/fachgebiete/typo3-extensions/powermail.html"
type="text/javascript"></script>

The last file is a little bit tricky – It is the current page with type=3131. If you copy this relative path to your browser, this
should show you a dynamic JavaScript file!
If you want to check of mandatory fields, check if “required” is in the input class.

powermail - 53
If you want to check of email fields, check if “validate-email” is in the input class.
Of course you can mix this.
See standard form for all needed classes.

How can a style my form?


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

HTML Validation vailed


HTML validation failed on such form action:
index.php?id=1&tx_powermail_pi1[mailId]=1&cHash=1234567
● Try to use RealUrl to remove cHash
● If you have chosen XHTML strict in your TYPO3 backend, the & will be written as &amp;

How can I choose my own html code instead of the automatic html generation
Sometimes it could be useful to use an own html code instead of the automatic html code. You can simply generate some
fields and copy the html source between the form tags in the formwrap.html template – thats all.
Note: This method is not very flexible (no prefilling, no multiple, etc...)

POWERMAIL ERROR: No title to current field found in DB (uidXX)


If you are installing powermail and fill out the form (submit) and you will delete a field after this, the field value is still set in the
session.
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!

I want a select box in frontend where the user can choose the receiver of the form
Main explanation:
● Add new fe_users in backend with email (e.g. UID1 info@test.com and UID2 with support@test.com)
● Create a new select field in powermail (value e.g. Info | 1 \n Support | 2) (select like ###UID42#)
● Use db query for recipients in TYPO3 backend (e.g. SELECT email FROM fe_users WHERE uid = ###UID42###)
Example pictures:

powermail - 54
Different Examples to select receiver in frontend:

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


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

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


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

Query for sending form to a static fe usergroup (e.g.: usergroup with uid 44)
SELECT email FROM fe_users WHERE find_in_set(44,usergroup) > 0 AND hidden = 0 AND deleted = 0

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

validate.uid56.auto = url
validate.uid56.errormsg = Please check your url, there is an error!
}

Details or how to use own regulare expression see above!

I want to use captcha but no captcha field is shown


Maybe you have installed and loaded the extension captcha and in constants is set sr_freecap (standard) instead of captcha.

Onetime filling solve all my problems


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

Countryselector dropdown without value (Empty field cn_short_en ...)


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

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

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

I cannot add fields (TYPO3 4.2)


Just try to disable the dividers2tab checkbox in the extension manager for powermail. If this don't helps, we advise you to
disable IRRE in the extension manager.
NOTE: If you want to use IRRE, ensure that your server provides long POST variables
(maybe it's useful to increase POST memory size on the server)
NOTE2: Try to disable date2cal

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

Example picture (default CSS in Frontend):

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

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

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

Additional note (clearfloat):


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

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

Example picture:

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

Additional note (clearfloat):


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

powermail - 58
Developers corner
Database relation model
(also available in extension folder powermail/doc/database_relation)

tt_content: Original tt_content field extended with some powermail fields


tx_powermail_fieldsets: Table with all fieldsets
tx_powermail_fields: Table with all fields
tx_powermail_mails: If you submit in a form the values are saved to this table

powermail - 59
Hooks in powermail
Introduction
With the possibilitiy of hooks, you can manipulate extensions and TYPO3 without changing the code. So you enter your own
code from outside.

Hook documentation
# Hookname File Folde Function Input Retur Note Example use
r n
1 Real class.tx_ lib PM_marke $this- - This is the main $GLOBALS['TYPO3_CON
markerArr powermail rArrayHo >what, markerArray hook. F_VARS']['EXTCONF']
ay hook _markers. ok $this- Every action in ['powermail']
php >geoArray, powermail (show ['PM_MarkerArrayHoo
$this- confirmationpage, show k'][]
>markerArr thx page, show
ay, $this- mandatory page,
>sessionda generate email to
ta, $this- receiver, generate
>tmpl, email to sender) uses
$this the marker class to
show fieldvalues. With
this you you can
manipulate this output
as you want
2 Hook for class.tx_ pi1 PM_MainC $this- - You can change the $GLOBALS['TYPO3_CON
main powermail ontentBe >sessionfi sessions or piVars or F_VARS']['EXTCONF']
manipulat _pi1.php foreHook elds, something like that ['powermail']
ion1 $this- ['PM_MainContentHoo
>piVars, kBefore'][]
$this
3 Hook for class.tx_ pi1 PM_MainC $this- - Change the whole $GLOBALS['TYPO3_CON
main powermail ontentAf >content, output $content F_VARS']['EXTCONF']
manipulat _pi1.php terHook $this- ['powermail']
ion2 >piVars, ['PM_MainContentHoo
$this kAfter'][]
4 FormWrap class.tx_ pi1 PM_FormW $this- - This hook will be $GLOBALS['TYPO3_CON
outerMark powermail rapMarke >OuterMark opened before the F_VARS']['EXTCONF']
erArray _form.php rHook erArray, outerMarker array is ['powermail']
Hook $this- substituted with HTML ['PM_FormWrapMarker
>subpartAr template on the form Hook'][]
ray, page.
$this-
>conf,
$this
5 FormWrap class.tx_ pi1 PM_FormW $this- - This hook will be $GLOBALS['TYPO3_CON
innerMark powermail rapMarke >InnerMark opened before the F_VARS']['EXTCONF']
erArray _form.php rHookInn erArray, innerMarker array is ['powermail']
Hook er $this- substituted with HTML ['PM_FormWrapMarker
>conf, template on the form HookInner'][]
$this page.
6 Hook for class.tx_ pi1 PM_Field $this- $this This hook allows you $GLOBALS['TYPO3_CON
adding powermail Hook >xml, - to add new fields to F_VARS']['EXTCONF']
new _html.php $this- >cont powermail (see ['powermail']
fields >title, ent powermail_mul for an ['PM_FieldHook']
$this- example) ['FIELDNAME'][]
>type,
$this-
>uid,
$this-
>markerArr
ay, $this-
>piVarsFro
mSession,
$this

powermail - 60
# Hookname File Folde Function Input Retur Note Example use
r n
7 Hook class.tx_ pi1 PM_Field $this- - This hook will be $GLOBALS['TYPO3_CON
after powermail WrapMark >uid, opened before the html F_VARS']['EXTCONF']
field _html.php erHook $this- code of the current ['powermail']
generatio >xml, field is given back ['PM_FieldWrapMarke
n $this- (at the end of rHook'][]
>type, fieldgeneration).
$this- Maybe if you want to
>title, manipulate a special
$this- field
>markerArr
ay, $this-
>content,
$this-
>piVarsFro
mSession,
$this
8 Hook for class.tx_ pi1 PM_Field $this- - This hook will be used $GLOBALS['TYPO3_CON
markerArr powermail WrapMark >uid, for every kind of F_VARS']['EXTCONF']
ay in _html.php erArrayH $this- field. You can ['powermail']
field ook >xml, manipulate the ['PM_FieldWrapMarke
generatio $this- markerArray before the rArrayHook'][]
n >type, field is generated
$this-
>title,
$this-
>markerArr
ay, $this-
>piVarsFro
mSession,
$this
9 Hook for class.tx_ pi1 PM_Field $this- - This hook will be used $GLOBALS['TYPO3_CON
markerArr powermail WrapMark >uid, for every kind of F_VARS']['EXTCONF']
ay in _html.php erHookIn $this- field. You can ['powermail']
field ner >xml, manipulate the ['PM_FieldWrapMarke
generatio $this- markerArray before the rArrayHookInner'][]
n (inner >type, field is generated
markerArr $this- (this hook will be
ay for >title, used for
checkboxe $markerArr innerMarkerArray –
s, ay, $this- checkbox,
radiobutt >piVarsFro radiobuttons, etc...)
ons, and mSession,
so on) $this
1 Hook for class.tx_ pi1 PM_Confi $this- - This hook will be $GLOBALS['TYPO3_CON
0 confirmat powermail rmationH >markerArr opened before the F_VARS']['EXTCONF']
ion page _confirma ook ay, $this marker array is ['powermail']
tion.php substituted with HTML ['PM_ConfirmationHo
template on the ok'][]
confirmation page.
1 Mandatory class.tx_ pi1 PM_Manda $this- - If you set $this- $GLOBALS['TYPO3_CON
1 and error powermail toryHook >error, >error to 1, powermail F_VARS']['EXTCONF']
check _mandator $this- will stop the submit ['powermail']
hook y.php >markerArr process, with $this- ['PM_MandatoryHook'
ay, $this- >sessionfields you can ][]
>innerMark write your own error
erArray, message
$this-
>sessionfi
elds,
$this
1 Hook for class.tx_ pi1 PM_Submi $this- - This hook allows to $GLOBALS['TYPO3_CON
2 email powermail tEmailHo >subpart, change the emails F_VARS']['EXTCONF']
change _submit.p ok $this- (subject, receiver, ['powermail']
hp >maildata, sender, etc..) ['PM_SubmitEmailHoo
$this- k'][]
>sessionda
ta, $this-
>markerArr
ay, $this
1 Submit class.tx_ pi1 PM_Submi $this, Error If you want to stop $GLOBALS['TYPO3_CON
3 hook powermail tBeforeM $this- code the submit (emails and F_VARS']['EXTCONF']
before _submit.p arkerHoo >markerArr (0/1 db insert), you can ['powermail']
submit hp k ay, $this- bolea return TRUE ['PM_SubmitBeforeMa
>sessionda n) rkerHook'][]
ta

powermail - 61
# Hookname File Folde Function Input Retur Note Example use
r n
1 Submit class.tx_ pi1 PM_Submi $this, - If you want to do $GLOBALS['TYPO3_CON
4 hook powermail tAfterMa $this- something after a F_VARS']['EXTCONF']
after _submit.p rkerHook >markerArr correct submit, you ['powermail']
emails hp ay, $this- can use this hook ['PM_SubmitAfterMar
>sessionda (maybe an additional kerHook'][]
ta db entry)
1 Thx class.tx_ pi1 PM_Submi $this- - If you want to $GLOBALS['TYPO3_CON
5 message powermail tLastOne >content, manipulate the thx F_VARS']['EXTCONF']
hook _submit.p Hook $this- message after submit ['powermail']
hp >conf, ['PM_SubmitLastOne'
$this- ][]
>sessionda
ta, $this-
>ok, $this

How to use a hook in my own extension?


Example for using a powermail hook in your own extension in the ext_localconf.php:
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['powermail']['PM_FormWrapMarkerHook'][] =
'EXT:yourextension/targetphpfile:tx_yourphpclass';
This hook want to use the function PM_FormWrapMarkerHook() in your class
Note: The class name must start with a tx_

Additional information
Hook documentation is also available in extension folder powermail\doc\hook
● hooks.ods could be open with OpenOffice
● hooks.html can be read with a browser

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

TYPO3 hook documentation


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

Do you really need a hook?


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

Do you need a new hook?


Do you need a special hook? Write us!

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

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

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

powermail - 63
Changelog
Powermail version 1.3.x stable

Update on 24.08.2008 version 1.3.12


● Feature #1203 - Disable hiddenfields for sender (via constants)
● Feature #1275 – Get RTE configuration from tsconfig
● Feature #1207 - Errormessage if no html template could be found
● Feature #1308 - Mandatory fields can be set via typoscript (to use ts conditions)
● Feature #1309 - Set sendername via flexform
● Feature #1313 - Add static template for default css
● Fix for #1059 - Workarround: Disable start- / stoptime for fields/fieldsets
(avoid problem with date2cal in BE)
● Fix for #1293 - redirect with absRefPrefix
● Fix for #1299 - UTF8 Problem in backend
● Fix for #1304 - Small change in fieldwrap.html (onClick -> onclick)
● Fix for #1122 - Radio buttons no more mandatory
● Feature - Prepare for InnerMarkerArray in fieldwrap
(powermail_cond within checkboxes)
● Feature - Real markerArray hook in marker function
● Feature - Audio feature for sr_freecap
● Small Fix for unique Check and savetopid via Flexform

Update on 03.08.2008 version 1.3.11


● New Hook: Inner Form markerArray
● Changed HTML Template Formwrap and Fieldwrap for other extensions
● Removed too much code and files
● Bugfix #1189: unique with empty values
● Bugfix #1122: preparing mandatory for radio buttons
● Bugifx for powermail_multiple
● Prepare for powermail_cond (conditions for powermail)

Update on 28.07.2008 version 1.3.10


● New languages: PL, ES, PT
● New global Markers in fieldwrap (formname and formtarget)
● Uploaded files could be deleted
● Reset button with clearing whole session
● Small change in the three fieldwrap hook (session will be delivered)

Update on 14.07.2008 version 1.3.9


● Backend module with possibility to delete mails manually
● Backend module with possibility to delete mails after export
● Powermail suggests geoip for geo information
● Added markerArray hook for field generation

Update on 06.07.2008 version 1.3.8


● Bugfix: Dividers2tab for TYPO3 4.2
● Start and Stop added for TYPO3 4.2
● Start and Stop added for fields and fieldsets
● Add icon to CType selection

powermail - 64
● Language selection is no more shown twice
● Bugfix: Values of submit and reset
● Bugfix: Save mails was shown in other plugins

Update on 29.06.2008 version 1.3.7


● Errormessage if no TS found
● Sorting of pagebrowser in js multiple fixed
● Value of submit and reset removed

Update on 21.06.2008 version 1.3.6


● PID where to save could be set via plugin now (and via ts too)
● Sender E-Mail can be set via constants
● Labels for ts fields can be used now
● Bugfix: Shows breaks on confirmation page (e.g. textarea)
● NoIRRE: uid added to dropdown (fieldset and content choose)
● Debug output: Added array with db values
● Removed SQL debug output
● Some bugfixes in php files
● Small improvement in english locallang part

Update on 07.06.2008 version 1.3.5


● Small fix for mm relations with external db entries
● Small fix for powermail_mul

Update on 28.05.2008 version 1.3.4


● Fixed problem with localization on some systems

Update on 25.05.2008 version 1.3.3


● Improvement for Plaintext (html tags will be removed)
● Improvement in constants for plaintext and html mails
● Small fix in Sender name

Update on 21.05.2008 version 1.3.2


● Debug output added (activate via constants)

Update on 20.05.2008 version 1.3.1


● Set date2cal date format via constants
● Manual fix

Update on 15.05.2008 version 1.3.0


● Db entries to other tables with mm relations available
(Attention: New dbEntry typoscript)
● Plaintext available (enable in constants)
● RTE parsing can be disabled via constants
● No more removeXSS for piVars
● Bugfix: MX check for windows disabled

Powermail version 1.2.x stable

Update on 12.05.2008 version 1.2.4


● Failure fixex: tt_address entries activated by default

Update on 08.05.2008 version 1.2.3


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

powermail - 65
● New feature: Tabindex available in fields (via constants)

Update on 07.05.2008 version 1.2.2


● Adding new field to powermail: Typoscript element -
Possibility to use a userfunc, etc... as a new field
● Adding a new hook: Easy adding new fields to powermail

Update on 06.05.2008 version 1.2.1


● Onetime filling available (check by fieldcontent or IP address)
● Bugfix for checkbox (javascript was not included in 1.2.0)

Update on 05.05.2008 version 1.2.0


● Fields can be prefilled with typoscript
● Dynamic typoscriptmarker can be used in every HTML Template or RTE field
● Dynamic locallangmarker can be used in every HTML Template or RTE field now
● MX Record check of sender email address (disabling via constants)
● ###POWERMAIL_ALL### Don't show label if value is empty (enabling via constants)
● Removed unnecessary p-tags in emails
● DB entries in other tables (use typoscript)
● Mandatory check of checkboxes
● Disable automatic realurl settings in extension manager (if wanted)
● DB entry in other db table in second level (like uid3_0)
● Hiddenfields and JavaScript for checkboxes can be disabled (via constants)
(Attention: Changes HTML Template tmpl_fieldwrap.html)
● Fix: Checkbox CSS classes added
● Country selection available with static_info_tables_de, _fr, _da, and so on...
● RemoveXSS for HTML fields can be disabled if wanted (via constants)
● Charset of output can be set via constants (utf8)
● Small fix in html for countryselection

Powermail version 1.1.x stable

Update on 05.05.2008 version 1.1.10


● Security fix

Update on 20.04.2008 version 1.1.9


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

Update on 14.04.2008 version 1.1.8


● Extern db entry (timestamp and current pid enabled)

Update on 10.04.2008 version 1.1.7


● Improved hook loop in submit.php
● Fixed CSS class of previous and next button
● Small fix in realurlconf
● Prepared fileupload in second level (in array)

Update on 09.04.2008 version 1.1.6


● Small bugfix

Update on 09.04.2008 version 1.1.5


● File upload: Error messages if file is to large or has wrong extension
● Added new div layer to html_fieldwrap for checkboxes and radiobuttons
● Export with piVars in second level available (checboxes, multiple selctions, etc...)

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

Update on 07.04.2008 version 1.1.4


● Small fixes in use with powermail_optin

Update on 06.04.2008 version 1.1.3


● Enabled powermail_optin with powermail
● 3 more hooks added
● redirect fix
● small fix for mod1

Update on 01.04.2008 version 1.1.2


● Individual configuration of export files via tsconfig now available!
● Backend module with some configuration possibilities
● Pagebrowser to backend module added
● Small fix for redirect after submit (without baseurl)

Update on 27.03.2008 version 1.1.1


● Preselection for checkbox, radiobuttons and selectfields available
● Small fix for country preselection
● CSS example added to manual

Update on 25.03.2008 version 1.1.0


● Noreply email address (sender) can be set via constants
● Easy saving values to any db table via typoscript
● No more emails to noreply@domain.org
● Allowed upload file extensions decreased to lower case letters

Powermail version 1.0.x stable

Update on 21.03.2008 version 1.0.12


● Small fix for formsonpage use
● Small fix if you want to send text in emails

Update on 19.03.2008 version 1.0.11


● SQL debug output deactivated
● Small change for TYPO3 4.2

Update on 14.03.2008 version 1.0.10


● New feature: Markers available in receiver field
● Added a new hook to manipulate email receiver, sender and subject
● Hook documentation added to manual

Update on 12.03.2008 version 1.0.9


● Bugfix: Multiple within select fields available

Update on 09.03.2008 version 1.0.8


● New feature: Markers allowed in email subjects
● New feature: Markers allowed in regulare expressions (php validation check of fields)
● Added realurl example in the folder ext/powermail/doc/
● Bugfix: Confirmationpage error if content was only available for a special usergroup
● Manual: Addes some new examples

powermail - 67
Update on 08.03.2008 version 1.0.7
● Bugfix: require_once error on a few server
● Some kind of “code cleaning”

Update on 06.03.2008 version 1.0.6


● New feature: Uploaded files will be attached to emails
● If captcha and sr_freecap is loaded, select one via constants

Update on 04.03.2008 version 1.0.5


● Fixed a language problem with javascript validation error messages
● Javascript validation of text fields: Added german umlauts
● Constants splitted into two parts

Update on 02.03.2008 version 1.0.4


● date2cal is not needed any more

Update on 01.03.2008 version 1.0.3


● Bugfixing linebreaks (e.g. In textareas)

Update on 29.02.2008 version 1.0.1 / 1.0.2


● Uses new API from date2cal 7.0.0
(faster and better work between powermail and date2cal)
● Some mall bugfixes

Update on 28.02.2008 version 1.0.0


● Fields and Fieldsets can be set to hidden
● HTMLentities for JS integration can be disabled per constants
● Bugfix: JS errormessage in IE removed
● Bugfix: Files could not be uploaded on some TYPO3 installations
● Bugfix: Content with powermail can be set to hidden
● Bugfix: Starttime and Endtime available in Content with powermail

Powermail version 0.7.x beta

Update on 27.02.2008 version 0.7.2


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

Update on 25.02.2008 version 0.7.1


● Auto PHP validation of every field available
● Manual PHP validation of every field available (with regulare expressions)
● Bugfix: Addslashes two times to one time
● Small HTML bugfix for id in frontend
● Sender email address will be automaticly validated

Update on 23.02.2008 version 0.7.0


● Select, Checkboxes, Radiobuttons with different label/values available
● You can set a sender name
● First email as sender, rest with cc
● Marker available in receiver db select
● Possibilty to select receiver in frontend
● Hook documentation added

powermail - 68
Powermail version 0.6.x beta

Update on 21.02.2008 version 0.6.3


● Small bugfix (“array” in ###POWERMAIL_ALL###)
● Database relation added to manual

Update on 20.02.2008 version 0.6.2


● Recipients sql query finally possible in backend
● French translation added to powermail
● trim() will be used for all values
● Single quote allowed in fields
● Bugfix if “onfocus” is not used

Update on 18.02.2008 version 0.6.1


● Small bugfix for checkbox css classes in frontend
● Standard values from datetime fields will be filled correctly (no more timestamp)

Update on 17.02.2008 version 0.6.0


● Multiple page via javascript finally added
● Changes in manual
● Sample CSS added

Powermail version 0.5.x beta

Update on 15.02.2008 version 0.5.9


● JavaScript validation enabled with simulatestaticdocuments
● IP logging can be disabled
● Bugfix: Date fields will be prefilled now

Update on 14.02.2008 version 0.5.8


● Small bugfix in upload fields
● New screenshot in manual

Update on 11.02.2008 version 0.5.7


● Bugfix: Sender email
● HTML validation passed
● ID's for checkboxes and radiobuttons improved

Update on 10.02.2008 version 0.5.6


● New global marker added: ###POWERMAIL_UPLOADFOLDER###
● Check: Upload field function
● Bugfix in sender email address if no address defined (noreplay@domain.com)
● Bugfix in ext_localconf.php in realurl settings (no more foreach error)

Update on 03.02.2008 version 0.5.5


● New translation added: Dutch

Update on 31.01.2008 version 0.5.4


● Bugfix: No more error message if you choose the backend module
● Marker ###POWERMAIL_BASEURL### filled with baseurl or absolute URL to your Server
● Powermail can be used in TYPO3 4.2 if wanted

Update on 26.01.2008 version 0.5.3


● Prototype.js can be disabled via constants

powermail - 69
● Bugfix: Another umlauts problem (utf-8)
● Disallow quotes in tags
● You can disable tab dividers if wanted
● Define which fe_users fields are available for prefilling

Update on 26.01.2008 version 0.5.2


● Bugfix: Small change in showing error message (wt_spamshield)
● Spam Hook with further objects

Update on 24.01.2008 version 0.5.1


● Bugfix: Default values in RTE: ###POWERMAIL_ALL###
● Bugfix: Break in textareas is allowed now (NOTE: Changes in tmpl_all.html)
● Fields submit, reset, check and radio with better css class
● Umlauts in emails possible
● Frontend preview can be deactivated in backend

Update on 22.01.2008 version 0.5.0


● Change of version status: from alpha to beta
● Redirect instead of thx message possible
● Marker of each field will be displayed in backend
● Small security fix
● Captcha fix
● Bug in countryselect fixed
● Small bugfixes for content element in backend
● Global Marker ###POWERMALL_ALL### fix (with checkboxes)
● Constants markerALL.notIn changed
● Additional RTE fields for both emails in backend (can be used with existing HTML template)
● Field “name” in backend of each field removed (not in use any more)
● Changes in php
● Pagebrowser in multiple available (2 of 4)

Powermail version 0.4.x alpha

Update on 21.01.2008 version 0.4.1


● Bugfix: Captcha use with Confirmation page

Update on 20.01.2008 version 0.4.0


● Security update
● Captcha can be used: sr_freecap
● Captcha can be used: captcha
● PHP bugfixes
● Example pictures for every field in the backend
● New screenshots in manual

Powermail version 0.3.x alpha

Update on 18.01.2008 version 0.3.4


● Mandatory JS check was disabled if date2cal was in use
● Some bugfixes in php
● Now: User int plugin
● Small changes in locallang.xml

powermail - 70
Update on 16.01.2008 version 0.3.3
● Add mandatory and validation javascript for fieldcheck

Update on 16.01.2008 version 0.3.2


● Some changes in the manual
● Some small fixes
● Small change in html template: fieldwrap
● Now, you can clear session after submit (set via constants)

Update on 16.01.2008 version 0.3.1


● Upload field enabled (updated constants)
● Get values from logged in fe_user
● Checks for valid sender email address
● Improved error management

Powermail version 0.2.x alpha

Update on 15.01.2008 version 0.2.2


● Mandatory fields will be added with a symbol (*) (Symbol can be wrapped in constants)
● Bugfix in Excel export
● Powermail can be used with older TYPO3 versions (tested on TYPO3 3.8)
● IRRE can be deactivated if wanted (so you can enter the relation by hand)
● Bugfix (checkbox label)

Update on 14.01.2008 version 0.2.1


● Mandatory field check enabled

Update on 13.01.2008 version 0.2.0


● Backend module with list-, export- and filter functions
● Bugfixes in main code

Powermail version 0.1.x alpha

Update on 10.01.2008 version 0.1.4


● Backend module integrated
● Many bugfixes

Initial Release to TER on 08.01.2008 version 0.1.3


● Main functions for powermail

powermail - 71
Additional links
You can use one of the following links, to get more informations about this plugin:
● Authors (Alex Kellner) homepage: http://www.einpraegsam.net
● Authors (Mischa Heißmann) homepage: http://www.heissmann.org
● Tuning parts for your car: http://www.wunschtacho.de
● Stuff for snowboarder and skier: http://www.justpowder.de
● Do you need help with this plugin: http://www.typo3.net

powermail - 72

Вам также может понравиться