phil_s Posted September 9, 2016 Share Posted September 9, 2016 7 hours ago, Robin S said: I'm not sure what you mean. It's just as @MadeMyDay explained - the order is stored as part of the field. You just need to get the "block" pages via the field rather than as children of a parent. Sorry, I should have been more specific. What I meant to ask was: It would be interesting to hear how other people manage their PTE pages when they're not direct children. In my case choosing a custom (hidden from the client) parent for the layout would indeed be less confusing, but it would also mean that under the custom parent, all layout blocks (hundreds) from all projects would be listed without any context right? Not that the context is needed there, just need to get the OCD in check I guess.. Link to comment Share on other sites More sharing options...
Robin S Posted September 9, 2016 Share Posted September 9, 2016 42 minutes ago, phil_s said: In my case choosing a custom (hidden from the client) parent for the layout would indeed be less confusing, but it would also mean that under the custom parent, all layout blocks (hundreds) from all projects would be listed without any context right? Not that the context is needed there, just need to get the OCD in check I guess. Yeah, I don't worry about that. No different to Repeater items in that respect. If you're concerned about orphaned pages you can set PageTable pages to be trashed or deleted if their parent page is deleted. 3 Link to comment Share on other sites More sharing options...
mr-fan Posted September 10, 2016 Share Posted September 10, 2016 A tipp for your setup. If you choose a parent page that is not under the /admin/ page you could use this snippet at the start of every block_template to hide pages from frontend access via url: <?php // the pageurl is hit this template file directly. if ($page->url == $_SERVER["REQUEST_URI"]) { throw new Wire404Exception(); // show 404 page } But put everthing under admin is better solution...i don't read the docs to deep at start, too I use this module as kind of WYSIWYG blockbuilder on most installations and the largest amounth of blocks is ~ 300 for now....pages are scaling very well in PW. Some drive sites with several thausand pages under one parent... regards mr-fan 2 Link to comment Share on other sites More sharing options...
adrianmak Posted November 16, 2016 Share Posted November 16, 2016 How do u implement a "text column" in pagetable field ? processwire template allowed unique type field in a template. That's you cannot add three body textfield on the same template ? I'm thinking of, are you create three separate text fields for the "text column" pagetable field ? Link to comment Share on other sites More sharing options...
adrianmak Posted November 16, 2016 Share Posted November 16, 2016 I created two pagetable fields used for content layout to replace the free text wysiwyg editor. By clicking the button, no modal window popup Link to comment Share on other sites More sharing options...
adrianmak Posted November 16, 2016 Share Posted November 16, 2016 Isn't it not compatible with pw 2.7.x ? If I changed field type back to pagetable, no issue at all. Link to comment Share on other sites More sharing options...
MadeMyDay Posted November 17, 2016 Author Share Posted November 17, 2016 As said on GitHub: Compatibility should be given up to newest PW3. Look in the dev tools, if there is a JS issue. Never encountered something like this. "textblock" has a template associated? Without template there will no render in PTE. But shouldn't prevent modal though. Please show Console Output. Link to comment Share on other sites More sharing options...
adrianmak Posted November 17, 2016 Share Posted November 17, 2016 I found that there has two github repository of PageTableExtended https://github.com/MadeMyDay/PageTableExtended https://github.com/somatonic/PageTableExtended The problem I came across is the MadeMyDay. The somatonic fork has no such a problem. Link to comment Share on other sites More sharing options...
ukyo Posted May 9, 2017 Share Posted May 9, 2017 @MadeMyDay can you check my issue report https://github.com/MadeMyDay/PageTableExtended/issues/25 ? I have a fix and an exchangement, using and testing module with these changes. 2 Link to comment Share on other sites More sharing options...
DV-JF Posted June 23, 2017 Share Posted June 23, 2017 Hi, I'm storing all my layouts under the "Repeater" page. Is it possible to get the parent page, I mean the page which is containing the specific pagetableextended via API? E.g.: When I'm trying to call $page->parent->name in lay_columns.php (one of files to render the output) it returns "repeater" wich is obviously because the repeater page is the parent. But I want to get the "original" parentpage where the pagetableextended field is stored. I'hope you understand me. Many greets! Link to comment Share on other sites More sharing options...
MadeMyDay Posted June 23, 2017 Author Share Posted June 23, 2017 Look here 2 Link to comment Share on other sites More sharing options...
DV-JF Posted June 23, 2017 Share Posted June 23, 2017 @MadeMyDay Thank you... Much easier than I thougt Link to comment Share on other sites More sharing options...
DV-JF Posted July 4, 2017 Share Posted July 4, 2017 I figured out a new problem: I'm using repeaters in the layout template in order to give the editor the possibility to define some "same looking" boxes. Inside the repeaters there is amongst other things an image field. When I'm trying to resize it via the API like foreach($page->rep_imgTitleBody as $item) { $img = $item->sing_img->size(600,400)->url; $out = "<img src=\"{$img}\" alt=\"{$item->title}\">"; }; though it works on the frontend but in processwire backend I'm getting an error: Quote Method Pageimages::size does not exist or is not callable in this context Any ideas? Link to comment Share on other sites More sharing options...
maxf5 Posted July 11, 2017 Share Posted July 11, 2017 Sorry for the question, FieldtypePageTable is requested. Is that the Pro Field or is it for free? Link to comment Share on other sites More sharing options...
MadeMyDay Posted July 11, 2017 Author Share Posted July 11, 2017 The name is a bit misleading. Just look in the modules section in your backend under "install". It's distributed with every core version, not installed though. 2 Link to comment Share on other sites More sharing options...
Omega Posted October 5, 2017 Share Posted October 5, 2017 On 4.7.2017 at 10:22 PM, DV-JF said: I figured out a new problem: I'm using repeaters in the layout template in order to give the editor the possibility to define some "same looking" boxes. Inside the repeaters there is amongst other things an image field. When I'm trying to resize it via the API like foreach($page->rep_imgTitleBody as $item) { $img = $item->sing_img->size(600,400)->url; $out = "<img src=\"{$img}\" alt=\"{$item->title}\">"; }; though it works on the frontend but in processwire backend I'm getting an error: Any ideas? @DV-JF I came across a similar issue. I'm using a page reference field to select several pages containing just 1 image per page. As Ryan describes in this post. I haven't checked for the frontend yet, but in the backend I'm getting the same error. So even though the image field in the referenced pages is set to contain just 1 image, I have to loop through it as if it's a WireArray. I changed your code in way that worked for me: foreach($page->rep_imgTitleBody as $item) { foreach($item->sing_img as $image) { $img = $image->size(600,400)->url; $out = "<img src=\"{$img}\" alt=\"{$item->title}\">"; } }; @MadeMyDay Is this an expected behaviour? I'm using ProcessWire 3.0.77 and PageTableExtended 2.3.3 1 Link to comment Share on other sites More sharing options...
szabesz Posted October 5, 2017 Share Posted October 5, 2017 1 hour ago, Omega said: I have to loop through it as if it's a WireArray Not "as if" but it is WireArray. No need to loop, just use the method ->first() 2 Link to comment Share on other sites More sharing options...
Omega Posted October 7, 2017 Share Posted October 7, 2017 I still have a problem with the output of PageTableExtended (PTE) in the backend. I took some screenshots to demonstrate it. My configuration looks like this: In my PageTableExtended field I have a template containing a PageReference field. That reference field allows only one reference. The pages I then reference to contain just one image per page. That way I can reuse images on different pages. But also, with just one page allowed per reference field, I have the ability to reorder the images on my page in a visual manner. Mainly that for I have PTE in use. The empty PTE field in the backend looks like this: In the backend I add an image by clicking on the +Image button, respectively I create a new page with a template containing a page reference field. The modal window opens and I reference a page with an image named "sample-image". Then I hit save and the modal window closes. The PTE field now looks like this: The template of the reference field in the PTE echoes the url of the image in the referenced page. Just as I would do to display the image, but for demonstrating purposes without the surrounding <img> tags. Pause for a moment. Right now everything is as expected. BUT... Now to the strange behaviour of PTE: After I hit Save on my actual page, where the PTE field lives in, I get this: As you can see, the url of the referenced image is incomplete, the [name].[ext] part is missing. So it's not possible to display the image in the backend! But on the frontend everything is fine: @MadeMyDay Is this behaviour expected? Has someone the same problems? Can anybody suggest a solution? Thanks in advance! Below are my .php files for the basic-page containing the PTE field and the subtemplate for the media_pagereference. // basic-page.php <?php namespace ProcessWire; $out = ""; if (count($page->pageTableExtended)) { foreach ($page->pageTableExtended as $pte) { $out .= $pte->render(); } } ?> <main data-pw-id="main" class="main"> <?php echo $out; ?> </main> // media_pagereference.php <?php namespace ProcessWire; if ($page->pageReference) { $refPage = $page->pageReference; $img = $refPage->image; echo $img->url; } Link to comment Share on other sites More sharing options...
Robin S Posted October 7, 2017 Share Posted October 7, 2017 8 hours ago, Omega said: As you can see, the url of the referenced image is incomplete, the [name].[ext] part is missing. For one reason or another, output formatting must be off when the PTE inputfield is rendered. To work around this, try... // media_pagereference.php <?php namespace ProcessWire; $refPage = $page->getFormatted('pageReference'); // value will vary depending on "Page field value type" setting if ($refPage->id) { $img = $refPage->image; echo $img->url; } ...or more reliably (since it will work regardless of the "Page field value type" setting)... // media_pagereference.php <?php namespace ProcessWire; $refPage = $page->getUnformatted('pageReference'); // always a PageArray if ($refPage->count) { $img = $refPage->first->image; echo $img->url; } 1 Link to comment Share on other sites More sharing options...
Omega Posted October 7, 2017 Share Posted October 7, 2017 I got a solution for my problem described above. I canged the settings for the image field that is allowed to contain just 1 image. Instead of returning a single element it now returns always an array of elements (hope the description is correct in english). Therefor I definitely need to either loop through the returned array (which is way too much, as there is just one image in it). So as szabez pointed out, a short and clean way is to use ->first() @Robin SThank you for your suggestion, you where literally a few moments too late But I'll give it a try! Link to comment Share on other sites More sharing options...
Omega Posted October 7, 2017 Share Posted October 7, 2017 @Robin S sorry, your code didn't work for me, I had to change it that way: // media_pagereference.php <?php namespace ProcessWire; if ($page->pageReference) { $refPage = $page->pageReference; $img = $refPage->getUnformatted('image')->first(); echo $img->url; } Now it's possible to set the configuration of the 'image' field to return a single element instead of an array. A second way next to the workaround I described above and a good opportunity to learn more about output formatting... 1 Link to comment Share on other sites More sharing options...
MadeMyDay Posted October 22, 2017 Author Share Posted October 22, 2017 It is currently not actively under development but I use it as it is on several sites (I guess a lot of others do so, too). So I am wondering about this line: <?php echo $page->pagetableextended->render(); ?> The parts are just pages (see PageTable docs) . So with your code you just get an array of pages and PW is so kind to show you which. What you wanna do is: <?php foreach($page->pagetableextended as $pe){ echo $pe->render(); } ?> 1 Link to comment Share on other sites More sharing options...
MadeMyDay Posted October 22, 2017 Author Share Posted October 22, 2017 Just now, Donald said: Question: Can you recommended to use for bigger projects related to the fact that I would like to use it as an "content block builder" or like Lego for the frontend? Sure, why not? I am using it on more than ten websites. Some of them have thousands of visitors each day, but that is not the crucial thing since the module doesn't do anything different than the PageTable module itself. It "just" renders the templates also in the admin. There can be some glitches (as this thread shows) but as long it works for you in the admin area, it will also work for your visitors ;-) 2 Link to comment Share on other sites More sharing options...
MadeMyDay Posted October 22, 2017 Author Share Posted October 22, 2017 See it as an alternative to the Repeater Module. For the repeater you define (the same) input fields for each item. The PageTable module is technically pretty similar as both store the items in own pages somewhere. But with the PageTable module you have the opportunity to use different templates as input field sets to choose from. The PageTable module shows those (sub)pages as a table with each page as a row. PTE extends that functionality for rendering the items as they are rendered in the frontend. Link to comment Share on other sites More sharing options...
MadeMyDay Posted October 22, 2017 Author Share Posted October 22, 2017 I would say the PageTable module by Ryan is close to his repeater matrix ;-) I only extended the functionality of the former. 1 Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now