Le principal changement coté code est l'intégration de la librairie Clearbricks à Dotclear.
Nouveautés :
En anglais dans le texte voici la listes des changements de la version majeure 2.26 :
* PHP 7.4+ is required, PHP 8.0/8.1/8.2 compliance * Fix: Remove pragma for correct caching behaviour (pragma header is deprecated) * Fix: Ensure codemirror rendered area is readonly if textarea source is readonly too * Fix: Allow dcLegacyEditor applied on excerpt or content textarea only * Fix: Show format (syntax) label rather than format code in filter * Core: Clearbricks library has been directly included in Dotclear * Core: Update timezones from https://www.iana.org/time-zones * Core: Disabled REST services during last phase of update * Core: Clear file status cache to avoid running old code after update * Core: Add php min in requires property in module define * Admin: A media type has been added to media filter * Admin: Add post type in breadcrumb if necessary * Admin: Sort media thumb sizes in descending order (largest first) * Admin: Add a constant to disable REST services (may be useful during debugging session) * Admin: Avoid uploading of phar media * Admin: Fix appearance of action buttons for blog themes * Admin: Allow 3rd party plugin to use CKEditor to their own textarea on complex admin pages * Admin: Allow 3rd party plugin to use CodeMirror to their own textarea on complex admin pages * Admin: Harmonize fieldset (+legend/h3/h4) and CSS class .fieldset (h3/h4) * Admin: Hide dependency information of module (in details/summary) in plugins management page * a11y: Add lang attribute for each language select options or list * Various bugs, a11y concerns and typos fixed * Some locales and cosmetic adjustments * Warning: Next major release (2.27) may require PHP 8.1 (announced in backend) or PHP 8.2
Dépréciés
- adminThemesList::$distributed_modules => aucun remplacement, devient automatique,
- adminModulesList::$distributed_modules => aucun remplacement, devient automatique,
- Dotclear\Helper\Clearbricks::lib() => utiliser les espaces de noms directement,
- Dotclear\Helper\Clearbricks::add() => utiliser les espaces de noms directement,
- Dotclear\Helper\Clearbricks::autoload() => utiliser les espaces de noms directement,
- Tous les form::xxx => leurs équivalents
Dotclear\Helper\Html\Form\Xxx
, - dcRecord::toExtStatic() =>
Dotclear\Database\MetaRecord::toStatic()
, - adminModulesList::setModules() =>
ModulesList::setDefine()
, - adminModulesList::getModules() =>
ModulesList::getDefines()
, - adminModulesList::sanitizeModule() =>
ModulesList::fillSanitizeModule()
, - adminModulesList::fillSanitizeModule() =>
ModulesList::fillSanitizeModule()
, - adminModulesList::isDistributedModule() =>
dcModules::getDefine($id)->distributed
, - adminModulesList::sortModules() => fonction
uasort
de PHP, - dcmodules::getModules() =>
dcModules::getDefines() et Modules::getDefine($id)
, - dcModules::getAnyModules() =>
dcModules::getDefines()
, - dcModules::getDisabledModules() =>
dcModules::getDefines(['state' => '!' . dcModuleDefine::STATE_ENABLED])
, - dcModules::getHardDisabledModules() =>
dcModules::getDefines(['state' => dcModuleDefine::STATE_HARD_DISABLED])
, - dcModules::getSoftDisabledModules() =>
dcModules::getDefines(['state' => dcModuleDefine::STATE_SOFT_DISABLED])
, - dcModules::moduleRoot() =>
dcModules::moduleInfo($id, 'root')
oudcModules::getDefine($id, ['state' => dcModuleDefine::STATE_ENABLED])->root
, - dcModules::loadNsFiles() => rien,
- dcStoreParser::getModules() =>
dcStoreParser::getDefines()
, - dcStore::get() =>
dcStore::getDefines()
, - dcStore::search() =>
dcStore::searchDefines()
, - dcUtils::removeDiacritics() =>
Text::removeDiacritics()
,
Déplacés :
L'intégration de la librairie Clearbricks à Dotclear en passant en espaces de noms amène un nombre important de changement de noms de classes.
'Clearbricks' => 'Dotclear\Helper\Clearbricks', // Form helpers 'formButton' => 'Dotclear\Helper\Html\Form\Button', 'formCheckbox' => 'Dotclear\Helper\Html\Form\Checkbox', 'formColor' => 'Dotclear\Helper\Html\Form\Color', 'formComponent' => 'Dotclear\Helper\Html\Form\Component', 'formDate' => 'Dotclear\Helper\Html\Form\Date', 'formDatetime' => 'Dotclear\Helper\Html\Form\Datetime', 'formDiv' => 'Dotclear\Helper\Html\Form\Div', 'formEmail' => 'Dotclear\Helper\Html\Form\Email', 'formFieldset' => 'Dotclear\Helper\Html\Form\Fieldset', 'formFile' => 'Dotclear\Helper\Html\Form\File', 'formForm' => 'Dotclear\Helper\Html\Form\Form', 'formHidden' => 'Dotclear\Helper\Html\Form\Hidden', 'formInput' => 'Dotclear\Helper\Html\Form\Input', 'formLabel' => 'Dotclear\Helper\Html\Form\Label', 'formLegend' => 'Dotclear\Helper\Html\Form\Legend', 'formLink' => 'Dotclear\Helper\Html\Form\Link', 'formNote' => 'Dotclear\Helper\Html\Form\Note', 'formNumber' => 'Dotclear\Helper\Html\Form\Number', 'formOptgroup' => 'Dotclear\Helper\Html\Form\Optgroup', 'formOption' => 'Dotclear\Helper\Html\Form\Option', 'formPara' => 'Dotclear\Helper\Html\Form\Para', 'formPassword' => 'Dotclear\Helper\Html\Form\Password', 'formRadio' => 'Dotclear\Helper\Html\Form\Radio', 'formSelect' => 'Dotclear\Helper\Html\Form\Select', 'formSubmit' => 'Dotclear\Helper\Html\Form\Submit', 'formText' => 'Dotclear\Helper\Html\Form\Text', 'formTextarea' => 'Dotclear\Helper\Html\Form\Textarea', 'formTime' => 'Dotclear\Helper\Html\Form\Time', 'formUrl' => 'Dotclear\Helper\Html\Form\Url', // Diff helpers 'diff' => 'Dotclear\Helper\Diff\Diff', 'tidyDiff' => 'Dotclear\Helper\Diff\TidyDiff', 'tidyDiffChunk' => 'Dotclear\Helper\Diff\TidyDiffChunk', 'tidyDiffLine' => 'Dotclear\Helper\Diff\TidyDiffLine', // Crypt helpers 'crypt' => 'Dotclear\Helper\Crypt', // Mail helpers 'mail' => 'Dotclear\Helper\Network\Mail\Mail', 'socketMail' => 'Dotclear\Helper\Network\Mail\MailSocket', // Pager helpers 'pager' => 'Dotclear\Helper\Html\Pager', // XmlTag helpers 'xmlTag' => 'Dotclear\Helper\Html\XmlTag', // Rest helpers 'restServer' => 'Dotclear\Helper\RestServer', // Text helpers 'text' => 'Dotclear\Helper\Text', // Files and Path, … helpers 'files' => 'Dotclear\Helper\File\Files', 'path' => 'Dotclear\Helper\File\Path', 'filemanager' => 'Dotclear\Helper\File\Manager', 'fileItem' => 'Dotclear\Helper\File\File', // Html helpers 'html' => 'Dotclear\Helper\Html\Html', 'htmlFilter' => 'Dotclear\Helper\Html\HtmlFilter', // Mail helpers 'http' => 'Dotclear\Helper\Network\Http', // Wiki helpers 'wiki2xhtml' => 'Dotclear\Helper\Html\WikiToHtml', // Simple Template Systeme 'template' => 'Dotclear\Helper\Html\Template\Template', 'tplNode' => 'Dotclear\Helper\Html\Template\TplNode', 'tplNodeBlock' => 'Dotclear\Helper\Html\Template\TplNodeBlock', 'tplNodeText' => 'Dotclear\Helper\Html\Template\TplNodeText', 'tplNodeValue' => 'Dotclear\Helper\Html\Template\TplNodeValue', 'tplNodeBlockDefinition' => 'Dotclear\Helper\Html\Template\TplNodeBlockDefinition', 'tplNodeValueParent' => 'Dotclear\Helper\Html\Template\TplNodeValueParent', // HTML Validation 'htmlValidator' => 'Dotclear\Helper\Html\HtmlValidator', // Socket 'netSocket' => 'Dotclear\Helper\Network\Socket\Socket', // L10n 'l10n' => 'Dotclear\Helper\L10n', // Image helpers 'imageMeta' => 'Dotclear\Helper\File\Image\ImageMeta', 'imageTools' => 'Dotclear\Helper\File\Image\ImageTools', // URL Handler 'urlHandler' => 'Dotclear\Helper\Network\UrlHandler', // net HTTP Client 'netHttp' => 'Dotclear\Helper\Network\HttpClient', // XML-RPC helper 'xmlrpcException' => 'Dotclear\Helper\Network\XmlRpc\XmlRpcException', 'xmlrpcValue' => 'Dotclear\Helper\Network\XmlRpc\Value', 'xmlrpcMessage' => 'Dotclear\Helper\Network\XmlRpc\Message', 'xmlrpcRequest' => 'Dotclear\Helper\Network\XmlRpc\Request', 'xmlrpcDate' => 'Dotclear\Helper\Network\XmlRpc\Date', 'xmlrpcBase64' => 'Dotclear\Helper\Network\XmlRpc\Base64', 'xmlrpcClient' => 'Dotclear\Helper\Network\XmlRpc\Client', 'xmlrpcClientMulticall' => 'Dotclear\Helper\Network\XmlRpc\ClientMulticall', 'xmlrpcBasicServer' => 'Dotclear\Helper\Network\XmlRpc\BasicServer', 'xmlrpcIntrospectionServer' => 'Dotclear\Helper\Network\XmlRpc\IntrospectionServer', // Feed Helpers 'feedParser' => 'Dotclear\Helper\Network\Feed\Parser', 'feedReader' => 'Dotclear\Helper\Network\Feed\Reader', // Date helpers 'dt' => 'Dotclear\Helper\Date', // Zip helpers 'fileZip' => 'Dotclear\Helper\File\Zip\Zip', 'fileUnzip' => 'Dotclear\Helper\File\Zip\Unzip', // Database ------------------- 'dcSqlStatement' => 'Dotclear\Database\Statement\SqlStatement', 'dcSelectStatement' => 'Dotclear\Database\Statement\SelectStatement', 'dcJoinStatement' => 'Dotclear\Database\Statement\JoinStatement', 'dcUpdateStatement' => 'Dotclear\Database\Statement\UpdateStatement', 'dcInsertStatement' => 'Dotclear\Database\Statement\InsertStatement', 'dcDeleteStatement' => 'Dotclear\Database\Statement\DeleteStatement', 'dcTruncateStatement' => 'Dotclear\Database\Statement\TruncateStatement', 'sessionDB' => 'Dotclear\Database\Session', 'cursor' => 'Dotclear\Database\Cursor', 'record' => 'Dotclear\Database\Record', 'staticRecord' => 'Dotclear\Database\StaticRecord', 'extStaticRecord' => 'Dotclear\Database\StaticRecord', 'i_dbLayer' => 'Dotclear\Database\InterfaceHandler', 'dbLayer' => 'Dotclear\Database\AbstractHandler', 'i_dbSchema' => 'Dotclear\Database\InterfaceSchema', 'dbSchema' => 'Dotclear\Database\AbstractSchema', 'dbStruct' => 'Dotclear\Database\Structure', 'dbStructTable' => 'Dotclear\Database\Table',
La discussion continue ailleurs
URL de rétrolien : https://dotclear.watch/trackback/21