Powermail - UserFunc: Unterschied zwischen den Versionen

Aus Wikizone
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „Wie kann man Werte für den Versand mittels PHP manipulieren und in Templates oder Feldern versenden / speichern. Einfache Dinge kann man bereits mit TypoScrip…“)
 
Zeile 1: Zeile 1:
 +
Links:
 +
https://docs.typo3.org/typo3cms/TyposcriptReference/ContentObjects/UserAndUserInt/Index.html (User und user_int Objekte in TypoScript für userFunction)
 +
https://docs.typo3.org/typo3cms/extensions/powermail/ForDevelopers/AddDataProcessors/Index.html (Powermail Data Prozessoren)
 +
 
Wie kann man Werte für den Versand mittels PHP manipulieren und in Templates oder Feldern versenden / speichern. Einfache Dinge kann man bereits mit TypoScript erledigen und per View Helper ausgeben (siehe [[Powermail]])
 
Wie kann man Werte für den Versand mittels PHP manipulieren und in Templates oder Feldern versenden / speichern. Einfache Dinge kann man bereits mit TypoScript erledigen und per View Helper ausgeben (siehe [[Powermail]])
  
Für komplexere Dinge kann man eine UserFunc nutzen und mit dieser die Daten verarbeiten. Die Ausgabe erfolgt ebenfalls mittels ViewHelper
+
Für komplexere Dinge kann man eine UserFunc nutzen und mit dieser die Daten verarbeiten. Die Ausgabe erfolgt mittels ViewHelper oder aber auch prefill eines Formularfeldes. Darüber hinaus kann man auch hoch Powermails DataProcessor Funktionalität nutzen. Sie erlaubt es Funktionen zum manipulieren von Werten beim Absenden auszuführen.
  
 
== Der ViewHelper ==
 
== Der ViewHelper ==
Zeile 16: Zeile 20:
 
* In jedem RTE Feld in den Forms
 
* In jedem RTE Feld in den Forms
 
* In the subject, receiver, receiverName, sender, senderName Feld
 
* In the subject, receiver, receiverName, sender, senderName Feld
 +
 +
== userFunc nutzen mit Extension==
 +
Die user Functions werden ganz normal angelegt. Entweder direkt im Verzeichnis oder als Extensions (In TYPO3 V8 evtl. auch nur als Extension). Wie kann man in Powermail darauf zugreifen ?
 +
Zunächst unsere Beispiel Extension:
 +
=== Eingesetzte Extension ===
 +
Dateien
 +
typo3conf/ext/gbincludes/ext_emconf.php
 +
typo3conf/ext/gbincludes/ext_icon.gif
 +
typo3conf/ext/gbincludes/Classes/Powermail.php
 +
 +
'''ext_emconf.php'''
 +
<syntaxhighlight lang="php">
 +
<?php
 +
$EM_CONF[$_EXTKEY] = array(
 +
    'title' => 'Userfunc Classes for Stephan Schlegel',
 +
    'description' => 'Einbinden der Klassen für userFunc',
 +
    'category' => 'fe',
 +
    'author' => 'Stephan Schlegel',
 +
    'author_email' => 'schlegel@geo-bit.de',
 +
    'state' => 'beta',
 +
    'author_company' => 'Geo-bit Reutlingen',
 +
    'version' => '0.1.0',
 +
    'constraints' => array(
 +
        'depends' => array(
 +
        ),
 +
        'conflicts' => array(
 +
        ),
 +
        'suggests' => array(
 +
        ),
 +
    ),
 +
);
 +
</syntaxhighlight>
 +
 +
'''Powermail.php'''
 +
<syntaxhighlight lang="php">
 +
<?php
 +
namespace Geobit\Gbincludes;
 +
class Powermail {
 +
    public function createKey($content, $conf) {
 +
      $key = date("dmy-").uniqid();
 +
      #$key = microtime();
 +
      return $key;
 +
    }
 +
}
 +
</syntaxhighlight>
 +
=== Beispiel: userFunc mit ViewHelper ===
 +
Hinweis jeder eingesetzte Viewhelper (z.B. einmal im Betreff und einmal im E-Mail Template) ruft das Skript einmal auf. Also oft suboptimal.
 +
 +
TypoScript
 +
<syntaxhighlight lang="typoscript">
 +
### TicketNr. für Powermail ###
 +
# use {f:cObject(typoscriptObjectPath:'lib.myTicket')} in Powermail
 +
lib.myTicket = USER
 +
lib.myTicket {
 +
  userFunc = Geobit\Gbincludes\Powermail->createKey
 +
}
 +
</syntaxhighlight>
 +
 +
=== Beispiel: userFunc mit Prefill ===
 +
