Frontend Objekt erzeugen + Mail mit Bestätigungslink senden

Fragen zu den Grundfunktionen der webEdition Oberfläche wie Backup, Import, ...
Fragen zu we:Tags bitte im Forum "Templates erstellen"
philippscholz
Junior Member
Beiträge: 4
Registriert: Do 10. Jan 2013, 17:14

Frontend Objekt erzeugen + Mail mit Bestätigungslink senden

Beitragvon philippscholz » Do 10. Jan 2013, 19:22

Hallo Forengemeinde,

ich versuche nun seit einiger Zeit über ein Formular im Frontend ein Objekt zu erzeugen, dieses in die Datenbank einzutragen und eine Mail zu generieren die einen Link mit der ObjectID enthält, welcher dann auf eine Seite verweist die wiederum eine Mail an den Admin und den Eintragenden erzeugt in der auch die ObjectID zu finden ist.

Hintergrund ist folgender:
Es wird eine öffentliche Club-Liste geben in die sich Mitglieder einschreiben können. Diese Einschreibung darf öffentlich dargestellt werden, allerdings muss aus Gründen der Sicherheit verifiziert werden, dass der Absender auch der echte Absender ist. Daher soll dies per Double-Opt-In erfolgen.

Bis jetzt habe ich diese Codes die auch funktionieren:

eintragen.php

Code: Alles auswählen

<we:sessionStart />
<we:form type="object" name="Clubliste" id="self" nameid="Clubliste" method="post" classid="3" charset="UTF-8">
  <table width="500" border="0" cellspacing="0" cellpadding="5" align="center">
    <tr>
      <td class="t4"><strong>Club-Neu-Eintrag</strong></td>
      <td align="right" nowrap></td>
    </tr>
    <tr>
      <td class="t3" colspan="2">
        <p>
          <strong>Anrede:</strong><br>
          <we:userInput type="select" name="Club_Anrede" value="Bitte ausfüllen" values="Bitte auswählen,Herr,Frau" /></p>
      </td>
    </tr>
    <tr>
      <td class="t3" colspan="2">
        <p><strong>Vorname:</strong><br>
          <we:userInput name="Club_Vorname" type="textinput" value="Bitte ausfüllen"/></p>
      </td>
    </tr>
    <tr>
      <td class="t3" colspan="2">
        <p><strong>Nachname:</strong><br>
          <we:userInput name="Club_Nachname" type="textinput" value="Bitte ausfüllen"/></p>
      </td>
    </tr>
    <tr>
      <td class="t3" colspan="2">
        <p><strong>E-Mail:</strong><br>
          <we:userInput name="Club_EMail" type="textinput" value="Bitte ausfüllen"/></p>
      </td>
    </tr>
    <tr>
      <td class="t3" colspan="2">
        <p><strong>Clubname:</strong><br>
          <we:userInput name="Club_Name" type="textinput" value="Bitte ausfüllen"/></p>
      </td>
    </tr>
    <tr>
      <td class="t3" colspan="2">
        <p><strong>Bundesland:</strong><br>
          <we:userInput name="Club_Bundesland" type="select" value="Bitte auswählen" values="Baden-Wuerttemberg,Bayern,Berlin,Brandenburg,Bremen,Hamburg,Hessen,Mecklenburg-Vorpommern,Niedersachsen,Nordrhein-Westfalen,Rheinland-Pfalz,Saarland,Sachsen,Sachsen-Anhalt,Schleswig-Holstein,Th&uuml;ringen"/></p>
      </td>
    </tr>
    <tr>
      <td class="t3" colspan="2">
        <p><strong>Land:</strong><br>
          <we:userInput name="Club_Land" type="select" value="Bitte auswählen" values="Bitte auswählen,Belgien,Dänemark,Deutschland,Estland,Finnland,Frankreich,Griechenland,Irland,Italien,Litauen,Luxemburg,Malta,Niederlande,Österreich,Polen,Portugal,Schweden,Slowakei,Slowenien,Spanien,Schweiz,Tschechische Republik,Ungarn,Vereinigtes Königreich,Zypern"/>
        </p>
      </td>
    </tr>
    <tr>
      <td class="t3" colspan="2">
        <p>
          <strong>Internetseite:</strong><br>
          <we:userInput name="Club_Website" type="textinput" value="Bitte ausfüllen"/><we:userInput name="Club_Datum" type="date" hidden="true"/>
        </p>
      </td>
    </tr>
    <tr>
      <td class="t3" colspan="2"><input type="submit" value="eintragen"> </td>
    </tr>
  </table>
