2.26

Billet

Sortie le 13 Mai 2023, la version 2.26 intègre la librairie Clearbricks.

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') ou dcModules::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