Das Beispiel setzt voraus, das ein Feld (z.b. hidden field) mit dem Variablennamen "ticket" existiert. Die Variable kann man mit dem Platzhalter {ticket} z.B. im Betreff oder dem Ausgabetemplate ausgeben.
 +
<syntaxhighlight lang="typoscript">
 +
plugin.tx_powermail.settings.setup.prefill {
 +
  # {ticket} befüllen
 +
  ticket = USER
 +
  ticket.userFunc = Geobit\Gbincludes\Powermail->createKey
 +
}
 +
</syntaxhighlight>

Version vom 30. Januar 2018, 15:17 Uhr

Links: https://docs.typo3.org/typo3cms/TyposcriptReference/ContentObjects/UserAndUserInt/Index.html (User und user_int Objekte in TypoScript für userFunction) https://docs.typo3.org/typo3cms/extensions/powermail/ForDevelopers/AddDataProcessors/Index.html (Powermail Data Prozessoren)

Wie kann man Werte für den Versand mittels PHP manipulieren und in Templates oder Feldern versenden / speichern. Einfache Dinge kann man bereits mit TypoScript erledigen und per View Helper ausgeben (siehe Powermail)

Für komplexere Dinge kann man eine UserFunc nutzen und mit dieser die Daten verarbeiten. Die Ausgabe erfolgt mittels ViewHelper oder aber auch prefill eines Formularfeldes. Darüber hinaus kann man auch hoch Powermails DataProcessor Funktionalität nutzen. Sie erlaubt es Funktionen zum manipulieren von Werten beim Absenden auszuführen.

Der ViewHelper

In der Regel erzeugt man ein TypoScript Objekt (z.B. ein USER_INT Objekt) und gibt es an ein Feld in Powermail. Einfaches Beispiel:

# TypoScript Setup Example for ViewHelper {f:cObject(typoscriptObjectPath:'lib.test')}
lib.test = TEXT
lib.test.value = newReceiver@mail.com

es wird also ein TEXT Objekt erzeugt wie bekommt man es nach Powermail - mit dem TypoScript Objekt Viewhelper:

{f:cObject(typoscriptObjectPath:'lib.test')}

Diesen Platzhalter mit dem ViewHelper kann man an verschiedenen Stellen laut Powermail Doku unterbringen:

  • in HTML Templates (and Partial and Layout)
  • In jedem RTE Feld in den Forms
  • In the subject, receiver, receiverName, sender, senderName Feld

userFunc nutzen mit Extension

Die user Functions werden ganz normal angelegt. Entweder direkt im Verzeichnis oder als Extensions (In TYPO3 V8 evtl. auch nur als Extension). Wie kann man in Powermail darauf zugreifen ? Zunächst unsere Beispiel Extension:

Eingesetzte Extension

Dateien

typo3conf/ext/gbincludes/ext_emconf.php
typo3conf/ext/gbincludes/ext_icon.gif
typo3conf/ext/gbincludes/Classes/Powermail.php

ext_emconf.php

<?php
$EM_CONF[$_EXTKEY] = array(
    'title' => 'Userfunc Classes for Stephan Schlegel',
    'description' => 'Einbinden der Klassen für userFunc',
    'category' => 'fe',
    'author' => 'Stephan Schlegel',
    'author_email' => 'schlegel@geo-bit.de',
    'state' => 'beta',
    'author_company' => 'Geo-bit Reutlingen',
    'version' => '0.1.0',
    'constraints' => array(
        'depends' => array(
        ),
        'conflicts' => array(
        ),
        'suggests' => array(
        ),
    ),
);

Powermail.php

<?php
namespace Geobit\Gbincludes;
class Powermail {
    public function createKey($content, $conf) {
      $key = date("dmy-").uniqid();
      #$key = microtime();
      return $key;
    }
}

Beispiel: userFunc mit ViewHelper

Hinweis jeder eingesetzte Viewhelper (z.B. einmal im Betreff und einmal im E-Mail Template) ruft das Skript einmal auf. Also oft suboptimal.

TypoScript

### TicketNr. für Powermail ###
# use {f:cObject(typoscriptObjectPath:'lib.myTicket')} in Powermail
lib.myTicket = USER
lib.myTicket {
  userFunc = Geobit\Gbincludes\Powermail->createKey
}

Beispiel: userFunc mit Prefill

Das Beispiel setzt voraus, das ein Feld (z.b. hidden field) mit dem Variablennamen "ticket" existiert. Die Variable kann man mit dem Platzhalter {ticket} z.B. im Betreff oder dem Ausgabetemplate ausgeben.

plugin.tx_powermail.settings.setup.prefill {
  # {ticket} befüllen
  ticket = USER
  ticket.userFunc = Geobit\Gbincludes\Powermail->createKey
}