Repository navigation
Fixes
- Coerce
contentquery input on the publicQrCode/QrCode/imageandAdmin/QrCode/imageactions before any string operation. PreviouslygetQuery('content')returned mixed and was passed straight tostrlen()/formatText(string)— a crafted?content[]=fooagainst the public unauthenticated route raised an uncaughtTypeError. Both actions now throwBadRequestExceptionon missing/array/overlong input. The 2953-byte cap is hoisted into aMAX_CONTENT_LENGTHconstant, and theAdmin/QrCode/indexPOST branch applies the sameis_string+ length cap so the helper cannot be asked to render multi-megabyte payloads via the form. - Centralize MECARD escaping in
Formatter::formatCard. Every scalar field (name,nickname,sound,note,tel,video,address,org,role,email,url) now routes through a singleescapeMecardhelper that escapes\,;,:,,, CR and LF in spec order. Previously onlynotewas partially escaped, so a single;in any other field truncated the rest of the MECARD payload at the scanner.
Improvements
- Switched the 3 admin-template
__()calls to__d('qrcode', ...)so plugin strings live in their own i18n domain instead of leaking into the host app'sdefaultdomain. Addedresources/locales/qrcode.pot(3 unique msgids) so language packs can be derived from a stable POT.
Full Changelog: 0.1.3...0.1.4