</we:form>

<we:write type="object" formname="Clubliste" publish="false" classid="3" mail="ps@meinedomain.com" mailfrom="info@meinedomain.com" protected="false" parentid="4" name="Clubliste"/>
<we:ifNotWritten type="object">
    <p>&nbsp;</p>
</we:ifNotWritten>
<we:ifWritten type="object">
  <p>Vielen Dank! Ihr Eintrag wird nun von uns überprüft.</p>
  <?php
    //p_r($_REQUEST);
    $Club_EMail = $_REQUEST['we_ui_Clubliste']['Club_EMail'];
  ?>
  <we:sendMail id="538" subject="Bestätigungs-E-Mail des Club Eintrages auf der Website www.meinedomain.de" recipient="\$Club_EMail" from="info@meinedomain.com" mimetype="text/html" />
</we:ifWritten>
eintrag-bestaetigung.php

Code: Alles auswählen

<we:makeMail/>
<?php
  //p_r($_REQUEST);
  $Club_Anrede = $_REQUEST['we_ui_Clubliste']['Club_Anrede'];
  $Club_Nachname = $_REQUEST['we_ui_Clubliste']['Club_Nachname'];
  $Club_Bundesland = $_REQUEST['we_ui_Clubliste']['Club_Bundesland'];
  $Club_Land = $_REQUEST['we_ui_Clubliste']['Club_Land'];
  $Club_Land = $_REQUEST['we_ui_Clubliste']['Club_Land'];
?>

<we:form type="object" name="Clubliste" nameid="Clubliste" method="post" classid="3" id="self" charset="UTF-8">
  <p>Sehr <?php if($Club_Anrede == 'Herr'){ echo "geehrter Herr " . $Club_Nachname;} elseif($Club_Anrede == 'Frau'){ echo "geehrte Frau " . $Club_Nachname;} ?>,</p>
  <p>bitte bestätigen Sie diesen Club Eintrag indem Sie auf den unten genannten Link klicken.</p>
  <p>Sollte dieser Eintrag nicht von Ihnen stammen, ignorieren Sie bitte diese E-Mail.</p>
  <we:listview type="object" classid="3" rows="1" desc="true" order="we_id">
  <we:repeat>
    <p>Das Objekt mit der ID: <we:field name="WE_ID" /> wurde erstellt.</p>
  </we:repeat>
  </we:listview>
  <p>&nbsp;</p>
  <h2>Ihre angegebenen Daten zur Übersicht</h2>
  <table width="500" border="0" cellspacing="0" cellpadding="3" align="left">
    <tr>
      <td class="t4">&nbsp;</td>
      <td align="right" nowrap></td>
    </tr>
    <tr>
      <td class="t3" colspan="2">
        <p>
          <strong>Anrede:</strong>
          <?php echo $Club_Anrede; ?> <we:userInput name="Club_Anrede" type="select" editable="false" /></p>
      </td>
    </tr>
    <tr>
      <td class="t3" colspan="2">
        <p><strong>Vorname:</strong>
          <we:userInput name="Club_Vorname" type="textinput" editable="false" /></p>
      </td>
    </tr>
    <tr>
      <td class="t3" colspan="2">
        <p><strong>Nachname:</strong>
          <we:userInput name="Club_Nachname" type="textinput" editable="false" /></p>
      </td>
    </tr>
    <tr>
      <td class="t3" colspan="2">
        <p><strong>E-Mail:</strong>
          <we:userInput name="Club_EMail" type="textinput" editable="false" /></p>
      </td>
    </tr>
    <tr>
      <td class="t3" colspan="2">
        <p><strong>Clubname:</strong>
          <we:userInput name="Club_Name" type="textinput" editable="false" /></p>
      </td>
    </tr>
    <tr>
      <td class="t3" colspan="2">
        <p><strong>Bundesland:</strong>
         <?php echo $Club_Bundesland; ?> <we:userInput name="we_ui_eintrag[Club_Bundesland]" type="select" editable="false" value="<?php echo $Club_Bundesland; ?>" /></p>
      </td>
    </tr>
    <tr>
      <td class="t3" colspan="2">
        <p><strong>Land:</strong>
          <?php echo $Club_Land; ?> <we:userInput name="we_ui_eintrag[Club_Land]" type="select" editable="false" value="<?php echo $Club_Land; ?>" /></p>
      </td>
    </tr>
    <tr>
      <td class="t3" colspan="2">
        <p>
          <strong>Internetseite:</strong>
          <we:userInput name="Club_Website" type="textinput" editable="false" />
        </p><we:userInput name="Club_Datum" type="date" hidden="true"/>
      </td>
    </tr>
    <tr>
      <td class="t3" colspan="2">&nbsp;</td>
    </tr>
    <tr>
      <td class="t3" colspan="2"><p style="text-align:left;"><strong>Bestätigungslink:</strong></p></td>
    </tr>
    <tr><td colspan="2">&nbsp;</td></tr>
    <tr><td><p>Vielen Dank.</p></td></tr>
  </table>
  </we:form>
