Tipp: Eingabefelder per JavaScript prüfen

Hooks ermöglichen Ihnen die Ausführung beliebigen PHP-Codes während des Speicherns, Parkens, Veröffentlichens und Löschens jeglicher Inhaltstypen in webEdition.
Benutzeravatar
mausi
Senior Member
Beiträge: 449
Registriert: Di 27. Jan 2004, 16:17
Wohnort: Welver
Kontaktdaten:

Tipp: Eingabefelder per JavaScript prüfen

Beitragvon mausi » Fr 13. Aug 2010, 07:39

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
OMOC.interactive https://www.omoc.de/ - webEdition e.V. Gründungsmitglied & Ex Fördermitglied

Creutzburg
Senior Member
Beiträge: 425
Registriert: Do 1. Jan 1970, 02:00
Wohnort: Dresden
Kontaktdaten:

Re: Tipp: Eingabefelder per JavaScript prüfen

Beitragvon Creutzburg » Fr 13. Aug 2010, 12:58

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
http://www.xport.de – Internet-Agentur für Hotels
http://www.domainpreisvergleich.de – Domain-Preisvergleich inkl. Verfügbarkeits-Check – ist meine Wunschdomain noch frei, und wo registriere ich sie am günstigsten?

Benutzeravatar
mausi
Senior Member
Beiträge: 449
Registriert: Di 27. Jan 2004, 16:17
Wohnort: Welver
Kontaktdaten:

Re: Tipp: Eingabefelder per JavaScript prüfen

Beitragvon mausi » Fr 13. Aug 2010, 13:05

... 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 ...
OMOC.interactive https://www.omoc.de/ - webEdition e.V. Gründungsmitglied & Ex Fördermitglied

we:willRockYou
Senior Member
Beiträge: 919
Registriert: Fr 22. Mai 2009, 21:40
Wohnort: Berlin
Kontaktdaten:

Re: Tipp: Eingabefelder per JavaScript prüfen

Beitragvon we:willRockYou » Fr 13. Aug 2010, 13:25

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
EOF; //totally retired

Benutzeravatar
mausi
Senior Member
Beiträge: 449
Registriert: Di 27. Jan 2004, 16:17
Wohnort: Welver
Kontaktdaten:

Re: Tipp: Eingabefelder per JavaScript prüfen

Beitragvon mausi » Fr 13. Aug 2010, 13:28

... wieso melden? Poste es doch einfach!
OMOC.interactive https://www.omoc.de/ - webEdition e.V. Gründungsmitglied & Ex Fördermitglied

we:willRockYou
Senior Member
Beiträge: 919
Registriert: Fr 22. Mai 2009, 21:40
Wohnort: Berlin
Kontaktdaten:

Re: Tipp: Eingabefelder per JavaScript prüfen

Beitragvon we:willRockYou » Fr 13. Aug 2010, 13:29

Das war ganz offensichtlich ein kommerzielles Angebot. Nicht alles ist OpenSource. ;)
EOF; //totally retired

urlaubsland-polen
Senior Member
Beiträge: 420
Registriert: Mo 13. Nov 2006, 12:23
Wohnort: Olsztyn, zuvor Warszawa
Kontaktdaten:

Re: Tipp: Eingabefelder per JavaScript prüfen

Beitragvon urlaubsland-polen » Fr 13. Aug 2010, 13:50

... 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.

Benutzeravatar
mausi
Senior Member
Beiträge: 449
Registriert: Di 27. Jan 2004, 16:17
Wohnort: Welver
Kontaktdaten:

Re: Tipp: Eingabefelder per JavaScript prüfen

Beitragvon mausi » Fr 13. Aug 2010, 14:07

... 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 ;)
OMOC.interactive https://www.omoc.de/ - webEdition e.V. Gründungsmitglied & Ex Fördermitglied

urlaubsland-polen
Senior Member
Beiträge: 420
Registriert: Mo 13. Nov 2006, 12:23
Wohnort: Olsztyn, zuvor Warszawa
Kontaktdaten:

Re: Tipp: Eingabefelder per JavaScript prüfen

Beitragvon urlaubsland-polen » Fr 13. Aug 2010, 14:34

tja... ich bin leider kein Entwickler. Bekomme aber mit, wie engagiert das kleine Team arbeitet und wie es mit WE voran geht...

Benutzeravatar
mausi
Senior Member
Beiträge: 449
Registriert: Di 27. Jan 2004, 16:17
Wohnort: Welver
Kontaktdaten:

Re: Tipp: Eingabefelder per JavaScript prüfen

Beitragvon mausi » Fr 13. Aug 2010, 14:51

"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
OMOC.interactive https://www.omoc.de/ - webEdition e.V. Gründungsmitglied & Ex Fördermitglied

we:willRockYou
Senior Member
Beiträge: 919
Registriert: Fr 22. Mai 2009, 21:40
Wohnort: Berlin
Kontaktdaten:

Re: Tipp: Eingabefelder per JavaScript prüfen

Beitragvon we:willRockYou » Sa 14. Aug 2010, 10:17

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.
EOF; //totally retired

ThomasGoebe

Re: Tipp: Eingabefelder per JavaScript prüfen

Beitragvon ThomasGoebe » Sa 14. Aug 2010, 17:39

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


Zurück zu „Hooks“

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot] und 3 Gäste