Jump to content
InvisionCommunity.de - Der Deutsche Invision Community Support
Sign in to follow this  
Rene H.

[Suche] custom_fields in die Reg-Email

Recommended Posts

Hallo,

ich habe ein nur kleines, aber sehr spezielles Problem. Ich möchte gerne, dass die bei der Registrierung eingetragenen Daten in die Registrierungsemail aufgenommen werden.

In der Sprachdatei "email_content" habe ich dazu die entsprechenden Platzhalter definiert:

Ausschnitt:

<#NAME#>,


<#PFIELD_1#>, <#PFIELD_2#>, <#PFIELD_3#>,


Diese E-Mail wurde Dir von <#BOARD_ADDRESS#> gesendet.


usw.
Im Quellcode finde ich die Stelle an der es eingetragen werden soll ungefähr bei Zeile 224 der register.php:
  else if ( $val['new_reg'] == 1 )

  {


 	 $this->email->get_template("reg_validate");

   	 

 	 $this->email->build_message( array(

            'THE_LINK'     => $this->base_url_nosess."?act=Reg&CODE=03&uid=".$member['id']."&aid=".$val['vid'],

            'NAME'         => $member['name'],

            'MAN_LINK'     => $this->base_url_nosess."?act=Reg&CODE=05",

            'EMAIL'        => $member['email'],

            'ID'           => $member['id'],

            'CODE'         => $val['vid']

             )

          );
Theoretisch ergänze ich hier nun wie folgt:
  else if ( $val['new_reg'] == 1 )

  {


 	 $this->email->get_template("reg_validate");

   	 

 	 $this->email->build_message( array(

            'THE_LINK'     => $this->base_url_nosess."?act=Reg&CODE=03&uid=".$member['id']."&aid=".$val['vid'],

            'NAME'         => $member['name'],

            'MAN_LINK'     => $this->base_url_nosess."?act=Reg&CODE=05",

            'EMAIL'        => $member['email'],

            'ID'           => $member['id'],

            'CODE'         => $val['vid'],


     	 'PFIELD_1'     = ABER_WAS?,

            'PFIELD_2'     = ABER_WIE?,

            'PFIELD_3'     = ???

             )

          );
Mit welchen Befehlen bekomme ich die Variablen gefüllt? Versucht habe ich es mit:
 	 $DB->query("SELECT field_1, field_2, field_3 FROM ibf_pfields_content

                WHERE member_id=".$member['id']);

aber ich weiß schlicht nicht, wie ich die Infos jetzt den Variablen zuweisen kann und ob das so überhaupt geht!

Thx in advance! :)

Share this post


Link to post

Willkommen auf IPBSupport.de :)

Bin mir nicht sicher, aber Versuchs mal so:

'PFIELD_1'     =>  $member['field_1'],
'PFIELD_2'     =>  $member['field_2'],
'PFIELD_3'     =>  $member['field_3'],

Share this post


Link to post

Wann willst du genau diese Daten einbinden? Wenn sich ein neuer Benutzer im Forum registriert und die Authentifizierungsmail bekommt?

Dann wäre es erstmal folgende Stelle, wo du die Felder definieren mußt.

   	 $this->email->get_template("reg_validate");

   $this->email->build_message( array(
             'THE_LINK'     => $this->base_url_nosess."?act=Reg&CODE=03&uid=".urlencode($member_id)."&aid=".urlencode($validate_key),
             'NAME'         => $member['name'],
             'MAN_LINK'     => $this->base_url_nosess."?act=Reg&CODE=05",
             'EMAIL'        => $member['email'],
             'ID'           => $member_id,
             'CODE'         => $validate_key,
              )
           );

Und dort kann man auf die Daten der Custom Fields mittels dem Array $custom_fields zugreifen. :)

Share this post


Link to post

Vielen Dank für das nette Willkommen und die schnellen Antworten. :)

Nett hier!

Leider hat der Tipp von rigo nicht gefruchtet.

Ich habe es auch - wie von Stefan angedeutet - so versucht:

$this->email->get_template("reg_validate");


    $this->email->build_message( array(

             'THE_LINK'     => $this->base_url_nosess."?act=Reg&CODE=03&uid=".urlencode($member_id)."&aid=".urlencode($validate_key),

             'NAME'         => $member['name'],

             'MAN_LINK'     => $this->base_url_nosess."?act=Reg&CODE=05",

             'EMAIL'        => $member['email'],

             'ID'           => $member_id,

             'CODE'         => $validate_key,

'PFIELD_1'     =>  $custom_fields['field_1'],

'PFIELD_2'     =>  $custom_fields['field_2'],

'PFIELD_3'     =>  $custom_fields['field_3']

              )

           );

