Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Methoden "setLabelColClass" und "setFormItemColClass" ohne Funktion #355

Open
dpf-dd opened this issue Aug 5, 2024 · 3 comments
Open

Methoden "setLabelColClass" und "setFormItemColClass" ohne Funktion #355

dpf-dd opened this issue Aug 5, 2024 · 3 comments

Comments

@dpf-dd
Copy link
Contributor

dpf-dd commented Aug 5, 2024

Folgende Anweisungen funktionieren noch mit der letzten Version von MForm 7, seit 8.0.3. werden die Anweisungen aber komplett ignoriert...

MForm 7 => korrekt

INPUT:
$form->setLabelColClass('col-sm-12 text-center');
$form->setFormItemColClass('col-sm-12 text-center');

OUTPUT:
<div class="form-group ">
    <div class="col-sm-12 text-center">...</div>
    <div class="col-sm-12 text-center">...</div>    
</div>

MForm 8 => nicht korrekt

INPUT:
$form->setLabelColClass('col-sm-12 text-center');
$form->setFormItemColClass('col-sm-12 text-center');

OUTPUT:
<div class="form-group">
    <div class="col-sm-2 control-label">...</div>
    <div class="col-sm-10">...</div>    
</div>

Affected versions / Verwendete Versionen
REDAXO: 5.17.1
PHP: 8.3.8
Database: MariaDB 10.6.18
Browser: alle
AddOns: MForm 8.0.3

@dpf-dd
Copy link
Contributor Author

dpf-dd commented Aug 6, 2024

Irgendwie kam mir das Problem bekannt vor... :D

#316

Hier ist es! Der Fehler wurde mit MForm 7.4.3 "eingeführt". Die Fragment-Datei "mform_default.php" hat sich in Version 8 etwas verändert und der Fix aus 7.x fehlt...

Ich würde hier auch gerne einen PR beisteuern, aber ich verstehe den Code nicht zu 100%... Mir erschließt sich das Dasein des Switches nicht wirklich. setLabelColClass und setFormItemColClass werden direkt übergeben, aber von $this->type gelesen und ich weiß nicht wie tief dieses $this->type in der Programmlogik verbaut ist...
Wo bzw. wie kann man denn die drei Values "default, default_full, default_custom_full" einstellen/ansteuern/bearbeiten?

switch ($this->getVar('type')) {
    default:
    case 'default':
        $this->setVar('labelColClass', 'col-sm-2 control-label');
        $this->setVar('formItemColClass', 'col-sm-10');
        break;
    case 'default_full':
    case 'default_custom_full':
        $this->setVar('labelColClass', 'col-sm-12');
        $this->setVar('formItemColClass', 'col-sm-12');
        break;
}

@joachimdoerr
Copy link
Member

Es gibt eine ->setFull() Methode mit der oder mit dem Attribute 'full' => true kann man den Type auf "default_full" setzen.

@dpf-dd
Copy link
Contributor Author

dpf-dd commented Aug 8, 2024

Dann wäre die Frage, was hat Vorrang bei folgender Konstellation bzw. wie soll dann so eine "Doppelanweisung" behandelt werden?

$form->addTextField("$id.0.meinfeld");
$form->setLabel('Mein Feld');
$form->setFull();
$form->setLabelColClass('col-sm-12 text-center');
$form->setFormItemColClass('col-sm-12 text-center');

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants