web-dev-qa-db-fra.com

Comment enregistrer des données d'un type de champ de sous-formulaire dans un champ personnalisé joomla 3.7

J'ai créé un plugin de champ personnalisé de type de champ répétable de sous-formulaire à intégrer à l'extension de champ personnalisé en 3.7x, et cela fonctionne correctement pour afficher les champs lors de la soumission d'article. Cependant, les données ne sont pas enregistrées.

Le code d'extension

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;

}


}

J'ai essayé un type de champ de texte et cela a envoyé les données correctement. Que faut-il ajouter pour permettre au type de sous-formulaire de fonctionner avec des champs personnalisés? screen shot of subform custom field in article submission view

4
Kumar Sara

J'ai un type de champ de sous-formulaire qui fonctionne avec toutes les options de sous-formulaire - en attente d'une demande d'extraction que j'ai dans Joomla sur GitHub. Cette question est assez complexe et concerne la manière dont Joomla stocke les données de champ personnalisées. Joomla acceptera un tableau à une dimension - mais les sous-formulaires sont des tableaux à plusieurs dimensions.

Quand/si le RP est fusionné, je publierai mon plugin de sous-formulaire dans le JED.

Si les relations publiques ne sont pas fusionnées (je suis la troisième personne à tenter de résoudre ce problème), les développeurs principaux auront bloqué une nouvelle tentative de résolution de ce problème.

Je suis convaincu que mon approche sera acceptée car elle est totalement compatible avec les versions antérieures.

Même si ce n'est pas le cas - j'ai une autre solution ... Nous le saurons au moment où la version 3.9 sera libérée.

Mise à jour: Ma demande d'extraction a été validée au cours du processus de test et porte désormais le libellé "RTC" (Ready to Commit). Une fois approuvé et fusionné, il fera partie de la prochaine version de Joomla (probablement la version 3.9).

Mise à jour 2: La demande d'extraction a été fusionnée - mon correctif sera inclus dans Joomla 3.8.4. Quand il sera disponible, je publierai mon plugin de sous-formulaire sur le JED.

1
Michael