0 votes
in SoSci Survey (dt.) by s203517 (120 points)
edited by SoSci Survey

Vielen Dank für Ihre Antwort!
Der erste Teil hat mir schon mal sehr geholfen, jedoch habe ich den zweiten Teil nicht ganz verstanden.
Ich bräuchte tatsächlich 9 custom Platzhalter. Meine VPn sollen je nachdem, wie viele Seiten des Fragebogens sie ausgefüllt haben (1,2 oder 3) 3,6 oder 9 Antworten aus dem Fragebogen in der mail erhalten. Dafür habe ich 3 verschiedene Serienmails erstellt (Beispiele unten). Heißt das dann, dass ich stattdessen unter custom1 3 Antworten, unter custom 2 6 Antworten und unter custom 3 9 Antworten eintragen muss?

Mein php-Code ist bisher:

if (
 (value('S204') == 1) and 
 (value('S104') == 1)){
mailSchedule(false,4,3, [
  '%custom1%' => value('S101'),
  '%custom2%' => value('S102'),
  '%custom3%' => value('S103'),
  '%custom4%' => value('S201'),
  '%custom5%' => value('S202'),
  '%custom6%' => value('S203'),
  '%custom6%' => value('S203'),
  '%custom7%' => value('S301'),
  '%custom8%' => value('S302'),
  '%custom9%' => value('S303')
]);}
elseif (
 (value('S204') == 2) and
 (value('S104') == 1)){
mailSchedule(false,3,3, [
  '%custom1%' => value('S101'),
  '%custom2%' => value('S102'),
  '%custom3%' => value('S103'),
  '%custom4%' => value('S201'),
  '%custom5%' => value('S202'),
  '%custom6%' => value('S203')
]);
} else {
mailSchedule(false,2,3,
[
  '%custom1%' => value('S101'),
  '%custom2%' => value('S102'),
  '%custom3%' => value('S103')
]);
}

Und ein Ausschnitt meiner 1. Serienmail ist:

See your submission here:

Title: %custom1%

Abstract: %custom2%

Submission type: %custom3%


Die 2. Mail sieht folglich so aus:

First submission: 

Title: %custom1%

Abstract: %custom2%

Submission type: %custom3%

Second submission: 

Title: %custom4%

Abstract: %custom5%

Submission type: %custom6%

Wie muss ich dann den php Code dann schreiben um alles in max. 5 Platzhaltern unterzubringen?

Vielen Dank schon mal im Voraus!

1 Answer

0 votes
by SoSci Survey (305k points)

Wie schon in meiner vorigen Antwort geschrieben (aber offenbar nicht alzu verständlich): Bauen Sie erst den Text zusammen und fügen Sie diesen dann "am Stück" in die Serienmail ein:

$text = 
  'Title: '.value('S101').NL.NL.
  'Abstract: '.value('S102').NL.NL.
  'Submission type: '.value('S103', 'label').NL.NL;

$html = nl2br(htmlspecialchars($text));

mailSchedule(false, 1, 0, [
  '%custom1%' => $text,
  '%custom2%' => $html
]);

Und passend dazu Serienmail 1:

See your submission here:
%custom1%

Und im HTML-Teil:

...
<body>
<p>See your submission here:</p>
<p>%custom2%</p>
...
by s203517 (120 points)
Vielen lieben Dank, jetzt habe ich es verstanden! Nur ein Problem bleibt: Dadurch, dass ich dann pro Mail 2 Custom Platzhalter brauche (1 für Text, 1 für HTML) brauche ich ja insgesamt 6 Platzhalter, also wieder zu viel... Hätten Sie dafür noch eine Lösung?
by SoSci Survey (305k points)
In der zweiten Mail können Sie wieder %custom1% und %custom2% verwenden. Der Platzhalter wird ja nicht mitels replace() für den Fall an sich gesetzt, sondern nur im mailSchedule()-Befehl.
by s203517 (120 points)
Danke für die schnelle Antwort! Jedoch will ich im Fall, das jemand 3 Submissions gemacht hat, nur eine einzige Mail schreiben, in der text1, text2 und text3 vorkommt. Meinen Sie, dass das nicht möglich ist, ich also zwingend 3 getrennte Mails an eine Person schicken muss, wenn sie 3 Submissions gemacht hat?
by SoSci Survey (305k points)
Sie können auch die Daten für mehrere Submissions in einem String zusammenfassen. Das ist sogar eleganter, weil in der Mail dann nicht zwei leere Platzhalter stehen.

$text = '';

if (HAT_SUBMISSION_1) {
  $text.= ... (wie oben)
}
if (HAT_SUBMISSION_2) {
  $text.= ... (bezogen auf die weiteren Variablen)
}

Das NL in dem Code steht übrigens für "new line".

Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

...