direct_mail_subscription / real_url: Kurze URLs in Opt-In Bestätigungsmails von Newsletter-Anmeldung

Mit folgendem Trick bekommt man in die Bestätigungsmails von direct_mail_subscription eine kürzere URL. Hintergrund des Ganzen: Die URLs sind in den E-Mails teilweise so lang, dass sie umbrechen, was bei manchem Benutzern zu unvollständigen URLs bei Klick auf den Link führt.

Per Default sieht der Link in dem Subpart „EMAIL_TEMPLATE_CREATE_SAVED“ der Opt-In-Mail so aus:

http://www.beispiel.de/pfad/zu/seite.html?1=1&cmd=setfixed&sFK=approve&rU=3919&fD%5B_FIELDLIST%5D=uid&fD%5Bhidden%5D=0&aC=12732843

Schöner wäre es z.B. so:

http://www.beispiel.de/opt/nl/a/3919/12732843/0/0/

Folgende Schritte zu einer kurzen URL:

1. In den Seiteneigenschaften der Opt-In-Seite unter „Pfadsegment für untergeordnete Seiten“ einen kurzen Begriff eingeben, im Beispiel hier „opt“ und das Häkchen vor „Den gesamten Pfad überschreiben“ setzen.

2. In der typo3conf/realurl_conf.php folgende neue Regel für die postVarSets definieren:

'nl'     =>   array(
    array(   'GETvar'     => 'sFK', 
        'valueMap'    => array(
          'a'  => 'approve',
          'd' => 'DELETE'
        ),
      ),
    array( 'GETvar'   => 'rU', ),
    array( 'GETvar'   => 'aC', ),
    array(   'GETvar'   => 'cmd', 
        'valueMap'    => array(
          'setfixed'  => 'setfixed'
        ),
        'valueDefault'  => 'setfixed',
      ),
    array(   'GETvar'   => 'fD[_FIELDLIST]',
        'valueMap'  => array(
          'uid'    => 'uid'
        ),
        'valueDefault'  => 'uid',
      ),
    array( 'GETvar'   => 'fD[hidden]',
        'valueMap'  => array(
          '0'      => '0'
        ),
        'valueDefault'  => '0',
      ),
),

3. In dem Mail-Templates folgende Links für Bestätigung/Abmeldung verwenden:

Bitte klicken Sie auf diesen Link um die Anmeldung fertig zu stellen:
###THIS_URL###opt/nl/a/###FIELD_uid###/###SYS_AUTHCODE###/0/0/

Falls Sie keinen Newsletter möchten, klicken Sie hier:
###THIS_URL###opt/nl/d/###FIELD_uid###/###SYS_AUTHCODE###/0/0/