Skip to main navigation Skip to main content Skip to page footer

Entwickler Version

Bitte testen Sie es immer vor dem Stellen einer Frage auch mit der aktuellen Entwicklerversion

Autor  
10-03-10 17:14:45 Attachment an falscher E-Mail
Christoph Pönighaus
Hallo!
Die Datei, die ich in den Constants als attachment-file angegeben habe und deren Versand ich aktiviert habe, landet fälschlicherweise beim Admin und nicht wie gewollt beim sich registrierenden Frontendbenutzer. Installiert sind Typo3 4.2.6 und sr_feuser_register 2.5.24.

Gibt es Abhilfe oder eine Idee, welchen Fehler ich gemacht haben könnte? Vielen Dank
Christoph
10-03-10 20:30:22 Setup
Franz Holzinger
Im Setup gibt es mehrere Paramter für die angehängte Datei:

addAttachment = {$plugin.tx_srfeuserregister_pi1.enableEmailAttachment}
addAttachment.cmd = setfixed
addAttachment.sFK = APPROVE
addAttachment.file = {$plugin.tx_srfeuserregister_pi1.file.attachmentFile}

Die Datei wird nur dann angehängt, wenn die internen Variable cmd und sFK mit den Werten im Setup übereinstimmen.
Ev. muss man dazu die Datei lib/class.tx_srfeuserregister_email.php in der Funktion compile debuggen, um herauszufinden, welche Paramter genau eingestellt werden müssen.
11-03-10 07:57:58 Debugging
Christoph Pönighaus
Vielen Dank für die prompte Antwort!
Die Setup Parameter habe ich mir im ObjectBrowser angesehen, die Werte sind wie im vorigen Posting angegeben.

Leider kenne ich mit dem Debugging überhaupt nicht aus, für die Entwicklungsumgebung habe ich lediglich die localconf.php um folgende Zeilen ergänzt:

$TYPO3_CONF_VARS['SYS']['sqlDebug'] = '1';
$TYPO3_CONF_VARS['FE']['debug'] = '1';

Dies führt jedoch zu keiner Ausgabe bei der Arbeit mit der Extension.

Gruß
Christoph
11-03-10 12:26:13 Anleitung debuggen TYPO3
Franz Holzinger
Hier gibt es eine Anleitung zum Debuggen mit TYPO3:

http://wiki.typo3.org/index.php/Extension_Development%2C_Debugging

Hinweis: [SYS][devIPmask] = <ip adresse>
11-03-10 22:21:59 DAU
Christoph Pönighaus
[D]ümmster [A]nzunehmnder [U]ser!
Ich bin mit dem Debugging im Tal der Ahnungslosen gelandet. cc_debug liefert mir immer nur die Ausgabe "Mixed|*variable*|NULL" nachdem ich am Ende der class.tx_srfeuserregister_email.php die Zeile "debug($this->compile);" eingefügt habe.
Es ist mir peinlich mit solchen Anfängerfragen zu nerven und Deine Geduld zu strapazieren, vielleicht bist Du aber noch einmal so nett:
Welche Zeile muss ich wo eintragen, um eine nutzbare Ausgabe zu bekommen, die bei der Problemlösung weiterhilft?

Nochmals vielen Dank und sorry für die dummen Fragen
Christoph
12-03-10 23:54:00 Vielleicht so?
Christoph Pönighaus
Drei weitere Versuche:
"debug (compile, 'cmd');" liefert "String (7) | cmd | compile",
"debug(compile)" liefert "String (7) | *variable* | compile" und
"debug(compile())" führt zu einem "Fatal error: Call to undefined function compile()".
Kommen wir so weiter?

Gruß
Christoph
13-03-10 07:17:58 Beispiel für debug mit cc_debug
Franz Holzinger
Am besten cc_debug von http://jambage.com/index.php?id=162 installieren.

Danach eine Zeile im PHP Code einfügen:

debug ($cmd, 'compile $cmd', __LINE__, __FILE__);
debug ($this->conf['addAttachment'], 'compile $this->conf[\'addAttachment\']', __LINE__, __FILE__);
13-03-10 09:38:41 Ausgabe debug
Christoph Pönighaus
Tausend Dank für die Geduld, aber ich fürchte die Ausgabe ist noch nicht die richtige oder nicht besonders aussagekräftig:

Mixed | compile $cmd | NULL
Mixed | compile $this->conf['addAttachment'] | NULL

