From 2d29cf935efb79361fd3f5ab3c44cabe65089ab2 Mon Sep 17 00:00:00 2001 From: Ryan Cramer Date: Fri, 16 Sep 2022 08:57:34 -0400 Subject: [PATCH] Fix issue processwire/processwire-issues#1619 by improving the error message when encountering an unsupported name for a module --- .../Process/ProcessModule/ProcessModule.module | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/wire/modules/Process/ProcessModule/ProcessModule.module b/wire/modules/Process/ProcessModule/ProcessModule.module index 3207adbc..7efbe942 100644 --- a/wire/modules/Process/ProcessModule/ProcessModule.module +++ b/wire/modules/Process/ProcessModule/ProcessModule.module @@ -837,7 +837,16 @@ class ProcessModule extends Process { foreach($modulesArray as $name => $installed) { if(strpos($name, $section) !== 0 || preg_match('/' . $section . '[^A-Z0-9]/', $name)) { - if(!preg_match('/^([A-Za-z][a-z]+)/', $name, $matches)) $this->error(sprintf($this->_('Invalid module name: %s'), $name)); + if(!preg_match('/^([A-Za-z][a-z]+)/', $name, $matches)) { + $example = $sanitizer->alpha($sanitizer->fieldName($name)); + $example = strtoupper(substr($example, 0, 1)) . strtolower(substr($example, 1, 1)) . substr($example, 2); + $this->error( + sprintf($this->_('Invalid module name: ā€œ%sā€'), $name) . ' ' . + $this->_('Please use uppercase [A-Z] for first character, lowercase [a-z] for 2nd character, and [a-z A-Z 0-9] for the rest.') . ' ' . + sprintf($this->_('For example: ā€œ%sā€'), $example) + ); + continue; + } if($options['allowSections'] || is_null($table)) { $section = $matches[1]; $sections[] = $section;