Zum Inhalt springen

Powermail: ###POWERMAIL_ALL### ändern, wo?

Erstellt am 27. April 2008 · 16 Antworten · letzte Antwort am 6. Mai 2008

Tags: Powermail, Frage

einpraegsam.​net ·
DiePicknickerin schrieb

Kann es sein, dass er einfach überflüssigerweise das komplette Template nochmal parst...

Japp, einmal für den RTE und einmal im HTML Template - das macht schon Sinn, jedoch nur bedingt...

DiePicknickerin ·

Warum kann dann das Original-Template korrekt arbeiten?

Das tut doch auch nix anderes, als eine HTML-Struktur vorzugeben... o.O

Bleibt es also dabei, dass ich vorerst das tmpl_all.html nicht abändern kann?

einpraegsam.​net ·
DiePicknickerin schrieb

Bleibt es also dabei, dass ich vorerst das tmpl_all.html nicht abändern kann?

Du kannst das Template ändern wie du willst...

DiePicknickerin ·

:o naja, das hatte ich ja auf dem üblichen Weg versucht... Gibts noch einen heißen Tipp?
#paralyzed#

Aus den BE-Feldern dann ###POWERMAIL_ALL### rausnehmen und einzelne UIDs nehmen, oder wie?

Gruß

einpraegsam.​net ·
DiePicknickerin schrieb

:o naja, das hatte ich ja auf dem üblichen Weg versucht... Gibts noch einen heißen Tipp?
#paralyzed#

Aus den BE-Feldern dann ###POWERMAIL_ALL### rausnehmen und einzelne UIDs nehmen, oder wie?

Gruß

Das geht natürlich auch

DiePicknickerin ·

OK, ich habs gelöst - die Idee mit dem RTE war natürlich schon mal richtig. Ich hatte allerdings noch nicht die Definition Lists im RTE selbst erlaubt - daher noch die unnötige Umklammerung. Nachdem ich erstmal in der Ext. selbst gewühlt hatte, kam ich doch noch drauf:

im PageTS der Root-Seite hatte ich bereits Formatierungen für den RTE eingefügt. Aber im TS-Template noch nicht:

Also schnell noch

# do not wrap with <p...>:
lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.encapsTagList = dl, dt, dd, cite, div, p, pre, hr, h1, h2, h3, h4, h5, h6,table,tr,td

und 
#allowed tags in RTE-Fields:
lib.parseFunc_RTE.allowTags = dl, dt, dd, b,i,a,img,br,div,center,hr,sub,sup,p,strong,em,li,ul,ol,blockquote,span,h1,h2,h3,h4,h5,h6,acronym,abbr;

Und dann klappts auch mit dem Template...

Danke nochmal für die Geduld ;-)

einpraegsam.​net ·
DiePicknickerin schrieb

2. Ich möchte gerne noch eine mx-Records-Abfrage beim Email-Check haben, damit so Sachen wie foo@foo.bar nicht mehr ankommen können...

Habe ich erstellt - hier der Workarround bis zur nächsten Version:

1. Neue Funktion in die Datei lib/class.tx_powermail_functions_div.php

// Function checkMX() checks if a domain exists
	function checkMX($email,$record = 'MX') {
		list($user,$domain) = split('@',$email); // split email in user and domain
		
		if (checkdnsrr($domain,$record) == 1) return TRUE; // return true if mx record exist
		else return FALSE; // return false if not
	}

2. Funktion emailCheck() mit neuem Code ersetzen - Datei pi1/class.tx_powermail_mandatory.php

function emailCheck() {
		if($this->pibase->cObj->data['tx_powermail_sender'] && is_array($this->sessionfields)) { // If email address from sender is set in backend
			if($this->sessionfields[$this->pibase->cObj->data['tx_powermail_sender']]) { // if there is content in the email sender field
				if(!t3lib_div::validEmail($this->sessionfields[$this->pibase->cObj->data['tx_powermail_sender']])) { // Value is not an email address
					$this->sessionfields['ERROR'][str_replace('uid','',$this->pibase->cObj->data['tx_powermail_sender'])][] = $this->pi_getLL('error_validemail'); // write error message to session
				} else { // Syntax of email address is correct - check for MX Record
					if( !$this->div_functions->checkMX( $this->sessionfields[$this->pibase->cObj->data['tx_powermail_sender']] )) $this->sessionfields['ERROR'][str_replace('uid','',$this->pibase->cObj->data['tx_powermail_sender'])][] = $this->pi_getLL('error_nomx'); // write error message to session
				}
			}
		}
	}

Grüße, Alex

DiePicknickerin ·

Vielen Dank, Alex.

Die beiden Code-Abschnitte habe ich integriert und auch das funktioniert. Jetzt bleibt lediglich, noch die Fehlermeldung an zu passen.

SUPER!

DiePicknickerin ·

Ja, das hattest du ja schon so schön vorbereitet 😉

Du hattest in der class.tx_powermail_mandatory.php schon eingefügt: $this->pi_getLL('error_nomx');

Einfach neue Labels erstellen nach dem vorhandenen Muster:

<label index="locallangmarker_error_validemail">This is not a valid email address:</label>
<label index="locallangmarker_error_nomx">This email address seems to be not available:</label>

hat aber leider noch nicht geholfen. Ich bekomme nach Absenden des Formulars zwar: Bitte beachten Sie folgende Fehlermeldungen:
und eine ungeordnete Liste, aber der Listenpunkt für die Email-Fehlermeldung ist leider leer.

(innerhalb der locallang.xml für Deutsch und Englisch erstellt, Französich und niederländisch kann ich leider nicht, die haben daher die englischen gekriegt.)

Ich habe auch die
<label index="JSvalidation_label_error_nomx">This email address seems to be invalid or not available</label> eingefügt für die JS-Prüfung, aber da passiert auch nix.

Wo ist mein Fehler?

Innerhalb von TS habe ich dagegen gar keine Änderung vorgenommen. Wo würde ich das tun?

Gruß, nochmals auf Hilfe hoffend...

einpraegsam.​net ·

Sorry, hatte ich vergessen zu schreiben - das muss noch in die pi1/locallang.xml:

<label index="error_nomx">Email address don't exist</label>

Bei Interesse kann ich dir auch die Powermail 1.2.0 beta zur Verfügung stellen, dort ist das (und noch einiges mehr) schon mit drin...