Seznam změn
- podpora načítání pluginů z composer balíků (vendor/)
- autor článku se nyní nezapočítává do počtu zobrazení
- systém uživatelů
- změnu e-mailu uživatele je nyní potřeba potvrdit na nové adrese
- minimální délka hesla je nyní 8 znaků (lze změnit v nastavení)
- navýšen počet PBKDF2 iterací při hashování hesla
- ochrana proti XSS
- přidáno filtrování obsahu stránek, článků a boxů jako prevence možných persistent XSS útoků
(CVE-2023-48201, reporter: @mechaneus) - přidán nastavitelný seznam povolených přípon souborů jako prevence možných persistent XSS útoků
(CVE-2023-48202, reporter: @mechaneus) - oprava chybějícího filtrování HCM modulů v obsahu boxů
- přidáno filtrování obsahu stránek, článků a boxů jako prevence možných persistent XSS útoků
- BBCode
- přidán nový tag [quote]
- vylepšení zpracování prázdných řádků kolem tagu [code]
- oprava vykreslování tagů uvnitř [code]
- administrace
- vylepšení seznamu stránek
- vylepšení zobrazení dlouhých URL v logu
- vylepšení indikátorů v seznamu boxů (@jdanek)
- přidána možnost nahradit pluginy v modulu plugins-upload
- deaktivace admin modulu other-patch pokud projekt používá SunLight konzoli
- technické změny
- přesun konfigurace pluginů do plugins/config/
- přidána možnost definovat base_url v config.php
- přidány nové extend události:
- render.meta_generator
- form.input, form.input.after
- form.textarea, form.textarea.after
- form.select, form.select.after
- article.fallback_thumbnail, article.preview.fallback_thumbnail
- přidány wrappery kolem výpisů položek (články, příspěvky, apod.)
- pro renderování formulářových prvků se nyní používají nové Form metody (@jdanek)
- cache-busting parametr pro URL assetů je nyní hash
- oprava výstupu Plugin::getAssetPath() s query anebo fragmentem
- oprava možné chyby v postprev.php pokud chybí obsah
- nové metody:
- Form::input(), Form::select(), Form::textarea(), Form::option()
- Request::hasHeader(), Request::header()
- GenericTemplates::renderAttrs()
- Core::isCacheEnabled()
- breaking-changes:
- extend událost admin.editor nyní dostává parametr "content" místo "html_content"
- metoda Filesystem::purgeDirectory() má novou implementaci
- metoda Form::loadCheckbox() má novou implementaci
- většina původních properties třídy Plugin je nyní obsažena v property $data
- smazána nepoužívaná konstanta Core::DIST
- smazána výjimka PrivilegeException a související logika
- smazána metoda PluginManager::select()
- smazány metody Form::restore…(), Form::activateCheckbox(), Form::selectOption(), Form::disableInputUnless()