Seite 1 von 1

Tipp: Eingabefelder per JavaScript prüfen

Verfasst: Fr 13. Aug 2010, 07:39
von mausi
Hallo!

Ich stand neulich vor der Aufgabe zwei Felder in einer Objektklasse auf 'oder' zu prüfen. Hier war es nötig entweder einen deutschen oder einen niederländischen Titel einzugeben. Auf keinen Fall keinen. Hier meine Lösung per Hook (in /webedition/we/include/we_hook/custom_hooks/weCustomHook_publish.inc.php), für die ich recht lange im we-Quelltext stöbern musste:

Code: Alles auswählen

<?php
	function weCustomHook_publish($param) {	
?>
<script type="text/javascript">
	var error=0;
// aktive Framenummer einlesen
	var framennr=top.weEditorFrameController.ActiveEditorFrameId;
// Feldnamen zusammenbauen
	var feld1='we_<?php $we_doc = $GLOBALS["we_doc"]; print $we_doc->Name; ?>_input[titel_de]';
	var feld2='we_<?php $we_doc = $GLOBALS["we_doc"]; print $we_doc->Name; ?>_input[titel_nl]';
	
	framelink=parent['rframe']['bm_content_frame']['multiEditorEditorFramesets'][framennr][1];
	if(framelink.document.getElementsByName(feld1)[0]) if(framelink.document.getElementsByName(feld1)[0].value=='' && framelink.document.getElementsByName(feld2)[0].value=='') error=1;

// Nach dem Umschalten der Tabs ist die Framenummer anders. Warum weiß ich nicht ...
	framelink=parent['rframe']['bm_content_frame']['multiEditorEditorFramesets'][framennr][2];
	if(framelink.document.getElementsByName(feld1)[0]) if(framelink.document.getElementsByName(feld1)[0].value=='' && framelink.document.getElementsByName(feld2)[0].value=='') error=1;

// Fehler melden
	if(error==1) alert('Fehler: Bitte einen deutschen oder einen niederländischen Titel angeben!');
</script>
<?php } ?>
Das Javascript ist bestimmt nicht das sauberste, aber es tuts. Man kann noch mehr Abfragen rein basteln. Z.B. ob es sich um ein Dokument oder Objekt handelt bekommt man mit

Code: Alles auswählen

			var _EditorFrame = top.weEditorFrameController.getActiveEditorFrame();
			_EditorFrame.getEditorContentType() == "text/webedition" oder "objectFile"
heraus. Weitere Funktionen findet man in der /webedtion/multiEditor/EditorFrameController.php ...

ps. Die Aktivierung der Hooks in den Einstellungen nicht vergessen ;)

ga

Re: Tipp: Eingabefelder per JavaScript prüfen

Verfasst: Fr 13. Aug 2010, 12:58
von Creutzburg
Wird denn das Objekt trotzdem erstmal fehlerhaft veröffentlicht? Meines Wissens werden doch die Hooks erst nach dem Veröffentlichen ausgeführt, oder?

Gruß,
Alex

Re: Tipp: Eingabefelder per JavaScript prüfen

Verfasst: Fr 13. Aug 2010, 13:05
von mausi
... stimmt, dass hätte ich dabei schreiben sollen ;) Zudem: das hier gilt nur für die Veröffentlichung, nicht für das Speichern ... d.h. dafür müsste man den Code dort auch einfügen ...

Re: Tipp: Eingabefelder per JavaScript prüfen

Verfasst: Fr 13. Aug 2010, 13:25
von we:willRockYou
Anzeige:

Code: Alles auswählen

Wer etwas benötigt um das Speichern in Objekten und Dokumenten nach Gültigkeitsprüfung zu unterbinden kann sich gerne bei mir melden.

http://we.willrockyou.net/
:D

Re: Tipp: Eingabefelder per JavaScript prüfen

Verfasst: Fr 13. Aug 2010, 13:28
von mausi
... wieso melden? Poste es doch einfach!

Re: Tipp: Eingabefelder per JavaScript prüfen

Verfasst: Fr 13. Aug 2010, 13:29
von we:willRockYou
Das war ganz offensichtlich ein kommerzielles Angebot. Nicht alles ist OpenSource. ;)

Re: Tipp: Eingabefelder per JavaScript prüfen

Verfasst: Fr 13. Aug 2010, 13:50
von urlaubsland-polen
... und so ist es richtig. Die WE-Entwickler investieren eine Unmenge Zeit, um das Programm kostenlos anzubieten. Kostenpflichtiger Service rund um das Opensource-Produkt ist die einzige Chance, sich den Aufwand etwas bezahlen zu lassen. Ich bin dafür, auch wenn ich dafür etwas in die Kasse greifen muss. :shock:

Grundfunktionen kostenlos ... Erweiterungen und Service gegen Entgelt.

Re: Tipp: Eingabefelder per JavaScript prüfen

Verfasst: Fr 13. Aug 2010, 14:07
von mausi
... ok, dann macht nen Shop auf, wo ihr eure Lösungen verkauft. Für mich ist das hier ein Diskussionsforum in dem man Probleme und Lösungen bespricht, gegenseitig sich hilft und kein Basar! Da stelle ich meine Frage lieber an einen der Entwickler selber ;)

Re: Tipp: Eingabefelder per JavaScript prüfen

