[TYPO3-german] direct_mail Personalisierung über contants

Stephan Schuler Stephan.Schuler at netlogix.de
Tue Mar 30 21:31:07 CEST 2010


Die Antwort muss ich in mehrere Teile gliedern.


Zunächst mal halte ich den von dir verlinkten Artikel -- abgehesen vom vorletzten Beitrag mit dem Hinweis auf "df_direct_mail_subscription", das ich nicht kenne und deshalb nicht beurteilen mag -- für nicht nur wenig Benutzerfreundlich sondern auch für äußerst "schlechte Schule". Ersteisn sollte man für sowas nicht die Extension patchen müssen. Jedenfalls nicht, ohne den Patch später dem Extensionentwickler zukommen zu lassen. Zweitens ist es für guten Code absolut untragbar, deutsche Wörter hart codiert im Quellcode zu haben, schon deshalb sollte man die Qualität der Lösung mindestens kritisch sehen. Drittens nimmt der Patch keine Rücksicht auf die Powermail-Option, aus beliebigen Datenbanktabellen Zieladressen zu ziehen, bei denen vielleicht nicht "m" und "f" in der Spalte "gender" steht. Viertens würde ich einen solchen Patch nicht "ungefragt" in Powermail integrieren und veröffentlichen. Dazu ist Powermail einfach zu groß (und gut!), als dass ich den code derart unüberlegt manipulieren würde. Bestenfalls würde ich den Entwickler an der zu patchenden Stelle im kommenden Release um einen Hook bitten (sofern sowas nicht bereits existiert). Die Idee, das Replace-Marker-Array per Hook manipulieren zu können halte ich jedenfalls für deutlich sinnvoller als in der Mitte einer nicht ganz kleinen Klasse ein vereinzeltes Feature nachzupatchen.

Konkret zu deinem Problem (String "CASE" statt Case-Objekt) kann ich nichts sagen. Ich hab mich da grade nicht genug eingedacht als dass ich dir dazu quallifiziert sagen könnte, warum und wie besser.

Allerdings bleibt die Situation: Deine Unterscheidung dürfte *eiigentlich* an der Stelle gar nicht funktionieren.

Ich hatte den von mir genannten Ansatz mit der erweiterten tt_address-Tabelle übrigens eher wie folgt gemeint:
        CREATE VIEW tt_address_nxvirtualextended AS
        (
                SELECT
                        tt_address.*,
                        "de"
                                AS tx_nxttaddressfeselector_virtual_language_marker,
                        CASE tt_address.gender
                                WHEN "m" THEN CONCAT("Sehr geehrter Herr ", last_name)
                                WHEN "f" THEN CONCAT("Sehr geehrte Frau ", last_name)
                                ELSE "Sehr geehrte Damen und Herren"
                                END
                                AS tx_nxttaddressfeselector_virtual_salutation,
                        1 AS tx_nxttaddressfeselector_virtual_wants_to_receive_mails
                FROM
                        tt_address
        );
In Verbindung mit filterndend SELECTs und verbindenden UNIONs lässt sich attributbasiert (z.B. PID) auch eine sprachspezifische Anrede realisieren. So muss man nicht ab und an von Hand mit großen Queries die Adressdatensätze manipulieren, die Datenbank macht alles automatisch. Lediglich den View beschreiben kann man nicht, aber wenn der Redakteur dazu gar keine Berechtigung bekommt spielt das auch keine große Rolle.



Stephan Schuler
TYPO3 Entwickler

Telefon: +49 (911) 539909 - 0
E-Mail: Stephan.Schuler at netlogix.de
________________________________________

Von: typo3-german-bounces at lists.typo3.org [typo3-german-bounces at lists.typo3.org] im Auftrag von IT@ [bysystem.net it at bysystem.net]
Gesendet: Dienstag, 30. März 2010 20:55
An: German TYPO3 Userlist
Betreff: Re: [TYPO3-german]     direct_mail Personalisierung über contants

Hallo Stephan,

hmmm, deine Ausführungen haben mich nachdenklich gemacht, aber nicht verwirrt. Du hast auch recht, das das Rendering zur Laufzeit angeht!