Ich habe die oben angegebenen Zeilen ans Ende der class.tx_srfeuserregister_email.php gestellt.
Übrigens verwende ich weiterhin die cc_debug 1.0. Die Entwicklerversion brachte gar keine Ausgabe hervor.
15-03-10 21:40:58 addAttachment
Franz Holzinger
Wenn $this->conf['addAttachment'] den Wert NULL enthält, dann bedeutet dies, dass kein addAttachment im Setup gesetzt worden ist, Deshalb wird auch keine Datei an die Email angehängt.

cc_debug von jambage.com müsste aber auch funktionieren.

16-03-10 07:19:10 addAttachment = 1
Christoph Pönighaus
Wie ich oben bereits schrieb, zeigt der TS ObjectBrowser folgende Werte an:
---
[addAttachment] = 1 # you may modify here the conditions under which an attachment file will be added to the email
[cmd] = setfixed
[sFK] = APPROVE
[file] = fileadmin/list.tmpl
-----

Natürlich brachte auch das händische Setzen der Werte mittels typoscript im Setup nichts Neues. Bei der Diskussion möchte ich noch einmal daran erinnern, dass ein Attachment gesendet wird, dieses aber an die Admin-Mail angehängt wird.

Mmmh, wo ist der Haken? Ich befürchte ja noch immer ein Brett vor dem Kopf meinerseits.

Mal wieder vielen Dank für die Hilfe
Christoph
20-03-10 14:28:07 addAttachment Zusatz
Franz Holzinger
Es muss auch das Zusatz Setup für addAttachment untersucht werden:

debug ($this->conf['addAttachment.'], 'compile $this->conf[\'addAttachment.\']', __LINE__, __FILE__);

Es muss unbeding untersucht werden, ob die Variable $file richtig befüllt wird:

if ($this->conf['addAttachment'] && $this->conf['addAttachment.']['cmd'] == $cmd && $this->conf['addAttachment.']['sFK'] == $this->controlData->getFeUserData('sFK')) {
$file = ($this->conf['addAttachment.']['file'] ? $TSFE->tmpl->getFileName($this->conf['addAttachment.']['file']) : '');
debug ($file, 'compile $file', __LINE__, __FILE__);
}
20-03-10 19:27:10 Kein Fortschritt
Christoph Pönighaus
Vielen Dank für die geduldige Hilfe, die leider weiterhin nicht weiterhilft. Ich habe die Zeilen aus dem vorigen Post am Ende, aber vor dem schießenden "?>" eingefügt, die debug-Ausgabe ergänzt sich aber nur um einen Eintrag:
Mixed | compile $this->conf['addAttachment.'] | NULL

Daraufhin habe ich die Überprüfung die Zeile

debug ($file, 'compile $file', __LINE__, __FILE__);

an der Original-Stelle eingefügt, die den von Dir angegebenen Zeilen entspricht, erneut bleibt die Ausgabe für die Variable $file aus.

Wie blöd bin ich denn? Wenn Du selbst einmal testen möchtest, kann ich Dir auch die Login-Daten zukommen lassen. Es handelt sich eh um eine Test-Umgebung.

Vielen Dank
Christoph
22-03-10 08:59:18 TypoScript Object Browser
Franz Holzinger
Alternativ kannst du auch im TypoScript Object Browser nachsehen, was alles für addAttachment im Setup eingestellt worden ist.
Aber wenn laut Debug-Ausgaben "addAttachment." leer ist, dann fehlen die Detail Infos für die angehängte Datei (Attachment).
Es müsste ungefährt so aussehen:

addAttachment = 1
addAttachment.cmd = setfixed
addAttachment.sFK = APPROVE
addAttachment.file = fileadmin/datei.txt

22-03-10 10:11:15 Widerspruch
Christoph Pönighaus
Leider passt das nicht zusammen:
Wie bereits in einem vorigen Posting geschrieben, sind die Werte für addAttachment im Setup genau so gesetzt, wie gefordert.

Gleichzeitig bleibt die debug-Ausgabe aber leer. Irgendwie dreh ich hier doch noch an der falschen Schraube?! Gehe ich vielleicht beim Debugging falsch vor:
Die Erweiterung läuft, sonst hätte ich ja gar keine Ausgabe. Die von Dir genannten Werte für die debug-Ausgabe habe ich untereinander am Ende der lib/class.tx_srfeuserregister_email.php, aber noch vor dem schließenden "?>" eingefügt.
23-03-10 08:10:27 debug
Franz Holzinger
Nein, die debug Ausgaben müssen direkt im PHP Code an den richtigen Stellen eingefügt werden, an denen die Variablen auch gültig sind und Werte haben. Sonst macht das nämlich keinen Sinn.

