Antwort
 
LinkBack Themen-Optionen Thema bewerten Ansicht
  #1  
Alt 12.06.08, 13:56
Benutzerbild von einpraegsam.net
Forum Stammgast
 
Registriert seit: 11.05.07
Ort: Nürnberg
Alter: 29
Beiträge: 487

Google Suchwort in Powermail mit übertragen


Anforderung: Falls Besucher über Google kommt und das Kontaktformular nutzt, soll der Suchbegriff mit übermittelt werden


Idee: Eine kleine Userfunc wird über TS auf allen Seiten eingebunden (z.B. page.100). Diese Userfunc holt sich aus dem Referer das Suchwort (wenn vorhanden) und schreibt dies in die Session. Powermail schickt per Hiddenfield (funktioniert natürlich auch mit MailFormPlus) das Suchwort mit


Umsetzung:

Neue PHP Datei direkt im fileadmin anlegen mit Namen user_googlesession.php:
PHP-Code:
<?php

    
// This class adds referer and google searchword to session (for using in powermail later)
    
class user_googlesession {
        
        var 
$allow = array(1,1,1); // enable or disable the infos (1. Searchword, 2. Referer, 3. IP Address)
        
var $sesprefix 'wt_googlesession'// prefix for session
        
var $finalarray = array(); // empty array for session
        
var $test 0// testmode (show google searchword)
    
    
        // Main function for additional google information
        
function user_main($content=''$conf=array()) {
            
$this->makeSession();
            if (
$this->test === 1) return $this->user_test();
        }
        
    
        
// Function to generate the session
        
function makeSession() {
            
$foo $this->infoArray(); // Array with information about user
            
if (count($foo) > && $foo) { // if array is not empty
                
$GLOBALS['TSFE']->fe_user->setKey("ses"$this->sesprefix$this->infoArray()); // Generate Session with array
                
$GLOBALS['TSFE']->storeSessionData(); // Save session
            
}
        }
        
        
        
// Function infoArray() generates array with needed stuff for session
        
function infoArray() {
            
$url parse_url(htmlentities($_SERVER['HTTP_REFERER'])); // every part of the referer in an own array
            
if(isset($url['query'])) { // if GET params is set
                
preg_match("/q=(.*?)(&amp;|^)/"$url['query'], $output); // give me only the &q="searchword" part
                
                
if ($output[1]) { // only if GET param &q= was set
                    
if ($this->allow[0]) $this->finalarray['searchword'] = urldecode($output[1]); // 1. searchword
                    
if ($this->allow[1]) $this->finalarray['referer'] = $_SERVER['HTTP_REFERER']; // 2. referer
                
}
                if (
$this->allow[2]) $this->finalarray['ip'] = $_SERVER['REMOTE_ADDR']; // 3. IP address
            

            
            
// return whole array
            
if (!empty($this->finalarray)) return $this->finalarray// return info array
        
}
        
        function 
user_test($content=''$conf=array()) {
            
$content 'Sessionentry: ';
            
$content .= print_r($GLOBALS['TSFE']->fe_user->sesData[$this->sesprefix]['searchword'], 1);
            if (!empty(
$content)) return $content;
        }
        
    }

?>
Obige PHP file via TS auf allen Seiten einbinden - z.B.:
Typoscript-Code:
1:
2:
3:
4:
includeLibs.user_googlesession = fileadmin/user_googlesession.php

page.100 = USER
page.100.userFunc = user_googlesession->user_main

In Powermail drei verborgene Felder (Hiddenfields) ohne Inhalt anlegen und UID dieser merken (in meinem Beispiel 26, 27 und 28).
Als nächstes diese drei Felder über TS aus der Session füllen lassen:

Typoscript-Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
plugin.tx_powermail_pi1 {
prefill {
uid26 = TEXT
uid26.data = TSFE:fe_user|sesData|wt_googlesession|searchword
uid27 = TEXT
uid27.data = TSFE:fe_user|sesData|wt_googlesession|referer
uid28 = TEXT
uid28.data = TSFE:fe_user|sesData|wt_googlesession|ip
}
}

Das wars...



Improvements:
- Ich habe in meinem Beispiel darauf geachtet, dass der Absender auf der Confirmation Seite das Hidden Field nicht zu Gesicht bekommt, indem ich die anzuzeigenden Felder manuell über das HTML Template eingetragen habe.
- Selbstverständlich lässt sich die IP Adresse sehr viel einfacher über TS füllen, hierzu braucht es das Script nicht - aber ich war schonmal dabei...


Grüße, Alex
__________________
einpraegsam.net alias wunschtacho

Powermail :: Einprägsam :: Xing Profil :: Wunschtacho :: JustPowder :: conject
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Kontaktformular - IP Adresse mit übertragen huskarlar TYPO3 4.x Fragen und Probleme 3 22.01.08 13:06
Suchwort merken µaTh tt_products 0 14.10.07 15:05
IndexedSearch übergibt das Suchwort nicht mic_jan Indexed Search 3 17.09.07 17:10
Inhalte werden nicht in die Datenbank übertragen !? andimedy TYPO3 4.x Rich Text Editor 1 23.06.07 13:12
Typoseiten vom localhost auf Server übertragen Brainbug80 TYPO3 4.x Installation und Updates 4 13.08.06 10:58


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:03 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0