Showon und Hidden funktionieren nicht

  • Fehlerbeschreibung

    Hallo liebes Forum,


    ich bin zur Zeit dabei, an einer Joomla!-Komponente zu schreiben und stieß letzens auf einen Fehler, der mir wirklich Kopfzerbrechen bereitet hatte. Ich hatte einige Leute privat angeschrieben dafür-aber das ist nicht der Sinn eines Forums. Deshalb möchte ich-zumal ich gerade die Lösung gefunden habe-ein Thema eröffnen und das mit euch allen, die es noch nicht wissen oder das gleiche Problem haben, teilen.


    In meiner Joomla!-Komponenten-Erstellung hatte ich mich an das Tutorial hier gehalten: Developing an MVC Component

    Das Tutorial ist echt gut, hat mir super geholfen und erklärt ausreichend viel. Allerdings wird dort ein "Fehler" gemacht, beziehungsweise sind einige Zeilen der admin/views/helloworld/tmpl/edit.php unelegant gelöst, da auf diese Weise das "hidden"- und das "showon"-Attribut der Felder des Fieldsets in admin/models/forms/helloworld.xml ignoriert werden (Bei der ID funktioniert es, vermutlich, weil sie keinen Feld-Typ besitzt; showon funktioniert überhaupt nicht). Hier im Forum habe ich keine Lösung finden können und auch sonst steht das nirgends, wo ich geschaut habe, deshalb habe ich dieses Thema erstellt.

    Lösung

    Um die Felder des Fieldsets im Edit-View anzuzeigen, steht in der admin/views/helloworld/tmpl/edit.php des Tutorials:

    PHP
                      [...]                    
                        <?php foreach ($this->form->getFieldset() as $field): ?>
                            <div class="control-group">
                                <div class="control-label"><?php echo $field->label; ?></div>
                                <div class="controls"><?php echo $field->input; ?></div>
                            </div>
                        <?php endforeach; ?>
                      [...]

    Das hat mich verzweifeln lassen, da es auf den ersten Blick tut, was es soll. Allerdings werden die Felder erst wie gewollt erstellt und angezeigt und alle Parameter beachtet, wenn man alle diese Zeilen mit folgender ersetzt:

    PHP
    <?php echo $this->form->renderFieldset('Name_Des_Fieldsets'); ?>

    und in der admin/models/forms/helloworld.xml dem Fieldset einen Namen gibt.

    XML
    <?xml version="1.0" encoding="utf-8"?>
    <form>
        <fieldset name="Name_Des_Fieldsets">
            <field
                    name="id"
            [...]

    Dadurch werden die Felder angezeigt wie gewünscht und auch nur dann, wenn sie angezeigt werden sollen.


    Ich hoffe, das konnte euch ein wenig helfen-das Thema kann als gelöst markiert werden. :)


    LG