23-03-10 09:34:43 debug
Christoph Pönighaus
Das habe ich versucht: Ohne den php-Code zu verstehen, ist das natürlich ein wenig schwierig. Ich habe mir ein paar Stellen herausgesucht, die mir sinnvoll erschienen.
Unter anderem habe ich die Zeie

debug ($file, 'compile $file', __LINE__, __FILE__);

an genau der von Dir vorgeschlagenen Stelle eingefügt. Dann erfolgt aber gar keine debug-Ausgabe. Stelle ich die Zeile ans Ende der php-Datei erfolgt zwar eine Ausgabe, dann hat die Variable aber anscheinend keinen Wert mehr.

Wann genau müsste den die debug-Ausgabe erfolgen? Beim Öffnen des Registrierungsformulars, beim Öffnen des Fenster zur Überprüfung der FE-User-Daten oder beim Öffnen der Bestätigungsseite? Dann brauche ich bei meiner hilflosen trial&error-Suche nicht jedesmal alle Möglichkeiten testen.

Und mal wieder: Besten Dank für Deine Geduld mit mir.
23-03-10 10:32:47 Position debug
Franz Holzinger
Das debug sollte immer vor den if-Anweisungen eingefügt werden. Durch die Prüfung der Variablen vor der if-Anweisung kann man feststellen, aus welchem Grund nicht in den dahinter liegenden Code verzweigt wird.
Die debug Anweisung wird erst sichtbar, wenn der entsprechende Programm Code aufgerufen wird. Die Funktion compile wird erst nach dem Speichern der Daten aufgerufen. Nur dann werden die debug-Ausgaben auch angezeigt.

23-03-10 16:00:50 Weiter keine Ausgabe
Christoph Pönighaus
Ich habe nun folgendes versucht: Die Zeile

debug ($cmd, 'compile $cmd', __LINE__, __FILE__);

habe ich nach dem Kommentar

// Processing records

und vor der folgenden if-Anweisung

if (is_array($DBrows)) {

eingefügt. Leider ist weiterhin keine "cc_debug-Bombe" in Sicht. Weder auf der register- noch auf der confirm-Seite.
23-03-10 19:06:38 cc_debug
Franz Holzinger
Wenn cc_debug nicht funktioniert, kann das daran liegen, dass entweder die IP Adresse nicht für debug-Ausgaben freigeschaltet worden ist, oder dass es einen HTML oder JavaScript Fehler auf der Seite gibt. Man kann auch cc_debug desinstallieren. Dann werden die debug Ausgaben auf der Seite direkt angezeigt. Alternativ über beko_debugster arbeiten. Die Befehle heißen dann aber nicht debug, sondern debugster.
23-03-10 23:21:47 Ausgabe cc_debug
Christoph Pönighaus
Manchmal sieht man den Wald vor lauter Bäumen nicht: Natürlich gibt es erst eine Ausgabe von cc_debug, wenn der Bestätigungslink der E-Mail an den FE-User geklickt wird. Erst dann werden ja (fälschlicher Weise) die Variablen mit Inhalt gefüllt.

compile $this->conf['addAttachment.']
String (8) cmd setfixed
String (7) sFK APPROVE
String (19) file fileadmin/list.tmp

und

String (19) compile $file fileadmin/list.tmpl

und

String (8) compile $cmd setfixed

Ich fürchte nur, dass diese Ausgabe uns nicht wirklich weiter bringt.

24-03-10 10:14:21 alles soweit ok
Franz Holzinger
Diese debug Ausgaben zeigen jetzt, dass das Setup soweit richtig ist.

Ich denke, es ist ein Fehler im Code, bei dem bei der Email für setfixed Administrator und Benutzer vertauscht worden sind. Ich arbeite gerade an der nächsten Version 2.6.0 von sr_feuser_register, die PHP 5 voraussetzt. Hier habe ich die Admin Email um HTML erweitert. Sende mir eine Email zu und ich schicke dir den neuen Code als Anhang. Danach solltest du es damit nochmals ausprobieren.
< Zurück zum Forum