Zum Inhalt springen

Powermail Validation Problem

Erstellt am 6. Mai 2009 · 23 Antworten · letzte Antwort am 19. März 2010 · Seite 1 von 2

Tags: Frage

T3_NUTZER ·

So, habe jetzt mal RealUrl ausgeschaltet und siehe da es funktioniert (übrigens auch deutsche Texte für die Fehlermeldungen!). Ein Blick in den HTML-Quellcode zeigt folgendes:

<script src="index.php?id=43&amp;type=3131" type="text/javascript"></script>

Schalte ich RealUrl wieder ein geht gar nichts. Binde ich die Datei validation.js manuell ein funktioniert die Überprüfung, aber englische Fehlertexte.

Manuelle Einbindung:

page.includeJS.file12 = typo3conf/ext/powermail/js/mandatoryjs/validation.js
kitze ·

Hallo,

bin neu hier und habe die selben Probleme wie mein Vorredner.

Mit seinem Workaround (manuelle Einbindung der validation.js) habe ich die JS Validierung auch zum Laufen bekommen. Allerdings zersägt er mir dann das Class-Attribut des neu erzeugten Div's. Hier kommt es wohl zu keiner Ersetzung der Marker.

<div id="advice-required-uid9" class="<!-- ###DIV_CLASS### -->powermail_mandatory_js<!-- ###DIV_CLASS### -->" style="">This is a required field.</div>

