it-swarm.com.de

So speichern Sie Daten vom Feldtyp Unterformular in einem benutzerdefinierten Feld in Joomla 3.7

Ich habe ein benutzerdefiniertes Feld-Plug-in für wiederholbare Teilformulare erstellt, das in die benutzerdefinierte Felderweiterung in 3.7x integriert werden kann, und es funktioniert ordnungsgemäß, um die Felder während der Artikelübermittlung anzuzeigen. Die Daten werden jedoch nicht gespeichert.

Der Erweiterungscode

JLoader::import('components.com_fields.libraries.fieldsplugin',JPATH_ADMINISTRATOR);

class PlgFieldsCustomrepeat extends FieldsPlugin {

public function onCustomFieldsPrepareDom($field, DOMElement $parent, JForm $form) {

    $fieldNode = parent::onCustomFieldsPrepareDom($field, $parent, $form);

    if (!$fieldNode) {
        return $fieldNode;
    }

    $fieldNode->setAttribute('type', 'subform');
    $fieldNode->setAttribute('formsource', $field->fieldparams->get('formsource', 0));
    $fieldNode->setAttribute('layout', $field->fieldparams->get('layoutformat'));
    $fieldNode->setAttribute('multiple', true);
    $fieldNode->setAttribute('groupByFieldset', $field->fieldparams->get('fieldsetgroup', 0) ? 'true' : 'false');
    $fieldNode->setAttribute('min', $field->fieldparams->get('min', 0));
    $fieldNode->setAttribute('max', $field->fieldparams->get('max', 1000));
    $fieldNode->setAttribute('default', $field->fieldparams->get('defaultset', 0));

    return $fieldNode;

}


}

Ich habe versucht, einen Textfeldtyp zu verwenden, der die Daten korrekt gesendet hat. Was muss hinzugefügt werden, damit der Unterformulartyp mit benutzerdefinierten Feldern arbeiten kann? screen shot of subform custom field in article submission view

4
Kumar Sara

Ich habe einen Subform-Feldtyp, der mit allen Subform-Optionen funktioniert - bis eine Pull-Anfrage in Joomla auf GitHub eingeht. Dies ist eine ziemlich komplexe Frage und hat damit zu tun, wie Joomla benutzerdefinierte Felddaten speichert. Joomla akzeptiert ein eindimensionales Array - Unterformulare sind jedoch mehrdimensionale Arrays.

Wenn der PR zusammengeführt wird, werde ich mein Unterformular-Plugin im JED veröffentlichen.

Wenn der PR nicht zusammengeführt wird (ich bin die dritte Person, die versucht, dieses Problem zu lösen), haben die Kernentwickler einen weiteren Versuch, dieses Problem zu lösen, blockiert.

Ich bin zuversichtlich, dass mein Ansatz akzeptiert wird, da er vollständig abwärtskompatibel ist.

Auch wenn sie es nicht tun - ich habe eine andere Lösung ... Wir werden wissen, bis 3.9 veröffentlicht wird.

Update: Meine Pull-Anfrage hat den Testprozess durchlaufen und trägt nun die Bezeichnung "RTC" (Ready to Commit). Sobald es genehmigt und zusammengeführt wurde, wird es Teil des nächsten Joomla-Releases (wahrscheinlich 3.9) sein.

Update 2: Die Pull-Anfrage wurde zusammengeführt - mein Fix wird in Joomla 3.8.4 enthalten sein. Wenn es veröffentlicht ist, werde ich mein Unterformular-Plugin auf dem JED veröffentlichen.

1
Michael