Jump to content

Page Ref/Select field in Module Options?


Recommended Posts

Hi all,

Before I go potentially wasting time trying to achieve the impossible.

Can anyone confirm if its possible to have a Page Reference field on a modules config page?

I'm wanting to essentially just output a list of select able pages based on the a given selector (likely by template at this stage), wherein the select is the pages that the module should apply to etc. I was thinking a simple checkbox list would suffice is asmSelect isn't available.

Essentially have it display the same way a Page Reference field would display on a template, where you can easily select a bunch of them.

    public function getInputfields() {

        $inputfields = parent::getInputfields();

            $f = $this->modules->get('InputfieldPage');
            $f->attr('name', 'testSelect');
            $f->setAttribute('multiple', 'checkboxes');
            $f->setAttribute('findPagesSelector', 'template=development');
            $f->label = 'Test';
            $inputfields->add($f);

        return $inputfields;

    }

Figured something akin to the above would work but can't seem to get rid of this warning on the modules config screen though.

image.thumb.png.13511ab5eae951c4d1b45df2b7373a1a.png

Link to comment
Share on other sites

1 hour ago, cosmicsafari said:

Can anyone confirm if its possible to have a Page Reference field on a modules config page?

I haven't tried in a module's config but in a module and it works just fine.

Looking at your code (I could be wrong) I don't think you should be calling getInputfields(). That's for a page or field context. Something like below, maybe should work (untested):

$modules = $this->wire('modules');

$somethingAddPageItems = $modules->get('InputfieldPageAutocomplete');
$somethingAddPageItems->set('findPagesSelector', $pagesSelector);
$somethingAddPageItems->notes = $this->_('Start typing to search for pages');
            
// OR
// $somethingAddPageItems = $modules->get('InputfieldPageListSelectMultiple');
// $somethingAddPageItems->label = $this->_('Pages');
// OR
// $somethingAddPageItems = $modules->get('InputfieldAsmSelect');
// MORE CODE...
$form = $modules->get('InputfieldForm');
$form->add($somethingAddPageItems);

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...