Jump to content
Marc

Custom user role can't add pages to pageTable field

Recommended Posts

I am trying to add information about users of my website to a pageTable field called 'user_notes', which I added to the 'user' template. The parent of the pageField pages is a user, so every user can have child pages with a 'note' template. Adding new notes to this pageTable works great when I'm logged in as the superuser, but when I try to do this logged in as a 'planner' user, the child pages are created but they are not added to the pageTable array. I'm not sure why, as I've been looking at every involved permission setting and I just can't seem to find out what might be going wrong. Here are some details:

  • I have created a user role called 'planner'. It has all the 'page-edit' (sub)permissions.
  • I have a pageTable field called 'user_notes'.
  • The pageTable 'user_notes' creates pages under a 'user' with a 'note' template. The 'planner' role has all permissions to edit/create pages using this 'note' template.

Share this post


Link to post
Share on other sites

Don't forget about the "Add Children" permission on the parent template.

Share this post


Link to post
Share on other sites

Don't forget about the "Add Children" permission on the parent template.

That would be the user template in this case, which already has all permissions checked. The pages are actually created in the correct location, but they are not added to the pageTable array so I have to add them manually after the page is saved. (I get the "Children were found that may be added to this table" message in that case.)

Share this post


Link to post
Share on other sites

So I did a new install of Processwire just for testing this issue, and no matter what I do, I can not get anybody but the superuser to add pages to a pageTable field when the parent of those pages is a user page. I guess I will have to come up with another place to store those pageTable pages then.

Share this post


Link to post
Share on other sites

Hi Marc,

I ran into this issue with non super users, user template and pagetables a while ago as well. Other can't seem to reproduce. We got a work-around, but that's more of a hack than a serious solution.

  • Like 2

Share this post


Link to post
Share on other sites

Thanks for the heads up. It's a shame there's no fix after all this time.

Share this post


Link to post
Share on other sites

Hi Marc, if it isn't reproducible it can be hard to track down. I haven't tried it with the latest 2.7.2 master version. What version of PW do you use?

Share this post


Link to post
Share on other sites

Hi Marc, if it isn't reproducible it can be hard to track down. I haven't tried it with the latest 2.7.2 master version. What version of PW do you use?

I'm using the latest master version, so version 2.7.2. I don't understand why the PW developers would not be able to reproduce it though, as I first encountered it with my current project and still encounter it doing a brand new, unmodified install just for testing this bug.

Share this post


Link to post
Share on other sites

Export a site profile of it and post it here or at github. Ryan can then concentrate on fixing it instead of searching for the issue.

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 louisstephens
      So I ran into a very strange issue today. I have a template with a pagetable and I went to add an item to it, when I went to select an image (for an image field) the page instantly threw up an error
      "ProcessPageSearchLive: No search specified"
      The page's content also switched to the image attached. This all worked perfectly last week (local mamp box). Has anyone experienced this before, and how did you solve it?
       

    • By jploch
      Hey folks,
      I have a question regarding rendering of template files that are in a subfolder of the template folder.
      How would I for example render these PageTable items, when their template files are inside templates/blocks/:
      <div class="grid"> <?php foreach($page->grid_ext as $item): ?> <div id="pteg_<?= $item->id ?>"> <?php echo $item->render(); ?> </div> <?php endforeach; ?> </div> I tried this, but get an error:
      <?php echo $item->render(wire('config')->paths->templates . '/blocks/'); ?>  
    • By tron1000
      Hello! I use PW 3.0.98 and I have frontend editing enabled for a PageTable Field. Somehow, when I double click the field in the frontend, the iframe in wich the content is displayed is very small (see screenshot). I couldn't find out if thats some CSS conflict or another problem. Any suggestions? Thanks, Andrej
       

    • By Noel Boss
      I use a PageTable field to make edits to children of pages more intuitive…
      To register the hooks, insert the following Snippet inside your init function in your module (or add it to your init.php file):
      /** * Initialize the module. * * ProcessWire calls this when the module is loaded. For 'autoload' modules, this will be called * when ProcessWire's API is ready. As a result, this is a good place to attach hooks. */ public function init() { // Prefill pageTable field $this->wire()->addHookBefore('InputfieldPageTable::render', $this, 'addChildrenToPageTableFieldsHook'); $this->wire()->addHookBefore('InputfieldPageTableAjax::checkAjax', $this, 'addChildrenToPageTableFieldsHook'); } Then, add this hook method:
      /** * Fill pagetable fields with children before editing…. * * @param HookEvent $event */ public function addChildrenToPageTableFieldsHook(HookEvent $event) { $field = $event->object; // on ajax, the first hook has no fieldname if (!$field->name) { return; } // get the edited backend page $editID = $this->wire('input')->get->int('id'); if (!$editID && $this->wire('process') instanceof WirePageEditor) { $editID = $this->wire('process')->getPage()->id; } $page = wire('pages')->get($editID); // disable output formating – without this, the ajax request will not populate the field $page->of(false); // you could also insert a check to only do this with sepcific field names… // $page->set($field->name, $page->children('template=DesiredTemplate')); // just specific templates $page->set($field->name, $page->children); } Now whenever there is a page-table field on your page, it gets populated with the children
    • By pppws
      Hey there,
      i've set up a page wich uses pageTable and it works like a charm.
      for my home page i get several pages. they are sperated in two types:
      a) page has the module 'featured_img'
      b) page doesn't have the 'featured_img'
       
      my pageTable field is called add_modules. so i was wondering if something like 
      <?php foreach ($featured as $child): ?> <?php if ($child->add_modules->module_featuredimg): ?> // show image <?php else: ?> // show text <?php endif; ?> <?php endforeach; ?> is possible?
       
      thanks for your input!
×
×
  • Create New...