src/Forms/GridField/GridFieldFilterHeader.php
public function getSearchForm(GridField $gridField)
    {
        $searchContext = $this->getSearchContext($gridField);
        $searchFields = $searchContext->getSearchFields();

        if ($searchFields->count() === 0) {
            return null;
        }

        if ($this->searchForm) {
            return $this->searchForm;
        }

        // Append a prefix to search field names to prevent conflicts with other fields in the search form
        foreach ($searchFields as $field) {
            $field->setName('Search__' . $field->getName());
        }

        $columns = $gridField->getColumns();

        // Update field titles to match column titles
        foreach ($columns as $columnField) {
            $metadata = $gridField->getColumnMetadata($columnField);
            // Get the field name, without any modifications
            $name = explode('.', $columnField);
            $title = $metadata['title'];
            $field = $searchFields->fieldByName($name[0]);

            if ($field) {
                $field->setTitle($title);
            }
        }

        foreach ($searchFields->getIterator() as $field) {
            $field->addExtraClass('stacked');
        }

        $name = $gridField->Title ?: singleton($gridField->getModelClass())->i18n_plural_name();

        $this->searchForm = $form = new Form(
            $gridField,
            $name . "SearchForm",
            $searchFields,
            new FieldList()
        );

        $form->setFormMethod('get');
        $form->setFormAction($gridField->Link());
        $form->addExtraClass('cms-search-form form--no-dividers');
        $form->disableSecurityToken(); // This form is not tied to session so we disable this
        $form->loadDataFrom($searchContext->getSearchParams());

        if ($this->updateSearchFormCallback) {
            call_user_func($this->updateSearchFormCallback, $form);
        }

        return $this->searchForm;
    }
public function getSearchForm(GridField $gridField)
    {
        $searchContext = $this->getSearchContext($gridField);
        $searchFields = $searchContext->getSearchFields();

        if ($searchFields->count() === 0) {
            return null;
        }

        if ($this->searchForm) {
            return $this->searchForm;
        }

        // Append a prefix to search field names to prevent conflicts with other fields in the search form
        foreach ($searchFields as $field) {
            $field->setName('Search__' . $field->getName());
        }

        $columns = $gridField->getColumns();

        // Update field titles to match column titles
        foreach ($columns as $columnField) {
            $metadata = $gridField->getColumnMetadata($columnField);
            // Get the field name, without any modifications
            $name = explode('.', $columnField);
            $title = $metadata['title'];
            $field = $searchFields->fieldByName($name[0]);

            if ($field) {
                $field->setTitle($title);
            }
        }

        foreach ($searchFields->getIterator() as $field) {
            $field->addExtraClass('stacked');
        }

        $name = $gridField->Title ?: singleton($gridField->getModelClass())->i18n_plural_name();

        $this->searchForm = $form = new Form(
            $gridField,
            $name . "SearchForm",
            $searchFields,
            new FieldList()
        );

        $form->setFormMethod('get');
        $form->setFormAction($gridField->Link());
        $form->addExtraClass('cms-search-form form--no-dividers');
        $form->disableSecurityToken(); // This form is not tied to session so we disable this
        $form->loadDataFrom($searchContext->getSearchParams());

        if ($this->updateSearchFormCallback) {
            call_user_func($this->updateSearchFormCallback, $form);
        }

        return $this->searchForm;
    }
public function getSearchForm ( GridField $ gridField ) { $ searchContext = $ this -> getSearchContext ( $ gridField ) ; $ searchFields = $ searchContext -> getSearchFields ( ) ; if ( $ searchFields -> count ( ) === 0 ) { return null ; } if ( $ this -> searchForm ) { return $ this -> searchForm ; } // Append a prefix to search field names to prevent conflicts with other fields in the search form foreach ( $ searchFields as $ field ) { $ field -> setName ( 'Search__' . $ field -> getName ( ) ) ; } $ columns = $ gridField -> getColumns ( ) ; // Update field titles to match column titles foreach ( $ columns as $ columnField ) { $ metadata = $ gridField -> getColumnMetadata ( $ columnField ) ; // Get the field name, without any modifications $ name = explode ( '.' , $ columnField ) ; $ title = $ metadata [ 'title' ] ; $ field = $ searchFields -> fieldByName ( $ name [ 0 ] ) ; if ( $ field ) { $ field -> setTitle ( $ title ) ; } } foreach ( $ searchFields -> getIterator ( ) as $ field ) { $ field -> addExtraClass ( 'stacked' ) ; } $ name = $ gridField -> Title ? : singleton ( $ gridField -> getModelClass ( ) ) -> i18n_plural_name ( ) ; $ this -> searchForm = $ form = new Form ( $ gridField , $ name . "SearchForm" , $ searchFields , new FieldList ( ) ) ; $ form -> setFormMethod ( 'get' ) ; $ form -> setFormAction ( $ gridField -> Link ( ) ) ; $ form -> addExtraClass ( 'cms-search-form form--no-dividers' ) ; $ form -> disableSecurityToken ( ) ; // This form is not tied to session so we disable this $ form -> loadDataFrom ( $ searchContext -> getSearchParams ( ) ) ; if ( $ this -> updateSearchFormCallback ) { call_user_func ( $ this -> updateSearchFormCallback , $ form ) ; } return $ this -> searchForm ; }
Returns the search form for the component

@param GridField $gridField
@return Form|null
Returns the search form for the component