Dotclear 2.39.3 - 2026-08-25
===========================================================
* Fix: Widget subtitles management
* Fix: Media legend composition when inserting them in entry
* Fix: Check existence of $_SERVER['HTTP_USER_AGENT'] before using it
* Fix: HTTP requests with port set to 0 was not handled correctly

Dotclear 2.39.2 - 2026-08-19
===========================================================
* Fix: Widgets management, error 500 if there is no widgets defined for the blog

Dotclear 2.39.1 - 2026-08-16
===========================================================
* Fix: Widget, feed reader, URLs was displayed instead of titles
* Fix: Available plugins/themes from repo, install button was missing
* Fix: Entry (post, page, ...) update with an empty URL which was not recomposed
* Fix: Widget category was not set the active one if any
* Fix: Blog parameter "Include sub-category's entries in category page and feed" was not taken into account

Dotclear 2.39 - 2026-08-13
===========================================================
* 🐘 PHP 8.2+ is required, PHP 8.3, 8.4 and 8.5 compliance
* Breaking change: Structure::table() method will now register a new table only if not already registered
* Breaking change: Move Codemirror instance stack (global codemirror_instance) to dotclear.codemirror property
* Breaking change: Deprecated form methods (legacy) will no longer accept an associative array of optional parameters
* Breaking change: __top_behaviors and __shutdown global variables are no longer taken into account
* Breaking change: Filters::userOptions() is deprecated and do not return anything else than null
* Breaking change: Using new UserPrefFilter class is now mandatory (except for related behaviors) for user preferences filters
* Breaking change: UrlHandler->type is no longer public, use getType() instead
* Theme: Add a new template set, named glaz. Plugins should provide their according template file
* Theme: A button has been added to create symbolic links to the distributed themes if the blog’s theme folder is not the default one.
* Core: Add DC_MODERN flag (inc/config.php) to avoid loading of legacy and deprecated code (PHP, JS), default to false
* Core: Silently ignore module file loading error (especially with old code)
* Core: New typed methods for MetaRecord::field() aliases: strField(), intField(), boolField()
* Core: Record->index() no longer return null, only int if given $row is null or not provided, bool otherwise
* Core: Add specific contexts for plugin/theme configuration page (PLUGIN_CONFIG, THEME_CONFIG)
* Core: Backend Listing class, add count() method to get number of rows in associated record
* Core: Modules (plugins, themes) update checking optimisation
* Core: Use release.json URLs for plugins and themes stores with a fallback to blog settings
* Core: Core/Backend/Listing rs_count is now int (was ?int before)
* Core: Review menu item management (using a specific class MenuItem)
* Core: Review menu item icon management (using a specific class Icon)
* Core: Review favorite icon management (using the class Icon)
* Core: User preferences, use Favorite Icon (menu/dashboard) with fallback to legacy one (small/large)
* Core: Use a specific Core/Backend/Notice to define a notice
* Core: Add a new recommended behavior: adminPageNotificationV2 (to be used instead of adminPageNotification)
* Core: Add a new Core/Backend/Notices::addNewNotice(), which use a Notice instance as parameter
* Core: DB Table field length is now always an integer (= 0 if not relevant, rather than null before)
* Core: Add a SqlStatement::satinizeIn() to prepare a list of item to be used in SqlStatement::in()
* Core: Add a log entry if a media has a malformed metadata
* Core: Use a specific class (UserPrefFilter) for user preferences filters (sort by, order, nb)
* Core: Add a new behavior adminFiltersListsV3 to add some 3rd party user filter (use it instead of adminFiltersListsV2)
* Core: Tags plugin has migrate it's list option in user preferences table too and will no longer use Auth::$user_options
* Core: Take care of current output buffering level
* Core: Add typed (str, int, bool and float) getXXX methods for blog workspace settings and user workspace preferences
* Core: Add an UrlHandler::isType() method to check if one of the given type is the current one
* Core: Cope with string argument for popover (hint, auto, manual) or boolean (true = auto)
* Core: Use __toString() method to get string value of an SimpleXMLElement child value
* Core: Throw an exception if UserPreferences::createFromUser() is called with an empty user id
* Core: Prevent usage of unknown xdebug functions
* Core: Add defer option of jsLoad() methods
* UX/UI: Dirty forms monitoring: reduce to 500ms every check (as it last between 1 and 10ms)
* UX/UI: Take care of Codemirror clean flag when saving file (and checking changes) in theme editor
* UX/UI: Add module configuration form monitoring
* UX/UI: Try to avoid double scrollbars on theme editor
* UX/UI: Add flip/rotate image in media item management
* UX/UI: Enter key in form helper, allow Shift+Enter to insert a new line rather than submitting form
* UX/UI: Review user preferences columns management (order and display)
* UX/UI: Icons color, replace #167bba by #4878d1
* UX/UI: Link (and some others), color replace: #2373a8 by #436fc2
* UX/UI: CSS light blue for drag'n'drop active and link on fault page
* UX/UI: Adjust darker blue in CSS
* UX/UI: Make all icon cards same height on dashboard, reduce gap between cards
* UX/UI: Review footer tooltip management
* UX/UI: Add apple-touch-icon for backend
* UX/UI: Allow wider select components in table
* UX/UI: Slight change of background color of soft badges
* UX/UI: Switch from flex to grid for standard icons layout on dashboard
* UX/UI: Make some more room for uploaded filename, if possible
* A11y: Slightly enforce icon background in light mode on dashboard
* A11y: Put ascii art in a span with aria-hidden="true", decoration only
* L10n: User profile and languages management: add a note about languages other than English and French are translated automatically
* L10n: Fix .po parsing when msgid start with an empty content (should be followed by multiline)
* L10n: Add missing resources.php for Hindi
* JS: Independant metaEditor object becomes a property of global dotclear class (use new dotclear.MetaEditor instead of new metaEditor)
* JS: Put jsToolBar, jsButton, jsSpace, jsCombo, jsDialog classes inside global dotclear object (as dotclear.ToolBar)
* JS: Update CodeMirror (5.65.7 -> 5.65.21)
* 🛡 Security: Avoid setting innerHtml property (XSS prevention)
* 🛡 Security: Avoid possible XSS in page-tabs-helper, using dataset
* Fix: Themes Ductile 2026 and Custom CSS: don't load resources (js/css) if not relevant
* Fix: Do not read exif data from unsupported image format (JPEG and TIFF only, up to now)
* Fix: Expand system (JS), do not put button inside a A but before
* Fix: We might have <span>…</span> in tab title
* Fix: Authentication when user has no default blog defined
* Fix: Argument type for Url::getPageNumber()
* Fix: Core/Log::getLogs() with $params[...] used as list in sql->in()
* Fix: Core/Credential::setCredential() with credential_data field
* Fix: Maintenance settings for delay when using generic one
* Fix: Post metadata synchro in Plugins/Maintenance
* Fix: Cope with media with empty metadata field
* Fix: Left badge position on icon when using dense layout
* Fix: Usage of widgetcontainerformat setting if present in _define.php of current theme
* Fix: Quick menu prefix management
* Fix: Set attach_i and attach_f (in attachments loop) in context stack
* Fix: ThemeConfig::publicCssUrlHelper() was buggy
* Deprecated: Core/Backend/Notices::addNotice(), use Core/Backend/Notices::addNewNotice()
* Deprecated: Global metaEditor class, use dotclear.MetaEditor
* Deprecated: Gloabl jsToolBar class, use dotclear.ToolBar
* Deprecated: $GLOBALS['_l10n'] and $_l10n
* Deprecated: ConnectionInterface:escape(), use escapeStr()
* Deprecated: form class, use Dotclear/Helper/Html/Form/* instead
* Deprecated: Auth::getOption() and Auth::getOptions() become deprecated and standard options are now migrated in user preference table
* Deprecated: Favorite::smallIcon() and Favorite::largeIcon(), use respectively Favorite::menuIcon() and Favorite::dashboardIcon()
* Dev: Use PHPStan max level
* Dev: Add a MetaRecord PHPStan stub file for MetaRecord extensions
* Dev: Use a popover and a button in header to display debug information
* 🐛 → Various bugs, a11y concerns and typos fixed
* 🌼 → Some locales and cosmetic adjustments

Dotclear 2.38 - 2026-05-13
===========================================================
* 🐘 PHP 8.2+ is required, PHP 8.3, 8.4 and 8.5 compliance
* Breaking change: Dotty archive template will now display all blognav widgets rather than only search
* Breaking change: Method addBehavior() $func argument must be callable type
* Breaking change: Backend actions addAction method no longer accept Option nor formSelectOption as item
* Breaking change: name attribute cannot be used on every html element (JS/CSS may be need some review in 3rd party modules)
* Breaking change: App::blog()->updPostStatus() and App::blog()->updPostsStatus() requires integer status as 2nd argument
* Theme: Remove blowup and blueSilence themes from distribution (still downloadable from Dotclear server)
* Theme: Remove ductile from distribution (still downloadable from Dotclear server) and add Ductile2026
* Theme: Berlin stylesheet has been reviewed
* Core: Add an option for pages, categories and tags widget to prevent display on archive main page
* Core: Consider only those themes present in the themes folder of the current installation as distributed themes
* Core: Switch from jQuery to Vanilla JS (almost) for theme editor
* Core: Add webp and avif format to auto image mechanism in dotclear wiki
* Core: Review admin favicons (login/logout), rename PNG, add SVG and remove ICO oldies
* Core: Add Continue reading link after trackback content in template set (dotty/mustek)
* Core: Encapsulate pagination separators with span (classes .pagination-separator-before and .pagination-separator-after), (dotty, mustek)
* Core: Add a class="poweredby" to p in footer (mustek, dotty, Ductile2026)
* Core: Use list rather than p for list of feeds (category, tag) - (mustek, dotty, Ductile2026)
* Core: Review default CSS rulesets for media alignments (public.css)
* Core: Add a span class bc-separator around default breadcrumb separator
* Core: Simple menu, add a disabled option for simple menu items
* Core: Add title before comment form message, some themes may need to be adapted
* Core: Add 2 behaviors when a theme is selected, themeBeforeSelect and themeAfterSelect
* Core: Main help index reviewed
* Core: Set " - " in a span class="navlinks-separator" for posts navigation (dotty/post.html)
* Core: Dotty/Mustek reviewed (classes and roles)
* Core: Add "search" class to search widget and "topnav" class to navigation widget
* Core: Add "breadcrumb" class to breadcrumb container
* Core: Add "simple-menu-navigation" class to simple menu container (nav)
* Core: Breadcrumb, do not show 1st page (for all contexts), add an option to modify Home link label (in blog parameters)
* Core: Make small SVG image visible in public.css, themes should overload this
* Core: Add a setting for customCSS to select the template set to use with (mustek/dotty)
* Core: Use strip_tags rather than remove_html for cutting start of content as strip_tags preserve texts from tags (as for links)
* Core: Add a class="footnote-ref" to footnote link (a inside sup)
* Core: Add feeds class on feed list containers (widget, template, …)
* Core: Add an additional tpl:EntryIf attribute to check if there is one or more tags associated with the entry, Tags plugin
* Core: Add a private method to sanitize antispam filters settings, Antispam plugin
* Core: Add user_style.css, user_print.css and links in user_head.html in berlin and Ductile2026
* Core: Add not on main archive page for some more widgets (search, navigation links, best of, languages, subscribe, …)
* Core: Add tpl:IfEntryFirstImage template block (check if a tpl:EntryFirstImage will provide something)
* Core: Rewrite Files::deltree() method using RecursiveDirectoryIterator() rather than DirectoryIterator()
* Core: Add a tpl:LoopCount template value
* Core: Put standard CSS (public, print and smilies) rulesets inside a @layer dotclear
* Core: Add a cardinal() method to MetaRecord, get (int) value (from the 1st row) from a SQL select using a count(), max(), … at 1st column
* Core: Add a Fault::unsetExceptionHandler() to be used with PHPUnit tests (see bootstrap)
* UX/UI: Codemirror theme selector, separate light and dark themes
* UX/UI: Cope with perceptual brightness of background color to split dark and light Codemirror themes
* UX/UI: Add a supplemental button to hide/show menu (this button may be hidden via user prefs)
* UX/UI: Add a note about textarea settings in widgets as their content can be enhanced wit HTML syntax
* UX/UI: Blog selector in header: sort by blog status (descending: online, offline, removed, …) and then by blog name
* UX/UI: Theme editor using Codemirror: template blocks/vars are now displayed with their own colors (attributes remains uncolored)
* UX/UI: Review theme editor code font size (slightly smaller)
* UX/UI: Add vertical resize capabilities to textarea/Codemirror in theme editor, and smaller font for line numbers (Codemirror only)
* UX/UI: Add offline and sts-<status> classes to each blog line (list of blogs)
* UX/UI: Add offline and sts-<status> classes to each user line (list of users)
* UX/UI: Allow using theme.jpg if no screenshot.jpg exists to display theme's screenshots
* UX/UI: Replace H1 Dotclear logo (in all non-popup pages) by an update link if Dotclear update is available
* UX/UI: Use softer border for dashboard icons (only if more contrast is not set)
* UX/UI: Review borders: breadcrumb, boxes and quick entry on dashboard (only if more contrast is not set)
* UX/UI: Review icons' background color (dark mode, only if more contrast is not set)
* UX/UI: Remove borders of badges (only if more contrast is not set)
* UX/UI: Adjust contrast of outgoing link icon
* UX/UI: Visually center user preferences icon
* UX/UI: Add some colors to plugins description summary markers
* UX/UI: Add post date as href title on comments listing
* L10n: Template becomes gabarit in French
* Fix: Ensure fake email field is hidden on comment form (useful if CSP prevents inline styles)
* Fix: Do not allow deletion of distributed themes (in original DC themes folder) on update tab
* Fix: Use protected module list rather than distributed one in Cleaner plugins/themes
* Fix: Theme editor: Remove cm_dirty class from textarea (not removed by Codemirror during Ajax saving)
* Fix: Do not use date (usually date of media upload) in media legend, only description
* Fix: Set inert attribute to Codemirror sample (avoid tab stop in it)
* Fix: Unknown modules (plugins) are now disabled if possible
* Fix: Use default date/time format if none defined (maintenance plugin)
* Fix: Exclude all possible thumbnails rather than only jpg when zipping theme
* Fix: Back to media root directory if the chosen directory (fav/direct) does not exist
* Fix: Berlin theme, no need to load berlin.js in footer, load it in head
* Fix: Berlin theme, add an upper margin before a figure following another figure which have a figcaption
* Fix: Harmonize breadcrumb of theme customization page and add a return button in all cases (standalone config, doc only, …)
* Fix: Audio/video media insertion when position (left, right, center) is chosen
* Fix: Show page number in breadcrumb only if relevant
* Fix: Exclude .git/.DS_Store from theme archive (maintenance plugin)
* Fix: Remove outnumbered </tpl:Block> for <tpl:Block name="main-content-inner"> in dotty category.html template
* Fix: Template engine, fix compilation of files if use_cache is false
* Fix: tpl:EntryIf using type and anything different than 'post', also add a ! prefix to test on everything but given type.
* Fix: Give back focus to editor textarea after saving in Theme Editor
* Fix: Form Component generic class attribute, use only unique values is class list
* Fix: Use search element (without using role="search" on form) if container is used in widget element
* Fix: Berlin theme, Cut long trackback URL in order to avoid overflow
* Fix: Category feed URL should be available even if no posts in it
* Fix: Fixes the reading of item categories from basic RSS feed
* Fix: Template engine: don't cope with compile stack on including file, includes them whatever they have been yet compiled or not
* Fix: Do not lock/unlock tables if a transaction is in progress
* Fix: Comments listing used wrong status methods to get status icon and status class
* Fix: Cope with unknown URL with static home page
* Fix: Loading of custom locales of theme
* Fix: Check stream context before using it
* 🐛 → Various bugs, a11y concerns and typos fixed
* 🌼 → Some locales and cosmetic adjustments

Dotclear 2.37 - 2026-02-13
===========================================================
* 🐘 PHP 8.2+ is required, PHP 8.3, 8.4 and 8.5 compliance
* Breaking change: PHP 8.1 is no longer supported
* Breaking change: Adjust return type of isSpam method of antispam filter (filter now must return null or true or false)
* Breaking change: type property is now mandatory in _define.php of modules (plugins, themes)
* Breaking change: Switch from DotAddict to Dotclear for plugins/themes repositories
* Breaking change: Use only one category (Actualités) for Dotclear news feed
* Breaking change: Upgrade jQuery from 3.7.1 to 4.0.0 and jQuery migrate from 3.5.0 to 4.0.1
* UX/UI: Media sub-folders are now sorted in lexical order (based on their names)
* UX/UI: Add a user preference option to use dynamic letter spacing rather than normal
* UX/UI: Add a visual indicator (header border color and collapser background color) when one of monitored forms is unsaved, checked every 5s
* UX/UI: Review color input appearance
* UX/UI: Review CSS breakpoints (now 600, 1024 and 1280px)
* UX/UI: Sortable items: reduce sortable handler area to button only (was entire row before) and give more room for the handler
* UX/UI: Add two user preferences to use a dense layout for favorites icons, and for dashboard modules boxes
* UX/UI: Adjust badge horizontal position on icons with dense layout
* UX/UI: Add an header label for Antispam filter's settings link in list
* UX/UI: about:config and user:prefs plugins: give focus to 1st focusable element on menu selection
* UX/UI: Switch order of two options of Antispam plugin in blog parameters page, add some explanation about the "only moderate spam" option
* UX/UI: Cope with last opened folder in media manager
* UX/UI: Cope with last media directory opened from user (stored in user prefs)
* UX/UI: Use specific labels for user statuses (in order to avoid confusion with other usages of these labels)
* UX/UI: Add some statistics on users list and blog list
* UX/UI: Add date and modification date (and time) columns for users list
* UX/UI: Widgets management, CSS review
* A11y: Use aria-current rather than aria-selected for current tab
* A11y: Enforce some contrasts in dark mode (AA minimum)
* Core: Add an option for each category to disabled feedback (enabled by default)
* Core: Simple Menu, a data (string) may be add to each item and it's value will be rendered as data-menuitem HTML attribute
* Core: Add a max_level parameter (0 = all, n = number of levels) for categories retrieval in blog->getCategories() and categories->getChildren()
* Core: Blog settings and User preferences, if unknown type, try to detect type from given value and use it if possible
* Core: Add a dotclear helper (JS) to give focus to the 1st focusable child in an element (take care of tab order)
* Theme: Berlin, cope with motion reduce setting (a11y)
* Fix: Blank target of Simple Menu item was not correctly preserved when changing order of menu items
* Fix: Checking $_POST[…] for a checkbox which may be not present is $_POST if not checked
* Fix: Some cleanup was missing in last 2.36 update
* Fix: Cope with GD not available for OTP QR Code in user pref
* Fix: Media item deletion with a search filter
* Fix: Ensure given value of Html/Form/Strong field is string
* Fix: Antispam filters order management if drag'n'drop is disabled in user prefs
* Fix: Menu was hidden in some cases
* Fix: Use key attribute of keydown event rather than code in order to ignore keyboard layout (standard Editor)
* Fix: Success message on user deactivation
* Fix: cope with encapsulated tags (code in pre for example) for smilies replacements
* Fix: Blogroll, use "Category status" rather than "Link status" for categories
* Fix: Search module (plugins/themes) with 0 results
* Fix: Cope with Codemirror editor for dirty forms monitoring
* Fix: Return URL from secondary page of actions (entries, …), was limited to last 10 selected in 1st page
* Fix: Usage of CKEditor and classic editor for non admin users
* Fix: Avoid overflow of figcaption for centered figures
* Fix: Theme editor, give priority to named template set rather than generic one when searching template files

Dotclear 2.36 - 2025-11-13
===========================================================
* 🐘 PHP 8.1+ is required, PHP 8.2, 8.3 and 8.4 compliance
* Breaking change: Media::getFSDir() has been removed
* Breaking change: Add a MediaFile file descriptor (extends File class)
* Breaking change: File class no longer allow dynamic properties
* Breaking change: ThemeConfig::cleanCSS method has been removed
* Breaking change: dcCore instance parameter is no longer provided by Rest server
* Breaking change: dcCore::app()->spamfilters is no longer taken into account
* Breaking change: The deprecated Error::toHTML() method has been removed
* Core: Unlock theme modification even for old ones (overload attribute in _define.php of themes is no longer used)
* Core: Add Webauthn (Passkeys), OTP and oAuth2 support (to be configured in inc/oauth2.php, an example is provided in inc/oauth2.php.in), a new table credential will be added to the DB
* Core: Frontend session is now supported
* Core: Add a dotclear_exit() proxy function (loaded by App) for exit()/die()
* Core: Add PDO drivers for mysql and pgsql and rename sqlite
* Core: Allow load and forget a service, useful for example to open a secondary connection of a DB
* Core: Add DB method to get a connection on the fly
* Core: Set session TTL to 20 hours rather than 2, it's better for accessibility
* Core: Allow opening a Frontend context during Backend one, using the same session
* Core: Sanitize sqlStatement given conditions (or, and, groups)
* Core: Add a boolean 3rd parameter to Listing::userColumns() to transform if necessary, all columns' value to Component if already not (as Text)
* Core: Let's be gentle with old installations, but not too old, so welcome back the deprecated bootstrap() method to App ;-)
* Core: Add CLI mode for installation
* Core: Add adminPageHTMLBody behavior (called just before closing body)
* Core: Move hard coded store URLs to release file
* Core: Bump minimum required PHP version to 8.2 for future releases (after 2.36)
* Core: Add a maintenance task to empty feeds cache folder
* UX/UI: For entries with closed comments or closed trackbacks, display comments/trackbacks counters with a specific color (aria-details added if necessary).
* Core: Add download attribute to Html/Form/Link (a)
* UX/UI: Add comments/trackbacks status information for post and page
* UX/UI: Review entry link toolbar icon (standard Editor and CKEditor)
* UX/UI: Plugin with setting link(s): remove hr and add a vertical separation (blank)
* UX/UI: Enforce visibility of informative/warning message from media listing (no results from filter, empty folder)
* UX/UI: Add unique id (if not given) of all toolbar's element
* UX/UI: Add group management for standard Editor toolbar elements (spacers are no longer needed)
* UX/UI: Entry edition page: Ask to reset the url base if title has changed and if entry is not published (only if title is used in entry URL format)
* UX/UI: Add some padding to textarea (2px is not enough, the cursor was difficult to see at the beginning of a line)
* UX/UI: Theme preview have been removed
* UX/UI: User preferences: show a warning message if QR code image cannot be provided
* UX/UI: Allow using theme editor as a favorite, use a better name
* UX/UI: Differentiates list of options (used in HTML) and list of values for select filters, group months by year for posts filter
* UX/UI: Groups months by year for menu simple archive item
* UX/UI: Replace grid.png by grid.svg (was the last PNG image in admin)
* Theme: Berlin, use CSS grid for widgets layout (with 2 or 3 columns)
* Theme: Review management of widget title/subtitle formats
* Fix: Link color in warning message on dark scheme
* Fix: Fix link color in warning message on dark scheme
* Fix: Page plugin, use the correct editor for HTML after conversion
* Fix: Cope with search filter when deleting item in media insertion popup
* Fix: CKEditor: allow insertion of link (direct/entry) on empty selection
* Fix: All editors: Use entry title as link text if current selection is empty
* Fix: Ensure storing integer value in post_limit, post_offset and post_count properties when importing from Wordpress
* Fix: Fix progress bar progression in import/export plugin, and autosubmit JS script
* Fix: Allow entry preview for non admin users
* Fix: Flat export without check zip format
* Fix: Do not insert custom CSS stylesheet if the current theme is not customCSS (frontend)
* Fix: Thumbnails deletion on search media delete action
* Fix: Isolate upgrade dependencies classes (Menu and Helper)
* Fix: CSS variable name for #help-button color
* Fix: Ensure that some transient user preferences (media_manager_dir, media_file_mode) are not already stored in DB before adding them
* Fix: Media manager, back to first page when changing directory (fav, last or sub-directory)
* Fix: Cope with media item deletion from search results
* Fix: Take care of empty value for given REST function
* Fix: Use process way for admin URLs set by JS (and ensure popup=1 is set when opening a popup)
* Fix: Avoid removing media from post if no IDs given
* Dev: Switch from Atoum to PHPUnit for unit tests
* Dev: Add a development mode to theme editor (if set then the editor will behave as before overloading system, directly editing themes files). This mode may be set via a themeEditorDevMode behavior callback
* Dev: Temporary removal of links to the documentation (until the new server is operational) in CONTRIBUTING.md
* Locales: Norwegian (bokmål), Thai and Vietnamese languages added
* Locales: Bengali, Catalan, Esperanto, Spanish (Argentina),Basque,Hindi,Croatian,Occitan,Serbian,Telugu removed

Dotclear 2.35 - 2025-08-13
===========================================================
* 🐘 PHP 8.1+ is required, PHP 8.2, 8.3 and 8.4 compliance
* Breaking change: App::auth()->blog_count is no longer public, use App::auth()->getBlogCount() instead
* Breaking change: App::frontend()->smilies is an array (may not be initialized) and no longer accept false value
* Breaking change: restCheckStoreUpdateV2 behavior use now an single associative ArrayObject rather than two arrays
* Breaking change: Put the global __() function in a separate file, L10n::bootstrap() should be call in order to have this function defined
* Breaking change: HtmlFilter now trim returning string
* Breaking change: User favorites, remove unused case (using array) in getFavorite($id) method
* Core: Propose to reset entry URL when publication date is changed (if not already published)
* Core: Allow using patterns for house cleaning during upgrade
* Core: Add an option to Antispam to publish immediately moderated comments/trackbacks if they are recognized as not being a spam
* Core: Reset host cache list if force refresh is required (upgrade dashboard)
* Core: Add a host cache in StoreReader (with log)
* Core: Remove old IE code from standard Editor Wysiwyg mode
* Core: Add a JS helper, dotclear.DOMready to use when DOM content is loaded (backend/frontend)
* Core: Add also media_private to idx_media_media_path SQL index as this field is often used in queries with media_path and media_dir
* Core: Make idx_media_media_path SQL index generic, not only for PostgreSQL
* Core: Adds a meta tag that can be disabled to prevent indexing by AI engines in Blog parameters (advanced section)
* Core: Add two behaviors in themeEditor themeEditorWriteFile, themeEditorDeleteFile to let 3rd party plugins play with it
* Core: Cope with mjs (javascript module) in themeEditor
* Core: Remove link to current selected theme stylesheet which is not useful on themes' list page
* Core: Display a warning message if theme is too old to be overloaded with themeEditor
* Core: Add a specific define value for theme supporting overloading (DC 2.35+)
* Core: Allow modification of distributed themes as the new system will not modify original files
* Core: Cope with index.php?tf=resource.ext and with custom theme template path (var)
* Core: Add a behavior (adminDashboardMessage) to provide 3rd party modules message on dashboard
* Core: Add a behavior (adminConvertBeforePostEdit) to allow 3rd party conversion before editing entry content (post/page)
* Core: Set default antispam moderation TTL to 7 days rather than 0 (immediate)
* Core: Rewriting the method for building category lists without using recursion
* Core: Call coreContentFilter behavior for preview button (wiki mode)
* Core: Add a status information for blogroll links and categories
* Core: Cope with full URL for public media when looking for 1st image in entry
* Core: Use XML format rather than serialized PHP Object to cache feeds
* Core: Use IntersectionObserver rather than an EventListener for Goto Top button (show/hide) and Help button (position and aspect)
* Core: Optimize getLangsCombo method
* UX/UI: Review prefix of back button text (::before)
* UX/UI: Review editors' name, use description rather than name in user pref if available
* UX/UI: Use an animated SVG rather than GIF for autocomplete loading indicator
* UX/UI: Review responsive table header management on small devices (WIP)
* UX/UI: Use a dialog for inline quote insertion in legacyEditor rather than two consecutive prompts
* UX/UI: Add aria-label to set to today button
* UX/UI: Add aria-label to show/hide password button
* UX/UI: Add an Ok button to notices in order to close them
* UX/UI: Review maintenance tasks messages using Ajax
* UX/UI: Slight review of toolbar buttons background on standard Editor
* UX/UI: Review theme editor help
* UX/UI: Add a global help sidebar only if has not already been loaded
* UX/UI: Add a last donation date personal reminder in donation fieldset on dashboard
* UX/UI: Add some note about video insertion sizes
* UX/UI: Slight review CSS of responsive tables
* UX/UI: Add a plugins settings page with all available links to different kinds of plugins settings
* UX/UI: Review Theme Editor plugin icon (light/dark)
* UX/UI: Review look and position of title on auth page
* UX/UI: Force sub-categories to be displayed under the category
* UX/UI: After update done, go directly to authentication (Upgrade) instead of requiring a another click from user
* UX/UI: If secondary notes should be hidden (in user pref), also hide informative notes
* UX/UI: Switch to light-dark() and cope with color scheme for backend CSS
* Fix: No need for spl_autoload_register callback to return anything
* Fix: Do not use french feed for Finnish language
* Fix: Do not request multiple times the list of fonts during blowup config rendering
* Fix: Fix form children selector in dotclear.enterKeyInForm() helper
* Fix: Fix CSS for outgoing-link image
* Fix: Set media link (not image nor video nor audio) content to current selected text (or url if none) in standard Editor
* Fix: Set media link (not image nor video nor audio) content to current selected text (or url if none) in CKEditor
* Fix: Avoid loading more than once util.js (Frontend)
* Fix: Fix fields' color (to cope with light/dark mode) for Blue Silence theme
* Fix: Fix fields' color (to cope with light/dark mode) for Blowup theme
* Fix: Do not list minified versions of files in themeEditor
* Fix: No need to change field backgrounds in order to cope with light/dark modes in Ductile
* Fix: Prevent unsaved media properties if necessary
* Fix: Berlin theme: style only aside without any classes
* Fix: Try to cope with non UTF-8 encoded theme's files in themeEditor if necessary
* Fix: Review composition of list of plugins in notice/success/warning/error
* Fix: Display delete button as soon as file saved (even with JS) in themeEditor
* Fix: Review dynamic activation/deactivation of delays in maintenance settings tab
* Fix: Maintenance plugin: display expired task(s) message only if requested in plugin settings
* Fix: Select the correct radio button for maintenance alert depending on current settings
* Fix: Quick entry creation without category
* Fix: No need to load more than once legacyEditor resources (JS, CSS, …)
* Fix: Fix miniTidy by reverting HTML5 closing single tags to XHTML form as xml_parser will use XHTML format.
* Fix: Cope with footnotes CKEditor plugin which force background color
* Fix: Do not display generic help on plugin config if help is already set
* Fix: Filter contextual help content to avoid malformed HTML
* Fix: default smilies definition path
* Fix: Put ul of sub-categories inside the li, not after
* Fix: Fix: Its better to have a form to save stuff in maintenance!
* Fix: Target = _blank is for opening in another tab/window
* Fix: Fix comment preview content, the publicBeforeCommentPreview behavior effect was ignored
* Fix: Fix helper message for comments and trackbacks TTL
* Fix: Use new-stuff class rather than top-add as this one might be hidden by ads-blockers
* Fix: Keep some space between username and logout icon
* 🐛 → Various bugs, a11y concerns and typos fixed
* 🌼 → Some locales and cosmetic adjustments

Dotclear 2.34 - 2025-05-13
===========================================================
* 🐘 PHP 8.1+ is required, PHP 8.2, 8.3 and 8.4 compliance
* Breaking change: No longer argument dcCore::app() given in SpamFilter::__construct()
* Breaking change: Use standard pagination template on search result pages in dotty template set
* Breaking change: use input type search for search widget, may have impact on theme's CSS
* Core: Add a flag — SOCKET_VERIFY_PEER, to be defined to false in inc/config.php — to ignore peer verification (host and certificate) on socket connection (use with caution)
* Core: Add an optional parameter for postType to specify the admin URL of list of it's entries
* Core: Plugins adding buttons on legacyEditor/CKEditor should have at least 1010 priority, 1005 is reserved for additional syntaxes to legacyEditor (as legacyMarkdown)
* Core: Move default location of upgrade backups from root to var folder, also move old backup files in this new location if they still are in root folder
* Core: Add two helper methods to Tpl class, getCurrentTag() and getFiltersParams(), useful to when using Ctx::global_filters()
* Core: Core version code review
* Core: Complete actions behaviors (new behaviour adminAfterProcessAction)
* Core: Add a new behavior 'coreContentFilter' to replace too restrictive old 'coreAfterPostContentFormat' (used in post content/excerpt, comment content, category description)
* Core: Add a template value tpl:CommentIfUs similar to tpl:CommentIfMe but for all blog's active users (use with caution, especially on large number of users)
* Core: Use DirectoryIterator rather than opendir/readdir/closedir
* Core: Add a Dotclear constant to limit DB update with new media (default = 1000). May be set in inc/config.php (DC_MEDIA_UPDATE_DB_LIMIT)
* Core: Check limit before doing something to allow setting DC_MEDIA_UPDATE_DB_LIMIT to 0 to never add missing media in DB
* Core: Cope with unattended request on CSP report URL
* Core: Add a force rebuild thumbnails in current directory. To be use with caution with large number of media in it as it is not asynchronous yet.
* Core: Allow reusable core script (JS) for entry selection
* Core: Add Span and Strong as child of Html/Form/Text class, add items/separator/format management to Text
* UX/UI: Add template set information in theme details
* UX/UI: Review left header positioning in tables on small devices
* UX/UI: No longer use ▶ as main menu active item indicator (confusing with fold-able stuff), back to : character
* UX/UI: Differenciate dotty/mustek template-set based themes in blog appearance page
* UX/UI: Display entry types in list (search, tags)
* UX/UI: Add generic translate attribute management and use it to avoid browser translation of some languages information (list, codes, …)
* UX/UI: Remove light gray background on editor's toolbar. Add a visible separator between groups of tools on legacyEditor toolbar.
* UX/UI: Adjust color/background for disabled textarea
* UX/UI: Use type search for back-end search inputs
* UX/UI: Precise which password is required (admin one) on user page validation
* UX/UI: Add translate="no" to several fields (id, names, urls, emails, langs, …)
* UX/UI: Stick main menu to the top
* UX/UI: Add a scroll-behavior: smooth for body
* UX/UI: Add a user option to sitck main menu on top othe page as far as possible
* UX/UI: Cope with enter key to validate sidebar widgets settings form
* Fix: Review management of favorites icon's legends
* Fix: In Blog::getLangs() set a table alias P for post table in SQL statement as it may be used in some cases
* Fix: Fix breadcrumb for comment
* Fix: Rollback jQuery UI from 1.14.2 to 1.12.1 as 1.13.* and 1.14.* cause problems with nested drag'n'drop jQuery plugin (categories)
* Fix: legacyEditor: Don't put a space at the beginning of the toolbar, don't repeat spaces
* Fix: legacyEditor: Do not display spacers if they are in first or last position in toolbar
* Fix: Missing tab id for system settings of maintenance plugin
* Fix: Display of founded trackbacks links and proposed trackback excerpt (on auto discover action)
* Fix: Default color palette for CKEditor
* Fix: Switch back some password fields to input fields as browsers try to do more than required (especially on Windows), even if autocomplete="…" is not defined!
* Fix: Optional disabled modules management
* Fix: Labels for next/previous post buttons
* Fix: Avoid ambiguity in statistics displayed above list of entries. The links to various entry status list are displayed only if only one post type in list.
* Fix: Use fully qualified class for MailSocket() method in config.php.in template
* Fix: URL regexp for lang scheme
* Fix: Labels for items pagination (aka no of item per page in admin lists)
* Fix: Don't sort twice files in media directory
* Fix: Tags user option display
* Fix: Cope with {{tpl:lang…}} or {tpl:lang…} or already compiled <?= __(…) ?> or <?php echo __(…); ?> in widget settings
* Fix: Avoid sorting dirs/files if not necessary
* Fix: Media settings URL (in blog parameters) in footer on media page
* Fix: Don't escape twice link properties
* Fix: Disabled module update
* Fix: Module install
* Fix: Do not use autocomplete for login in new user page
* Fix: Use positioning in sprintf formats as some languages may use another order in sentences than English.
* Fix: Return button (label and URL) on user permission page (user action)
* Fix: Do not remove path part of themes_url when composing resource's URL, only if themes_url begins with http(s)://
* Fix: Do plugins installation (Install.php / _install.php) if necessary (on upload, download, install and update) on upgrade dashboard
* Fix: Empty/Delete uninstall Cleaner use a non prefixed table name as input.
* Fix: CKEditor loading of media CSS alignment
* Tests: Remove unnecessary sleep() in Files unit tests
* 🐛 → Various bugs, a11y concerns and typos fixed
* 🌼 → Some locales and cosmetic adjustments

Dotclear 2.33.1 - 2025-03-02
===========================================================
* Fix: Remove improper <br> before end of paragraph (</p>) in legacyEditor if any
* Fix: Link color in table item headers on small devices
* Fix: Non admin users cannot create a new post

Dotclear 2.33 - 2025-02-13
===========================================================
* 🐘 PHP 8.1+ is required, PHP 8.2, 8.3 and 8.4 compliance
* Core: Get title and description from SVG if exist
* Core: Add optional release date to modules and display them if present
* Core: Status management revamped (entries, comments, users, blogs, ...)
* Core: New behavior coreBlogBeforeGetPostsAddingParameters (used for some db requests)
* UX/UI: Add left/right arrow key navigation from post to post (or page to page)
* UX/UI: Adjust (small) image size in some popup display
* UX/UI: Add media title to metadata list
* UX/UI: Add direct submit on quick menu selection (search field)
* UX/UI: Add a required attribute to password of the chosen action is delete on blogs page management
* UX/UI: Add count of available updates for plugins and themes in tab title
* UX/UI: Review "Lock theme update" note, thanks Gérard Barré for this suggestion
* UX/UI: Adjust size and positions of sub/sup texts
* UX/UI: Add media title as ordering criteria
* UX/UI: Apply a lexical sort for names and titles of media
* UX/UI: During meta (tags) search, add a second loop looking after the beginning (those results will be displayed at the end of the list)
* UX/UI: Remove stats (no of entries, usage frequency) on autocomplete list (tags)
* UX/UI: Classic editor: Set some CSS attributes to avoid dynamic inline style insertion during copy'n'paste
* UX/UI: Switch from : to ▶ character for current/active menu-item indicator (with a fallback to :)
* UX/UI: Remove metadata frequency information (not useful in backend)
* UX/UI: Cope with large SVG icon in sidebar of entry edition page
* UX/UI: Media item page: on display list of entries using the media, display now two lists (inside entry/entry attachments).
* UX/UI: Cope with alternate text and description of video and audio media during insertion
* Fix: Lock/unlock button (on input/textarea) was not accessible
* Fix: Don't display a warning about missing permission for super-admin newly created users
* Fix: SQL error on changing existing user id, the prefs were created from the old id, not the new one
* Fix: On some servers, OPCache API might be restricted. Try to detect this.
* Fix: Don't display twice the media title in media metadata list
* Fix: In en empty media folder, uploaded files using the enhanced uploader were not displayed
* Fix: Ensure there is at least one available language to download before showing the according form
* Fix: XMP metadata were badly read from image file
* Fix: Cope with non existing settings in Ductile configuration
* Fix: Boxes alignment on blog appearance page
* Fix: Date format label in blog parameters
* Fix: Sortable blocks system on dashboard
* 🛡 Security: Fix potential XSS, thanks Ratnesh Kumar for reporting this issue
* 🛡 Security: Escape HTML content in filters' input fields
* 🛡 Security: Disallow double (or more) extensions on media upload file, fix a potential RCE reported by Ratnesh Kumar.
* 🐛 → Various bugs, a11y concerns and typos fixed
* 🌼 → Some locales and cosmetic adjustments


Dotclear 2.32.1 - 2024-11-27
===========================================================
* Fix: A category could not be renamed
* Fix: The categories page doesn't display any categories if there's only one for the blog
* Fix: Cast number values to int in blog parameters form as they might be non-existent
* Fix: Replace return button by a cancel button in intermediary steps during creation of a new SimpleMenu item
* Fix: legacyEditor with pseudo empty excerpt (thanks Ben Griffith for documenting this issue)

Dotclear 2.32 - 2024-11-13
===========================================================
* 🐘 PHP 8.1+ is required, PHP 8.2 and 8.3 compliance
* Core: Add a new behavior, coreGetPostURL, to cope with URL transformers (tweakURL, …)
* Core: Use HTML5 <br> and <hr> rather than old XHTML <br /> and <hr />
* Core: Add inert global attribute to Helper/Html/Form/Component
* Core: Cope with title, alternate text and description for all types of media
* Core: Use metadata Title (if not empty) to fulfill the media title on upload (if the media title is empty or equal to the media filename)
* Core: Add donate dashboard module
* Core: about:config/user:pref code and UX/UI review and isolate each workspace/namespace with its own form
* Core: Add role generic attribute (only inserted if given and not empty) for Html/Form/Component
* Core: Management of 3rd party authentication class has been reviewed
* Core: No more need to reference dcCore in Auth class (not used)
* Core: Light adaptation for PHP 8.4 (excluding session management), the next 2.33 will be 8.4 compliant
* Core: Bypass wizard from server install (docker, ...)
* UX/UI: Fix blog switch select visibility on small screens (mobile)
* UX/UI: Switch from • to : character for current/active menu-item indicator
* UX/UI: Make distinction between action (edit entry) and syntax used (post/page edition) in tab title
* UX/UI: Display media metadata whatever is the type of media
* UX/UI: Direct access to upgrade dashboard rather than using an intermediate page
* UX/UI: Add upper margin for password strentgh indicator (HTML meter element)
* UX/UI: Update Josh's Custom CSS Reset for admin CSS
* UX/UI: Adjust dashboard boxes margins and dimensions
* a11y: Enforce contrast on add button hover
* Fix: Typo on comment-form id in page management
* Fix: Forgot an option (zip export) for maintenance > export blog(s)
* Fix: Typo on module current version (update tab)
* Fix: Clear template cache when theme is changed
* Fix: Fix attachment name in link (frontend)
* Fix: First post was missing in posts list on small devices
* Fix: The for attribute of label in search widget (was missing)
* Fix: Do not scan template path if it is not a directory or not readable
* Fix: Cope with non existing root media folder or not sufficient rights to read it
* Fix: Avoid quirks mode with some browsers (classic Editor)
* 🐛 → Various bugs, a11y concerns and typos fixed
* 🌼 → Some locales and cosmetic adjustments

Dotclear 2.31.1 - 2024-08-19
===========================================================
* Fix: Media couldn't be opened as preview (overlay)
* Fix: Fix Page management with PHP 8.1

Dotclear 2.31 - 2024-08-13
===========================================================
* 🐘 PHP 8.1+ is required, PHP 8.2 and 8.3 compliance
* Core: Remove unnecessary sass folders from production archive
* UX/UI: Add a visual dot indicator to current menu-item
* UX/UI: Harmonize entry format look'n'feel with other status items (status, date, lang)
* UX/UI: Use italic font-style for placeholder (in inputs)
* UX/UI: Enforce contrast for add button hover/active/focus
* UX/UI: Admin CSS review
* Fix: Hide convert to HTML button for pages already in this format
* Fix: Cope with media alternative text in IPTC/XMP/Exif metadata
* Fix: Fix favorites menu current item detection
* Fix: Avoid sortable mechanism for pages on small devices (interfere with scrolling)
* Fix: Media change file upload process
* Fix: Deletion on search mode in media manager
* Fix: Review position of help button depending on context (scrolled or on top, help opened or not, …)
* Fix: Really do garbage collector of expired sessions
* Fix: Dependencies (modules) mechanism reviewed
* Fix: Do not render debug/dev HTML comment warning in CLI Mode
* Fix: Cope with event propagation for meta editor helper (tags, …)
* Fix: Use lexical sorting for tags
* Fix: Disable unauthorized option for media insertion (link without alt, legend without alt)
* Fix: Cope with newly uploaded media for deletion button activation
* Fix: Better identification of the blog name on the breadcrumb of the dashboard (home)
* 🛡 Security: Add .inc to exclusion list for media (see https://www.exploit-db.com/exploits/52037)
* 🐛 → Various bugs, a11y concerns and typos fixed
* 🌼 → Some locales and cosmetic adjustments

Dotclear 2.30.1 - 2024-05-17
===========================================================
* Fix: Template engine might not found some theme's template in some contexts
* Fix: Outgoing documentation links

Dotclear 2.30 - 2024-05-13
===========================================================
* 🐘 PHP 8.1+ is required, PHP 8.2 and 8.3 compliance
* Core: Switch from GNU GPL-2.0-only to AGPL-3.0
* Core: Normalize SQLite database path and create the database file if necessary
* Core: Add a configuration setting to load or not legacy JS (backend/frontend)
* - For frontend a new sysIf attribute is provided: legacy_needed (see _head.html template)
* - For backend current release config may be overrule by setting DC_MIGRATE in inc/config.php
* Core: Add a setting to change the thumbnail character prefix (default to .)
* Core: Add width and height of an SVG image (media item page) if specified in its source
* Core: Add an option (informative_config) to display informative config for module (ie without any form)
* Core: Add prefix/suffix capability for Helper/Html/Form/Label (will be inserted before/after the associated field)
* Core: Add webmention endpoint URL in <head> for post/page (already present in http headers but may be not sufficient)
* UX/UI: Add a menuitem quick access (configurable quick menu key, default to :)
* UX/UI: Add quick access to dashboard (quick menu access key+enter without anything else)
* UX/UI: Review layout for group of buttons
* UX/UI: Use textarea for media description
* UX/UI: Switch from PNG to SVG for images used in backend
* UX/UI: Review CSS for tables
* UX/UI: Review information style (legend, message, …) in dark mode
* UX/UI: Review media upload progress bar
* UX/UI: Review install icons (messages)
* UX/UI: Set a background on legacyEditor toolbar
* UX/UI: Review form's buttons layout (specially on small device)
* UX/UI: Add supplemental warning about disabling ad-blocker detection
* UX/UI: Review legacy editor toolbar layout
* UX/UI: Review header layout (alignment, …)
* UX/UI: Theme editor: the lists of inherited files are now folded by default
* UX/UI: Review today button look
* UX/UI: Page header review (standard and upgrade modes)
* UX/UI: Review categories CSS
* UX/UI: Prelude layout review
* UX/UI: Help button layout review
* a11y: Review markup for required items in forms
* a11y: Enforce contrast of pending and locked status icons in dark mode
* a11y: No need to enforce contrast on icon hover (whatever is the mode, dark or light)
* a11y: Fix issue with Codemirror (trapped inside editor if using only the keyboard)
* Fix: Do not put filename as alternate text for media
* Fix: Media item deletion
* Fix: Cleaning procedure after update is now more tolerant
* Fix: Plural management for some locales (Japanese, …)
* Fix: Don't care about antispam filter GUI URL during installation
* Fix: Video/audio media insertion with CKEditor, review notice
* Fix: Display notice (about audio/video insertion limit) only with standard editor
* Fix: Fix exclusion list for media zip process
* Fix: Take care of user defined thumb sizes in media zip exclusion pattern
* Fix: Background color of search input field
* Fix: Go back to update tab (on plugins page) after forced check of plugins' update
* Fix: Success upload media message color
* Fix: Optimize Berlin SVG images
* Fix: SVG preview with magnificPopup jQuery plugin
* Fix: Antispam filter name displayed on comments list page
* Fix: Use standard tpl:IfCommentPreviewOptional rather than tpl:IfPreviewIsNotMandatory for Ductile
* Fix: H2 (navigation) horizontal overflow
* Fix: Input for decimal values
* Fix: Management of local setting/pref value is the same as the global one (if global exists)
* Fix: Antispam IP and IPv6 rules deletion
* Fix: Antispam Word filter rule deletion
* Fix: Theme config form if not only informative
* Fix: Antispam params link (on blog pref)
* Fix: Hint typing for post ID (trackback/pingback/webmention)
* Fix: Post/Page selector for static home
* Lib: Update Codemirror to 5.65.16
* i18n: Remove Luxembourgish language (not translated and mostly not used)
* 🛡 Security: Fix Cross Site Scripting vulnerability (https://packetstormsecurity.com/files/177239/Dotclear-2.29-Cross-Site-Scripting.html)
* 🐛 → Various bugs, a11y concerns and typos fixed
* 🌼 → Some locales and cosmetic adjustments

Dotclear 2.29 - 2024-02-13
===========================================================
* 🐘 PHP 8.1+ is required, PHP 8.2 and 8.3 compliance
* Core: New dashboard dedicated to dotclear's upgrade
* Core: Remove ajax activity indicator
* Core: Swap from XHTML self-closing tag (/>) to HTML5 closing tag (>)
* Core: Add ability to delete Dotclear versions cache directory
* Core: Remove DC_XMLRPC_URL/xmlrpc_url from config
* Core: JS Code review, switch some functions from jQuery to Vanilla
* Core: Update jQuery from 3.7.0 to 3.7.1
* Core: Remove json data from header when extracted (unless keeping it is explicitly required)
* Core: Use Josh's Custom CSS Reset and remove some oldies rules in backend CSS
* Core: Try to forward to requested URL after authentication
* Core: Allow modification of src/*.php files of themes
* Core: Add two behaviors on post/page edition (adminPostAfterButtons, adminPageAfterButtons)
* UX/UI: Improve a little bit the adblocker detection system
* UX/UI: For language combo, put in a first group installed languages and then others in second group
* UX/UI: Remove the Easter egg, may be it will be back in the future, who knows?
* UX/UI: Back to list on access to an unexinsting element (page, comment, post)
* UX/UI: Add checkboxes helper to blogroll plugin
* UX/UI: Add checkboxes helper to simpleMenu plugin
* UX/UI: Enhance checkbox helper buttons (in entry edition)
* UX/UI: Move update tab (now always displayed) after activated/deactivated tabs (plugins/themes)
* UX/UI: Reduce favorites icons area
* UX/UI: Review CSS style for square thumbnails
* UX/UI: Review vertical position of elements in header and background color of header (upgrade mode)
* UX/UI: Switch from PNG to SVG for comments/trackbacks/trash mini icons
* a11y: Code review alt/legend for image popup (selection, insertion)
* - use metadata (place, date) with legend rather than alternate text
* - do not duplicate alt and legend (ignore second if it is the case)
* - use 'alternate text' instead of 'title'/'file title'
* - use 'description' instead of 'file description', the description will be used to compose legend
* - link to original media only if there is an alternate text
* - do not allow legend without alternate text
* a11y: Review displayed information about mandatory fields
* a11y: Enforce outline on focused element if requested (OS settings)
* a11y: Buttons appearance review
* - more border contrast
* - no more gradient
* - darker background color for submit
* a11y: Enforce contrast ratio for standard badges
* a11y: Bigger size for very small icons (outgoing, …)
* a11y: More space for some messages (info, warning)
* Theme: Move ductile javacript code (including inline) in js folder
* Theme: Use codemirror if enabled to edit CSS file of Custom CSS theme (config)
* Fix: Install may be done using curl (or equivalent), so index.php may be not in REQUEST_URI
* Fix: Icon width in main menu for item with a long label
* Fix: Badge position on mobile
* Fix: Allow USAGE permission in order to load CKEditor configuration (js content)
* 🐛 → Various bugs, a11y concerns and typos fixed
* 🌼 → Some locales and cosmetic adjustments

Dotclear 2.28.1 - 2023-11-19
===========================================================
* Fix: Some housecleaning missing in 2.28
* Fix: Don't overwrite antispam filter name if already set, seen in list of antispam filters
* Fix: Cast constants types as far as possible
* Fix: Template code for EntryDate
* Fix: Meta edition URL (entry edition page)

Dotclear 2.28 - 2023-11-15
===========================================================
* 🐘 PHP 8.1+ is required, PHP 8.2 compliance
* Core: All admin/install/helper/db/public code is now PHP namespaced
* Core: Add whitespace control capabilities to template engine, thanks manusauvage for the patch
* Core: Move some old deprecated autoload from dcProxyV2 to dcProxyv1 as some plugins may need them before loading of dcProxyV2
* Core: Add extra cursor management for FlatImport (useful with 3rd party plugins)
* Core: Show exception in debug/dev mode
* Core: Complete support of Avif image format
* Core: Add Media::setThumbSizes() method and set two behaviors (coreBlogConstruct and coreMediaConstruct) as deprecated
* Core: Add dl, dt, dd form element with unit tests
* Core: Add enctype form property (Helper/Html/Form/Form)
* Core: Add a second removal pass to housecleaning step of upgrade and add a renaming fallback procedure if file or folder cannot be deleted
* Core: Allow upgrade on sqlite install (except db schema)
* Fix: Take care of unnumbered post URL to compose a new unique one
* Fix: Show comment's IP column even if not spam
* Fix: Fix SQLite table schema info fields (int for notnull, ?string for dflt_value)
* Fix: Use localized rss news if available rather than English one
* Fix: Unknown path class on some config file
* Fix: Thumbnails creation
* Fix: Process XSS
* Fix: Allow pings management by blogs' admins too
* Fix: Fix empty widgets area management, will use defaults widgets in it only if not set as empty array in settings (ie null)
* Fix: Click (open/close) event management on details HTML element
* Fix: Custom CSS css management with cloning feature
* Fix: Don't forget to get current page number when searching in Static home mode
* Fix: Search URL in breadcrumb
* Fix: Some favorites (admin) callbacks
* Fix: Cope with min/max non integer values and add Html/Form/Decimal
* Fix: Thumbnails re-creation
* Fix: Typo in makefile
* i18n: Various translation have been added or updated (using DeepL engine), they should be reviewed
* a11y: Fix link color on small screens
* 🐛 → Various bugs, a11y concerns and typos fixed
* 🌼 → Some locales and cosmetic adjustments

Dotclear 2.27.3 - 2023-08-31
===========================================================
* Fix: Review password recovery procedure (link sent in email was buggy)
* Fix: Modules dependencies check
* Fix: Flat export workflow
* Fix: Install process
* Fix: Cope with inconsistent widget settings

Dotclear 2.27.2 - 2023-08-22
===========================================================
* Fix: Cope with new plugin installation
* Fix: Install (with or without wizard) was buggy
* Fix: Optionnal dependencies (modules)
* Fix: Category modification
* Fix: Comments actions
* Fix: Regression on .mjs extension (js module) loading
* Fix: Open/close HTML details management (admin)
* Fix: Cope "0", "", … as existing text for text property (Form)
* Fix: User options settings (super-admin on other users)

Dotclear 2.27.1 - 2023-08-14
===========================================================
* Fix: Production mode was not enabled on build

Dotclear 2.27 - 2023-08-13
===========================================================
* 🐘 PHP 7.4+ is required, PHP 8.0/8.1/8.2 compliance
* 📣 Warning: Next major release (2.28) will require PHP 8.1
* Fix: Apply settings rename in global and local arrays
* Fix: Cope with antispam check without link to an entry
* Core: All admin/install/helper/db code is now PHP namespaced, public code will be on next release (2.28)
* Admin: Reduce threshold for wide screens (1920px to 1760px on 16px based browser)
* Admin: Add ability to lock a module (plugin/theme) update
* Admin: Theme editor UI reviewed
* Admin: CSS reviewed for badges
* Admin: XMLRPC is not more an entry point (functionality removed)
* Admin: Add an action to set as Never published/Already published a selection of entries (posts/pages)
* Admin: Do not float left fieldset/.fieldset h3/h4, keep it only for legend
* Admin: Don't show comment IP in backend if not blog admin or superadmin
* Admin: Add theme preview inside admin (paginated home only)
* Admin: Reduce scrolling animation if necessary (a11y) for admin Go-Top button
* Admin: Add optional columns settings for blogs, comments and users lists
* Admin: Optional columns are now sortable (JS only)
* Lib: Update jQuery to 3.7.0 (from 3.6.0), upgrade jQuery Migrate to 3.4.1 (from 3.3.2)
* i18n: Various translation have been added (using DeepL engine), they should be reviewed
* i18n: Add arabic and hebrew languages
* Public/Editors: Use CSS classes rather than inline style for media alignments (classes: media-left, media-center and media-right)
* Theme: Reduce scrolling animation if necessary (a11y) for Berlin Go-Top button
* 🐛 → Various bugs, a11y concerns and typos fixed
* 🌼 → Some locales and cosmetic adjustments

Dotclear 2.26.1 - 2023-06-04
===========================================================
* Fix: Rename of namespaces/workspaces (respectively for settings/preferences)
* Fix: Module search engine
* Fix: Actions on duplicate modules
* Fix: try…catch with chmod()/fileperms() which may be disabled
* Fix: Never loaded parent theme
* Fix: Type hint (theme management)
* Fix: File helper, do not initialize property if given file does not exist
* Fix: Restrict filters to current blog
* Fix: Check existence of opcache_get_status() and opcache_reset() before using them
* Fix: Move safe-mode notice under breadcrumb
* Fix: Remove redundant new keyword (preferences management)
* Fix: Remove unused behavior in maintenance plugin
* Fix: Comments search in backend
* Fix: Fix Berlin theme layout on large screens
* Fix: Clear server PHP cache after module update

Dotclear 2.26 - 2023-05-13
===========================================================
* 🐘 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

Dotclear 2.25.3 - 2023-02-25
===========================================================
* Fix: Check import/export module class before listing them (should have been in 2.25.1 but not)
* Fix: Ensure that maintenance task id is set
* Fix: Typo in import WP class/filename
* Core: Try to clear PHP OPcache to avoid running old code after update

Dotclear 2.25.2 - 2023-02-19
===========================================================
* Fix: Tags widget
* Fix: Breadcrumb

Dotclear 2.25.1 - 2023-02-18
===========================================================
* Fix: PHP 7.4 and default used in namespace, 'default' folder theme renamed to blowup (namespace too)
* Fix: Secondary admin pages for pages' actions
* Fix: Using a widget element in a theme template

Dotclear 2.25 - 2023-02-13
===========================================================
* 🐘 PHP 7.4+ is required, PHP 8.0/8.1 compliance (and as far as we know PHP 8.2)
* Core: New plugin/theme code structure (using a brand new autoloader), old plugins/themes remain compatibles
* Core: Clearbricks is now included in Dotclear code, not more as a git sub-module
* Core: Update last step will not redirect to the safe-mode login page
* Core: No more need to add namespace (blog-settings) / workspace (user-preferences) before using them
* Core: Add possible using of external db driver (Experimental)
* Core: Add support of .mjs ECMAScript module files
* Core: Remove unnecessary and weak protection code
* Core: Move some legacy and proxy code in dcProxyV2 plugin
* a11y: Some aria attributes have been set in backend
* Theme: Merge default smilies and blog's smilies (the blog's smilies have a higher priority)
* Theme: Merge plugin blowupConfig into theme Blowup
* Admin: Some jQuery javascript scripts have been rewritten in pure ECMAScript
* Admin: Add Atkinson Hyperlegible font (used by default in admin, may be disabled in user pref)
* Admin: Add some shortcuts (CTRL+letter) to dcLegacyEditor toolbar
* Admin: Add a specific warning message on update page if necessary (breaking changes)
* Admin: Cope with no user TZ defined (use UTC in this case)
* Admin: Fix admin permission management for blogroll and pages plugins
* Admin: Cope with float/double values in about:config and user:pref
* 🐛 → Various bugs, a11y concerns and typos fixed
* 🌼 → Some locales and cosmetic adjustments
* 📣 Warning: Next major release (2.26) may require PHP 8.0 (announced in backend) or PHP 8.1

Dotclear 2.24.1 - 2023-01-18
===========================================================
* Fix: Permission management with no user logged (public)
* Fix: Clearbricks use of mixed type (PHP 8.0+ only)
* Fix: Unzip also _init.php if exists in zip archive during installation (new/update)
* Fix: Cope with dcRecord in context, should fix loopPosition() used for pagination
* Fix: Fix Ajax maintenance tasks
* Fix: Fix manual change a comment to spam (unknown filter)
* Fix: Cope with null content for column_default property (PostgreSQL)
* Fix: Cope with not categorized posts
* Fix: Cope with SQLite syntax for specific case (no where condition)
* Fix: Fix blogs list for non superadmins
* Fix: Do not HTML-escape search query string twice
* Fix: Cope with admin user locale for lexical sort function
* Fix: Blog inactivity to Sleep mode management
* 🐛 → Various bugs, a11y, l18n concerns and typos fixed

Dotclear 2.24 - 2022-12-24
===========================================================
* 🐘 PHP 7.4+ is required, PHP 8.0/8.1 compliance
* 🗑 Remove XML/RPC system (keep only minimum for Pingbacks)
* New blog parameter to close comments/trackbacks after a period of inactivity on the blog
* Core: Large code review has been done, may break old code (3rd party plugins and themes)
* Admin UI: New default icons for media items
* Admin UI: Message look reviewed
* Admin UX: Preserve current dir and current view of media manager
* Admin UX: Password strength use an entropy indicator
* Admin UX: Improve navigation in about:config and user:preferences list
* Admin UX: Allow activation and de-activation of plugins in safe mode
* Admin UX: Allow update of disabled/activated plugins in safe mode/normal mode
* Admin UX: Add folding capability to widgets group
* Theme: Cope with theme defined widget container format
* Theme: Smilies are available for every theme (Blowup theme not more mandatory)
* Lib: Update CKEditor to 4.20.1
* Lib: Update Codemirror to 5.65.10
* 🐛 → Various bugs, a11y concerns and typos fixed
* 🌼 → Some locales and cosmetic adjustments

Dotclear 2.23.1 - 2022-08-13
===========================================================
* Fix: Adding a new comment was buggy (front/back)

Dotclear 2.23 - 2022-08-13
===========================================================
* 🐘 PHP 7.4+ is required, PHP 8.0/8.1 compliance
* 🗑 Remove Iconset management
* Admin UI: Harmonize font size on different support (laptop, tablet, mobile)
* Admin UX: Group more logically buttons on CKEditor toolbar
* Core: New constant DC_DEFAULT_THEME, set to 'berlin'
* Core: Use predefined constants for post statuses (dcBlog::POST_*)
* Core: Use predefined constants for comment statuses (dcBlog::COMMENT_*)
* Core: Deprecated global $core (or $GLOBALS['core']), use dcCore::app() instead
* Core: Deprecated global $_ctx, use dcCore::app()->ctx instead
* Core: Deprecated global $_lang, use dcCore::app()->lang instead
* Core: Deprecated global $mod_files, use dcCore::app()->cache['mod_files'] instead
* Core: Deprecated global $mod_ts, use dcCore::app()->cache['mod_ts'] instead
* Core: Deprecated global $_menu, use dcCore::app()->menu instead
* Core: Deprecated global $__resources, use dcCore::app()->resources instead
* Core: REST server now accepts JSON format (experimental)
* Fix: Use relative URL for attachments as far as possible
* Fix: Remove select hiding mechanism when help is displayed
* Fix: Loading of modules (plugins/themes) in safe mode
* Fix: Message position on Quick entry submit (dashboard)
* Fix: Select appearance on Safari (webkit engine)
* Lib: Update CKEditor to 4.19.1
* Lib: Update Codemirror to 5.65.7
* 🐛 → Various bugs, a11y concerns and typos fixed
* 🌼 → Some locales and cosmetic adjustments
* 📣 Warning: Internet Explorer is not more officially supported (may still work weirdly)

Dotclear 2.22 - 2022-05-13
===========================================================
* 🐘 PHP 7.4+ is required, PHP 8.0/8.1 compliance
* Remove anti-FLoC system
* Add a live preview button to standard Dotclear editor (wiki syntax)
* Use native Javascript in scripts shiped with Berlin and Ductile theme (no more need jQuery)
* Improve retrieval of origin metadata on Webmention or Pingback
* Add a "Reset to now" button near the publish datetime input field (post/page)
* Reduce number of CSS mediaqueries' breakpoints to 3 (mobile, tablet, laptop) for backend
* Add a sticky position to "quick access to section" menu for about:Config and user:Prefs
* Toolbar icons reviewed for standard Dotclear editor
* Lib: Update Codemirror to 5.65.2
* 🐛 → Various bugs, a11y concerns and typos fixed
* 🌼 → Some locales and cosmetic adjustments

Dotclear 2.21.3 - 2022-03-07
===========================================================
* Fix: Non admin users cannot create a new entry
* Fix: User settings error (via users list)

Dotclear 2.21.2 - 2022-02-26
===========================================================
* Revert some modifications done for PHP 8.1 compliance (strftime)
* Cleanup remaining currywurst folders (currywurst template removed since 2.20)

Dotclear 2.21.1 - 2022-02-19
===========================================================
* Fix: Cope with author TZ for posts and pages edition
* Fix: Avoid browser caching on page/post preview
* Fix: List of entries using a media

Dotclear 2.21 - 2022-02-13
===========================================================
* 🐘 PHP 7.4+ is required, PHP 8.0 compliance (should work with PHP 8.1 too but not guaranteed)
* Add an user option to preview edited entry in another tab (or window) rather than in a popup
* The detection of ad-blockers which may perturb backend has been improved
* The old JS/CSS datepicker has been removed
* A lot of old PNG icons have been replaced by SVG ones (dashboard, standard editor, …)
* The contrast of the light mode in backend has been enforced
* Lib: Update CKEditor from 4.16.2 to 4.17.1
* Lib: Update Codemirror 5.63.3 from to 5.65.0
* 🛡 Security: Avoid time measuring attack on login
* 🐛 → Various bugs, a11y concerns and typos fixed
* 🌼 → Some locales and cosmetic adjustments

Dotclear 2.20.1 - 2021-11-19
===========================================================
* Fix: Lost of context in media popup (editor media insertion)
* Fix: Active menuitem in favorites menu
* Fix: Avoid notice on unknown namespace (dcSettings)
* Fix: New user button had disappeared since the previous version

Dotclear 2.20 - 2021-11-13
===========================================================
* 🐘 PHP 7.3+ is required, PHP 8 compliance
* Js: switch to ES2016+ syntax, up to ES2021 (was ES2015 in 2.19), will require a "modern" browser
* Template: Refine tpl:block for pagination and archive (dotty templateset)
* Template: Add ".updated" class to republished posts (dotty templateset)
* Template: The {{tpl:CommentIfMe}} template item take care of author's alternative emails and URLs
* Admin UI: Enforce visibility of last action « button » on update
* Admin UI: Remove box and text shadows from CKEditor dotclear CSS styles
* Admin UI: Slightly review the look of theme's screenshots (blog appearance page)
* Admin UI: Move drag'n'drop button to right side on dashboard
* Admin UX: Add screenshots for disabled themes
* Admin UX: Add a badge with number of updates available on dashboard icon
* Admin UX: Add password strength meter on auth page (if password change is required)
* Admin UX: Generic filter controls refactored
* Admin UX: Cope with local .mediadef file (JSON format wich superseeds insertion defaults)
* Admin UX: Add message about next required PHP version on update page
* Theme: Remove left border for (aside) sidebar of Berlin theme
* Core: Add third-party repository option for modules (plugins and themes)
* Core: Asynchronous check store update on dashboard
* Core: Add constant (DC_STORE_NOT_UPDATE) to disable DotAddict updates check
* Core: Add constant (DC_ALLOW_REPOSITORIES) to disable third party repo
* Core: Open admin search page to other type (WIP)
* Core: Remove currywurst template set (never used)
* Core: Add color, email, number types for widget settings
* Core: Fix determination of « republished » state of post
* Core: Cope with IPv6 addresses
* Core: Create DC_TPL_CACHE directory if necessary
* Core: Add IP v6 antispam filter (only enabled if GMP or BC Math library is available)
* Core: Add standard nethttp timeout constant (DC_QUERY_TIMEOUT)
* Core: Add alternatives Emails and URLs for users in My Preferences and User Profile (super-admin only)
* Core: Set repositories store cache TTL to 12 hours rather than 30 minutes
* Fix: Cope with DotAddict server not responding
* Fix: Cope with isolated figcaption for remove_html and strip_tags tpl attributes
* Fix: Allow modification of "official" themes if they are not in distributed folder (themes) of Dotclear
* Fix: RSS style, fix css responsive + fix input
* Fix: Ensure theme's settings namespace exists
* Fix: Ensure DC_VAR constant exists before using it
* Fix: Fix favicon path in auth page
* Fix: Allow https protocol for trackbacks
* Fix: Fix IPv4 antispam filter for subnet mask > 32
* Fix: Fix plugins privileges on config file
* Fix: Uses the same font in the CKEditor editor as the rest of the administration
* Fix: CKEditor sometimes add a t parameter to a request URL (background sprite image), ignore it
* Lib: Update CKEditor from 4.16.1 to 4.16.2 (with local additional fixes in CKEditor jQuery adapter)
* Lib: Update Codemirror 5.62.0 from to 5.63.3
* Lib: Update jQuery UI (custom) from 1.12.1 to 1.13.0
* ClearBricks: Allow legitimate .. in media filenames
* ClearBricks: Allow legacy forms (array of key => value) for select and optgroup components in form class
* Clearbricks: Add HTML details block support in wiki syntax
* Clearbricks: Use mysqli_get_server_version() rather than mysqli_get_server_info() to get server version
* 🛡 Security: Add SECURITY.md document
* 🐛 → Various bugs, a11y concerns and typos fixed
* 🌼 → Some locales and cosmetic adjustments
* 📣 Warning: Next major release (2.21) will require PHP 7.4+

Dotclear 2.19 - 2021-08-13
===========================================================
* 🐘 PHP 7.3+ is required, PHP 8 compliance
* jQuery: Remove old jQuery biscuit plugin and replace it by "modern JS"
* jQuery: Remove old jQuery pwstrength plugin and replace it by "modern JS"
* Js: Use dotclear global object rather than global constants, var and methods (AFAP)
* Js: No more need of global dotclear_init const as dotclear global object is initialized before (prepend.js)
* Js: Rewrite metaEditor script
* Template: Add {{tpl:CategoryID}} template
* Template: Refine granularity of tpl:Blocks in dotty template set, will simplify inheritance and overload of themes
* Template: Add dc-home-first class to body tag if it is the first page (standard mode)
* Template: {{tpl:FeedLanguage}} consider lang in post context
* Admin UI: Remove some PNG fallback image when SVG are available as every modern browsers support SVG format
* Admin UI: Bye bye responsive font size, thanks for all the fish!
* Admin UI: Blog appearance, use details HTML5 element rather than div and JS to display theme details
* Admin UI: Add system-ui (cross-platform default user interface font) in 1st position of font-family
* Admin UX: Load themes in some admin popups as some configurable theme may use a link/post/page selector
* Admin UX: Load themes in media/media-item admin pages as some configurable theme may use a media selector
* Admin UX: Disable deletion and modification of officially distributed themes
* Admin UX: Remove Google Blog Search from pings URIs (service stopped) and fix pings global settings management
* Admin UX: Check themes dependencies (with core, plugins)
* Admin UX: Management of attachments, allow using media->postmedia property
* Admin UX: Use details HTML5 element rather than div and JS for authentication additional options
* Admin UX: Add Ad-blocker detection (may be disabled) as it may interfere with CKEditor (may be other features).
* a11y: Cope with mediaquery prefers-reduced-data (experimental)
* Public UX: Fix navigation widget to cope with static mode
* Public UX: Add language information (if any) in breadcrumb
* Public UX: Use localStorage rather than cookie to store comment's author info ("remember me" checkbox)
* Public UX: Subscribe widget and feeds handling language context
* Theme: Use <link rel… rather than <style @import… for CustomCSS theme
* Theme: Align right field's labels (single line fields only) of Berlin theme
* Theme: No need to load again util.js in _public.php as it's already loaded by dotty/_head.html
* Core: Add .svg in allowed var/plugin loaded files
* Core: Add .webp in allowed var/plugin loaded files and ope with wepb thumbnails
* Core: Remove mysql driver support, obsolete in PHP 7+
* Core: Forget about URL type = lang as it cannot be set as this by the URL handler
* Core: Add publicBeforeCommentRedir behavior - useful to add parameters on redir URL
* Core: Globally disable (Google) FLoC tracking by default
* Fix: Cope with original size when storing current media insertion settings
* Lib: Update jQuery from 3.5.1 to 3.6.0
* Lib: Update Codemirror 5.58.2 from to 5.62.0
* Lib: Update CKEditor from 4.16.0 to 4.16.1 (and fix CKEditor jQuery adapter warnings)
* 🐛 → Various bugs, a11y concerns and typos fixed
* 🌼 → Some locales and cosmetic adjustments

Dotclear 2.18.1 - 2021-02-13
===========================================================
* Fix: Adjust top and bottom border of textarea when dcLegacyEditor toolbar is set in bottom
* Fix: Add missing support for webp and svg image format for <tpl:EntryFirstImage>
* Fix: Switch from programmed to published status for an entry causes error notice
* Enforce robustness of workspaces/namespaces (settings/blog parameters) methods

Dotclear 2.18 - 2020-11-13
===========================================================
* IP is now displayed in backend only for admins
* Add footnote feature to CKEditor
* HTML format is now default syntax for new users/blogs
* Add cancel button (if relevant) to media manager
* Lib: Update CKEditor to 4.15.1
* Lib: Update Codemirror from 5.55.0 to 5.58.2
* 🐛 → Various bugs, a11y concerns and typos fixed
* 🌼 → Some locales and cosmetic adjustments
* 📣 Warning: Next major release (2.19) will require PHP 7.3+

Dotclear 2.17.2 - 2020-08-17
===========================================================
* Fix: Cope with Safari which does not handle addEventListener method on MediaQueryList object (dark/light OS preference).
* Fix: Separate CSS background and background-color as some CSS rendering engine (Safari) does not cope with all in same declaration.
* i18n: Updated translations for occitan.

Dotclear 2.17.1 - 2020-08-15
===========================================================
* Fix: revert optional password fields (post/page) to text field to avoid unexpected behavior with Chrome

Dotclear 2.17 - 2020-08-13
===========================================================
* 🐘 PHP 5.6+ is required, PHP 7.4 compliance
* 🛡 Security: Password is now needed to export blog settings and contents (full/simple)
* Themes can now be cloned
* New helper button (show/hide) for password fields
* Enhancement of filter/sort usage for lists (posts, comments, …)
* 3rd automatic theme for backend theme (which follow OS setting)
* Authentication (backend) and password form (public for password protected entry) have been redesigned
* Add a Cancel button wherever relevant in backend
* PHP files can now be edited in Theme editor
* Plugins may now use SVG icon rather than JPG/PNG
* Black/White list names become Block/Allow list (antispam)
* Wiki: subscript syntax changed from _subscript_ to ,,subscript,,
* Wiki: add ;;span-content;; syntax
* Wiki: add §§attributes[|list attributes]§§ for blocks (at end of the 1st line of block)
* Wiki: add §attributes§ for inline elements (just before closing marker, warning: cannot be nested)
* Tpl: Add {{tpl:BlogNbEntriesFirstPage}} and {{tpl:BlogNbEntriesPerPage}}
* Tpl: Add optional even attribute to <tpl:EntryIfOdd>, <tpl:CommentIfOdd> and <tpl:PingIfOdd>
* Tpl: Add author="…" as attribute of <tpl:EntryIf>
* Sys: Add several behaviors, coreBeforeImageMetaCreate, themeBeforeClone and themeAfterClone
* a11y: Reduce motion if required in provided themes and backend
* Lib: Update jQuery to 3.5.1 (backend and public)
* Lib: Update Codemirror to 5.55.0
* Lib: CKEditor new color palette (configurable)
* Fix: Notification system refactored (now based on db rather than PHP Session)
* Fix: Missing confirmation before closing modified forms / unecessary confirmation asked before closing not modified forms
* i18n: Switch from Transifex to Crowdin for localisation purpose (https://dotclear.crowdin.com/)
* 🐛 → Various bugs, a11y concerns and typos fixed
* 🌼 → Some locales and cosmetic adjustments

Dotclear 2.16.9 - 2020-06-02
===========================================================
* Fix: Check password for export only if necessary
* Fix: Cope with mod_access_compat plugin inactive with Apache 2.4+
* Fix: Fix very large font size value (user prefs) with CKEditor

Dotclear 2.16.8 - 2020-05-27
===========================================================
* Fix: Clearbricks was not up to date in last release

Dotclear 2.16.7 - 2020-05-27
===========================================================
* 🛡 Security: Password is now needed to export blog settings and contents (full/simple)
* Fix: Remove absolute positionning of datepicker icon (media manager)
* Fix: Cope with SURBL DNS query blocked access (if too much requests from same source) - Antispam LinksLookup filter
* Fix: Remove wrapping p around figures (wiki)
* Fix: CKEditor use now same font-size as other UI standard elements

Dotclear 2.16.6 - 2020-05-22
===========================================================
* Fix: Remove executable bit on non-executable files
* Do not trim inside the content, only at the beginning and the end (dcLegacyEditor, XHTML mode only)
* Fix media description management in media-manager (main/popup)
* Fix insertion of figure (wiki / wysiwyg)
* Fix caret position after inserting image in dcLegacyEditor (wiki)

Dotclear 2.16.5 - 2020-05-14
===========================================================
* Fix: tpl:EntryContent and tpl:EntryIfContentCut when using full="1" attribute
* Fix: Take care of iframe content (used by wysiwyg/source dcLegacyEditor) for confirmation before closing modified forms
* Remove all automatic translations in simpleMenu plugin, feature which caused unanticipated behaviours

Dotclear 2.16.4 - 2020-04-24
===========================================================
* Fix: Remove <sub>content</sub> (_<content>_) from authorized element in wiki links. - missing from 2.16.3

Dotclear 2.16.3 - 2020-04-20
===========================================================
* Fix: Remove <sub>content</sub> (_<content>_) from authorized element in wiki links.
* Fix: Cope with default XHTML editor set to dcLegacyEditor and no format selected by default for new entries.

Dotclear 2.16.2 - 2020-04-17
===========================================================
* Fix: Alert missing about existing modification in administration (post edition, …) with CKEditor
* Merge old and new color palette for CKEditor text/background buttons

Dotclear 2.16.1 - 2020-04-15
===========================================================
* Fix: False alert about non existing modification in administration (post edition, …)
* Fix: Test the existence of directory backup before update
* Fix: Do not load "remember me" javascript script when comment are closed
* Fix: Show admin session expired message if necessary rather than wrong user/pwd
* Fix: wiki2xhtml, i, code, del, ins, mark, sup and sub elements are now allowed inside an a (link) element
* Fix: util.js utilities function script is now load on every page (will be improved in further release)
* Fix: In Ductile theme, load jQuery only if required
* Fix: Detection of mandatory input field content to enable submit button
* Add a behavior to setup htmlFilter options (keep aria, keep data, keep js)
* 🐛 → Various bugs, a11y concerns and typos fixed
* 🌼 → Some locales and cosmetic adjustments

Dotclear 2.16 - 2020-03-13
===========================================================
* 🐘 PHP 5.6+ is required, PHP 7.4 compliance
* 🛡 Security: all requests from/to Dotclear and DotAddict servers use now HTTPS
* jQuery upgraded to 3.4.1, older version will be removed, jQuery not anymore requested for "Remember me" feature
* New "static" mode for home page
* Media description may now be updated
* Add <i [lang="…"]>…</i> support to Dotclear wiki, syntax: ££text[|lang]££
* Lib: Update Codemirror to 5.52.0
* Lib: Update CKEditor to 4.14.0
* Lib: Clearbricks now supports MySQL 8+
* 🐛 → Various bugs, a11y concerns and typos fixed
* 🌼 → Some locales and cosmetic adjustments

Dotclear 2.15.3 - 2019-11-28
===========================================================
* Fix: Avoid weird side-effect of JS minifier
* Fix: insertion of default type media (non image/audio/video) in XHTML entries
* Fix: Cope with old themes for 'remember me' string defined in JS

Dotclear 2.15.2 - 2019-10-01
===========================================================
* Fix: Ajax saving of files in theme editor when using codemirror
* Fix: Video insertion with CKEditor or LegacyEditor
* Fix: Badge position for dashboard modules counters

Dotclear 2.15.1 - 2019-08-29
===========================================================
* Fix: SQL request for CSP unsafe-inline setting
* Fix: CKEditor configuration for foreign language (unabled to save post modifications)

Dotclear 2.15 - 2019-08-13
===========================================================
* 🐘 PHP 5.6+ is required, PHP 7.3 compliance
* Add drag'n'drop sorting system for dashboard blocks
* Backend context is preserved on switching blog (as far as possible, depending on user's grants)
* No more inline javascript, default/install CSP directive modified accordingly
* Add settings (in maintenance plugin) for CSP system
* Set correct lang attribute (useful for browser/editor spelling) for content (post/page) depending on entry setting, and CK editor UI in user language
* Add spellcheck="true" attribute on input/textarea
* Refactoring of notices/messages system on backend
* Add undo/redo buttons to CKEditor toolbar
* Add title/legend reminder on media popup insertion (1st tab)
* Add font loading capabilities for ?pf= system - plugin are now able to load css fonts
* Add WebP image format support to Dotclear (may depends on your server PHP capabilities)
* Add <sub>…</sub> support in Dotclear wiki, syntax : _indice_
* Template system: Allow ?sub for category/categories attributes of tpl:EntryIf, and for url/urls attributes of tpl:CategoryIf
* Responsive tables/lists (posts, pages, users, …)
* Spams preview (administrative board) now shows HTML code rather than interpreted content
* Fix: port used behind reverse proxy (Clearbricks)
* Lib: Update Codemirror to 5.48.0
* Lib: Update CKEditor to 4.12.0
* 🗑 → No more flash players (flv,mp3)
* 🐛 → Various bugs, a11y concerns and typos fixed
* 🌼 → Some locales and cosmetic adjustments

Dotclear 2.14.3 - 2018-09-26
===========================================================
* 🛡 Security: Avoid XML upload in media manager
* Fix: Upgrade modification for media_exclusion default setting
* Fix: cope with PHP.ini setting memory_limit set to -1 (unlimited)

Dotclear 2.14.2 - 2018-09-04
===========================================================
* 🛡 Security: Authenticated cross-site scripting (XSS) was possible due to the .ahtml (or .bhtml, .chtml, …) file extension being allowed in the media manager. Thank's Josiah Pierce for report (CVE-2018-16358)
* 🛡 Security: Unregister phar wrapper in order to avoid PHP Phar extension vulerability
* Fix: Enter key in some input fields were not redirect to the parent form
* Fix: Unable to save modified theme's files in theme editor, when Codemirror is used
* Fix: Back to the original global_filters() template function (will be rewritten in the next 2.15)

Dotclear 2.14.1 - 2018-08-17
===========================================================
* 🐘 PHP 5.6+ is required - PHP 5.5 is buggy with the 2.14 release
* Fix: install wizzard was broken
* Fix: smallest admin font size was set when saving user prefs
* Fix: minifying JS scripts may cause problems with regular expressions
* Fix: empty JS var was set for syntax coloration if disabled

Dotclear 2.14 - 2018-08-13
===========================================================
* 🛡 Security: Fix potential reflective XSS, thank's Zekvan Arslan for report (via Daniel Bishtawi from https://www.netsparker.com/)
* 🐘 PHP 7.2 compliance
* Use specialized fields whenever it's possible (email, …)
* Add definition list capabilities (dl, dt, dd) to wiki (= <term>, : <definition>)
* Add <sup>…</sup> support in wiki, syntax : ^exponant^
* Add syntax property/method to dblayer driver
* Replace some js oriented background fading by CSS3 animation
* Enhance some visual focus indicators
* Enhance key event management in popup (Esc, Enter, …)
* Template filters may now be extended (or modified) by 3rd party plugins (via behaviors)
* PSR-2 code formatting as far as possible (work in progress)
* Add two new ways to order tags (by oldest or newest associated post publication date)
* Update Codemirror to 5.38.0
* Update CKEditor to 4.9.2
* Update jQuery migrate plugin to 1.4.1
* Update jQuery UI (custom) 1.12.1
* Add a dark mode (via user preferences) for administration, CSS refactoring
* Animate some counters on dashboard icons (nb of comments, spam comments and posts)
* 🐛 → Various bugs and typos fixed
* 🌼 → Some locales and cosmetic adjustments

Dotclear 2.13.1 - 2018-01-27
===========================================================
* Fix: Weird behaviour of theme editor when typing any of "t", "r", "u" and "e" characters
* Fix: Unable to save an entry with dcLegacyEditor in XHTML mode, visual pane

Dotclear 2.13 - 2018-01-13
===========================================================
* 🐘 PHP 5.5+ is required
* 🛡 Security: New password management system (including silent migration)
* 🛡 Security: Add Referrer-Policy header in admin pages
* 🛡 Security: Fix potential XSS - thank's Trí Chim Trích for report
* Dotclear news are now displayed in async way by js
* Dotclear core update check is now done by async js - a forced check may still be done on <admin>/update.php page
* Add utf8mb4 driver (MySQL server 5.7.7+)
* Add target="blank" option in simpleMenu
* Update CKEditor from 4.6.2 to 4.7.3
* Update CodeMirror from 5.25.1 to 5.32.1
* Add required attribute for mandatory fields
* Fix: Avoid horizontal scrolling table when longest comment's usernames in list of comments
* Fix: Cope with MySQLi connection via socket
* Fix: Error messages markup and styling
* Fix: Set caret at the end of the inserted thing (img, url, blockquote, …) in Legacy editor if current selection is empty
* Fix: Cope with query part only in SimpleMenu URLs
* 🐛 → Various bugs and typos fixed
* 🌼 → Some locales and cosmetic adjustments

Dotclear 2.12.2 - merged in 2.13
===========================================================
* Fix: lang attribute was missing on entry alone contexts for currywurst and dotty templatesets
* Fix: Add http:// protocol before media.dotaddict.org for csp_admin_img
* Fix: tpl:sysIf blog_lang generated code
* Fix: Duplicate auto-generated URI (entries)
* Fix: Do not use border and background on select to use the system aspect of them in Firefox.
* Fix: For select element, target Safari to cope with font-size select/option problem.
* Fix: Error messages styling

Dotclear 2.12.1 - 2017-08-13
===========================================================
* Fix: 3rd party filters for template tags (std filters are not more modifiable)
* Fix: Media filename are now used without modification for media title on upload (advanced mode)

Dotclear 2.12 - 2017-07-27
===========================================================
* 🛡 Security: Fix potential XSS
* 🛡 Security: Enforce uniqness of the recovery key
* 🛡 Security: Switch hash method from sha1 to sha512 (new installation only)
* Two new values for base font size (37.5% and 87.5%)
* Adaptive admin font size is now optional
* Reduce base font size on very small devices
* Refactor some functions to closures
* No CSP directives in safe mode
* Add current blog domain for script and style CSP directives
* Backlinks:
  * Retrieving ping URLs, let trackback first, then pingback, then finally webmention
  * Get source post content to compose webmention excerpt and retrieve title
  * Use source post title as blog name if this one is unknown (Anonymous blog is used if neither title nor blog name are known)
* Datepicker's look refreshed
* Allow 3rd party additional headers (URL handler)
* Dublin core metadata removed
* Using theme\<theme_name> namespace for _public.php and _prepend.php, in order to simplify theme copy and hack
* Temporary password will have to be changed at first login (after resetting password)
* Add ukrainian language
* French help updated for theme editor
* Add an option to disable Dotclear updates check (super-admin only)
* Fix: Blogs’ admin (ie not super-admin) got back their blogs’ list but only super-admin may do actions
* Fix: Post/page edition layout on different screen sizes
* Fix: x-frame-options URL in admin
* Fix: Cope with several copies of a same smiley in content
* Fix: Allow 3rd party filters for template tags
* Fix: Use getURLFor instead of old getBase function for breadcrumb
* Fix: Give mysql/mysqli driver choice for DC 1.2 import
* Clearbricks lib update from 0.9 to 1.0
* jQuery lib update from 2.2.0 to 2.2.4 (last release of jQuery 2.n branch)
* CKEditor lib update from 4.6.1 to 4.6.2
* CodeMirror lib update from 5.15.3 to 5.25.1
* 🐛 → Various bugs and typos fixed
* 🌼 → Some locales and cosmetic adjustments
* 📣 Warning: Next major release (2.13) will require PHP 5.5+

Dotclear 2.11.2 - 2016-12-29
===========================================================
* Fix: Ensure compatibility with old version of PHP (5.3, 5.4)
* Fix: New path of CSP report for maintenance deletion task
* Fix: Broken entry preview
* Fix: Avoid outgoing link on images in media manager
* 🌼 → Do not include empty div as it disrupts CSS flexbox system

Dotclear 2.11.1 - 2016-12-28
===========================================================
* Fix: admin menu not visible and some plugin admin not accessible with PHP < 5.5

Dotclear 2.11 - 2016-12-28
===========================================================
* 🐘 PHP 5.3+ is required
* 🛡 Security : Prevents XSS injection in media title, thanks smarterbitbybit for report
* Cope with locale for sorting order if possible (work in progress)
* Rich-text-editor (xhtml) may be disabled for Blog/Category description, widget's textareas, …
* Add direct access to module's settings from plugins management page (depends on _define.php of modules)
* Menus (except favorites) are now lexically sorted (except "new post" item)
* Add Entry date as sort order in comments list
* Switch admin CSS to Sass/Compass (work in progress)
* Add 'l' and 'm' accesskey for editor toolbars, respectively for 'insert link' and 'select media' buttons
* Add new categories attribute to EntryIf template tag
* Remove Dublin-core metadata from <head> in template-sets
* ToolMan (js) not more used, thank's Tim Taylor for all this years together!
* Soft redesign of administration pages using responsive font-size and OS system fonts (IE 10+)
* Add a user preference to hide additional/secondary information
* Add actions on blog list, new sort order: blog status
* Update CKEditor to 4.6.1
* Open trackbacks with behaviors and add basic Webmention support
* Add First Publication mecanism and an option to auto-ping when fired
* Berlin theme is now based on Dotty template-set
* Move advanced and plugins blog’s prefs in two separate foldable sections
* Add legend and title insertion option for image insertion in entry
* Some notices and messages may be hidden
* Add urls attribute to CategoryIf template tag
* CSP: Move admin CSP admin/csp_report.txt to DC_VAR/csp/csp_report.json
* CSP: Violations are now stored only once in report if repeated
* a11y: Remove empty link (href=#) from admin
* Fix: Proxies may use standard HTTP(S) ports and SSL may now run through a proxy
* Fix: Prevents precondition failed during activated theme update
* 🐛 → Various bugs and typos fixed
* 🌼 → A lot of locales and cosmetic adjustments
* 🚽 → Housecleaning of no more used scripts, images, resources, IE 9- :-)

Dotclear 2.10.4 - 2016-11-02
===========================================================
* PostgreSQL < 9.1 fix

Dotclear 2.10.3 - 2016-11-01
===========================================================
* Security: Fix CVE-2016-7903: Password Reset Address Spoof — Thank's Hongkun Zeng for report
* Security: Fix CVE-2016-7902: Media Manager, unrestricted File Upload — Thank's Hongkun Zeng for report
* CSP: Cope with external sources used in editor's iframe to preview public external content
* Fix: Cope with post.post_position field during flat import
* Fix: Prevents precondition failed during currently activated theme update
* Fix: Remove unecessary header (cope by dotclear) in page plugin
* Fix: Let some proxies playing with standard http and https ports
* Fix: Let SSL runs through a proxy, it may be ok, sometimes
* 🐛 → Various bugs and typos fixed

Dotclear 2.10.2 - 2016-08-17
===========================================================
* Update fails with PostgreSQL db support → fixed

Dotclear 2.10.1 - 2016-08-15
===========================================================
* CSP (Content-Security-Policies) :
  * Fix default directive for new installation
  * Cope with media public URL for media manager
  * Cope with blog public URL for post/page preview
* Codemirror lib is now packed as the other Javascript lib are

Dotclear 2.10 - 2016-08-13
===========================================================
* Security: Prevents .htaccess upload, thanks wiswat
* Security: Prevents download of a zip media folder outside root media folder, thanks wiswat
* Security: Prevents sort of SSRF/XSPA vulnerability in feed import, thanks wiswat
* Security: Prevents reflected XSS in meda manager, thanks Chen Ruiqi
* Security: Fix somes vulnerabilities in blogroll plugin, thanks Onur Yılmaz - Netsparker (https://www.netsparker.com)
* Fix mix-content preview
* Pure CSS3 sticky footer for admin pages (aka « footer de merde »)
* Add missing breadcrumb styles for blowup theme
* Currently logged super-admin may now change it's id wihtout loosing access at next login
* The favorites icons may now be hidden from dashboard in user preferences
* Number of posts/pages/comments are now displayed at top of lists, including quick filters depending on their status
* Search widget has now a placeholder option (HTML5 only)
* Add Apache 2.4+ directives in .htaccess
* New favorites media folders (displayed at the top of recent folder list) in media manager
* New pure HTML5 template set named dotty cloned from currywurst templateset
* Codemirror lib updated (2.35.0 → 5.15.2) and moved to core:
  * 40+ Codemirror themes are available — set in user preferences
  * Fullscreen mode has been added (F11 switching key)
  * 3rd party plugins may now load and run it with dcPage::jsLoadCodeMirror() and dcPage::jsRunCodeMirror(), see themeEditor plugin for example
* New mark button for legacy editor (HTML5 only)
* New with_category attribute for tpl:Entries
* Add a /var directory:
  * Set with DC_VAR constant in inc/config.php
  * Admin URL of a var file should be retrieve with dcPage::getVF()
  * Public URL of a var file should be retrieve with dcBlog::getVF()
  * 3rd party plugins should create their own folder inside /var (aka DC_VAR) to keep it correctly organized
* Emails and web site have been added to the comments filters' list
* Some columns for posts and pages lists are now optional — set in user preferences
* Add Post URL sample in blog parameters
* CKEditor lib update (4.5.8 → 4.6.0)
* Wiki syntax: new ") <text>" mark to generate aside blocks
* CSP (Content Security Policies) have been implemented on admin pages:
  * settings may be adjusted in system settings / about:config → system (see csp_admin… values)
  * violation reports will be stored in admin/csp_report.txt (PHP 5.4+ only)
  * new behaviour adminPageHTTPHeaderCSP may be used by 3rd party to adjust CSP directives
* New behaviour adminPageHTTPheaders
* New "Go Top" button displayed for long admin pages
* 🐛 → Various bugs and typos fixed
* 🌼 → Some locales and cosmetic adjustments

Dotclear 2.9.1 - 2016-03-27
===========================================================
* Security: Add shtml extension to default media exclusion extension control, thanks Nitin Venkatesh for report
* Changing theme is now allowed even with read-only theme folder
* Audio media are not more preloaded in media manager pages
* Array settings/prefs are stored with 'array' type rather than 'string'
* 🐛 → Various bug fixes
* 🌼 → Some cosmetic adjustments

Dotclear 2.9 - 2016-02-29
===========================================================
* Additionnal menu items are now lexically sorted (default items and favorites order will be preserved)
* Wiki syntax : Added ""marked text"" support (HTML5 only)
* Session TTL are now adjustable (set DC_SESSION_TTL in inc/config.php)
* Add behaviors for posts/pages/comments/users lists' columns → let 3rd party plugin playing with them
* Blog and user lists are now lexically sorted
* Some new filters have been added for post lists
* Add a search engine in media manager (looking in filename, title and description metadata)
* Add recent folders direct access mechanism for the media manager (setting in user prefs)
* Add a another display mode (list) to the media manager
* Details about currently selected thumbnail in media manager are now displayed
* Shortcut access to the upload file form is now displayed on top on media page
* Default insertion size (width and height) may now be defined for video media
* Flash player fallback insertion is now optional for audio and video media
* Modules may have dependencies on Dotclear core version too (using 'core' as module name)
* Avoid mixed content (http vs https) for post/page preview: will open preview in another window if necessary
* Finnish translation has been added
* Content-length header is not more sent in HTTP response (should fix very long delays on some servers)
* Template engine : add tpl:EntryAuthorEmailMD5 and tpl:EntryCategoryDescription tags
* A new pref/setting array type is now available (JSON encoded in db)
* Cope with sort of "un-attached" media → allows new features as "featured media" plugin
* CKEditor library updated from 4.5.1 to 4.5.8
* Update jQuery from 1.11.3 to 2.2.0, jQuery-migrate from 1.2.1 to 1.3.0, jQuery-ui-custom from 1.11.2 to 1.11.4
* Provide jQuery 2.2.0 for public use (themes/plugins) - 1.4.2 (default) and 1.11.3 still provided
* Some locales added or updated
* PHP 7 compliance, PHP 5.3 min
* Fix : Cope with "unknown" scheme in url (ie nor http: neither https: is defined in origin url)
* Fix : Let select another theme even if theme folder is read-only
* Fix : XML-RPC media uploaded are not more twice Base64 decoded
* And plenty of other 🐛 🔫, various 🌼 adjustments, and also lot of 🍻 drunk

Dotclear 2.8.2 - 2015-10-25
===========================================================
* Security fix : Fixed potential XSS on comments management page
* Security fix : Enforce media exclusion control
* Php 5.5 leaves NULL chars in unpack ==> add trim, fixed
* Media title (in standard mode) is now taken into account on upload
* Some 🐛 🔫

Dotclear 2.8.1 - 2015-09-23
===========================================================
* Fix admin pager parameters escaping - thanks Keiko Yashiki from JPCERT/CC for reporting this XSS
* Error on changing post author in entries' lists: fixed
* Cope with unknown URL scheme in X-Frame-Options
* One ot two of 🍻 drunk

Dotclear 2.8 - 2015-08-13
===========================================================
* New module dependencies system (plugins)
* Theme editor: Cope with css theme sub-folder
* extension/heritage system applied to mustek templateset
* installation wizard now allows SQLite engine
* Legacy editor toolbar may now be displayed below textarea
* Breadcrumb plugin added to the distribution, included in mustek/currywurst templatesets
* Allow a fifth parameter (optional) for image to insert a legend using figure/figcaption tags (wiki)
* XHTML validator removed from legacy editor
* Update jQuery from 1.11.2 to 1.11.3
* Add a blog parameter to disable internal search
* Add some sort orders and filters criteria for posts and comments
* Update CKEditor from 4.4.8 to 4.5.2
* Add IP and antispam filter columns when displaying spams
* Add actions to directly blacklist IP from comments list
* Lexical sort order for tags and widgets
* Use HTML5 audio tag for MP3 attachments
* Bye the 🐈, welcome the 🐸
* Lot of 🐛 🔫
* Various 🌼 adjustments
* Full of 🍻 drunk

Dotclear 2.7.4 - 2015-02-13
===========================================================
* Berlin theme: resources usage has been optimized
* currywurst templateset: head-linkrel block name fixed
* Current editor syntax: now displayed near edited field (post/page/quick entry)
* Some admin URLs were malformed: fixed
* Post/page preview: anti-clickjacking system fixed
* The cat is valid now

Dotclear 2.7.3 - 2015-01-13
===========================================================
* Restore advanced edition of category description (as in 2.6)
* Various bug fixes
* Some cosmetic adjustments

Dotclear 2.7.2 - 2014-12-25
===========================================================
* Dotclear wiki could not be used by standard user: fixed

Dotclear 2.7.1 - 2014-12-25
===========================================================
* Various bug fixes
* Some cosmetic adjustments

Dotclear 2.7 - 2014-12-13
===========================================================
* Security : protection against clickjacking may be activated (see blog parameters)
* Switch to HTML5 : backend, templatesets and themes
* ARIA roles in da place (a11y)
* Multiple templatesets : mustek (legacy) and currywurst
* Themes may use extension/heritage template mechanisms
* New theme (Berlin) based on currywurst templateset
* New WYSIWYG editor (CKEditor)
* Dotclear Wiki now produces HTML5 compatible markup
* Video and audio HTML5 tags are now used (with fallback to flash if possible)
* Copying default theme to user-defined theme folder is not more necessary
* Preview of comment may be optional (see blog parameters)
* Widgets may be put offline without deleting them
* jQuery version may be choosen between 1.4.2 (default) and 1.11.1 (see blog parameters)
* Number of posts listed on home page may be different than other pages (see blog parameters)
* Hidden folders are now hidden in media manager (set DC_SHOW_HIDDEN_DIRS to true in config.php to display them)
* User-defined template files may be reset (deleted) in theme editor
* Drag'n'drop now enabled on touch screens
* Alternative syntax may be set for comments by third-party plugins
* A lot of bug fixes
* Much more cosmetic adjustements and enhancements

Dotclear 2.6.4 - 2014-08-18
===========================================================
* Security fix: Sanitize search request. Thanks to Takayuki Uchiyama
* Security fix: Strenghened xmlrpc (see http://www.breaksec.com/?p=6362)

Dotclear 2.6.3 - 2014-05-16
===========================================================
* Security fix: Strengthened xmlrpc auth. Thanks to Egidio Romano
* Security fix: Strengthened categories ordering. Thanks to Egidio Romano

Dotclear 2.6.2 - 2014-01-20
===========================================================
* Security fix: Fixed potential code injection on password protected post/page. Thanks to Charlie Briggs
* Bugfix: cope with numeric module (plugin/theme) id
* Bugfix: Bad SQL syntax when using SQLite
* Bugfix: BlogParentThemeURL template value is back
* Various bug fixes

Dotclear 2.6.1 - 2013-11-22
===========================================================
* Bugfix: trackbacks/pingbacks post URL
* Bugfix: short/full list of tags (post edition)
* Bugfix: Toolbar not drawn on new comment form (administration)
* Various bug fixes
* Some cosmetic adjustments

Dotclear 2.6 - 2013-11-13
===========================================================
* Various bug fixes
* Various cosmetic adjustments

Dotclear 2.6-RC - 2013-10-18
===========================================================
* PHP 5.2 required
* jQuery upgraded to 1.10.2 (including jQuery migrate plugin 1.2.1)
* mySQLi support (now proposed by default rather than mySQL)
* Administration revamped, relooked, redesigned, new icons, new ergonomic's behaviours
* Administration is now responsive (easier to cope with it on small devices)
* Administration menu re-organized
* a11y (accessibility) everywhere, with and whithout Js
* Success, notice and warning messages have been harmonized
* daInstaller has been dispatched in core (in plugins and blog themes management)
* Global help is now available, contextual help is available on every page
* Media manager enhanced
* Maintenance plugin revamped and enhanced (now includes export features)
* Categories management enhanced
* Plugins and themes management revamped
* New “Plumetis” variation for Blowup theme
* Jasmine is now used for unit testing of js components
* A lot of bug fixes
* A lot of cosmetics adjustments
* A lot of enhancements

Dotclear 2.5.3 - 2013-09-13
===========================================================
* Bugfix: l10n Clearbricks library
* Bugfix: post's comments and trackbacks counters
* Check public and cache directories (existence and permissions)
* Avoid Categorie's identical URL as far as possible
* Cope with alpha layers in PNG images for thumbnails generation
* Add password strength indicators
* Fix permission form (checkboxes management)
* Better management of antispam filters
* Minor enhancements
* Various bug fixes
* Various cosmetic adjustments

Dotclear 2.5.2 - 2013-08-14
===========================================================
* Security fix: Fixed potential XSS
* Bugfix: l10n Clearbricks library
* <tpl:LoopPosition> now works <tpl:Attachments>
* Dotclear update check may now be forced (ignoring cache)
* Enforce integration of daInstaller plugin
* Tags link button is now available on page editor
* Default cache age is now 1 week instead of 2 hours
* Quick entry dashboard module is not activated by default on new installation
* New template {{tpl:BlogParentThemeURL}} (return URL of parent theme of blog's theme if any, URL of blog's theme otherwise)
* Fix post comments number on comments deletion
* Fix order of backup files
* Minor enhancements
* Various bug fixes
* Various cosmetic adjustments

Dotclear 2.5.1 - 2013-07-20
===========================================================
* Security fix: Replacement of swfupload.swf by a jQuery plugin
* Security enhancement: Strenghened lists display
* Thumbnails quality improved
* Minor enhancements
* Various bug fixes
* Various cosmetic adjustments

Dotclear 2.5.0 - 2013-03-12
===========================================================
* Security fix: XSS vulnerabilities in swfupload.swf (media enhanced uploader)
* Ductile theme may now use webfont (from Google, Adobe and similar providers)
* daInstaller plugin is now included in the official distribution
* The media enhanced uploader may now be temporarily enabled or disabled
* Add mass expand on posts and comments lists
* Allow wildcard for IP address on comments filters
* Add ability to delete non empty category (and move its content to another category)
* Every types of entries may be used to inserted an entry link in current edited post
* Add (none) option to image insertion title pattern
* Smileys are not more converted in image in pre,code,kbd,script and math contents
* Notes' title can be now enclosed in h4 (default), h3 or p HTML tag
* Now display translated name and desc of plugins
* Add publication date validation on post and page editing forms
* Add description to widgets
* Add syntax color option to theme editor plugin
* Add delete button on media item page
* Add/complement display modes (all pages, home page only, except on home page) for all widgets
* {{tpl:Widgets}} without type attribute set displays now all widgets (from nav, extra and custom)
* Add {{tpl:else}}, {{tpl:TagCount}}, <tpl:TagIf>, {{tpl:CategoryEntriesCount}} template tags
* Add cat_only, no_tag and content_only attributes to {{tpl:EntryFirstImage}} tag
* Add capitalize attribute to template filters' list
* Enhance links lookup anti spam filter
* Add hidden optional attribute for pages
* Adaptative compression rate for thumbnails generation
* Add timestamp on admin information messages
* Update to jQuery 1.8.3 and jQuery-UI 1.9.2 (custom)
* Add default favicon.ico
* Add default attributes settings for image,mp3,flv insertion
* Various bug fixes
* Various cosmetic updates and contrast adjustments

Dotclear 2.4.4 - 2012-08-13
===========================================================
* Bugfix: Programmed entries works again.
* Compatibility fix: widgets are now fully php >=5.3 compliant
* Security fix: potential CSRF in user management
* has_tag now part of dotclear core, moved from tag plugin.
* empty title fixed on rss reader widget

Dotclear 2.4.3 - 2012-05-18
===========================================================
* Admin: My favorites menu can be hidden
* Admin: Fix wordpress importer
* Admin: about:config and user:pref tables are now more readable
* Ductile theme: Blog logo can be changed
* New lithuanian language (thanks to Paulius Černakauskas)
* Various bug fixes

Dotclear 2.4.2 - 2012-02-11
===========================================================
* Security fix release
* 4 XSS vulnerabilities fixed, discovered by High-Tech Bridge

Dotclear 2.4.1.2 - 2011-12-24
===========================================================
* Happy Christmas!
* Security: fixed one SQL injection vulnerability in Clearbricks, thanks to Adjaya
* New behaviour: publicGetURLFor
* New behaviour: publicRegisterURL
* New behaviour: templatePrepareParams
* Changed the way to get artefacts URLs, through $core->url->getURLFor calls, instead of $core->url->getBase()
* new/updated parameter sql_only in $core->blog->getPosts and $core->blog->getComments

Dotclear 2.4.0 - 2011-11-13
===========================================================
* Admin: new iconset from Thomas Daveluy
* Admin: Accessibility enhancements
* Added a custom widget sidebar
* Added a new theme (Ductile)
* Added a new plugin (simpleMenu)
* handling of postgres non default schemas (db_prefix = 'schema.prefix')
* New iconset mechanism
* New behaviour: coreBlogBeforeGetPosts
* Security fix: Spam comments feed now checks for blog permission. Thanks to Romuald Brunet.
* Various bug fixes

Dotclear 2.3.1 - 2011-06-14
===========================================================
* Updated makefile for cleaner distrib.
* Better localization handling for prefs and shortcuts.
* Misc JS & CSS cleaning.
* Import/Export preferences-related bugfix.
* Administrative mail address is now configurable.
* Security: one minor fix and changes for two potential problems. Thanks to Jeremie Boutoille

Dotclear 2.3.0 - 2011-05-16
===========================================================
* Admin: Major backend redesign
* Admin: Customizable Dashboard
* Admin: New Favourites admin submenu
* Admin: New user preferences backend
* Admin: Accessibility enhancements
* Admin: Inline help extended
* Templates: Default theme templates moved to inc/public/default-templates
* Clearbricks: External libraries relocated to inc/libs
* Clearbricks: fixed utf-8 and mysql strict mode problems
* Added a safe mode connection, disabling all plugins
* Mysqli support (config.php may need to be updated manually)
* Fixed dcLog bug with pgsql
* Fixed comment/trackbacks counters reset.
* Several other bug fixes


Dotclear 2.2.3 - 2011-04-01
===========================================================
* Security fix in media manager. Thx to Raphaël
* Bugfix : 2.2.2 was preventing manual thumbnail regeneration.
* Database handling bugfixes

Dotclear 2.2.2 - 2011-01-17
===========================================================
* Bugfix: 2.2.1 was blocking new installations
* Autoupdate procedure should now be "bad ftp client configuration"-proof.
* Several other small bugfixes

Dotclear 2.2.1 - 2011-01-15
===========================================================
* ExternalMedia is not part of the core distribution anymore
* New attribute to tpl:SysIf: blog_id
* New behaviour: adminMediaItemForm
* Several bugfixes
* Several code optimizations
* Several typos corrected
* Security fix in Clearbricks. Thx to François Pierre-Doray for pointing it out.

Dotclear 2.2 - 2010-07-01
===========================================================
* New installation wizard.
* Several new behaviours:
	- adminCommentHeaders
	- adminCommentsActionsCombo
	- adminCommentsActions
	- adminCommentsActionsContent
	- adminBeforeCommentDelete
	- adminPostsActionsHeaders
	- adminUsersActionsCombo
	- coreBeforeCategoryCreate & coreAfterCategoryCreate
	- coreBeforeCategoryUpdate & coreAfterCategoryUpdate
	- coreBeforeLogCreate & coreAfterLogCreate
	- coreBeforePostCreate & coreAfterPostCreate
	- coreBeforePostUpdate & coreAfterPostUpdate
	- coreMediaConstruct
	- templateCustomSortByAlias
	- urlHandlerGetArgsDocument
* New methods for several core classes.
* Metadata integration to the core.
* Error handlers can now be extended.
* Templates: blocks can now be recursive.
* Templates: Entries & Comments tags can now be sorted.
* Templates: The template subsystem is quicker, linier, and ready to be extended.
* Complete reworking of the settings system
* Correct handling of postgresql non default schemas.
* Admin: Autocompletion and further enhancing to tags handling.
* Admin: Accessibility & ergonomic tweaks.
* Admin: Administrator tag in users list.
* Comment cookies are now specific to the blog rather than to the domain.
* Password changes can now be mandatory.
* jQuery updated to 1.4.2.
* And way too many bugfixes and typos squashes to be listed.


Dotclear 2.1.7 - 2010-05-25
===========================================================
* Auto-update procedure fix

Dotclear 2.1.6 - 2009-10-01
===========================================================
* Install procedure fixes
* Admin: Page managers can now create pages
* Admin: several typos corrected.
* Admin: Widgets now work in IE8.
* Admin: Password protected posts can now be previewed.
* Templates: tpl:Meta* are now tpl:Tags*.
* Templates: <tpl:Entries lastn="0"> now display all posts.
* new behavior: adminPageHTMLHead
* DB schema: new blog_id field in log table
* Media manager: Pubic folder can now be set on a different host.
* WordPress import fixes
* Dailymotion insertion fix
* Upgrade procedure: CRLF removed in files that were bugging the upgrade.
* JQuery updated to 1.3
* IE7-js update
* security: Full Path Disclosure protection. Thx to Karim Ayad for pointing it out.
* and way too many bugfixes to be listed.

Dotclear 2.1.5 - 2009-02-05
===========================================================
* Security release
* Youtube insertion update

Dotclear 2.1.4 - 2008-12-21
===========================================================
* Security flaw fix
* WordPress import refining
* XML-RPC improvements

Dotclear 2.1.3 - 2008-11-19
===========================================================
* Admin: New upgrade procedure
* Admin: Fixed video insertion bug
* Template: New attributes
  * url on EntryIf
  * only_category on Blogroll
  * no_context on Pagination
* Template: New tag
  * BlogID
* Admin: escaped blog_id on authentication page

Dotclear 2.1.1 - 2008-11-07
===========================================================
* Admin: Automatic Update bug fixes
* Admin: Disable Automatic Update if no digests file
* Admin: Javascript fixes in authentication page
* Admin: Fixed errors with categories select boxes
* Template: Added level attribute in tpl:Categories
* Media: Added H.264/MPEG-4 AVC for mp4 files

Dotclear 2.1 - 2008-11-01
===========================================================
* Subcategories
* Admin: Automatic Update
* Admin: Flash 10 support for uploader
* Admin: mailto link in comment details
* Admin: Embedded video size selection
* Admin: Restrict session cookie path to admin
* Media: H.264/MPEG-4 AVC (HD) support with m4v files
* Inherited themes
* WordPress XML-RPC methods support
* True unicode URLs
* Plugin: Widgets as template tags
* Plugin: Filters in entries widgets and Blogroll
* Plugin: Added vimeo.com in external media
* Template: New tags
  * LoopPosition
  * CommentAuthorDomain
  * CommentAuthorMD5
  * EntryFirstImage
  * EntryCategoryShortURL
  * CategoryIf
  * CategoryFirstChildren
  * CategoryParents
  * EntryCategoriesBreadcrum
  * MediaURL

Dotclear 2.0.2 - 2008-09-05
===========================================================
* New installation procedure
* Plugin: WordPress import fixes
* Plugin: Plain text export as downloadable files
* Plugin: Message about URLs in Dotclear 1.2 import
* Public: Display a message if search returns no result
* Admin: Fixed some CSS bugs
* Admin: Batch select/unselect entries
* Admin: In a media item, find entries containing it

Dotclear 2.0.1 - 2008-08-16
===========================================================
* Plugin: Fixed a bug with Dotclear 1.2 URLs import.
* Plugin: Fixed a l10n bug in Pages
* Admin: Enhanced plugins resources loading and cache

Dotclear 2.0 - 2008-08-01
===========================================================
* Public: Atom becomes the default feed format. RSS 2 is always available.
* Admin: design enhancements and new Dotclear logo
* Admin: entries preview in blog context
* L10N: New language manager with zip files support
* Plugin: Import/Export plugin version 2.0 with import from Dotclear 1.2 and WordPress
* Plugin: Pages enhancements (preview, sorting)
* Plugin: support for jamendo and deezer in External Media
* JSMin on JavaScript files instead of JS packing
* SQLite 3 only support (PDO based)
* Many bug fixes and major performances improvements

Dotclear 2.0 RC2 - 2008-06-21
===========================================================
* FairTrackback spam filter
* Language pack infrastructure
* Bug fix on comment search with author "0"
* Javascript fixes
* dcAuth::sessionExists and dcAuth::checkSession new methods
* Right management in dcAuth::sudo
* Media File sorting options in media manager
* CandyUpload, new uploader tool based on SWFUpload
* New search engine robots options
* New image options
* L10N: Japanese and Portugues (Brazil) language packs
* Many bug fixes and enhancements

Dotclear 2.0 RC1 - 2008-05-01
===========================================================
* New: Pages plugin
* New: Theme editor plugin
* Entries: Text and WYSIWYG enhancements
* Entries: Markup validator
* Entries: Insertion of links to other entries from toolbar
* Entries: External media insertion (dailymotion, youtube, google video)
* Tags: Same list for new and existing entries
* Tags: Tags can be removed on all associated entries
* Tags: Tags can be removed on a post selection
* Admin: Ask password for user management tasks, theme upload and plugin upload
* Admin: New contextual help viewer
* Media manager: Recreate thumbnails option
* Media manager: Custom medium thumbnail size (per blog)
* Media manager: Zip files extract support
* Media manager: Zip file download of directory
* Media manager: File exclusion pattern option
* Themes and plugins: Zip as new package format
* Themes and plugins: Upload
* Themes and plugins: Upgrade within administration interface
* Themes and plugins: Deletion
* Public: New default theme: Blowup (fully customizable)
* Public: Changed the way commenter cookie is handled
* Themes: Template files moved to tpl/ directory
* L10N: Polish, Catalan and Spanish translations
* Misc: jQuery upgraded to 1.2.3
* Misc: Crushed png files
* Fixed many bugs

Dotclear 2.0 beta 7 - 2007-07-12
===========================================================
* New way to display comments and trackbacks on entries in backend
* Dashboard visual improvements
* Default cache dir created by installation process
* Option to limit posts and comments in feeds
* Introduced UDBS for installation and upgrade
* Changed handling of XML-RPC URLs
* New option to force HTTPS redirect if wanted
* Enforced cookies security (directory and ssl support)
* Added Plugin auto-install and auto-upgrade support
* Added trackbacks ttl and moderation preferences
* Added an Internal search engine
* FLV support in backend with Neolao player
* Added nice messages if database is broken or Dotclear not installed
* upgrade jQuery to 1.1.3
* Fixed many bugs
* Fixed security issues in backend

Dotclear 2.0 beta 6 - 2007-02-19
===========================================================
* New antispam plugin, with a set of filters (rbl, ipblacklist, spamwords, akismet)
* New admin dashboard page
* Fixed unwanted logout bug
* Added settings to disable template caching and allow PHP code
* Blog preferences panel bug fix
* New XML-RPC Client and Server
* Comment posting permissions bug fix

Dotclear 2.0 beta 5.4 - 2007-01-19
===========================================================
* Minor change on spam display in comments.php
* Command line upgrade script and fix in load_plugin_file.php
* Make akismet configurable only by superadmin with DC_AKISMET_SUPER
* SQL optimisations
* New comments view in post

Dotclear 2.0 beta 5.2 - 2007-01-11
===========================================================
* Fixed a bug with imageMeta::getMeta
* Enhanced dynamic file uploader
* Move clearbricks files to their own repository
* Fixed a bug with auto_br in wikiSimpleComment
* Support for language restriction in feeds
* Default theme structure changes
* Fixed a PHP 5.0 compatibility issue
* Installation Wizard

Dotclear 2.0 beta 4 - 2006-12-26
===========================================================
* Performances enhancements.
* Administration UI enhancements.
* More user-friendly Widgets (version 1.5).
* Switch to jQuery <http://jquery.com>.
* Added jQuery in default theme.
* Major changes in HTTP client and Feed Parser based on a
  generic socket handler.
* PHP 5.2 compatibility.
* Code documentation (all core and most of clearbricks).
* Many bug fixes.

Dotclear 2.0 beta 3 - 2006-11-05
===========================================================
* Disallow special wrappers for fopen like functions.
* XML/RPC improvements.
* Read IPTC and EXIF metadata in uploaded pictures.
* MySQL 4.1 support only.
* Metadata import from Dotclear 1.2.x.
* Akismet plugin.
* Pings plugin.
* Added a priority setting for plugins.
* Many bug fixes.

Dotclear 2.0 beta 2 - 2006-08-09
===========================================================
* DC_PLUGIN_ROOT can handle more than one path.
* OPML/XBEL import in blogroll plugin.
* Fixed a security issue in html::absoluteURLs().
* Fixed issues with timezone on scheduled entries.
* Multiple categories selection in tpl:Entries.
* Improved dbLayer.
* Changed category feed URL.
* Feeds for tags (entries and comments).
* Added attachments count on backend and frontend.
* New settings code design. Can now handle wide system settings.
* Memory usage improvements with autoloader.
* Some code cleanup.
* Feed parser improvements.
* Themes can be configured if needed.
* XMP support on JPEG files.
* Media manager improvements.
* Spamplemousse now uses DNSBL (and the guy who left the bug was fired).
* Javascript editor and toolbar improvements.
* RDS support (XML/RPC API discovery).
* Added a theme with user stylesheet.
* Plugins manager
