Jump to content
cosmicsafari

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

Share this post


Link to post
Share on other sites
51 minutes ago, cosmicsafari said:

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

yes confirmed

  • Haha 1

Share this post


Link to post
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);

 

Share this post


Link to post
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

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By rjgamer
      Hi,
      is there a hook after the current (active) page got created? Or which method got called in the Page class after the Constructor of the current page got initialized?
      Thanks.
       
    • By killedfriendz
      I am very sorry for asking this but i totally do not understand how to set values of checbox using API. 
      I have checbox field on my page with name "order_status". 
      So i've tried few ways to make it checked but it still doesn't work:
       
      $userPage->order_status->value = 1; $userPage->order_status->add(1); $userPage->order_status->add(true); Could you please tell me how to do it?
    • By rjgamer
      Hi guys,
      the field "redirect_last" of type DateTime got not updated. The update on the field "redirect_counter" works and got saved.
      Does anybody know what I did wrong in my code?
      if ($input->urlSegment(1) === 'redirect') { $page->of(false); $page->redirect_last = time(); $page->redirect_counter += 1; if ($page->save('redirect_counter')) { $session->redirect($page->website_url, 302); } } Thanks.
    • By totoff
      Dear all,
      I'm upgrading an older side with the new custom fields for images feature as of 3.0.142. My image field is set to "Automatic" and holds a bunch of images together with their respective description on each page. New custom fields include "caption" among others and to make my live easier I I'm trying to populate "caption" with the value from the (default) description field. But unfortunately I can't seem to find out how to save the newly set values. This is my code:
      <?php foreach (page()->images as $image) { $image->set('caption', $image->description); bd($image->caption); echo files()->render("markup/views/view-card-image-fancybox.php", array('image'=>$image)); } ?> <?php $page->save(); bd($page->save()); ?> This sets the value as intended (see screenshot) but doesn't save it permanently to the database. What am I doing wrong?
      Thanks!
       

×
×
  • Create New...