FormBuilder verschachtelte Tab menu

  • Affected App
    WoltLab Suite Core

    Hallo,

    vielleicht mache ich auch etwas falsch, aber mir scheint als wäre es nicht möglich zwei Tab Menüs mit dem Formbuilder ineinander zu verschachteln. Laut Code ist eine Verschachtelung vorgesehen, die Validierung in FormContainer.validateChild() verhindert das aber.

    Zum einen wird diese Überprüfung nie aufgerufen, da bereits die Überprüfung auf ITabFormContainer alle anderen children rausschmeißt

    Code: lib\system\form\builder\container\FormContainer.class.php
    if ($child instanceof ITabMenuFormContainer) {
                    if ($this->getParent() instanceof ITabMenuFormContainer) {
                        throw new \InvalidArgumentException("Tab menus can only be nested once.");
                    }
                }

    Diese Überprüfung ist eigentlich die entscheidende, übersieht aber, dass zwischen zwei ITabMenuFormContainer zumindest ein ITabFormContainer steht.

    Code: lib\system\form\builder\container\FormContainer.class.php
    if ($child instanceof ITabMenuFormContainer) {
                $parent = $this;
                while (!($parent instanceof IFormDocument) && $parent = $parent->getParent()) {
                    if ($parent instanceof ITabMenuFormContainer) {
                        throw new \InvalidArgumentException("A tab menu container may only have another tab menu container as a parent, not as an earlier ancestor.");
                    }
                }
            }

    Mein Code wäre folgender:

  • Selbst wenn es funktionieren würde, kann man damit scheinbar nicht die Optik des Seiten- bzw. Box-Formulars nachbauen, da die CSS-Klasse "tabMenu" fix ist und die größere Schrift bewirkt:

Participate now!

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