geht leider auch nicht. :(

Ja, ich möchte die Daten in die Verifizierungsemail hineinhaben, da wir bei meinem Intranetboard hier TeilnehmerInnen ohne Emailadresse haben. Diese möchte ich anrufen können und brauche dafür die Telenummer und die steht in dem custom_field.

Share this post


Link to post

Der Lösung einen Schritt näher, aber es geht leider immer noch nicht. Folgendes ist nun in meiner Register.php:

/*

	custom_fields in die Authentifizierungsmail schreiben

*/

  $field_data     = array();

  

  $DB->query("SELECT * from ibf_pfields_content WHERE member_id='".$member['id']."'");

  

  while ( $content = $DB->fetch_row() )

  {

 	 foreach($content as $k => $v)

 	 {

    if ( preg_match( "/^field_(\d+)$/", $k, $match) )

    {

   	 $field_data[ $match[1] ] = $v;

    }

 	 }

  }

 	 $this->email->get_template("reg_validate");

   	 

 	 $this->email->build_message( array(

            'THE_LINK'     => $this->base_url_nosess."?act=Reg&CODE=03&uid=".$member['id']."&aid=".$val['vid'],

            'NAME'         => $member['name'],

            'MAN_LINK'     => $this->base_url_nosess."?act=Reg&CODE=05",

            'EMAIL'        => $member['email'],

            'ID'           => $member['id'],

            'CODE'         => $val['vid'],

            'PFIELD_1'     => $field_data['1'],

            'PFIELD_2'     => $field_data['2'],

            'PFIELD_3'    => $field_data['3']

             )

          );

ABER: Es kommt nix an! Die Felder sind einfach leer!

Ich habe schon mal einen <#DUMMY#> im Template definiert und im oberen Bereich einfach 'DUMMY' => "TEST", eingetragen, aber auch das funzt nicht. Es wird nix übergeben!

Was ist denn da nur für ein Fehler drin?

Share this post


Link to post

Ich schau mir mal die Sache in Ruhe an.

Erscheint denn, wenn schon nichts ersetzt wird, wenigstens der Platzhalter <#PLATZHALTER#>? Nicht, das du deine Felder in der falschen Sprachdatei definiert hast, was ja passieren kann, wenn du zwei oder mehrere Sprachen hast. :)

Share this post


Link to post

Nein, ich habe die Dinger in der deutschen Sprachdatei mit "," voneinander getrennt (also <#PFIELD_1#>,<#PFIELD_2#>,<#PFIELD_3#>,) und die "," erscheinen auf brav. In der Mail steht ", , ,". Da die Mail auch auf deutsch ist, gibt es also von dieser Seite kein Problem.

Das mit dem <#DUMMY#> gibt mir ebenfalls zu denken! In der Sprachdatei steht es exakt so "<#DUMMY#>" und ich habe es mit "'DUMMY' = 'TESTTEXT'" zugewiesen und es hat nicht geklappert! :(

Share this post


Link to post

Wann willst du genau diese Daten einbinden? Wenn sich ein neuer Benutzer im Forum registriert und die Authentifizierungsmail bekommt?

Dann wäre es erstmal folgende Stelle, wo du die Felder definieren mußt.

    	$this->email->get_template("reg_validate");


    	$this->email->build_message( array(

              'THE_LINK'     => $this->base_url_nosess."?act=Reg&CODE=03&uid=".urlencode($member_id)."&aid=".urlencode($validate_key),

              'NAME'         => $member['name'],

              'MAN_LINK'     => $this->base_url_nosess."?act=Reg&CODE=05",

              'EMAIL'        => $member['email'],

              'ID'           => $member_id,

              'CODE'         => $validate_key,

               )

            );
Und dort kann man auf die Daten der Custom Fields mittels dem Array $custom_fields zugreifen. :)
Jetzt habe ich meinen Fehler entdeckt! Es war eine Kombi aus nicht genau lesen und fehlerhafter SQL-Abfrage. Die Stelle an der ich es versucht habe war schlicht falsch und das SQL mit dem ich es am Anfang versucht habe ebenfalls. So geht es nun!
/*

	custom_fields in die Authentifizierungsmail schreiben

*/


  $field_data     = array();

  

  $DB->query("SELECT * from ibf_pfields_content WHERE member_id='".$member['id']."'");

  

  while ( $content = $DB->fetch_row() )

  {

 	 foreach($content as $k => $v)

 	 {

    if ( preg_match( "/^field_(\d+)$/", $k, $match) )

    {

   	 $field_data[ $match[1] ] = $v;

    }

 	 }

  }

    

   	 $this->email->get_template("reg_validate");

   	 

   	 $this->email->build_message( array(

              'THE_LINK'     => $this->base_url_nosess."?act=Reg&CODE=03&uid=".urlencode($member_id)."&aid=".urlencode($validate_key),

              'NAME'         => $member['name'],

              'MAN_LINK'     => $this->base_url_nosess."?act=Reg&CODE=05",

              'EMAIL'        => $member['email'],

              'ID'           => $member_id,

              'CODE'         => $validate_key,

              'P1'           => $field_data['8'],

              'P2'           => $field_data['9'],

              'P3'           => $field_data['10']

               )

            );

ungefähr ab Zeile 1160 in der Register.php.

Vielen Dank allen die geholfen / gelesen haben! :)

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

×