Posts by Fighter456

    1. Create a form like this and load it via FormBuilderDialog:

    PHP
    $dialog = DialogFormDocument::create('myDialog');
    $dialog->appendChild(HiddenFormField::create('test')->value('myValue'));
    $dialog->build();
    return $dialog;



    2. Submit the dialog and take a look at the data submitted by the browser to the server:

    Code
    {"actionName":"myAction","className":"wcf\\data\\test\\TestAction","":"","parameters[formId]":"myDialog"}


    Expected:

    The hidden input field will be visible in the POSTed data.


    Current:

    The hidden input field is missing the POSTed data.


    Tested with d4569269@master.

    Hello,


    I am trying to create and validate a form using DialogFormDocument. The form gets created during a method in a class inheriting AbstractDatabaseObjectAction. This method furthermore gets called by using the WoltLabSuite/Core/Form/Builder/Dialog.


    My problem is that the FormFieldValidator never gets called and the input therefore never gets validated. The documentation does not state out any information about the validation process using DialogFormDocument.


    I've tried to store the form in a class variable (and then call validate()) instead of a local one but as the class gets new instantiated during the submittment of the form the created PHP dialog is not available anymore.



    So what's the correct way? What am I missing?

    Wenn es mal dazu kommen sollte, das ich bei einem Kunden eine weiße, unerklärliche Seite habe und ich die Vermutung habe, das die Unterdrückung des Autoloaders mir etwas verschweigt, kann ich die Unterdrückung der Fehlerausgabe temporär aufheben.


    Als Plugin-Entwickler entwickelt man, wie Alexander schrieb, im Normalfall (lokal und) mit einer IDE, die einem diese Fehler bereits während der Entwicklung visuell anzeigt. Daher kann ich mit „Wird nicht behoben” und der Erklärung von Alexander voll und ganz leben. Die Kommentare im Quellcode haben mich das zwar schon erahnen lassen, aber ich wollte sicher sein, da diese Änderung erst in der neusten Suite 5.2 Einzug erhalten hat und die Unterdrückung davor nicht stattgefunden hat.

    This topic made me aware of it and I started looking for the cause:

    The autoloader of the Suite Core suppresses any error caused by missing classes or interfaces that are not correctly imported or implemented.


    Traceability:

    • Use an interface in a class without importing it via use
    • Use an interface in a class with importing it via use but do not add all methods required by the interface


    With the currently used @include_once(…) you'll receive a white page. With include_once(…) (notice the missing @-supressment) you'll get the correct error message displayed. But simply removing the @-supressment seems to be not the solution as some other errors occurs1.


    Quote

    Fatal error: Class kpps\page\ShopPage contains 2 abstract methods and must therefore be declared abstract or implement the remaining methods (kpps\page\ITest::setFoo, kpps\page\ITest::getBar) in D:\xampp\htdocs\products52\shop\lib\page\ShopPage.class.php on line 20


    1:

    For complete consistent dialogs it should be possible to submit WoltLabSuite/Core/Ui/Confirmation dialogs with pressing the enter key while being focussed in a supported input element as introduced for any other dialog with #2480.


    At first glance:

    The current implementation of WoltLabSuite/Core/Ui/Confirmation lacks the required _dialogSubmit() method and the confirm button the data-type="submit" attribute.

    i-MSCP, you are completely wrong. Black Star changed the link assigned to the logo (if you click on it) to a specific forum as he stated out in first post. He does not want to change the logo itself.


    Black Star, please take a look at the Custom Templates article in the help. Take a look at the „Enabling the Custom Templates” section of the linked article. Has your style a non-standard template group assigned? If yes, then remove the copy of the pageHeader template from it. Otherwise I think you edited the mentioned template manually in the file system.