WCF 2 Programmier-Tutorials - Übersicht

  • Das lässt sich nicht bestreiten, dass mein eigener Cache quasi überflüssig ist :D Mir ging es allerdings erstes nur um den Lerneffekt und zweitens (und wichtigeres) gerade um die Frage, ob man Objekte in den Cache einschleusen kann. Ich habe es bis jetzt leider nicht hingekriegt :( In welcher Form wären dann die Objekte im Cache drin? Wären sie wie eine Art von Arrays in den Cache gespeichert oder wie kann man sich das vorstellen?


    Achja, bevor ich es noch vergesse: Danke für deine Hilfe :)

  • ir ging es allerdings erstes nur um den Lerneffekt und zweitens (und wichtigeres) gerade um die Frage, ob man Objekte in den Cache einschleusen kann


    Ist auf jeden Fall möglich! Müsste wie in meinem genannten Beispiel funktionieren, wobei um diese Uhrzeit auch meinerseits Irrtürmer vorliegen können. ^^

    In welcher Form wären dann die Objekte im Cache drin? Wären sie wie eine Art von Arrays in den Cache gespeichert oder wie kann man sich das vorstellen?


    Die Rückgabe des CacheBuilders wird durch die PHP-Funktion serialize gejagt und bei Abruf der Daten entsprechend durch unserialize.

  • Moin,


    mal eine kleine Frage :)


    Ich habe einen EL auf finalizeAction@wcf\data\user\UserProfileAction und grundsätzlich funktioniert auch alles, wie es soll. Aber wie zum Geier wirft man hier eine UserInputException richtig? Meine Versuche scheinen zu scheitern, da das Formular anstandslos gespeichert- und meine Exception scheinbar ignoriert wird. Zumindest dann, wenn ich den üblichen Weg über Try-/Catch-Block sowie $eventObj->errorField und $eventObj->errorType gehe.


    Werfe ich die Exception so, erhalte ich nur die Meldung, Parameter “xxxxx” is missing or invalid. - Das Feld jedoch existiert definitiv.

  • Die Meldung ist doch richtig? Wenn du da eine Exception schmeißt ist der Parameter doch ungültig?!

    "A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP" — Leonard Nimoy

  • Du hast grundsätzlich Recht. Dann stelle ich meine Frage anders: Wie kann ich bei einer "fehlerhaften" Angabe im o.g. Event das entsprechende Feld markieren? Denn bei einer Fehleingabe z.B. im G+ Profilfeld wird auch eine UserInputException gefeuert, die unter dem beanstandeten Feld wcf.user.option.error.validationFailed anzeigt.

  • Wäre es möglich, dieses Thema eventuell auch anzupinnen, oder mit dem "Dokumentation"-Thema irgendwie zu vereinen ? Die Übersicht ist recht praktisch und sie geht leider in den anderen Themen unter.

    • Official Post

    Ein endloses Thema ist kaum dafür geeignet, Probleme bei der Entwicklung vorzutragen.


    Davon ab lieferst du ungenügende Informationen, finalizeAction ist kein aussagekräftiges Event ohne die Methode zu kennen, auf die du dich konkret beziehst. Des weiteren ist eine Validierung an dieser Stelle unsinnig, denn wie der Name finalizeAction impliziert, wurden bereits alle Änderungen durchgeführt.

  • Speziell geht es darum, vor dem Speichern der Profilinformationen eine Validierung durchzuführen und bei einem Fehler wie bereits gesagt, das entsprechende Feld zu markieren.


    Dazu prüfe ich bei dem EL erst einmal, welche Action ausgeführt wird:


    if ($eventObj->getActionName() == 'save') {


    Das funktioniert prinzipiell auch. Ich hatte es ja auch zwischenzeitlich mit initializeAction probiert, aber das Ergebnis bleibt das Selbe. Es öffnet sich nur ein Popup mit Parameter “xxxxx” is missing or invalid..


    Da ich vor der UserInputException über $eventObj->getParameters() prüfe, ob der gewünschte Parameter vorhanden ist, verstehe ich die Meldung um so weniger.

    • Official Post

    Das hat etwas damit zu tun, wie \wcf\system\exception\UserInputException in der AJAX-API behandelt wird: https://github.com/WoltLab/WCF…ction.class.php#L170-L178


    Deine Validierung müsste über die Options selbst laufen, da diese verwendet werden um die Eingaben zu validieren und entsprechende Fehler zurückzugeben: https://github.com/WoltLab/WCF…fileAction.class.php#L241

  • Moin,


    Speziell geht es darum, vor dem Speichern der Profilinformationen eine Validierung durchzuführen und bei einem Fehler wie bereits gesagt, das entsprechende Feld zu markieren.


    Ich mache es so und es funktioniert zumindest hier .


  • Naja, was mich daran irritiert ist, dass du dich scheinbar in ein Form eingehangen hast, wo es aber eigentlich gar keine Forms-Klasse gibt. Zumindest nicht bei der Profilbearbeitung.


    Oder hab ich da etwas übersehen?

  • Ja, ich höre auf eine Form (mit Klasse). Und da Du oben von "Formular" schreibst, dachte ich ... ;)

    Gruß, Udo

  • Grundsätzlich bekomme ich das innerhalb eines normalen Formulares hin ;) Ich hänge aktuell nur an diesem Inline-Profilbearbeitungsformular. Danke trotzdem ;)

  • Schon wieder ich...


    Ich versuche gerade vergebens, einen Bilderupload umzusetzen, scheitere aber bereits am Javascript und finde einfach den Fehler nicht...



    ====


    JavaScript
    WCF.Namespace1.Namespace2.Upload('Yolo', 'Swag');


    Das Grundprinzip und die Funktionsweise hab ich durchaus verstanden (schätze ich). Aber... Aus irgendeinem Grund passiert gar nichts :/ Ich habe testweise mal console.log(var1); in init geschrieben, aber nada.


    Habe ich einen Fehler gemacht, oder vergesse ich hier irgendetwas?!

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!