Verfasst: Fr 13. Aug 2010, 14:34
von urlaubsland-polen
tja... ich bin leider kein Entwickler. Bekomme aber mit, wie engagiert das kleine Team arbeitet und wie es mit WE voran geht...

Re: Tipp: Eingabefelder per JavaScript prüfen

Verfasst: Fr 13. Aug 2010, 14:51
von mausi
"Bekomme aber mit, wie engagiert das kleine Team arbeitet und wie es mit WE voran geht..."
... in der Tat. Ich bin leider auch kein WE-Entwickler, da ich mir die Arbeit am WE-Projekt nicht zutraue. Auch wenn ich webEdition e.V. Gründungsmitglied bin, kann ich leider recht wenig dazu beitragen (trage aber fleißig Bugs ein). Aber das ist OT. Will damit nur sagen, dass ich bestimmt kein "Ich schau mal ins Forum und sauge andere aus"-Typ bin. Dazu bin ich a. viel zu lang schon hier und b. poste ich meine Lösungen, wenn ich welche habe. Alles was nicht 500 Zeilen hinaus geht, progge ich lieber selber (so lernt man wenigstens das System kennen). Der Thread hier beruhte ja übrigens auch auf keine Fragestellung ;)

Ich denke, dass sollte nun genug zum Thema sein ...

ga

Re: Tipp: Eingabefelder per JavaScript prüfen

Verfasst: Sa 14. Aug 2010, 10:17
von we:willRockYou
mausi, im Prinzip kann mir Deine Meinung ja egal sein, aber falls Du mit...
mausi hat geschrieben:Will damit nur sagen, dass ich bestimmt kein "Ich schau mal ins Forum und sauge andere aus"-Typ bin. Dazu bin ich a. viel zu lang schon hier und b. poste ich meine Lösungen, wenn ich welche habe.
...sagen willst, dass ich so ein Typ bin, leidest Du wohl nicht nur leicht unter Realitätsverlust. Hast du eine Ahnung wie viel Zeit ich in dieses Projekt investiere? 1510 allergrösstenteils helfende Postings hier im Forum, Weiterentwicklung am WE-Core, Moderation der Bugbase, seit kurzem auch Moderation des Forums und Erweiterung der Online-Dokumentation...

Im übrigen würde ich Dich bitten (als Nutzer, nicht als Mod) mit gutem Beispiel voranzugehen und den Link aus Deiner Signatur zu entfernen. Im Rahmen kostenloser Hilfestellung ist der ja wohl ziemlich überflüssig. :P
Der Thread hier beruhte ja übrigens auch auf keine Fragestellung ;)
Und ich habe Dir auf keine Frage geantwortet. Sondern ergänzend hinzugefügt, dass, falls jemand Deinen Ansatz nicht ausreichend findet, ich etwas umfangreicheres anbieten könnte. Ich liefere im übrigen keine fertigen Scripte. Ich unterstütze Agenturen und Entwickler bei komplexen Problemen und Erweiterungen. Ein fertiges Script, würde es nicht einmal geben. Ich verkaufe Know-How. Und speziell in diesem Fall stecken hinter diesem Know-How bisher mehr als 11 Stunden Recherche und Testing. Wofür dieser Aufwand? Exakt! Um es zu verkaufen. Denn im Gegensatz zu Dir setze ich keine WE-Projekte für Endkunden um. Meine Kunden sind Agenturen die genau solche Features benötigen.

Im übrigen bin ich Dir dankbar, dass Du mir die Möglichkeit gibst, weiter auf Details meiner Lösung einzugehen. 8)

Code: Alles auswählen

- Pflichtfelder in Dokumenten
- Inhaltsvalidierung in Dokumente und Objekten (z.B. Prüfung auf C&P aus Word und OpenOffice.org)
- Unerbinden des Speicherns mit Fehlermeldung
- Funktioniert in allen Reitern, nicht nur im Bearbeiten-Reiter
- Updatesicher, keine Manipulation von Core-Dateien
Ich denke, dass sollte nun genug zum Thema sein ...
Das war es allerdings schon nach Maik's erstem Beitrag hier.

Re: Tipp: Eingabefelder per JavaScript prüfen

Verfasst: Sa 14. Aug 2010, 17:39
von ThomasGoebe
Hey, ruhig Blut ihr beiden!

Hier habt ihr glaube ich klassisch aneinander vorbei geredet.

@Daniel: mausi hat m.E. gedacht, dass ihm die "ich bin ein Typ der alles saugt"-Mentalität unterstellt worden ist. Und da hat er drauf geantwortet, dass er keines Falls so denkt. Du warst also gar nicht gemeint - Munitionsvergeudung ;-)

Was nun das Thema "Werbung für eigene Leistungen im Forum" angeht, so gilt es hier einen sinnvollen Umgang zu finden. Deinen Post mit der kleinen Anzeige fand ich durchaus noch im Rahmen, allerdings kann ich auch verstehen, dass es in diesem Unterforum jemand nicht so passend findet.

Also werden wir in nächster Zeit einmal schauen, wie sich sinnvoll eine Art Angebotsforum einrichten lässt, in dem rechtlich sauber auch die zu Recht zu bezahlenden Dienstleistungen angeboten werden können.
Es gilt hier allerdings, gut zu trennen, denn der webEdition Verein wird solche Leistungen nicht anbieten.

Also: geniesst das Wochenende und seid wieder Freunde!

Gruß
Thomas