Jump to content

sodesign

Members
  • Posts

    71
  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

sodesign's Achievements

Full Member

Full Member (4/6)

34

Reputation

  1. No the template name doesn't contain the word Repeater. I don't know of any reason why this particular template would have a custom page class (I hadn't even heard of them until this issue!). For now I have removed "pageClass":"RepeaterPage" from the data column for this template in the DB and the other languages can now be activated. I'll test all the features associated with this page and see if this change had any bad consequences.
  2. Hello, I'm having a weird issue where I can't activate pages in other languages if they're using a specific template. Pages using other templates work fine. I have tried ticking the box in the page's settings tab, and tried using $page->setAndSave("status$lang"); with the api. The box just shows as unticked again when I refresh. The only thing I can notice about this template is at the bottom of the setting page where it says 'Page object class: RepeaterPage' (see attachment). Does anyone know what this means and whether it could be the cause of the problem? Thank you!
  3. Thank you for the pointers. I checked a new simple mutation on a different template and it was all ok. I checked the hooks we have running on the ConfiguratorQuote template I used in the original mutation and managed to find the problem. Surprisingly it was to do with a page saved hook ending up in an infinite loop. I'm not sure why it wasn't happening on the earlier core version but that's not a discussion for this board! Thanks for your help and looking into it so quickly 🙂
  4. Hi @dadish, I've been using your module since 2018, and it's been really solid, thanks for all your work. I wonder if you can help with a recent issue I've had since updating Processwire core from 3.0.200 to 3.0.227+? I have a single mutation which creates a new page, and its fields are a mix of text fields, number fields, and page reference fields. Since updating PW core, the mutation hangs, and the only error I see is a 504 Timeout. The site seems to completely lock up as well when there's a pending query. Is there anything you can suggest to help debug this? I'm running v2.0.0. Thanks, Tom PS - I've done a little more digging. I get the same problem with 1.4.1 and 2.0.0. There's no problem in PW 3.0.222, it only happens with 3.0.223 and higher. Here are a couple of screenshots showing the error in the GraphiQL tool - one with the error on 3.0.229, and one where it works on 3.0.200. Interestingly, although I get an error on 3.0.229, the page is created successfully, it just isn't reported as a success.
  5. Hi all, I'm having trouble with an import. Some translated text imports correctly, some doesn't. There are no errors or warnings displayed. Background We're running a big import on a file which was originally exported using the built in Export/Import module. Trying this both in the Admin, and by using $importer = new PagesExportImport(); $importer->importJSON($json); Seems like some text imports correctly, some doesn't. Some fields which work are inside MatrixRepeaters, some are just fields on the page. The same field types even work some places but not others. The import runs without error, and the message shown suggests all the fields imported correctly. Debugging I have been trying to identify if anything is failing silently. I've been reading PagesExportImport.php and I think line #978 is the function call where the imported field content is saved: $page->set($field->name, $pageValue) The thing is, when I print the values either side of this function, the field values are correct. I'm not familiar enough with the inner workings of PW to really understand what might be going on. Next steps Where else should I check? Are there any other functions used to save imported field content? Or are there any better ways to go about debugging this? Thanks! Edit - I've attached 2 screenshots. the Messages are with const debug = true; set in ProcessPagesExportImport.module. I believe they show that the import should have worked. The heading screenshot field shows that the translations didn't import correctly. I'm not sure if this is a bug or something I'm missing.
  6. Just to follow up - found out this is fairly simple to do with a php script. There are 2 important methods in wire/core/PagesExportImport.php I haven't dug into options or error handling, but this approach achieved what I needed it to. Ran this on website 1 to export the content: <?php namespace ProcessWire; include "index.php"; // bootstrap ProcessWire $pages_to_export = $pages->find('template=my-template'); $exporter = new PagesExportImport(); $data = $exporter->exportJSON($pages_to_export, []); file_put_contents('resources-image.json', $data); and this on website 2 to import: <?php namespace ProcessWire; include "index.php"; // bootstrap ProcessWire $importer = new PagesExportImport(); $json = file_get_contents('resources-image.json'); $data = $importer->importJSON($json, []);
  7. Hi everyone, We have some huge pages filled with repeaters, each containing 100s of images/files and page reference fields. We need to migrate them to another site. Currently the Export fails (sometimes because we run out of memory, most times because the page times out.). Is there a way this module can batch the work? Alternatively, is there any documentation for using this module in a script? Thanks!
  8. Hi all, I was reading Ryan's post about a simple approach for caching chunks of markup on dynamic pages. Is there any common wisdom on when this approach is more suitable than the $cache API? The pieces of markup I'm working with are around 300-600kb and I'm trying to identify the option with the best performance. Thanks!
  9. Amazing, I'll give this approach a go and let you know how I get on. Thanks you for taking the time to write this up, I really appreciate it 🙂
  10. That makes sense, finding the connection between production 'media manager pages' and the staging usual pages media manager fields is where I was getting stuck trying to use a selector but your suggestion of looping through and creating the two arrays to compare is a great idea. The only question I still have is with point 8: How do I add a MM page to the MM field using the API if the field is currently empty? I'll be sure to check out ProcessDatabaseBackups! Can it handle individual parts of a site?
  11. Thanks for getting back to me. Yes, I did mean a FieldtypeMediaManager field on a usual PW page. The sites aren’t on the same server currently.
  12. I wonder if anyone can help. I'm writing an import script to add a few hundred pages to a site, and each page has a media-manager-image field. (It's for a staging site where I'm merging some recent content from a production site to keep it up-to-date.) I successfully imported the pages using the native Processwire Import/Export, but the media manager fields were empty. I think this is because the page IDs are different on the production site and the staging site. I have also successfully imported all of the media manager pages and assets to the staging site. Is there a way I can populate the media-manager-image fields with the API? Thanks in advance, I've been pulling my hair out trying to achieve this! 😅 // I tried this approach, but it's not right $existing_image_path = extract_img_path($img); // custom function to parse CSV, eg '/site/assets/files/86258/an-image-name.jpg' $exists = wire('files')->exists($existing_image_path); if ($exists) { // This doesn't work because it's not an image field $p->blog_images->add($existing_image_path); } $p->save(); // I then tried several ways like this, because the media is all on the staging site, but I couldn't find a way to query the media manager // pages successfully $filename = extract_img_filename($img); // custom function to parse CSV, eg 'an-image-name.jpg' $filename_query = "media_manager_image.filename=$filename"; $m = wire('pages')->find("template=media-manager-image,$filename_query"); if ($m->id > 0) { // This doesn't work because it's not an image field $p->blog_images = $m; } $p->save();
  13. Perhaps you could increase the php memory limit if it's set low. https://documentation.mamp.info/en/MAMP-PRO-Mac/FAQ/PHP/Increase-the-PHP-memory-limit/ Otherwise, can you describe more specifically what you're trying to achieve when development feels slow?
  14. Hi everyone, I'm working a on a big site redesign at the moment which requires a separate staging site. The client is regularly publishing changes on the production site which we occasionally need to merge across to the staging site, along with things like contact form entries. ProcessPagesExportImport generally does a great job here, but we're finding some instances where images aren't merged across. Specifically built-in image fields, images within CKEditor fields, images within repeaters, and media fields from the MediaManager module. Sometimes they migrate successfully, sometimes they don't. I'm not seeing any error messages or exceptions in the logs. Are there any gotchas I need to be aware of? I wondered if it might be to do with the fact pages have different IDs in production/staging, or that a page ID might already be occupied on staging by a different page. Thanks!
  15. I'm writing a custom translation exported for a client and I'm having trouble outputting static translations in languages other than the default. Here's what I'm trying to do, but it's just outputting English both times. I must be missing something, but can't see anything in the docs or forum about how to acheive this. <?php function echoSnippet($string, $lang) { // Echo the string in english wire('user')->setLanguage(wire('languages')->get('name=en')); echo __($string); // Echo the string in german wire('user')->setLanguage($lang); echo __($string); } $lang = $languages->get("name=de"); echoSnippet("Page not found", $lang); Does anyone have any pointers? Thanks!
×
×
  • Create New...