Hi,
I am trying to create a module for a webshop in which I can predefine a number of thumbnail sizes for my product images. I was thinking of storing each of these image sizes as a child page with 'width' and 'height' fields under the module page , so I can use a PageTable input field in my module to easily manage them.
I know how to create a Pagetable field and add it to templates so I can use it in regular pages, but because I am planning on implementing some other functionalities that (I think) can't be achieved with a regular page, I need the PageTable field to work within a module.
So far I have come up with this piece of code by trial and error:
$page = $this->page;
$field_sizes = $this->modules->get("InputfieldPageTable");
$field_sizes->title = "image_sizes";
$field_sizes->label = "Image sizes";
$field_sizes->set('parent_id', $page->id);
$template = wire("templates")->get("image_size");
$field_sizes->set('template_id', $template->id);
$field_sizes->set('columns', "title\nimage_width\nimage_height");
$wrapper->add($field_sizes);
It works in that it does display an empty PageTable in my module. I can also add pages and they will be added as child pages under my module page, but when I do, the way the PageTable is displayed gets all messed up. Instead of showing the newly created page as a row in the PageTable, all the fields on the module page (including the PageTable field itself) are repeated within the PageTable field.
I hope my explanation makes sense. I am fairly new to Processwire (and module development in particular) so perhaps I am just trying to use PageTable in a way it was not intended to be. Maybe you guys could give me some directions on how to achieve what I am looking for?
Thanks!