In meiner fe_users-Tabelle habe ich ja bereits eine Spalte namens "gender", die die Werte 0 für Herr und 1 für Frau enthält.
Daher gehe ich gehe davon aus, dass ich, genauso wie ich den USER_name auslesen kann und OHNE irgendwelche Zusatzabfragen im FE darstellen kann, genauso das Feld "gender" abfragen könnte, ob es 0 oder 1 ist und demnach einen von mir vordefinierten Marker (###ANREDE###) füllen kann!

Ich hatte ja in meiner vorherigen Mails beschrieben, dass ich fürchte, dass ich beim Auslesen aus der DB:fe_users:gender irgendwelche Syntax-Fehler mache, da im Frontend lediglich object=CASE abgearbeitet wird (entsprechend wird nur der String "CASE" dargestellt) und nicht weiter:

object = CASE
object.key.data = DB:fe_users:gender
object.m= TEXT
object.m.value = Sehr geehrter Herr
object.f= TEXT
object.f.value = Sehr geehrte Frau

constants.ANREDE < object
constants.EMPFAENGER=###USER_name###

Ich hatte bereits einen Lösungsansatz im netz gefunden, allerdings fand ich diesen ziemlich Redaktuer-unfreundlich:

http://www2.typo3.net/forum/list/list_post//75835/

Viele Grüße
Yilmaz


-----Original Nachricht-----
From: Stephan Schuler Stephan.Schuler at netlogix.de
Date: Tue, 30 Mar 2010 20:36:18 +0200
To: German TYPO3 Userlist typo3-german at lists.typo3.org
Subject: Re: [TYPO3-german]direct_mail Personalisierung
über contants

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
>
> Hallo Yilmaz.
>
>
> Ich bin mir nicht zu 100% sicher ob ich verstehe was du grade vor hast, befürchte aber einen Denkfehler zu erkennen. Dazu muss ich aber etwas weiter ausholen.
>
> Directmail ruft die Mailseite von außen auf, damit das normale TYPO3-Rendering vollständig durchlaufen wird.
> Ich nenne die bereitgestellt Webseite mal "Provider" und das Directmail-Modul das die Webseite von außen einließt "Getter" damit meine Sätze nicht so umständlich klingen.
> Der Getter teilt dem Provider normalerweise nicht mit, welche Adressdatensätze verschickt werden sollen. Der Getter ruft den Provider einfach von außen auf. Der bereitgestellte Output kann deshalb gar nicht personalisiert sein, weil der Provider den konkreten Datensatz nicht kommt.
> Noch "schlimmer": Der Getter ruft dem Provider nur einmal pro "Run" auf, nicht einmal pro zu verschickende E-Mail. Je nach Newsletterumfang würde ich auch überhaupt nicht wollen, dass 5000 (in etwa die Größenordnung mit der ich pro "Run" zu tun habe) E-Mails 5000 Clicks meiner Webseite erzeugen. Gerade wenn hier der tt_address-Datensatz mit einbezogen würde und deshalb (mindestens in Teilen) kein Caching
> möglich wäre würde das den Webserver doch zu sehr belasten.
> Die Personalisierung geschieht dann anschließend durch Powermail, indem recht simpel die (vom Getter eingelesene) Webseite pro zu versendende E-Mail einmal durch ein str_replace-Array geschoben wird.
> Im Output-HTML müssen dazu die Marker (z.B. eben ###USER_name###) noch vorhanden sein, damit Directmail (nachdem der Getter die Seite eingelesen hat) noch Stellen hat, an denen personalisierte Daten stehen können.
>
> Ein Typoscript zum Zeitpunkt des Pagerenderings hat deshalb überhaupt keine Chance, das Geschlecht des Adressdatensatzes zu ermitteln.
>
> Was machbar ist: dem Adressdatensatz eine Spalte "emailanrede" geben, die geschlechtsabhängig "Sehr geehrter Herr" oder "Sehr geehrte Frau" beinhalten. Dann kann der Marker "###USER_emailanrede###" verwendet werden.
> Ich habe das bei meinem letzten Newsletter über einen passenden View realisiert, der dann auch gleich die Sprache (an der Speicher-PID zu erkennen) mit berücksichtigt hat.
>
>
> Ich hoffe, erstens dein Problem nicht vollkommen missverstanden und zweitens mehr geklärt als verwirrt zu haben.
>
>
> Grüße,
>
>
>
> Stephan Schuler
> TYPO3 Entwickler
>
> Telefon: +49 (911) 539909 - 0
> E-Mail: Stephan.Schuler at netlogix.de
>
> - --
> netlogix GmbH & Co. KG
> Systemhaus | Trainingscenter | Medienagentur
> Andernacher Straße 53 | 90411 Nürnberg
> Telefon: +49 (911) 539909 - 0 | Fax: +49 (911) 539909 - 99
> E-Mail: mailto:info at netlogix.de | Internet: http://www.netlogix.de/
>
> netlogix GmbH & Co. KG ist eingetragen am Amtsgericht Nürnberg (HRA 13338)
> Persönlich haftende Gesellschafterin: netlogix Verwaltungs GmbH (HRB 20634)
> Umsatzsteuer-Identifikationsnummer: DE 233472254
> Geschäftsführer: Stefan Buchta, Matthias Schmidt
>
> ________________________________________
>
>
> Von: typo3-german-bounces at lists.typo3.org [typo3-german-bounces at lists.typo3.org] im Auftrag von IT@ [bysystem.net it at bysystem.net]
> Gesendet: Dienstag, 30. März 2010 16:51
> An: German TYPO3 Userlist
> Betreff: Re: [TYPO3-german]     direct_mail Personalisierung über contants
>
> Entschuldige bitte Kristian (wg. deines Names;-),
>
> "constants" ist ein TopLevelObject und hat nichts mit "Constant" (ohne "s") zu tun. Damit kannst du einen vordefinierten Marker mit Werten füllen (siehe z.B. unten den Marker ###EMPFAENGER###, den ich in einem Contentelement z.B. Text mit dem Marker aus direct_mail (###USER_name###) füllen kann.
>
> Was kann ich dagegen tun, DAMIT er ein cObject erwartet?
>
> Viele Grüße
> Yilmaz
>
> - -----Original Nachricht-----
> From: Kristian Domke news at neither-nor.net
> Date: Tue, 30 Mar 2010 16:08:01 +0200
> To: typo3-german at lists.typo3.org
> Subject: [TYPO3-german]  Re:  direct_mail Personalisierung über contants
>
> > Am 30.03.2010 14:25, schrieb IT at bysystem.net:
> > > Hallo Lorenz,
> >
> > Nicht Lorenz, aber ich antworte dennoch...
> >
> > > ich benutze fe_users. Wenn ich über phpMyAdmin in der DB nachschaue,
> > > sehe dort nur Werte 0 und 1 und diese sind wie folgt zugeordnet:
> > >
> > > 0 = Herr 1 = Frau
> >
> > OK, dann wird das stimmen.
> >
> > >
> > > Habe es trotzdem so versucht, wie du unten vorgeschlagen hast, leider
> > > aber kein Erfolg. Es wird für den Marker ###ANREDE### noch immer
> > > "CASE" angezeigt!
> > >
> >
> > Es Wird CASE angezeigt? Dann erwartet er an der Stelle offensichtlich
> > kein cObject. Ich habe jetzt bei dir nicht gefunden, wie constants
> > definiert ist. Wo kommt das denn her, und welcher Objekttyp ist das?
> >
> > > object = CASE
> > > [...]
> > > constants.ANREDE<  object
> > > constants.EMPFAENGER=<strong>###USER_name###</strong>
> > >
> >
> > Kristian
> > _______________________________________________
> > TYPO3-german mailing list
> > TYPO3-german at lists.typo3.org
> > http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
> _______________________________________________
> TYPO3-german mailing list
> TYPO3-german at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
>
>
> -----BEGIN PGP SIGNATURE-----
> Version: PGP Universal 3.0.0 (Build 2881)
> Charset: Windows-1252
>
> wpUDBQFLskSrpp0IwsibV8MBCJ4GBAC+gZu5lPJVabWplDDmO5l4pog15Fxxvcnb
> NCM51/MLgSFBKvwsbCq+tfphOOMUsx/3h9Z0c3b8SD2eITDFYkPbASaEbWEiKAxF
> RHAXuxkaMxijYOutnr3kz+DveUTDJbivyGl1EVxpc6vPEnDhm4aU9XPHIa3lGVW8
> 16CiK+OW7g==
> =TQCR
> -----END PGP SIGNATURE-----
> _______________________________________________
> TYPO3-german mailing list
> TYPO3-german at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
>
_______________________________________________
TYPO3-german mailing list
TYPO3-german at lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german



More information about the TYPO3-german mailing list