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.schu...@netlogix.de
________________________________________

Von: typo3-german-boun...@lists.typo3.org 
[typo3-german-boun...@lists.typo3.org] im Auftrag von IT@ [bysystem.net 
i...@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.schu...@netlogix.de
Date: Tue, 30 Mar 2010 20:36:18 +0200
To: German TYPO3 Userlist typo3-german@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.schu...@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:i...@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-boun...@lists.typo3.org 
> [typo3-german-boun...@lists.typo3.org] im Auftrag von IT@ [bysystem.net 
> i...@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 n...@neither-nor.net
> Date: Tue, 30 Mar 2010 16:08:01 +0200
> To: typo3-german@lists.typo3.org
> Subject: [TYPO3-german]  Re:  direct_mail Personalisierung über contants
>
> > Am 30.03.2010 14:25, schrieb i...@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@lists.typo3.org
> > http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
> _______________________________________________
> TYPO3-german mailing list
> TYPO3-german@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@lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
>
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an