| /plugin/usersettings/ |
| H A D | helper.php | 49b74e0a20d271d13e295d5f68707f57e70072a5 Mon Jun 01 02:29:31 UTC 2026 tracker-user <82045103+tracker-user@users.noreply.github.com> Review: fix lock collision, lazy lang-apply, endonyms, null-guards, namespacing
- helper: use a distinct lock key ($file.'.lock') in setPreferences() so the outer read-modify-write lock does not collide with io_saveFile()'s own internal lock — previously caused a ~3 s CPU spin on every save - action: applyUserLang() reads the stored 'lang' record directly via getRecord() instead of getPreference(), avoiding the REGISTER event (and inc/lang/ glob) on every logged-in request; the toggle registry is now built after $conf['lang'] is updated, so toggle labels resolve in the user's language. Add [a-z0-9-] charset guard on the stored code. Remove the now-moot $this->localised/$this->lang cache reset. - action: getAvailableLanguages() returns native endonyms via languageName() (covers all 78 DokuWiki lang dirs; unknown codes fall back to bare code) - admin: ?? '' null-guard on $userData['name'] in two places - All three files: migrate to namespaced base classes (dokuwiki\Extension\{Plugin,ActionPlugin,AdminPlugin,EventHandler,Event}) - plugin.info.txt: bump date to 2026-06-01
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
| H A D | admin.php | 49b74e0a20d271d13e295d5f68707f57e70072a5 Mon Jun 01 02:29:31 UTC 2026 tracker-user <82045103+tracker-user@users.noreply.github.com> Review: fix lock collision, lazy lang-apply, endonyms, null-guards, namespacing
- helper: use a distinct lock key ($file.'.lock') in setPreferences() so the outer read-modify-write lock does not collide with io_saveFile()'s own internal lock — previously caused a ~3 s CPU spin on every save - action: applyUserLang() reads the stored 'lang' record directly via getRecord() instead of getPreference(), avoiding the REGISTER event (and inc/lang/ glob) on every logged-in request; the toggle registry is now built after $conf['lang'] is updated, so toggle labels resolve in the user's language. Add [a-z0-9-] charset guard on the stored code. Remove the now-moot $this->localised/$this->lang cache reset. - action: getAvailableLanguages() returns native endonyms via languageName() (covers all 78 DokuWiki lang dirs; unknown codes fall back to bare code) - admin: ?? '' null-guard on $userData['name'] in two places - All three files: migrate to namespaced base classes (dokuwiki\Extension\{Plugin,ActionPlugin,AdminPlugin,EventHandler,Event}) - plugin.info.txt: bump date to 2026-06-01
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
| H A D | README.md | 49b74e0a20d271d13e295d5f68707f57e70072a5 Mon Jun 01 02:29:31 UTC 2026 tracker-user <82045103+tracker-user@users.noreply.github.com> Review: fix lock collision, lazy lang-apply, endonyms, null-guards, namespacing
- helper: use a distinct lock key ($file.'.lock') in setPreferences() so the outer read-modify-write lock does not collide with io_saveFile()'s own internal lock — previously caused a ~3 s CPU spin on every save - action: applyUserLang() reads the stored 'lang' record directly via getRecord() instead of getPreference(), avoiding the REGISTER event (and inc/lang/ glob) on every logged-in request; the toggle registry is now built after $conf['lang'] is updated, so toggle labels resolve in the user's language. Add [a-z0-9-] charset guard on the stored code. Remove the now-moot $this->localised/$this->lang cache reset. - action: getAvailableLanguages() returns native endonyms via languageName() (covers all 78 DokuWiki lang dirs; unknown codes fall back to bare code) - admin: ?? '' null-guard on $userData['name'] in two places - All three files: migrate to namespaced base classes (dokuwiki\Extension\{Plugin,ActionPlugin,AdminPlugin,EventHandler,Event}) - plugin.info.txt: bump date to 2026-06-01
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
| H A D | action.php | 49b74e0a20d271d13e295d5f68707f57e70072a5 Mon Jun 01 02:29:31 UTC 2026 tracker-user <82045103+tracker-user@users.noreply.github.com> Review: fix lock collision, lazy lang-apply, endonyms, null-guards, namespacing
- helper: use a distinct lock key ($file.'.lock') in setPreferences() so the outer read-modify-write lock does not collide with io_saveFile()'s own internal lock — previously caused a ~3 s CPU spin on every save - action: applyUserLang() reads the stored 'lang' record directly via getRecord() instead of getPreference(), avoiding the REGISTER event (and inc/lang/ glob) on every logged-in request; the toggle registry is now built after $conf['lang'] is updated, so toggle labels resolve in the user's language. Add [a-z0-9-] charset guard on the stored code. Remove the now-moot $this->localised/$this->lang cache reset. - action: getAvailableLanguages() returns native endonyms via languageName() (covers all 78 DokuWiki lang dirs; unknown codes fall back to bare code) - admin: ?? '' null-guard on $userData['name'] in two places - All three files: migrate to namespaced base classes (dokuwiki\Extension\{Plugin,ActionPlugin,AdminPlugin,EventHandler,Event}) - plugin.info.txt: bump date to 2026-06-01
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
| H A D | plugin.info.txt | 49b74e0a20d271d13e295d5f68707f57e70072a5 Mon Jun 01 02:29:31 UTC 2026 tracker-user <82045103+tracker-user@users.noreply.github.com> Review: fix lock collision, lazy lang-apply, endonyms, null-guards, namespacing
- helper: use a distinct lock key ($file.'.lock') in setPreferences() so the outer read-modify-write lock does not collide with io_saveFile()'s own internal lock — previously caused a ~3 s CPU spin on every save - action: applyUserLang() reads the stored 'lang' record directly via getRecord() instead of getPreference(), avoiding the REGISTER event (and inc/lang/ glob) on every logged-in request; the toggle registry is now built after $conf['lang'] is updated, so toggle labels resolve in the user's language. Add [a-z0-9-] charset guard on the stored code. Remove the now-moot $this->localised/$this->lang cache reset. - action: getAvailableLanguages() returns native endonyms via languageName() (covers all 78 DokuWiki lang dirs; unknown codes fall back to bare code) - admin: ?? '' null-guard on $userData['name'] in two places - All three files: migrate to namespaced base classes (dokuwiki\Extension\{Plugin,ActionPlugin,AdminPlugin,EventHandler,Event}) - plugin.info.txt: bump date to 2026-06-01
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|