Der Lösungsversuch mit dem Ändern der ext_typoscript_setup.txt hat bei mir keine Wirkung gehabt. Ich gehe mal davon aus, dieser Ansatz bezog sich auf eine ältere Version von Powermail. (http://forge.typo3.org/issues/show/2710)

Gibt es hier mittlerweile vielleicht neue Lösungsmöglichkeiten?

Viele Grüße, Philipp

Typo3 4.1.5
Powermail 1.4.18
RealUrl 1.4.0

einpraegsam.​net ·

Hi,

ich würde der Sache auf den Grund gehen, warum das erzeugte JS nicht funktioniert. Das kann ein paar Fehlerquellen haben:
- Wenn Realurl: Ist der Type 3131 definiert?
- Gibt es Extensions die die HTML Ausgabe manipulieren (TIDY, htmlcleaner, etc...) - testweise deaktivieren
- Wie sieht das JS aus, wenn man es manuell aufruft?

kitze ·

Hallo Alexander,

danke für deine schnelle Antwort. Ich versuche mal Antworten auf deine Fragen zu finden.

einpraegsam.net schrieb

- Wenn Realurl: Ist der Type 3131 definiert?

Im ObjectBrowser ist der Type 3131 definiert. Auch die Page 3131 ist hier zu finden. Diese verweist auf das Template powermail/js/mandatoryjs/validation.js. Auch im Firebug wird dann im HTML-Header die Datei aufgeführt. Natürlich mit "schöner" URL. Sollte also dem Browser zur Verfügung stehen.

einpraegsam.net schrieb

- Gibt es Extensions die die HTML Ausgabe manipulieren (TIDY, htmlcleaner, etc...) - testweise deaktivieren

Hm, dazu kann ich noch nichts sagen, da ich noch nicht alle Extensions kenne, die im Projekt eingesetzt werden.

einpraegsam.net schrieb

- Wie sieht das JS aus, wenn man es manuell aufruft?

Du meinst, wenn die Datei manuell eingebunden wird? Wie im letzten Post beschrieben funktioniert dann das Validieren an sich. Lediglich das Class-Attribut ist nicht korrekt. Dieses brauche ich aber, da ich die Farbe ändern möchte.

Gruß, Philipp

einpraegsam.​net ·
kitze schrieb

Du meinst, wenn die Datei manuell eingebunden wird?

Nein, wenn du die URL herauskopierst aus dem Quelltext und samt deiner URL in deinen Browser einträgst...

kitze ·
einpraegsam.net schrieb
kitze schrieb

Du meinst, wenn die Datei manuell eingebunden wird?

Nein, wenn du die URL herauskopierst aus dem Quelltext und samt deiner URL in deinen Browser einträgst...

... dann bekomme ich die JavaScript-Datei zurückgeliefert. So wie es sein sollte, richtig?

Die mit RealUrl unbenannte URL lautet formular.html?type=3131. Ohne RealUrl entsprechend index.php?id=2432&type=3131.

Was mir gerade neu auffällt: die obige Datei wird VOR allen anderen Powermail-JS-Dateien eingebunden. Ist das wichtig?

Danke für deine Zeit, Gruß

koRn ·

Hi,

ich habe momentan ein ähnliches Problem, dass ich Powermail nicht in Verbindung mit RealURL verwenden kann. Bei der Deaktivierung von RealURL wird die Verlinkung index.php?id=X&type=3131 richtig aufgelöst. Bei der Aktivierung hingegen funktioniert der Link, der zur JS führen soll, nicht. Im Quelltext sieht der Link in etwa so aus "/unternehmen/kontakt.html?type=3131".
Verschiedene Varianten, wie Autoconf an/aus bei jewails Powermail / Realurl und manuelle eine RealURL Konfiguration, bezogen auf diesen Beitrag http://www.typo3forum.net/forum/suchmaschinenfreundliche-urls-seo/42907-realurl-config-f-r-type-9713-chgallery-powermail-3131-a.html, habe ich bereits ohne Erfolg ausprobiert.

Soweit ich es aber auf deiner Seite gesehen habe, funktioniert die Konfiguration aber in der Art, wie ich sie ebenfalls haben möchte. Es wird der Link http://www.einpraegsam.net/validation/kontakt/kontaktformular.html korrekt aufgelöst. Welche Schritte sind hierbei zu beachten ?

Typo3: 4.3.0
PM: 1.5.3
RealURL: 1.7.0

//update

Nun funktioniert es soweit, dass bei mir der Link zur JS-Datei (validation.js) richtig gesetzt und aufgelöst wird. Dennoch funktioniert die Überprüfung nicht. Alternativ habe ich RealURL deinstalliert und es mit Simulate Static URLs getestet. Genau das gleiche Resultat. Link wird richtig gesetzt, Validierung funktioniert nicht. Das heißt, dass ich immer noch auf der gleichen Seite ohne Veränderung, nach einem Klick auf den Absendebutton, verharre.

fragile74 ·

Ich schließe mich hier mal kurz an.

Meine Vorschreiber haben evtl. auf Ihrer TYPO3 - Installation folgendes Problem:
Die Extension powermail liefert den Validation-Javascriptcode als TYPO3 Seite des Typ(e)s 3131 aus. Um Probleme mit RealURL zu vermeiden, setzt die Extension eine RealURL Autoconfig-Option, die in den preVars für diesen Seitentyp einen Pfadtyp "validation" erzeugt.

Problem hierbei : Setzt man default... zur Erzeugung virtueller Dateinamen auf 1, wird die Javascript-TYPO3-Seite der Extension fälschlicherweise mit .html ausgeliefert -> unschön bzw. strenggenommen falsch.

Ein weiteres Problem entsteht, wenn man z.b. (was durchaus sinnvoll sein kann, um z.b. von Usern verhuntzten RTE-Code zu entschärfen) im Installtool [FE][Tidy] auf 1, fügt Tidy bei der Auslieferung des Seitentyps 3131 HTML-Seitenauszeichnungen hinzu. Damit wird das Javascript nicht mehr als solches erkannt und die Validierung schlägt komplett fehl.

Nun mag man argumentieren, tidy etc. wäre nur während der Entwicklung sinnvoll einzusetzen, die Realität ist, dass viele TYPO3-Admins/Entwickler aus oben genanntem Grund vor der Auslieferung von TYPO3-Seiten diese durch einen Cleaner laufen lassen, der dann solche Probleme verursacht...

Frage an einprägsam.net: Siehst du eine Alternativlösung, so daß deine Extension auch mit Cleaner-tools funktioniert ?

d4vid ·

Bei uns hat es funktioniert, wenn man die Seite mit dem Mailformular nicht direkt unterhalb der Root-Seite einfügt, sondern eine Ebene darunter.

D.h. ich erstelle ein Mailform-Seite und erstelle in dieser die Powermail-Seiten.

fragile74 ·

Hi,
du meinst, wenn ich tidy einsetze und powermail ? - Habs grad getestet und es geht nicht.
Das Problem ist, daß die Seite als Content-Type text/html; charset=utf-8 ausgeliefert wird und damit nciht als Javascript-"Include" gilt

koRn ·
einpraegsam.net schrieb

Type 3131 definieren dann läufts...

type ist in realurl_conf.php definiert, aber leider funktioniert es immer noch nicht. Sobald ich realurl auf der Seite selbst deaktiviere funktioniert die Validierung. Neue Tipps ? URL zum Skript wird richtig aufgelöst.

 'preVars' => array(
        array(
            'GETvar' => 'no_cache',
            'valueMap' => array(
     'no_cache' => 1,
   ),
            'noMatch' => 'bypass',
            ),
        
		array(
   'GETvar' => 'type',
        	'valueMap' => array (
            	'validation' => '3131',
        	),
        	'noMatch' => 'bypass',
        ),
		
		),
koRn ·

So, die Lsg. ist endlich da.
Erster Fehler meinerseits war, dass ich die Validierung mit der eigentlich Überprüfungsseite aller eingegebenden Daten verwechselt habe . Meine Realurl Konfiguration funktioniert somit nach den oben aufgeführten Änderungen einwandfrei. Der eigentliche Fehler war in der .htaccess vorhanden. Aufgrund einer nachgeschalteten Statistiksoftware, die die Logdateien auswertet, entspricht diese Datei nicht den Standardvorgaben aus den Beispielen zu RealURL. Nach Änderung der letzten Zeile "RewriteRule .* index.php [L]" werden die Parameter nun auch richtig übergeben.
Dennoch danke für die Hilfe !