Jump to content

AAD Web Team

  • Posts

  • Joined

  • Last visited

  • Days Won


AAD Web Team last won the day on December 18 2018

AAD Web Team had the most liked content!

Contact Methods

  • Website URL

Profile Information

  • Gender
    Not Telling
  • Location
    Hobart, Tasmania, Australia

Recent Profile Visitors

1,368 profile views

AAD Web Team's Achievements

Full Member

Full Member (4/6)



  1. I was trying to use the advanced text search (#=) operator in a selector, and I couldn’t work out why my search for the text: +cat dog wasn’t working properly (the plus sign was being ignored), while a search for: dog +cat works fine. Also, prefixing words with minus always worked fine. Phrase searching with double-quotes wasn’t working, but it was fine with parenthesis. After a while I realised this was due to the $sanitizer->selectorValue() function I was using on the query string before using it in the selector. The following things are true: $sanitizer->selectorValue('+cat dog') === 'cat dog'; // Discards the leading plus sign, search doesn't work as expected. $sanitizer->selectorValue('dog +cat') === '"dog +cat"'; // Keeps the plus sign and puts double-quotes around the string. $sanitizer->selectorValue('-cat dog') === '"-cat dog"'; // Keeps the minus sign and puts double-quotes around the string. $sanitizer->selectorValue('dog -cat') === 'dog -cat'; // Keeps the minus sign, no double-quotes. $sanitizer->selectorValue('"jet black cat"') === '"jet black cat"'; // Keeps double-quotes; phrase searching doesn't work. $sanitizer->selectorValue('jet "black cat"') === 'jet black cat'; // Discards double-quotes; phrase searching doesn't work. $sanitizer->selectorValue('jet (black cat)') === 'jet (black cat)'; // Phrase searching works. These effects seem confusing. Is it something that needs to be fixed in ProcessWire, or is there a different way I should be using to sanitise the query string? The documentation recommends surrounding the query text with double-quotes but this doesn’t help with these examples. We’re using ProcessWire 3.0.164.
  2. I found the following to be a bit confusing, so I'm posting it to check if my understanding is correct… If we're looking for a page at a particular path that unfortunately has a comma in it (I'm aiming to get rid of all commas in URLs in future, but there's a legacy of existing ones to deal with): $path = '/news/2012/australia,france'; We had the code: $result = $pages->get($path); This was throwing an exception inside the ProcessWire core: Error: Exception: Unknown Selector operator: '[empty]' -- was your selector value properly escaped? (in /srv/www/antarctica/wire/core/Selectors.php line 420) The mention of 'escaped' made me think to use sanitizer on the path before using it in a selector. So I changed the code: $safePath = $sanitizer->selectorValue($path); $result = $pages->get($safePath); This was surrounding the path with double-quotes before passing it through. However I was still getting the same error (with some slightly different details). Then I realised that despite the error message mentioning 'selector', $pages->get() isn't actually treating the my $safePath variable as a selector string, but as a string that contains a page path, which is why it still crashes. Then I tried this: $safePath = $sanitizer->selectorValue($path); $result = $pages->get("path=$safePath"); This works! (i.e., it doesn't crash. We don't find any page – I don't think ProcessWire can have commas in paths anyway. So it's fine to return a NullPage, I just wanted it to not crash.) However, using 'path=' in a selector isn't documented, so I'm not sure if this is something you're supposed to do. The instructions suggest that you use either a selector or a page path, but not a page path within a selector. Does anyone have any advice about this? Is 'path=' supported in a selector? How does the $pages->get() or $pages->findOne() method know if it's being passed a selector string or a string that contains a page path?
  3. We've been doing basically the same thing but like this: $selector .= ", has_started=(start_date=''), has_started=(start_date<=today)"; $selector .= ", not_ended=(end_date=''), not_ended=(end_date>today)"; It seems to work ok. I don’t know of an easier way.
  4. We've found the same thing on PW 3.0.148 with any custom image fields, when the images are inside a repeater. After drag-and-dropping the images in, on the first save after that, any custom field text (e.g. caption, photographer) is simply lost. In a subsequent save, the text is saved fine. Every time a new image is dragged in, the page must be saved before adding text to the custom fields for that image. Otherwise text entered for the new image is lost (text previously entered for other images in the same repeater is fine). This seems to have been logged as a bug on 23 January: https://github.com/processwire/processwire-issues/issues/1070
  5. Thanks @Robin S – that's an excellent explanation. I didn't previously know about the difference between PageFinder and in-memory selectors. It'd probably be good if allowable date formats were explained on the selectors documentation page. (I'm not sure what the best process for suggesting documentation updates is.)
  6. The selectors documentation has the example, when working with a Datetime field of: featured_from<=today Does this mean we can use any format compatible with PHPs strtotime function? I tried: my_date>=5 weeks ago …and it seemed to work. What about when using Unix timestamps? The strtotime documentation suggests you'd need: my_date>=@1526265087 … but we just had: my_date>=1526265087 …and it seemed ok. Anyway, given this all seems to work we can just keep doing it, but I wanted to check that this is a 'supported' way to use dates in selectors, so I know we can rely on it.
  7. EDIT: I'm still curious whether this is possible, but given this template has very low usage on our site I've decided to change it to a Verified URL field instead of a Page Reference. Problem solved! Hi, I have a 'redirect' template which consists of basically just a Page Reference field (it was designed for our in-page 'visual' navigation and works perfectly there). However, in our left navigation I'd also like it to point to the URL of the referenced page rather than the URL of the page that has the redirect template applied. I tried 'xitem_tpl' => '<a href="{target_page->url}">{title}</a>', but it doesn't appear to accept the target_page->url syntax (it just points to the URL of the current page instead). Is there a way to achieve this? I'd prefer not to have to hide that template type from the left navigation if at all possible. Thanks! Margaret
  8. What's the best practice for using an external database – say, a MySQL database that lives on the same server as the ProcessWire database, but is separate from it? I had a look at $database in the API, but it looks as if it understandably just refers to the current ProcessWire database.
  9. Hi again @bernhard and @wbmnfktr, It should now be fixed. Well, I think there's still some kind of bug in the way Chrome for Android behaves, but I was able to completely turn off the 'touch' option for the modal menu instance of Fancybox. Swiping is not needed for the menu so that has fixed the issue, and it doesn't seem to have had any other adverse effects from what I can see so far. 🙂
  10. I'm just resurrecting this old thread to let you know that our SCARCOMNAP 2020 conference site built in PW is being discontinued. It is being replaced with a site hosted by the conference organiser, so no longer in ProcessWire. The URL will redirect, so I wouldn't want there to be any confusion for people who happen to visit it from here (or the Showcase while it's still listed there). I'm not sure how to remove a site from the Showcase... is this notification sufficient? Thanks!
  11. Thanks @wbmnfktr, I'll certainly have to have a play around with those options (I've left them all at their defaults). However, I would've thought the resulting behaviour should be the same across browsers. In this case, it's only a problem with the Android version of Chrome. In all other browsers that I've tested it behaves as it should, where the menu only closes if you tap the close button or outside the blue menu area.
  12. This is an odd one. It seems to only happen in the Android version of Chrome. If you keep your finger on the menu while scrolling it works, but as soon as you touch the blue background and scroll, the modal closes. In my testing, it doesn't happen in Firefox on the same type of phone, nor does it happen in Chrome or Safari on iOS. I'm not sure if this is a bug with Fancybox or a bug with Chrome for Android - either way I'm not sure how to go about fixing it or even where to report the bug. I'll keep Googling to see if I can find anyone else with the same issue.
  13. Hi @bernhard, I think I've now fixed the issue with the menu that you were experiencing with your phone. Would you mind taking another look? Thanks!
  14. G'day … I'm not sure if this is an actual problem, or just my lack of understanding about how this is supposed to work. We're using PW 3.0.131 with the ImageExtra 1.0.6 module. I'm using the API to automatically import lots of pages with images into PW from a different web CMS. I'm having trouble updating some of the custom image fields, which don't save unless a core image field is also updated. In code, where $p is a particular page and $img is a particular image on that page, this works: $p->of(false); $img->description = 'foo'; // Standard field $img->photographer = 'bar'; // Our custom field created with ImageExtra $p->save(); // Updates the record in the database. But this doesn't work: $p->of(false); $img->photographer = 'bar'; // Our custom field created with ImageExtra $p->save(); // Makes no difference to the record in the database. This also doesn't work: $p->of(false); $img->photographer = 'bar'; // Our custom field created with ImageExtra $p->save('photographer'); // Makes no difference to the record in the database. In all cases the $p->save method returns true to indicate success. Can anyone help me understand what's going on here? Thanks!
  • Create New...