web-dev-qa-db-fra.com

Comment récupérer un filtre actif à partir d'un formulaire de champ personnalisé?

Après avoir suivi l'excellente explication de Comment créer une vue avec filtres et pagination , j'ai un champ personnalisé qui filtre pour la plupart . Dans l'état actuel des choses, le code dans le champ personnalisé récupère les données de filtrage de ce qui est posté via jInput, et cela fonctionne à merveille. Cependant, si l'utilisateur renvoie à la page ( sans les données de filtrage les outils de recherche détecte qu’il existe un filtre actif, s’affiche donc, mais ne remplit pas le formulaire avec les données de filtre (ce n’est pas dans la publication, donc rien pour remplir le formulaire).

Clairement, je devrais récupérer les données de filtrage ailleurs, apparemment le formulaire, mais je ne sais pas comment y accéder. Dans le code de formulaire personnalisé, je peux voir les filtres et les données, mais je ne peux pas trouver la (les) méthode (s) correcte (s) pour y accéder. remplir le formulaire avant le rendu.

Donc, à partir des champs personnalisés $this, comment puis-je accéder au formulaire protégé, puis à l'objet de registre protégé, et finalement aux données/filtres protégés, comme indiqué ci-dessous?

JFormFieldMyCustomField Object
(
    [type:protected] => mycustomfield
    [input_type:JFormFieldMycustomfield:private] => 
    .
    .
    .
    [form:protected] => JForm Object (
            [data:protected] => Joomla\Registry\Registry Object (
                    [data:protected] => stdClass Object  (
                            [filter] => stdClass Object (
                                    [search] => 
                                    [myfield2] => 95
                                    [myfield1] => Array (
                                            [0] => 4
                                            [1] => 5
                                            [2] => 6
                                            [3] => 37
                                        )
                                )
                        )
3
GDP

Remercions Dieu pour les publications de 5 ans et Rasoir d'Occam . Le champ personnalisé a un accès direct au formulaire que j'essayais d'obtenir !!!! Pas besoin de charger un modèle, une aide ou autre.

$MyField1 = $this->form->getData()->get('filter',array())->myfield1;
$MyField2 = $this->form->getData()->get('filter',array())->myfield2;
3
GDP