From 4e678c158430d5f347b335450424602ce571cdee Mon Sep 17 00:00:00 2001 From: Ryan Cramer Date: Fri, 10 Jan 2025 10:27:09 -0500 Subject: [PATCH] Various minor updates --- README.md | 18 +++++++----------- site-blank/config.php | 2 +- wire/config.php | 2 +- wire/core/PageFinder.php | 28 ++++++++++++++++++++++++++-- wire/core/Sanitizer.php | 10 ++++++---- 5 files changed, 41 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index ca126898..042a66cb 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ development branch. ProcessWire is a timeless tool for web professionals that has always been committed to the long term. It started in 2003, gained the name ProcessWire in 2006, and has been in active development as an open source project since 2010. -Now more than a decade later (2023), we’re just getting started, as ProcessWire +Now more than a decade later (2025), we’re just getting started, as ProcessWire continues to grow and develop into the next 10 years and beyond. While ProcessWire has been around for a long time, don’t feel bad if you haven’t @@ -71,9 +71,7 @@ in the ProcessWire forums, subscribe to our [weekly newsletter](https://processwire.com/community/newsletter/subscribe/) for the latest ProcessWire news, check out our [website showcase](https://processwire.com/sites/) -to see what others are building with ProcessWire, and read our -[blog](https://processwire.com/blog/) -to stay up-to-date with the latest ProcessWire versions. +to see what others are building with ProcessWire. Weekly ProcessWire news is posted by Teppo Koivula on his site [ProcessWire Weekly](https://weekly.pw). @@ -129,15 +127,15 @@ replacing your `/wire/` directory with the one from the newer version. ### Pro module version upgrade notes (if applicable) - [FormBuilder](https://processwire.com/store/form-builder/) - version 0.5.3 or newer recommended. + version 0.5.5 or newer recommended. - [ListerPro](https://processwire.com/store/lister-pro/) - version 1.1.5 or newer recommended. + version 1.1.6 or newer recommended. - [ProFields](https://processwire.com/store/pro-fields/) the latest versions of all ProFields (10 modules) are recommended. - [LoginRegisterPro](https://processwire.com/store/login-register-pro/) - version 7 or newer recommended. + version 8 or newer recommended. - [ProCache](https://processwire.com/store/pro-cache/) - version 4.0.3 or newer recommended. After upgrading, go to your ProCache + version 4.0.5 or newer recommended. After upgrading, go to your ProCache settings in the admin (Setup > ProCache) and see if it suggests any modifications to your .htaccess file. @@ -171,14 +169,12 @@ resolved any issues. * [ProcessWire Support Forums](https://processwire.com/talk/) * [ProcessWire Weekly News](https://weekly.pw/) -* [ProcessWire Blog](https://processwire.com/blog/) * [Sites running ProcessWire](https://processwire.com/sites/) * [Subscribe to ProcessWire Weekly email](https://processwire.com/community/newsletter/subscribe/) * [Submit your site to our directory](https://processwire.com/sites/submit/) -* [Follow @processwire on X-Twitter](http://twitter.com/processwire/) * [Contact ProcessWire developer](https://processwire.com/contact/) * [Report issue](https://github.com/processwire/processwire-issues/issues) ------ -Copyright 2023 by Ryan Cramer / Ryan Cramer Design, LLC \ No newline at end of file +Copyright 2025 by Ryan Cramer / Ryan Cramer Design, LLC \ No newline at end of file diff --git a/site-blank/config.php b/site-blank/config.php index 3fda1a04..e8cbcb91 100644 --- a/site-blank/config.php +++ b/site-blank/config.php @@ -17,7 +17,7 @@ * This file is licensed under the MIT license * https://processwire.com/about/license/mit/ * - * ProcessWire 3.x, Copyright 2023 by Ryan Cramer + * ProcessWire 3.x, Copyright 2025 by Ryan Cramer * https://processwire.com * */ diff --git a/wire/config.php b/wire/config.php index 5553ee26..3f110741 100644 --- a/wire/config.php +++ b/wire/config.php @@ -12,7 +12,7 @@ * You may also make up your own configuration options by assigning them * in /site/config.php * - * ProcessWire 3.x, Copyright 2022 by Ryan Cramer + * ProcessWire 3.x, Copyright 2025 by Ryan Cramer * https://processwire.com * * diff --git a/wire/core/PageFinder.php b/wire/core/PageFinder.php index fe50ae61..e121a0ed 100644 --- a/wire/core/PageFinder.php +++ b/wire/core/PageFinder.php @@ -5,7 +5,7 @@ * * Matches selector strings to pages * - * ProcessWire 3.x, Copyright 2024 by Ryan Cramer + * ProcessWire 3.x, Copyright 2025 by Ryan Cramer * https://processwire.com * * Hookable methods: @@ -1860,7 +1860,15 @@ class PageFinder extends Wire { $q->set('joinType', $joinType); $q->bindOption('global', true); // ensures bound value key are globally unique $q->bindOption('prefix', 'pf'); // pf=PageFinder - + + /* @todo To be implemented after 3.0.245 + if(strpos($subfields, 'JSON.') === 0) { + if($this->getMatchQueryJSON($q, $tableAlias, $subfields, $selector->operator, $value)) { + continue; + } + } + */ + $q = $fieldtype->getMatchQuery($q, $tableAlias, $subfield, $selector->operator, $value); $q->copyTo($query, array('select', 'join', 'leftjoin', 'orderby', 'groupby')); $q->copyBindValuesTo($query); @@ -1981,6 +1989,22 @@ class PageFinder extends Wire { return $query; } + /** + * Get match query when data is stored in a JSON DB column (future use) + * + * @param PageFinderDatabaseQuerySelect DatabaseQuerySelect $q + * @param string $tableAlias + * @param string $subfields + * @param string $operator + * @param string|int|array $value + * @return bool + * + */ + protected function getMatchQueryJSON(DatabaseQuerySelect $q, $tableAlias, $subfields, $operator, $value) { + // @todo to be implemented after 3.0.245 + return false; + } + /** * Post process a DatabaseQuerySelect for page finder * diff --git a/wire/core/Sanitizer.php b/wire/core/Sanitizer.php index a55ad092..2e3a2bda 100644 --- a/wire/core/Sanitizer.php +++ b/wire/core/Sanitizer.php @@ -1174,10 +1174,12 @@ class Sanitizer extends Wire { */ protected function getPunycodeVersion($version = 0) { $config = $this->wire()->config; - if(!$version && strpos($config->pageNameWhitelist, 'v') === 0) { - // i.e. "v3" specified at beginning of pageNameWhitelist - $version = substr($config->pageNameWhitelist, 1, 1); - $version = ctype_digit($version) ? (int) $version : 0; + if(!$version) { + $whitelist = $config->pageNameWhitelist; + for($n = 3; $n > 0; $n--) { + if(strpos($whitelist, "v$n") !== false) $version = $n; + if($version) break; + } } if(!$version) $version = $config->installedAfter('2025-01-04') ? 3 : 1; if(!function_exists('idn_to_utf8')) $version = 2;