Die Mail wird generiert und zeigt alle Inhalte wie gewünscht, allerdings wird mir nicht die richtige ObjectID angezeigt. Ich habe bereits versucht sie per MAX(ID) aus der Tabelle tblFile auszulesen oder sie per Listview wie oben zu sehen, auszugeben. Es ist leider nie die richtige ID.

Vielleicht hat jemand einen Tipp für mich? Das Forum habe ich schon stundenlang durchsucht und bisher keinen passenden Vorschlag gefunden. Wäre das vielleicht durch einen Hook machbar? Und wenn ja, wie?

Vielen Dank schon mal im Vorraus,
Philipp

Benutzeravatar
blickfang
webEdition Partner
webEdition Partner
Beiträge: 812
Registriert: Mo 15. Dez 2003, 16:00
Kontaktdaten:

Re: Frontend Objekt erzeugen + Mail mit Bestätigungslink sen

Beitragvon blickfang » Do 17. Jan 2013, 11:04

Hallo Phillip,

im we:ifWritten kannst Du die ObjektId des gerade geschriebenen Objekts mit php über

Code: Alles auswählen

$we_object[FORM_NAME]->ID;
auslesen. FORM_NAME ist dabei der Name des FOrmulars, in Deinem Fall "Clubliste".

Gruß
webEdition Partner - https://www.blickfang-media.com
Ehemals im Vorstand des webEdition e.V.

philippscholz
Junior Member
Beiträge: 4
Registriert: Do 10. Jan 2013, 17:14

Re: Frontend Objekt erzeugen + Mail mit Bestätigungslink sen

Beitragvon philippscholz » Do 17. Jan 2013, 15:32

Vielen Dank für den Tipp Alfa!

Tatsächlich habe ich heraus gefunden, dass im we:write das publish auf true gesetzt werden muss, da sonst nicht die letzte ID ausgegeben wird. Das ist ziemlich ärgerlich, da ich den Eintrag in der Objektansicht gerne als rot markiert gehabt hätte. Aber ich habe nun ein weiteres Feld zur Verifizierung bzw. Freischaltung um nur diese Einträge in der Listview auszugeben. Die Anzeige mit <we:field name="WE_ID" /> hat dann doch funktioniert ;)

Schöne Grüße,
Philipp


Zurück zu „Basisversion“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste