Table of Contents

Field transfer V1

FIXME better translate

On the basis a local selection a certain email address is to be selected and handed over. Version 01.



Docu: –
Forum: –

Author: K.Heermann (flip-flop) (13.07.2010)
CMS-Version: >= V1.4.1 r282
Version: V1.0 13.07.2010

Condition:/config/phpwcms/conf.inc.php




Example:


(In the graph: replace the texte-mail by location).

There are several regions, each is assigned an email address to contact the right person for this region.

The last requirement excludes the use of the form from PHP function because we can not relate in a typical building a response to the selected region. ($postvar['email'] ⇒ test@example.com) if e.g.

[select email menu] Name: email

Bitte wählen -|-
Babaorum -|- obelix@lokal.arpa
Laudanum -|- obelix@lokal.arpa 
Kleinbonum -|- asterix@lokal.arpa
Aquarium -|- idefix@lokal.arpa

If the user selects one of the first two places e.g. “Laudanum”, an identical e-mail address is returned to us, we do not know which location the user selects. (Obelix is responsible for both places).

Extended Version:

Bitte wählen -|-
Babaorum -|- <Babaorum>obelix@lokal.arpa
Laudanum -|- <Laudanum>obelix@lokal.arpa 
Kleinbonum -|- <Kleinbonum>asterix@lokal.arpa
Aquarium -|- <Aquarium>idefix@lokal.arpa

The form PHP function would provide in “$postvar['email'] ⇒ obelix@lokal.arpa”, thus also here no localisation would be possible. (<Laudanum> is filtered by the form Script).

The variable “$_POST['email']” in an frontend_init-Script supplies against it e.g. ” obelix@lokal.arpa”. We can determine the place.

To fix the location in the output text, we place a hidden field “location” with the word “nix” (nothing) into the form. This field can also be used to identify the form, the frontend_init script is executed on every page request!

Script:

E.g.

 if( isset($_POST['ort']) AND isset($_POST['email']) ) { ...

Thus, the form will be identified at least rudimentary. This is important when multiple forms are used on the site..

The last step is to restrict the location and assignment to the variable “$_POST['ort']”.
This is possible with a simple preg_replace.

form_script_email_to_location.php

<?php
/**
 *********************************************************************************************
 * 13.07.2010 KH: http://planmatrix.de V1.0
 * frontend_init-Script: Manipulating the e-mail address
 * - Determining the location and email address in form
 *********************************************************************************************
 */
// -------------------------------------------------------------------------------------------
// obligate check for phpwcms constants
    if (!defined('PHPWCMS_ROOT')) {
        die("You Cannot Access This Script Directly, Have a Nice Day."); }
// -------------------------------------------------------------------------------------------
 
if( isset($_POST['ort']) AND isset($_POST['email']) )  // The right form?
{
    $email = trim($_POST['email']);
 
    $_POST['ort']   = preg_replace('/\<(.*)\>(.*)/is','$1', $email); // Cutting out the location
    $_POST['email'] = preg_replace('/\<(.*)\>(.*)/is','$2', $email); //Only for completeness. Is not necessarily needed
 
} // ---- END if( $_POST['ort']
 
 
?>

The right location is passed to the form.

For testing have a look in the forms PHP function into the variable “$postvar['ort']. The text “Laudanum” will be entered there. Thus, this text is taken over in the text of the outbound email for the placeholder ”{ort}”.


Backend:

[select email menu] Name: email

Bitte wählen -|-
Babaorum -|- <Babaorum>obelix@lokal.arpa
Laudanum -|- <Laudanum>obelix@lokal.arpa
Kleinbonum -|- <Kleinbonum>asterix@lokal.arpa
Aquarium -|- <Aquarium>idefix@lokal.arpa


recipient - template:

Empfängervorlage

Hallo {anrede} {name},

E-Mail: {email}

Ort:    {ort}

Kommentar:
------------------------------
{kommentar}
------------------------------

Das war alles - Danke.

template:

Vorlage

<!--form-spezial//-->
<div style="width:500px; margin: 0; padding:10px; border:1px solid #bbb; background: #C2E7EF;">

{ERROR:anrede}[B]{LABEL:anrede}[/B] *[BR]{anrede}[BR][BR]

{ERROR:name}[B]{LABEL:name}[/B] *[BR]{name}[BR][BR]

{ERROR:email}[B]{LABEL:email}[/B] *[BR]{email}[BR][BR]

{ERROR:kommentar}[B]{LABEL:kommentar}[/B][BR]{kommentar}[BR][BR]


{ERROR:nospam}[B]{LABEL:nospam}[/B] *[BR]{nospam}[BR][BR]

{submitIt}

</div>