Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: http://redaxo.org/slack/
Benutzeravatar
gemüsebrühe
Beiträge: 176
Registriert: 14. Feb 2007, 21:31

[erledigt] XForm: Bedingte Aktion db2email (Kopie an Sender)

12. Sep 2013, 02:59

Liebe Redaxaner (-innen),

ich habe mit XForm ein Kontaktformular erstellt. Mit einer Checkbox soll der Nutzer entscheiden können, ob ihm eine Kopie seiner Nachricht zugesendet wird.

Da ich in den Bordmitteln nicht fündig geworden bin, habe ich nun eine abgewandelte Aktion "rex_xform_action_db2email_conditional_copy" erstellt, die die ursprüngliche db2email-Aktion dahingehend ergänzt, dass eine Abfrage vorgeschaltet wird, die prüft, ob die betreffende Checkbox gecheckt ist.

Die neue Signatur lautet:

Code: Alles auswählen

"action|db2email_conditional_copy|checkboxlabel|emailtemplate|emaillabel"
"checkboxlabel": Hier wird der Labelname der Checkbox aus dem Formular eingetragen, mit der Absender die Kopie anfordern kann.

"emaillabel": Hier wird das Label des E-Mail-Adressfeldes eingetragen, in das der Absender seine Adresse einträgt.

Klasse:

Code: Alles auswählen

<?php

/**
 * XForm
 *
 * @author jan.kristinus[at]redaxo[dot]de Jan Kristinus
 * @author <a href="http://www.yakamara.de">www.yakamara.de</a>
 *
 * @package redaxo4
 * @version svn:$Id$
 */

class rex_xform_action_db2email_conditional_copy extends rex_xform_action_abstract
{

  function execute()
  {

    global $REX;
		
	// Label der Checkbox
	$checkbox_label = $this->getElement(2);
	
	/* Abfragen, ob die Checkbox aktiviert ist */
	if($this->params["value_pool"]["email"][$checkbox_label]==1){
	
	
    $template_name = $this->getElement(3);

    if($etpl = rex_xform_emailtemplate::getTemplate($template_name))
    {

      // ----- find mailto
      $mail_to = $REX['ERROR_EMAIL']; // default

      // finde email label in list
     /* if ($this->getElement(4) != FALSE && $this->getElement(4) != "")
      {
        foreach($this->params["value_pool"]["email"] as $key => $value)
          if ($this->getElement(4)==$key)
          {
            $mail_to = $value;
            break;
          }
      }*/

      // ---- fix mailto from definition
      //if ($this->getElement(5) != FALSE && $this->getElement(5) != "")
      //  $mail_to = $this->getElement(5);
		
		// Mailto -> emaillabel (siehe Signatur)
	  $mail_to = $this->params["value_pool"]["email"][$this->getElement(4)];
	  
      $etpl = rex_xform_emailtemplate::replaceVars($etpl,$this->params["value_pool"]["email"]);

      $etpl['mail_to'] = $mail_to;
      $etpl['mail_to_name'] = $mail_to;

      if($etpl['attachments'] != "")
      {
        $f = explode(",",$etpl['attachments']);
        $etpl['attachments'] = array();
        foreach($f as $v)
        {
          $etpl['attachments'][] = array("name"=>$v,"path"=>$REX["INCLUDE_PATH"].'/../../files/'.$v);
        }

      }else
      {
        $etpl['attachments'] = array();
      }

      if ($this->params["debug"])
      {
        echo "<hr /><pre>"; var_dump($etpl); echo "</pre><hr />";
      }
		
      if(!rex_xform_emailtemplate::sendMail($etpl, $template_name))
      {
        echo "error - email sent";
        return FALSE;

      }else
      {
        return TRUE;

      }

    }
    return FALSE;

  }
  else {
	return FALSE;
  }
	}

  function getDescription()
  {
    return "action|db2email_conditional_copy|checkboxlabel|emailtemplate|emaillabel";

  }

}

Mit besten Grüßen
So clickable, design is lickable.
Code is poetry.

Fanello
Beiträge: 336
Registriert: 24. Mai 2006, 14:01
Wohnort: Riedt (Schweiz)

Re: [erledigt] XForm: Bedingte Aktion db2email (Kopie an Sen

23. Aug 2016, 09:32

Ist schon ein älterer Beitrag, ich frische den aber kurz mal auf.
Sehe ich das also richtig, dass es mit Formbuilder von xform nicht möglich ist einzustellen, dass der Sender auch eine Kopie der Mail erhalten soll?

Zurück zu „Allgemeines [R4]“