�ɲɾ�����ӯ�����һ��ˣ��������С���˴��ͣ�������P���ҹ��ñ˽��ά�Բ��������˸߸ԣ�������ơ��ҹ��ñ�����ά�Բ���ˡ���˳^�ӣ������ӡ�
���ͯj�ӣ��ƺ���ӣ�
? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!var/softaculous/dotcl/changelog.txt 0000644 00000051625 15252525006 0013513 0 ustar 00 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 … 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- classes to each blog line (list of blogs)
* UX/UI: Add offline and sts- 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 for 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 var/softaculous/traq/changelog.txt 0000644 00000002204 15252525455 0013352 0 ustar 00 3.8
WYSIWYG editing of Markdown
Enhanced timeline
Formatting style guide
New Status Type "in Development"
Convert Ticket Listing to Vue.js
Convert ticket details to Alpine
Improve front-end
New search UI
New project switcher
Roadmap UI refresh
Better ticket history
Ticket templates with new markdown editor
Implement mailer library
Fix incorrect integer value
Fix errors with PHP 8.1
Unsubscribe link in notification emails
Move default theme CSS to new asset system
Fix select field background
Comments not stripped from install SQL
Changes in Traq v3.7.3
---------------------------
Backport PHP 7/8 fixes from 3.8 to 3.7
Changes in Traq v3.7.2
---------------------------
Some models are broken on PHP 7+
Private tickets
Admin permissions are missing
PHP Error during install
Changes in Traq v3.7.1
---------------------------
Invalid min/max length values
Unable to create Milestones
Undefined index on Timeline
Unable to create Wiki pages
Changes in Traq v3.7.0
---------------------------
Ticket time management
Password migration prompt var/softaculous/wallabag/changelog.txt 0000644 00000006272 15252525467 0014171 0 ustar 00 ## [2.6.14](https://github.com/wallabag/wallabag/tree/2.6.14)
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.6.13...2.6.14)
### Improvements
* Add annotations filter to entries API endpoint by @skn in https://github.com/wallabag/wallabag/pull/8346
### Fixes
* Fix reading time computation for short entries by @andreadecorte in https://github.com/wallabag/wallabag/pull/8332
* Fix `urls` parameter when sending many urls to be stored using the API by @j0k3r in https://github.com/wallabag/wallabag/pull/8488
* Fix docker base image by @yguedidi in https://github.com/wallabag/wallabag/pull/8440
### Technical stuff
* Change version in wallabag.yml by @nicosomb in https://github.com/wallabag/wallabag/pull/8251
* Fix deprecation by @j0k3r in https://github.com/wallabag/wallabag/pull/8267
* Update dependencies by @yguedidi in https://github.com/wallabag/wallabag/pull/8435
* Bump deps (mostly for siteconfig) by @j0k3r in https://github.com/wallabag/wallabag/pull/8489
## [2.6.13](https://github.com/wallabag/wallabag/tree/2.6.13)
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.6.12...2.6.13)
### Improvements
* Add support of Pocket CSV import by @kdecherf and @nicosomb in [https://github.com/wallabag/wallabag/pull/8240](https://github.com/wallabag/wallabag/pull/8240)
* Backport Pocket and Shaarli HTML imports from master by @nicosomb in [https://github.com/wallabag/wallabag/pull/8193](https://github.com/wallabag/wallabag/pull/8193)
### Fixes
* Avoid non-validated OTP to be enabled #8139 by @j0k3r in [https://github.com/wallabag/wallabag/pull/8139](https://github.com/wallabag/wallabag/pull/8139)
### Technical stuff
* Update j0k3r/php-readability:1.2.13 to fix regression (about latin1 instead of UTF-8 used for entries) by @nicosomb [https://github.com/wallabag/wallabag/pull/8194](https://github.com/wallabag/wallabag/pull/8194)
## [2.6.12](https://github.com/wallabag/wallabag/tree/2.6.12)
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.6.11...2.6.12)
### Technical stuff
* Fix changelog by @yguedidi in [https://github.com/wallabag/wallabag/pull/8135](https://github.com/wallabag/wallabag/pull/8135)
* Update dependencies by @yguedidi in [https://github.com/wallabag/wallabag/pull/8136](https://github.com/wallabag/wallabag/pull/8136)
## [2.6.11](https://github.com/wallabag/wallabag/tree/2.6.11)
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.6.10...2.6.11)
### Security fix
* Protect actions with a CSRF token by @yguedidi in https://github.com/wallabag/wallabag/commit/99c8a06594d6ee7480ce4d041ccff3025b353656
## [2.6.10](https://github.com/wallabag/wallabag/tree/2.6.10)
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.6.9...2.6.10)
### Improvement
* Add Omnivore import by @nicosomb in https://github.com/wallabag/wallabag/pull/7754
### Fixes
* Update site config & tests by @j0k3r in https://github.com/wallabag/wallabag/pull/7582 (fixes "Key provided is shorter
than 256 bits, only 240 bits provided" https://github.com/wallabag/wallabag/issues/7531)
* Update site config by @yguedidi in https://github.com/wallabag/wallabag/pull/7623
* Replace gitter with matrix by @nicosomb in https://github.com/wallabag/wallabag/pull/7753 var/softaculous/tcexam/changelog.txt 0000644 00000005225 15252526302 0013662 0 ustar 00 17.2.0 (2026-06-25)
- Fixed creating and importing questions and answers on databases using the utf8mb4 character set (issue #461); the binary uniqueness-check collation is now configurable via the new K_MYSQL_QA_BIN_COLLATION constant.
17.0.0 (2026-06-23) [BREAKING CHANGE]
- Major modernisation release. Please read UPGRADE.md before updating an existing installation.
- PHP 8.2 or newer is now required.
- Dependencies are now managed with Composer; running "composer install" is required before use.
- Externalised the previously bundled libraries to Composer packages: PHPMailer, phpCAS, RADIUS and TCPDF.
- Replaced TCPDF with the tc-lib-pdf engine (plus tc-lib-barcode, tc-lib-color and tc-lib-file) for all PDF generation, OMR answer sheets, QR codes and the colour picker.
- PDF fonts are now generated at install time into the vendor directory; the bundled 27 MB fonts/ folder has been removed.
- Upgraded PHPMailer to the 7.x series.
- Removed the legacy register-globals emulation; all controllers now read request inputs explicitly from $_POST/$_REQUEST.
- Security hardening: install-time random K_RANDOM_SECURITY with fail-closed PDF result tokens, fixed SQL injection and XSS issues, IDOR fix for non-admin editors, safer file/URL handling and CSPRNG-based codes.
- Accessibility overhaul (WCAG 2.1 level AA): semantic landmarks, skip links, ARIA roles, labelled forms and screen-reader cues.
- Migrated the HTML output from XHTML 1.0 Strict to HTML5.
- Replaced the virtual keyboard and old Internet Explorer workarounds; added a new calendar widget and a native HTML5 colour picker.
- Added a PHPUnit test suite plus Docker-based integration tests against MySQL/MariaDB and PostgreSQL.
- Added a Docker runtime (Dockerfile + docker-compose) for evaluation and deployment.
- Added build tooling: Makefile targets, GitHub Actions CI and mago lint/format.
- Internationalisation: kept the TMX format and added a "make lang" build/validation step for the translation caches.
- New configuration constants: K_USRREG_ALLOWED_GROUPS, K_CAS_SERVICE_BASE_URL, K_FILE_ALLOWED_PATHS, K_FILE_ALLOWED_HOSTS and several K_PDF_* options.
- Overhauled the documentation: rewritten README, INSTALL, UPGRADE, CONTRIBUTING, SECURITY and CODE_OF_CONDUCT, and consolidated the installation instructions into a single up-to-date manual (install/README.md).
*************************************************
16.6.3 (2026-04-16)
- Fix potential security vulnerability issues.
16.6.2 (2026-03-08)
- Add K_USRREG_ALLOWED_GROUPS configuration entry to set the allowed registration groups.
- Sanitize fields and additional checks.
16.6.1 (2026-03-04)
- Update TCPDF.
- Sanitize XML fields. var/softaculous/myt/changelog.txt 0000644 00000000555 15252526313 0013215 0 ustar 00 1.5.1 (2016-08-21)
Bug Fixes
- Wrong Avatar Path on Installation
- Error "Prefix "PRJ" has already been taken" when attempting to edit existing project
- Cannot delete project
- User avatar disappear on user edit
- Error on Reset Password
Improvements
- Changed Removed Filter Icon on all grid
- Project can be deleted only if hasn't project or task pending var/softaculous/monsta/changelog.txt 0000644 00000001643 15252534151 0013703 0 ustar 00 Version 2.10.4 - Released 25 September, 2022 (no extended notes for release)
Removed any reference to PHP Magic Quotes
Updated UI Wizard for context menu options (Copy Name and Create Zip Archive)
Version 2.10.3 - Released 9 November, 2020 (no extended notes for release)
Third-party Javascript libraries updated
Version 2.10.2 - Released 17 August, 2020 (no extended notes for release)
Addressed fixes for the security vulnerabilities detailed here.
Resolved an issue with uploading recursive folders
Incremental improvement to file upload dialog
Version 2.10.1 - Released 14 December, 2019
Resolved issue with unzipping files on upload
Add a right-click "Create Zip Archive" feature to zip up files on server
FIle upload progress now working properly for chunked uploads
Version 2.10 - Released 12 November, 2019
Files now uploaded in chunks
Added action logging
Bug fixes var/softaculous/smarty/changelog.txt 0000644 00000006257 15252534207 0013731 0 ustar 00 ## [5.8.4] - 2026-06-29
- Fixed a `TypeError` on PHP 8 when `Security::$static_classes` was set to a non-array value (e.g. the string `'none'`) to disable static class access; any non-array value now cleanly denies access. Use `Security::$static_classes = null` to disable access to all static classes.
- Security: the built-in `stream:` resource type now validates the nested stream wrapper against the security policy, so a template such as `stream:php://filter/...` can no longer bypass `Security::$streams` (including `Security::$streams = null`) to read local files (CWE-22)
## [5.8.3] - 2026-06-28
- fixed a regression from #1189 where a child template's block override no longer applied to a template {include}d by the parent [#1192](https://github.com/smarty-php/smarty/issues/1192)
## [5.8.2] - 2026-06-24
- Security: prevent symlinks inside a trusted `secure_dir`/template directory from being used to read files outside of it (CWE-22 path traversal), affecting `{include}` and `{fetch}` of local files
- Security: `{html_image}` now escapes the `file`, `path_prefix`, `href`/`link`, `width` and `height` attributes (it already escaped `alt` and pass-through attributes), and `{html_select_date}` casts `day_size`/`month_size`/`year_size` to int (matching `{html_select_time}`), preventing untrusted values passed into these attributes from breaking out of the generated HTML (CWE-79)
- Security: `{fetch}` no longer follows HTTP redirects for remote resources while a security policy is active, preventing an open redirect on a trusted host from bypassing `trusted_uri` (CWE-918 server-side request forgery)
- Fixed "Attempt to assign property step on null" error when using a {for} loop inside a block of an extended template [#1036](https://github.com/smarty-php/smarty/issues/1036)
## [5.8.1] - 2026-06-23
- Re-activated unit tests for user literals, which were previously disabled due to a bug in refactoring to v5.
- fixed a bug where child template's block content leaked into subsequent rendering of the parent template [#1189](https://github.com/smarty-php/smarty/issues/1189)
- Moved all unit test-generated output from inside the working tree to tmp files [#1178](https://github.com/smarty-php/smarty/issues/1178)
## [5.8.0] - 2026-02-15
- Added support for Backed Enums for php versions >= 8.1 [#1171](https://github.com/smarty-php/smarty/pull/1171)
- Added support for new 'matches' operator doing regex matching [#1169](https://github.com/smarty-php/smarty/pull/1169)
- Update documentation to clarify that include inline is currently not implemented in Smarty v5 [#1152](https://github.com/smarty-php/smarty/issues/1152)
- Support for Laravel Collections style object chaining for objects return from function calls implemented as modifiers [#1151](https://github.com/smarty-php/smarty/issues/1151)
## [5.7.0] - 2025-11-19
- PHP 8.5 support
## [5.6.0] - 2025-10-03
- Added support for shorttags in functions [#1005](https://github.com/smarty-php/smarty/issues/1005)
## [5.5.2] - 2025-08-26
- Fixed escaping of array/object keys in debug_print_var
## [5.5.1] - 2025-05-19
- Fix missing support for loading modifiercompilers from plugin dir in BCPluginsAdapter [#1132](https://github.com/smarty-php/smarty/pull/1132) var/softaculous/flatboard/changelog.txt 0000644 00000011531 15252534247 0014343 0 ustar 00 Version 4.0 - 2025-11-29
Performance Optimizations
Database Query Optimization: Implemented static caching for flatDB::readEntry() and flatDB::listEntry() to reduce redundant file system operations
N+1 Query Fixes: Eliminated N+1 query problems in feed.php, view.php, search.php, and other core files
Parser Optimization: Added static cache for Parser::title() and optimized Parser::content() and Parser::summary()
Plugin System: Implemented static caching for plugin configurations and hook validations
BBCode/BBlight Optimization: Added static cache for quote entries to prevent repeated database reads
User Management: Implemented static cache for ban list with 60-second TTL
Search Enhancement: Optimized search functionality with relevance scoring, result limiting, and content preview optimization
Library Improvements
flatDB Library: Added static caching system with automatic invalidation (5-second TTL)
Plugin Library: Added cache for hook validation checks
HTMLForm Library: Added cache for description sanitization
GlobalRequestLimiter: Fixed potential undefined variable error
RSS Feed Fixes
Fixed RSS feed redirection issue - now returns valid Atom XML error feed instead of redirecting
Improved date validation in feed generation
Optimized topic caching in feed.php
Date Formatting
Fixed date formatting issues with strftime codes
Added convertStrftimeToDateTime() function for proper format code conversion
Enhanced config.php with select dropdowns for date format presets
Added "Custom" option with dynamic text input for date formats
Security Enhancements
Ban System Overhaul:
[list]
Replaced strpos() with ipInCidr() for accurate IP/CIDR range checking
Added isValidIpOrCidr() for robust IP and CIDR validation (IPv4/IPv6)
Improved ban list management with search, sort, and add functionality
Added confirmation for ban removal
Implemented static cache for ban list with automatic invalidation
[*] CSRF Protection: Enhanced CSRF token generation and validation
[*] Input Sanitization: Improved HTML sanitization in help descriptions with whitelist-based approach
[*] IP Validation: Enhanced IP address validation including CIDR support
[/list]
User Interface Improvements
Added logout button to frontend header for all logged-in users
Tags field now only displays if visible tags are configured
Improved responsive design for various screen sizes
Enhanced form validation and error display
Plugin Enhancements
Identicon Plugin (v3.6.0):
[list]
Added configurable options for status dot (online/offline) display
Added configurable options for role badge (admin/moderator) display
Improved caching for online status checks
Enhanced role detection with optimized caching
Fixed CSS positioning for status dots and badges
[*] Online Plugin:
Implemented static caching for plugin data, hits, and authenticated users
Optimized cleanup of inactive IPs and authenticated users
Added configuration options for timeout and max_entries
Enhanced modal to display authenticated users, visitors, and bots
Improved IPv6 masking for privacy
Added crawler detection with static caching
[*] FlatBBeditor Plugin:
Fixed conflicts with TinyMCE editor in page plugin
Added conditional loading to prevent conflicts
Fixed undefined array key warnings in markdown editor
Implemented static cache for plugin data
[*] Darkmode Plugin:
Fixed Firefox crashing issues
Added color format validation
Improved error handling and initialization
Added static caching for plugin configuration
[*] Page Plugin:
Ensured TinyMCE editor doesn't conflict with FlatBBeditor
Added proper content field handling
Improved translation support
[/list]
Content Parsing Improvements
Markdown Editor:
[list]
Fixed HTML tag display issue in homepage summaries
Added HTML-to-Markdown conversion for pre-existing HTML content
Improved content parsing in Parser::content() and Parser::summary()
[*] BBCode Processing: Optimized quote processing with static caching
[/list]
JavaScript Enhancements
Improved plugin activation/deactivation with better error handling
Added comprehensive AJAX error handling with timeouts
Enhanced UI feedback for user actions
Fixed TypeError issues in flatboard.js
[h2]Bug Fixes[/h2]
Fixed white page error in identicon plugin
Fixed undefined array key warnings in multiple files
Fixed date formatting display issues
Fixed search functionality optimization
Fixed tag display logic in forms
Fixed various PHP warnings and notices
Code Quality
Improved error handling throughout the application
Added comprehensive logging for debugging
Enhanced code documentation
Improved code organization and structure var/softaculous/domainmod/changelog.txt 0000644 00000001322 15252534407 0014347 0 ustar 00 v4.23.0 2025-01-04
-Added 16 new languages
-Added the ability to send a test email
-Added the ability to quickly set missing fees to 0
v4.22.0 2025-01-01
- Updated Porkbun API URL
- Updated Personal Links
- Updated Copyright
- Updated Composer and Composer Packages
- Fixed menu items that weren't translating
- Fixed Add Domain button display issue
- Fixed Add SSL Certificate button display issue
- Migrated to NPM Free Currency Exchange Rates API
v4.21.0 2024-03-03
- Added Porkbun API support
v4.20.07 2024-01-03 (compare to v4.20.06)
- Added support for Free Currency Rates API
- Updated Composer
- Upgraded GJClasses (0.50.0 -> 0.51.0)
v4.20.06 2023-09-06
- Included Webmozart/Assert dependency var/softaculous/drupal/changelog.txt 0000644 00000001104 15252534561 0013666 0 ustar 00 Drupal 7.103, 2024-12-04
------------------------
- So Long, and Thanks for All the Fish
Drupal 7.102, 2024-11-20
------------------------
- Fixed security issues:
- SA-CORE-2024-005
- SA-CORE-2024-008
Drupal 7.101, 2024-06-05
-----------------------
- Various security improvements
- Various bug fixes, optimizations and improvements
Drupal 7.100, 2024-03-06
------------------------
- Security improvements
- Announcements module added
Drupal 7.99, 2023-12-06
-----------------------
- Various security improvements
- Various bug fixes, optimizations and improvements var/softaculous/fcms/changelog.txt 0000644 00000003032 15252535173 0013331 0 ustar 00 3.6.2
#524 - FCMS 3.6.0 - Google/YouTube db updates missing from install
3.6.1
#516 - Update version, added blank state to blue-chrome, updated changelog
3.6.0
#395 - Update Youtube API to v 3.0
#484 - Import Pictures from Facebook
#491 - New YouTube API
#502 - Need a blank state message when no new entries found
#504 - 'Unknown' user when creating Polls in admin
#505 - Update Picasa API to use new Google API
#507 - Facebook: Invalid Scopes: publish_stream, offline_access.
3.5.1
#405 - Upgrade Ajax Chat to latest version
#424 - Members cannot add to family tree
#465 - CHAT ERROR: error on line 2 at column 1: Extra content at the end of the document
#471 - Cannot edit Family Tree (non admin)
#486 - Account - Undefined index: advanced_tagging
#487 - Admin: Can't edit user profiles
#488 - Turning site off causes php errors
#494 - Fix unauthorized photo/file access
#495 - Unauthorized users can see protected photos
#496 - Deny access to non-admin users on Youtube and Instagram config pages
#499 - Fix hard-coded URLS for no_avatar.jpg
#500 - Change gravatar URL to be compatible with both HTTP and HTTPS sites
3.5.0
#407 - Move from Prototype to jQuery
#441 - HTML5 YouTube videos
#450 - Memory error on Family Tree with a lot of relatives
#452 - Upgrade plupload to 2.1.1
#454 - PHP Error pre_replace(): The /e modifier is deprecated
#472 - PhotoDestination issue when uploading instagram
#473 - Foursquare API needs updated var/softaculous/elgg3/changelog.txt 0000644 00000005431 15252704554 0013410 0 ustar 00 ## 7.1.0 (2026-09-10)
#### Contributors
* Jerôme Bakker (10)
* Jeroen Dalsem (7)
#### Features
* **entities:** header image capability for generic entity form [ba0896370](https://github.com/Elgg/Elgg/commit/ba08963708049637176e828d70cdccaa1ac57009) closes [#15110](https://github.com/Elgg/Elgg/issues/15110)
* **groups:** group membership can be by invitation only [c64ed5695](https://github.com/Elgg/Elgg/commit/c64ed5695c98ce8b68fa2d433035b9cd10c5070b)
* **i18n:** added generic translations keys for url and website [1abe8178f](https://github.com/Elgg/Elgg/commit/1abe8178f9744ea7a3fbaefe7bd700ea90585d26)
* **db:** mariaDB is the recommended database server [48b7bc7ca](https://github.com/Elgg/Elgg/commit/48b7bc7ca61ab8d47e6c36f590be7e6035168958) closes [#14945](https://github.com/Elgg/Elgg/issues/14945)
* **menus:**
* filter menu items do not show on other user owned pages [7b8464354](https://github.com/Elgg/Elgg/commit/7b84643546529bb184f682663494e8f45b9724bb)
* added optional admin parent item in entity menu for admin actions [345a02fe1](https://github.com/Elgg/Elgg/commit/345a02fe1962a703d72c84d4f7151397d6a373df)
* **comments:** comment count badge updates after ajax comment save [76dc78e2d](https://github.com/Elgg/Elgg/commit/76dc78e2dcfeb1813da6cf6c0a12a0edc4c491d0)
* **a11y:** set aria-current on selected menu items [1e5c0700c](https://github.com/Elgg/Elgg/commit/1e5c0700c002ec8f6266ab258059821ec15562f6)
* **content:** add generic entity controller [4afaafb89](https://github.com/Elgg/Elgg/commit/4afaafb89aa3533b1f80ce2cc27b669cd92e283f)
* **widgets:** added some javascript triggers to widget manipulation [b92688bca](https://github.com/Elgg/Elgg/commit/b92688bca30687a35d3cf405688bc00990a96c80)
#### Performance
* **db:** add index to metadata table for entity_guid name [6b95a66ac](https://github.com/Elgg/Elgg/commit/6b95a66ac85d391f834786d96f921a90ce53b465)
#### Bug fixes
* **db:** correctly invalidate query cache on insert/delete/update [62de9792c](https://github.com/Elgg/Elgg/commit/62de9792c852eb195529b780c4ddca364bfc8ac2) closes [#15140](https://github.com/Elgg/Elgg/issues/15140)
* **reportedcontent:** do not show report menu item in admin context [25576cdc7](https://github.com/Elgg/Elgg/commit/25576cdc7feb15d61dcf24a62d5d32dddd92cad4)
7.0.5 (2026-08-19)
Contributors
Jerôme Bakker (5)
Jeroen Dalsem (1)
Performance
likes: don't generate ajax response data for unsupported entities bbecce845
7.0.4 (2026-07-30)
Contributors
Jerôme Bakker (4)
Bug fixes
gatekeeper: deleted entities exist but are not accessible 501959227
7.0.3 (2026-07-10)
Contributors
Jerôme Bakker (1)
Bug fixes
ckeditor: use correct version for GPL license 69449138e closes #15108
7.0.2 (2026-07-02)
Contributors
Jerôme Bakker (4)
Jeroen Dalsem (2)
Update notes
Several small fixes
var/softaculous/prado/changelog.txt 0000644 00000024103 15252705753 0013513 0 ustar 00 ## Version 4.3.1 - May 21, 2025
ENH: Issue #993 - Added TDatePicker::DropDownCssClass to apply a class to all the dropdowns
ENH: Issue #997 - Nginx fixes to run appliaction in subfolder
ENH: Issue #998 - Replace Exception by Throwable to catch eval ParseError and Error.
ENH: Issue #1002 - Add THttpSessionhandler to avoid use of deprecated session_set_save_handler() ctor
ENH: Migrate functional tests from phpunit-selenium to php-webdriver
ENH: Php 8.4 compatibility: limit use of deprecated SID and E_STRICT constants
ENH: Php 8.4 compatibility: use explicit nullable type
ENH: Php 8.2 compatibility:remove deprecated usage of dynamic defined properties in TActiveRecord
BUG: Avoid recursive error while reporting an error and the source file can't be loaded
## Version 4.3.0 - October 26, 2023
ENH: Issues #824, #838, #851, #891, #910, #917 - General Behaviors Update: Cloning and Serializing supports behaviors. IBaseBehavior has init($config) method. TClassBehavior tracks their owners. Behaviors attach their registered event handlers at the behavior priority. Registered Behavior event can optionally attached and detached automatically when the behavior is enabled or disabled (default). Behavior events() support Closures. IBehavior are attachable class-wide by cloning. Behaviors for behaviors has better support. Behaviors are case insensitive. Supports Anonymous (unnamed/numeric) behaviors. Wakeup updates the component behaviors with new named class behaviors. (belisoful)
BUG: Issue #843 - Permissions Manager behaviors rename the method 'getManager' to 'getPermissionsManager' for specificity. (belisoful)
ENH: Issue #845 - PHP Clone and Unserialize of TComponent objects supports behaviors. (belisoful)
ENH: Issue #848 - TComponent events support Closure (anonymous functions) as handlers. (belisoful)
ENH: Issue #861 - TWebColors lists all the Web Colors in a TEnumerable and implements TPropertyValue::ensureHexColor (belisoful)
ENH: Issue #886 - Lists the 1st level traits of the class and its parents in TComponent::getClassHierarchy. Class-wide behaviors support attaching to Traits as well as interfaces, classes, and their parents. (belisoful)
ENH: Issue #904 - TRational and TURational for reading, writing, and computing EXIF-Tiff (GPS) Rational and URational unit types; in Prado\Util\Math. (belisoful)
BUG: Issue #911 - Protect the message cache file to be thread safe. (majuca)
ENH: Issue #939 - TEventHandler for embedding data with a specific event handler callable. (belisoful)
ENH: Issue #944 - TExitException for gracefully exiting the application anywhere. Exception chaining with the last parameter being the previous Exception. (belisoful)
ENH: Issue #979 - TComponent::raiseEvent optionally execute handlers in reverse; asa() and getBehaviors() searches for behaviors based on class after failing on name. (belisoful)
ENH: Issue #975 - Prado base object methods for each log type and automatic discovery of calling object for log category. (belisoful)
ENH: Issue #977 - THttpRequest::onResolveRequest for custom service resolution and TRequestConnectionUpgrade behavior for selecting service on http headers for "websocket". (belisoful)
ENH: Issue #982 - General Logging update: Profiling, Flushing large logs for long running processes, optional Tracing, tracks PID for multi-threaded logging, TBrowserLogRoute colorizes the time delta, TDbLogRoute adds a new DB field 'prefix' and functions for getting the DB log, DB log count, and deleting DB logs, TDBLogRoute also adds a RetainPeriod for automatically removing old logs, Adds an event TLogger::OnFlushLogs and flushes as a register_shutdown_function, adds the TSysLogRoute, and adds unit tests for logging. (belisoful)
ENH: Issue #984 - TEventSubscription for temporary event handlers. (belisoful)
ENH: Issue #972 - TProcessHelper (isSystemWindows, forking, kill, priority) and TSignalsDispatcher for delegating signals to respective global events, alarm interrupt callbacks at specific times, and per child PIDs callbacks. TEventSubscription can subscribe to a PHP process signal, an integer, as an event "name" (in TSignalsDispatcher). (belisoful)
ENH: Issue #973 - Embedded PHP Development Web Server CLI Action. (belisoful)
ENH: Issue #976 - A class's static functions are extendable with class-wide behaviors or a singleton implementing ISingleton. The PHP magic method TComponent::__callStatic forwards static function calls to implementing class-wide or ISingleton behaviors. (belisoful)
## Version 4.2.2 - April 6, 2023
BUG: Issue #811 - Update TSqlCriteria.php for fix phpdoc (zendre4)
BUG: Issue #814 - TSkinTemplate: ensure the full-NS class name is returned from the skin to match the one from the template (ctrlaltca)
BUG: Issue #815 - Cron trigger on first run fix, repeat running fix, and removed time zone code (belisoful)
BUG: Issue #819 - Support for OFFSET parameter without LIMIT clause in SQL query for TActiveRecord (ganiuszka)
ENH: Issue #820 - TApplicationComponent::getClassFxEvents Performance Mode should cache all (belisoful)
ENH: Issue #828 - TApplication::onSetUser raised when setting user. (belisoful)
ENH: Issues #821, #822, #823, #825, #826, #834, #839, #842 - Behavior updates (belisoful)
ENH: Issues #840, #847 - TPriority updates (belisoful)
ENH: Issues #818, #846 - TCallChain updates (belisoful)
ENH: Issue #866 - HTMLPurifier_Config and cache path (majuca)
ENH: Issue #868 - RFC: Service detection is fragile (ctrlaltca)
BUG: Issue #815 - Cron tasks delay until their proper time on first entry. Long running cron tasks no longer repeat further pending tasks. (belisoful)
ENH: Issue #865 - File and dir permissions were too permissive 0777, now the file permissions are 0644 and 0755 for directory by default. (majuca)
ENH: Issue #869 - Remove execute permission on all files excepted on php-cli (majuca)
ENH: Issue #875 - Make Prado::using able to autoload traits defined as prado3 namespaces (ctrlaltca)
## Version 4.2.1 - May 9, 2022
BUG: Issue #809 - Interface order and minimum required PHP version (ganiuszka)
BUG: Issue #810 - Index 0 is out of range error from TAuthorizationRuleCollection::insertAt (ganiuszka)
## Version 4.2.0 - Apr 19, 2022
ENH: Issue #790 TPermissionsManager implements Role Based Access Control and Authorization Rules for each permission (belisoful)
ENH: Prado::createComponent can take an array with "class" and object properties to set on the new object (belisoful)
ENH: TAuthorizationRule adds Priority for proper ordering of Authorization Rules, eg. Deny All can be and stay the final rule using priorities. (belisoful)
ENH: TPageConfiguration is extendable with dynamic events for loading xml & php and then applying (belisoful)
ENH: TUser adds dynamic events dyDefaultRoles and dyIsInRole for default roles and checking the user in a role. (belisoful)
BUG: Issue #791 - TUserManager loads PHP user file configurations properly (belisoful)
ENH: Adds IPriorityItem for auto-prioritizing items in TPriorityList and TPriorityMap (belisoful)
CHG: Issue #783 - Refactor the Shell system with Composer in mind; shell routes and actions, updated the help system. (belisoful)
ENH: Issue #761 - TCronModule and TDbCronModule with supporting classes, scheduled like linux cron schedule expression, 8 languages. (belisoful)
ENH: Issue #743 - Integrate Composer extensions for PRADO, module ids can be the composer package names and the class will be ['extra']['bootstrap'] (from the composer.json file). TPluginModule/TDbPluginModule for additional functionality as the parent class for extensions. Composer "type" : "prado4-extension" (belisoful)
BUG: Issue #784 - Prado-CLI corrected I18N by translating the shell "LANG" into "HTTP_ACCEPT_LANGUAGE" (belisoful)
ENH: Issue #778 - Added TEventContent for filling in the control content from handlers of a global event (belisoful)
ENH: Issue #776 - Added TDataSize for formatting data sizes with bytes, kB, MB, KiB, MiB, etc. (belisoful)
ENH: Issue #775 - TPageService::onAdditionalPagePaths for additional pages (to look for) from composer package extensions (belisoful)
ENH: Issue #772 - TMap, TPriorityMap adds dyNoItem, dyAddItem, and dyRemoveItem dynamic events. (belisoful)
ENH: Issue #771 - Added TDbParameterModule for reading and setting application parameters with a database-table. (belisoful)
CHG: Issue #765 - Prado-CLI moved into their own set of classes rather than one big prado-cli file with all the functionality in it. (belisoful)
CHG: Issue #763 - Moved secondary saving of global variables until after onEndRequest in case global state changes in onEndRequest. (belisoful)
ENH: Issue #750 - Added TGravatar (belisoful)
ENH: issue #744 - Added RTL theme support (belisoful)
BUG: Issue #742 - TSecurityManager::setHashAlgorithm uses hash_algos() rather than hash_hmac_algos() - some algos may be set that are not supported by hmac (belisoful)
ENH: Issue #741 - TBehaviorsModule and TBehaviorParameterLoader for instancing behaviors in an application; added various behaviors like TParameterizeBehavior that gives new defaults and data from the parameters to any prado object property. (belisoful)
ENH: Issue #740 - Behaviors can instances from an array with class and properties, important for #741 (belisoful)
BUG: Issue #739 - TApplicationConfiguration::loadParametersPhp variable unset but called (belisoful)
CHG: AutoGlobalListen is true for TApplicationComponents (but not TWebControls), and select TComponent children, their 'fx' events will automatically listen and unlisten to fx events on construct and destruct.
ENH: Issue #738 - Added TAuthManager::onLogin, onLogout, and onLoginFailed events (belisoful)
ENH: Issue #737 - Added TSkinTemplate that doesn't do class/attribute validation so skins are more portable between apps (belisoful)
ENH: Issue #735 - Added TPageService::onPreRunPage so modules can access Page events (belisoful)
BUG: Issue #728 - TWeakCallableCollection makes use of 7.4 WeakReference so fx events do not stop garbage collection (belisoful)
CHG: Split Wsat into its own repo pradosoft/prado-wsat (ctrlaltca)
CHG: T(Active)HtmlArea4 has been replaced by T(Active)HtmlArea5, based on tinyMCE version 5 (ctrlaltca)
CHG: removed hardcoded bootstrap libraries (ctrlaltca) var/softaculous/omeka/changelog.txt 0000644 00000020465 15252715263 0013506 0 ustar 00 v3.2.1
PHP 8.5 is now supported
Bugs Fixed
The navigation edit form incorrectly warned about unsaved changes even if no changes were made
The "for" attribute did not appear as expected on some checkbox form elements
Headers in the admin interface cut off too soon, leaving unused space
Action links on browse pages did not align properly on some browsers and sometimes lacked proper separation between actions
The Files tab when editing items had alignment and wrapping issues at smaller screen widths
The TinyMCE HTML editor did not limit the editor height as expected
The Role element description for the user form linked to an old documentation location
PHP deprecation fixes:
improper null passing of null browse sorting parameters
improper null passing using Zend_Form with some multi-level forms
improper null passing for some SQL queries
deprecated callback syntax in LightGallery view helper
removed PHP casts that were deprecated in PHP 8.5
imagedestroy calls in the GD derivative strategy
Improvements
Accessibility improvements
Admin browse pages reworked to avoid duplicate links, duplicate text, and improve accessibility for featured/private markers
Added toolbar group labels and help text for the TinyMCE HTML editor
Moved admin "skip to content" link into header to avoid unwanted initial focus
Improved text content for admin sorting links
Labels provided for ARIA landmarks
Labels for form elements when editing item types
SQL sorting is skipped completely for queries that only want to count the results, improving performance for some queries
Invalid "context" queries and advanced search types both emit 404 errors instead of 500, avoiding some common unhelpful error log entries and signaling to crawlers not to recrawl
External Libraries
jQuery 3.7.1 / jQuery UI 1.14.1
getID3 1.9.25
For Developers
New insert_option and update_option hooks fired when options are set
New index_acl_resource route parameter allows API resources to check against ACL for an index permission when performing an index/list operation
v3.2
Bugs
Fixed a JS error that could happen on items search when using an older theme
Fixed an error in the installer when proc_open is disabled and running on PHP 8+
Fixed a deprecation warning when using an LDAP plugin (#1013, fix contributed by @kloor)
Fixed some "missing property" notices (#1014, fix contributed by @kloor)
Fixed issues with element text alignment in the admin interface (partially contributed by @ebellempire)
Fixed a bug where a theme's custom.php file could incorrectly be run multiple times in a single request
Fixed a notice that could happen when using the FormInput helper (#1040, contributed by @csidirop)
Fixed a notice on the admin tag interface
Numerous accessibility fixes and improvements
Improvements
Multiple files can be selected for upload at once
Files selected for upload now show a preview thumbnail when possible
Files can have alt text set for them, both by setting text explicitly for a single file and by configuring an element to use as the alt text
PDFs are now cropped to the "CropBox" by default (can be disabled with new pdfUseCropBox derivative setting)
Password hashing is updated to use PHP's native password_hash (#977, partially contributed by @dicksonlaw583)
S3 support updates and improvements
New acls option to disable ACLs
New storageClass option for setting a storage class to use when storing files
New sigV4 option for using the newer "V4" signature method, needed for working with newer AWS regions
ZendS3Cloudfront storage adapter for serving files through CloudFront
lightGallery ("slider"/"lightbox" viewer used by many themes) updates and improvements
TIFF and JP2 files are now supported (their fullsize derivative will be displayed)
The gallery no longer displays if an item has no gallery-compatible files
Changed lightgallery to use a different ID to avoid possible conflicts (#1056, contributed by @ebellempire)
Alt text will no longer show as a caption in the gallery
theme.useInternalAssets setting now applies to jQuery and jQuery UI
Better database indexing for items, collections, element texts, and sessions
Garbage collection of the database-backed sessions is now enabled even on servers that usually disable it by default (can be enabled with sessions.allowNoGc config setting)
New log.path config setting for changing the log path
Changes
Omeka no longer ships with a default robots.txt file blocking the "files" folder
Deprecation notices are now not reported by default
The database connection now uses the utf8mb4 charset
Localization
Updated translations for many languages
For Developers
New display_records and get_display_records functions, simplifying theme code for things like "random/featured" displays on homepages
New all_element_texts_options filter for changing the options passed to all_element_texts (#1048, contributed by @ebellempire)
New light_gallery_callbacks filter for extending lightGallery support to other filetypes
Deprecations are now not reported by default, set env var OMEKA_REPORT_DEPRECATED to 1 to see them
External Libraries
HTMLPurifier updated to version 4.18.0
getID3 updated to version 1.9.23
TinyMCE updated to version 5.10.9
lightGallery updated to version 2.8.3
Bundled Addons
Exhibit Builder 3.8
Berlin 2.7.6
Seasons 2.8
Thanks, Roy 2.8.0
v3.1.2
Fixes
Fixed a bug where files could appear out of order within an item, particularly if many files were added at once
Fixed an error on newer PHP versions that was thrown when passing non-numeric data as the page URL parameter
Fixed a PHP 8.2 deprecation warning issued from some controllers
Fixed a PHP 8.1 deprecation warning issued from the shortcode handler
Fixed a PHP 8.1 deprecation warning issued from the Imagick derivative image strategy
Fixed an issue where the download button on the lightGallery viewer in themes could be impossible to press
Fixed an error that could occur when using the es_CO locale on some pages where formatted numbers were displayed (e.g. file sizes and limits)
Fixed a notice issued from theme configuration when uploading a file
Fixed a notice issued from the tag mixin
Fixed an error that could occur when saving custom links in the navigation
Fixed an error that could cause Omeka to hang when uploading some images with embedded XMP metadata
Fixed an error that could occur in the removeZeroDates migration when upgrading from a very old Omeka version when using MySQL 8
Fixed the display of error messages on the installer and login forms
Fixed the admin search form to restore the "is not exactly" search type
Fixed various small issues in the admin theme
Changes
Theme versions are now displayed in the theme selection view
Added admin styling for number, email, and search type inputs
Field explanations in the admin theme are no longer larger than other text like field labels
Removed admin theme references to some obsolete fonts, images, and stylesheets
The font style and size in the admin theme is now set more loosely, fixing some issues where more specific font settings unexpectedly were not applied
The Browser mimetype detection method is removed
Mimetype detection now stops once a concrete type is detected, rather than trying all options
External Libraries
Updated getID3 to version 1.9.22
v3.1.1
Fixed the "advanced search" options box appearing when it shouldn't have on the public side
Fixed the public.css styles to load only in public themes, not on the admin
Fixed collections/show to match other views in how it decides when to show thumbnails
Fixed bugs that triggered deprecation notices in some situations when running on PHP 8.1+
Allowed file uploads to proceed when running on servers that disable PHP's shell execution functions on PHP 8+
Added IDs to more easily target advanced search components for CSS
Accessibility improvements for search options and labels, sorting indicators, featured/private icons, action links
Updated translations for Catalan and Czech
Updated Exhibit Builder to 3.6.1, Thanks, Roy to 2.7.1, Seasons to 2.7, and Berlin to 2.7.5 var/softaculous/whmcs813/changelog.txt 0000644 00000006143 15252765647 0013777 0 ustar 00 Version 8.13.7 (Maintenance Release)
Maintenance
WHMCS-27923 — Security Fix for CVE-2026-67399
Modules
WHMCS-27908 — Security Fix for CVE-2026-67398
Version 8.13.6 (Maintenance Release)
Implemented
WHMCS-26198 — IP allow list for cron task invocation via HTTP request
Maintenance
WHMCS-25637 — Improved security around email previews
WHMCS-26193 — Undisclosed Security Fix
WHMCS-26284 — Add System Health Check notice if deprecated modules are found
WHMCS-26382 — Undisclosed Security Fix
WHMCS-26464 — Block direct access to email campaign and hidden Knowledgebase image attachments
WHMCS-26502 — Undisclosed Security Fix
WHMCS-27325 — Improve handling of invalid data during null-IV migration
Modules
WHMCS-26360 — Undisclosed Security Fix
WHMCS-26381 — Improved security for paying invoices with PayPal Payments
WHMCS-26480 — Remove Hipchat Notification Module
WHMCS-27149 — Undisclosed Security Fix
WHMCS-27204 — Improved payment capture logic in Admin Area for Stripe Dynamic Payment Gateway
Version 8.13.5 (Maintenance Release)
Maintenance
WHMCS-26068 — Undisclosed Security Fix
WHMCS-26192 — Improved security around Admin password resets.
WHMCS-26194 — Improved security around User password resets.
WHMCS-26206 — Improved security around Invoice processing Hook Points
WHMCS-26338 — Improved security around User logouts.
WHMCS-26339 — Admins require “View Clients Summary” permission to download client files
WHMCS-26425 — Undisclosed Security Fix
WHMCS-26466 — Persist Sign-In Integration notice when appropriate
WHMCS-26624 — Undisclosed Security Fix
Modules
WHMCS-24791 — Improved security for paying invoices with Stripe
WHMCS-26067 — Improved security for paying invoices with PayPal Basic
WHMCS-26381 — Improved security for paying invoices with PayPal Payments
WHMCS-26444 — Improved security of logging in WorldPay FuturePay
WHMCS-26566 — Corrected variable name for Enom
Version 8.13.4 (Maintenance Release)
Maintenance
WHMCS-25235 — Undisclosed Security Fix
WHMCS-25253 — Undisclosed Security Fix
WHMCS-25271 — Add validation Improvements in Admin Area
WHMCS-25272 — Undisclosed Security Fix
WHMCS-26073 — Improved encryption method for sensitive data storage
WHMCS-26075 — Increased randomness of guest ticket access key generation
WHMCS-26189 — Undisclosed Security Fix
Modules
WHMCS-26056 — Undisclosed Security Fix
WHMCS-26058 — Undisclosed Security Fix
WHMCS-26060 — Undisclosed Security Fix
WHMCS-26061 — Undisclosed Security Fix
WHMCS-26063 — Undisclosed Security Fix
WHMCS-26066 — Undisclosed Security Fix
WHMCS-26072 — Undisclosed Security Fix
WHMCS-26074 — Undisclosed Security Fix
WHMCS-26079 — Undisclosed Security Fix
WHMCS-26145 — Remove Asiapay, Gate2shop, Inpay & Paypoint from distribution
WHMCS-26261 — Improve security around Reports
Version 8.13.3 (Maintenance)
Maintenance
WHMCS-26041 - Security Fix for CVE-2026-2920 var/softaculous/forma/changelog.txt 0000644 00000026036 15253007360 0013507 0 ustar 00 forma.lms 4.1.44
---------------------------------------------------------------------------------------
Release date: 2026 August
- # - fix(formatable): vulnerability injection in getdata
- # - fix(api): stateless REST session and open test answers
- # - add checkbox show_users_supsended in list_certificate
- # - user suspended in list users course
- # - fix(coursePath): org chart filter in advanced search
- # - fix(registration): remove loop that incorrectly adds user to group using idOrg as idst
- # - fix(importUsers)
- # - Import user with force_change and only_update parameter not working
- # - force change in right parameters position
- # - Parsing non-compliant imsmanifext.xml XML
- # - Fixed a password change vulnerability with a generic message - All XML_LANGUAGE
- # - fixing for Scorm player accessibility
- # - Implement getTotalTime() function for learning objects in plugin system
- # - fix track scorm
- # - add missing translation key
- # - fix log in policy apply
- # - feat: add code style pre-commit workflow
- # - hide ignore score option for non-SCORM Lo
- # - fix delete user from coursepath
- # - fix test score
forma.lms 4.0.19
---------------------------------------------------------------------------------------
Release date: 2025 July
- # - fix check if set HTTP_X_FORWARDED_FOR before use
- # - add div and css class to course-box__title for course name into course box
- # - fix course block rendering if "use_course_label" is on
- # - fix download if file not exists
- # - Upgrade legacy to version 3.3.26 + SQL_MODE from NO_AUTO_CREATE_USER to NO_ENGINE_SUBSTITUTION
- # - Fix Test with feedback: error 500
- # - Include column filters in search query during global search.
- # - Prevent column search event during global search.
- # - added search timeout and enabled search on submit button
- # - fix column in import subscription
- # - update german translate
- # - fix exception in HomepageAdmController.php
- # - fix base url management in Get::site_url function
- # - fix base url management in getCurrentDomain function
- # - fix catalogue subscription email
- # - fix and refactor course userCanUnsubscribe function
- # - fix dashboard block calendar
- # - fix group query
- # - fix exception BaseCache::__wakeup()
- # - add lang cache to config
- # - fix lang translate month
- # - fix CourseLms
- # - implement API for multiple users
- # - improve course date begin and date end management
- # - fix date translate
- # - add clear lang cache
- # - fix lang load when new lang is installed
- # - Implement Abstract BaseCache to extends cache for generic use
- # - complete lang cache implementation
- # - wip implementation
- # - Fix dashboard exception
- # - add show_custom_fields to usersList API to return custom fields data in users list
- # - fix in API userDetails to show custom fields that user cannot view.
- # - add getCategories API
- # - Change SQL_MODE from NO_AUTO_CREATE_USER to NO_ENGINE_SUBSTITUTION for mysql 8.0 compatibility
- # - fix field_access_list in lib.user_profile
- # - Add event "core.users.changestatus" in suspend/unsuspend user/users
- # - Fix myMetaCertificate function that does not return correct rows when i've two meta certificate that use the same idCertificate
- # - preg_match does not fall in catch branch in case of time format different from PT time; managed with if instruction.
- # - fix DbConn::getInstance to solve automatically the connection and not using external connection link
- # - Implement db factory interface
- # - activate Plugin namespace
- # - fix coursereport
- # - replace old require with forma::include
- # - fix getDateSubscribed to get correct user for teacher
- # - fix(dateTimeLocal): empty values
- # - Fix actual space in CourseLmsController
- # - fix(bonusScore): put all statuses in scores query
- # - fix access to courses and lo objs
- # - fix data_end in courseAlms
- # - fix session save on org chart
- # - fix migration namespace
- # - fix api getAnswerQuest
- # - fix gift import order
- # - fix create course date_begin, date_end to set NULL when parameters are blank
- # - fix create and update course hour_begin, hour_end when parameters are blank
- # - add Migration to update wrong hour_begin, hour_end setted to ':'
- # - replace migration to update single column
- # - fix classroom update on API
- # - fix accessSelection in UserselectorAdmController
- # - fix update classroom to manage textfield update
- # - fix location api
- # - fix dashboard block
- # - fix error in dashboard when permissions are not set.
- # - fix day custom field api
- # - fix duplicate answer in class choices
- # - fix api getAnswerTest to get one only couple idAnswer , idQuest
- # - fix(catalogue): complete access for superadmin in any condition
- # - chore(admins): delete from admin tree reference if admin changed level or is deleted
- # - fix send mail to moderators during import into course
- # - fix waiting approval entering courses
- # - fix can enter course in catalogue by date interval
forma.lms 4.0.11
---------------------------------------------------------------------------------------
Release date: 2024 October
- # - add translate and fix keys form cron.report
- # - fix absolute path calculate
- # - fix right join coursereports for not test items
- # - fix insertparams
- # - fix unjoinead course reports on learning course reports
- # - update certificate generation
- # - update composer packages
- # - fix clean selection from empy values in userselector
- # - fixed mail sender
- # - fix org nodelist dropdown query
- # - fix null values in courselist
- # - fix getAllselection from UserDataSelector.php
- # - fix admin courselist data
- # - fix api
- # - mycourses - filter closed couse in "all course" mycourses
- # - fix sequence questions test on delete
- # - fix exception stats when user is tutor - fix division by zero when turo does not have any student
- # - fix get pdf constructor
- # - fix api authentication not neded for explicit route
- # - Fix autoplay object
- # - fix Man_course in certificate.php
forma.lms 3.3.25
---------------------------------------------------------------------------------------
Release date: 2024 october
- # - Update changelog
- # - fix query and update lms.sql
- # - Update version to 3.3.25
- # - fix api authentication not neded for explicit route
- # - fix org chart report
- # - Update 30323_db.sql
- # - Fix dashboard courses margin/padding
- # - Validate start/time and interval hours
- # - Validate if pause time is between start/end hour
- # - Proper fix for wrong date
- # - Fix date add and use YUI2 dialog
- # - Fix translation and button alignment on classroom dates
- # - Make course image and title clickable
- # - Order course categories dropdown by name
- # - Make label for checkbox and radio clickable
- # - Add toggle support for "I accept the privacy terms"
- # - Fix userid error message on 'use_email_as_userid'
- # - Padding alignment of "I accept the privacy terms" and toggle on click
- # - Align "I accept the privacy terms" text on registration page
- # - Add form dirty support for course edition edit
- # - Add title property for PDFObject embed
- # - Add form dirty check for course add
- # - Limit scope of form dirty on settings page only
- # - Update translations
- # - Fix buttons alignment on plugin manager
- # - Add support for form dirty on plugin settings
- # - Add "form dirty" check for settings/plugin settings
- # - Fixes warnings during "npm install"
- # - Fix warning about node-sass duplicate on package.json
- # - Fix MySQL_VERS translation variable on settings
- # - Revert "Fix MySQL_VERS translation variable on settings"
- # - Fix MySQL_VERS translation variable on settings
- # - Back to previous tab when Cleaning Twig Cache
- # - Add title to icon sprites on Translation page
- # - Add option "Use email as userid"
- # - Add margin-top to "Back to login" link on Register page
- # - Always show scrollbar on privacy terms
- # - Generate certificate on download (optimize logic)
- # - Use real mimetype instead of pseudo one
- # - Translate error message (download file not exists)
- # - Translate "You don't have permissions" message
- # - Embed PDFs instead of downloading them
- # - Upgrade node-sass for TinyMCE5
- # - Generate certificate on download
- # - Update lang[english].xml
- # - Update lang[portuguese].xml
- # - Translate certificate release columns and error message
- # - Force regenerate certificate
- # - Translate "Error generating certificate: " error message
- # - Revert "Translate "Error generating certificate" error message"
- # - Translate "Error generating certificate" error message
- # - Normalize UTF-8 strings on certificates
- # - Enable border on tables
- # - Fix translation of "Certificate" batch generation
- # - Update lang[portuguese].xml
- # - Fix language editing click
- # - Fix attendance date and dialog images
- # - Upgrade to 3.3.25
- # - Update 30323_db.sql
- # - Update Get.php
- # - Update Portuguese translation
- # - Update Portuguese translation
- # - Update English translation
- # - Update Portuguese translation
- # - Update translation of "Last access" header
- # - Update Portuguese translation
- # - Update Reservation "Category" menu to plural
- # - Replace legacy PNG icon by sprite on course editions
- # - Update Portuguese translation
- # - Update English translation
- # - Fix PHP warning error during phase 5 of FormaLMS installation
- # - Allows the SQL upgrade script to run multiple times
- # - Convert URLManager getInstance() to static
- # - Revert "Convert URLManager getInstance() to static"
- # - Convert URLManager getInstance() to static
- # - Fix PHP Warnings on Get.php
- # - Update Installation translation for Portuguese
- # - Handle special chars on translation
- # - Fix PHP Warnings during FormaLMS upgrade
- # - Convert Learning_Cart to static
- # - Standardize "Language" title on Language management page
- # - Allows to use Ctrl + A to select all text from translation field and als…
- # - Revert "Allows to use Ctrl + A to select all text from translation field and also do not save it's state"
- # - Allows to use Ctrl + A to select all text from translation field and also do not save it's state
- # - Translation fixes
- # - fix api authentication not neded for explicit route
- # - fix org chart report
- # - upgrade version var/softaculous/slims/changelog.txt 0000644 00000016015 15253007651 0013531 0 ustar 00 SLiMS 9.8.0 (Bulian D Ace)
========================================================================
• Security: Hardened upload, image scraping, attachment handling, backup download/delete, lookup, visitor counter, and output escaping against SQLi, XSS, SSRF, CSRF, path traversal, and unsafe image metadata.
• Search: Added Fuzzy Search and Sphinx Search engines with settings UI, active-engine integration, fallback handling, and larger index word support.
• Reports: Added PDF export support via mPDF for datagrid reports and title lists.
• Maintenance: Added Image Maintenance Tool for cleanup, rebuild, backup, and synchronization.
• Circulation/Member: Added round-robin item reservation and fixed loan-history renewal/duplicate handling.
• Bibliography/OPAC: Improved custom-field handling, template configurability, external repository uploads, thumbnail generation, and UCS auto-delete behavior.
• Upgrade/Install: Synced installer schema with upgrade flow; optimized index definitions; updated dependencies and Docker environment handling.
• Extensibility: Added hooks for sysconfig, OPAC index, Admin index, and bibliography save data references.
SLiMS 9.7.2 (Bulian D Roger)
========================================================================
• Feature: Loan History Maintenance + menu integration.
• Upgrade: Removed loan-history triggers; replaced with direct updates; Add submenu handling in upgrade flow.
• UX: Clearer delete confirmations; defaulted withConfirm; switched form submit to blindSubmit; removed iframe submitExec.
• Assets: Added missing Colorbox CSS/JS includes.
• Reports: Improved procurement date handling (prioritize received_date) and validation.
• Circulation: Refactored member info display for clarity.
• Settings/I18n: Improved language selection; load global settings from DB.
• Access Control/Menu: Tightened checks; added widespread submenu access; refactored submenu arrays to associative keys; fixed isAdmin path matching.
SLiMS 9.7.1 (Bulian D Roger)
========================================================================
• Improved language selection handling and load of global settings from the database.
• Improved CSRF token management with backward compatibility and more robust handling.
• Modernized AJAX updater and related functions for better validation, error handling, and UX.
• Stronger password policy enforcement for OPAC and admin/member areas.
• Fixed CSV reader variable/initialization issues and improved CSV handling.
• Hardened SQL queries in procurement reports to validate and exclude invalid dates.
• Improvements to language selection and global settings loading.
SLiMS 9.7 (Bulian D Roger)
========================================================================
Security - System security enhancements to protect data and application stability.
• Comprehensive Security Patch: Patches SQL Injection and Stored XSS vulnerabilities, and enforces stronger password policies.
• Server-Side Attack Prevention: Fixes potential Server-Side Request Forgery (SSRF) and SQL Injection vulnerabilities.
• Upload Area Security: Improves .htaccess security.
• Disables PHP5 script execution.
• Sensitive Data Protection: Prevents direct access to hidden bibliographic details from the OPAC; hides credentials on error pages.
• Cookie and Session Security: Default SecureCookie attribute for user session security.
• Other Mitigations: Stripping EXIF data from uploaded images; fixed ModSecurity issue.
________________________________________
Feature Enhancements & Changes
• Customization and Extensibility: Added Custom Fields for Items; Expanded plugin ecosystem with the ability to load third-party languages; register new menus, and support for plugin modules.
• Added new hooks to the system: login process, OAI, and deeper system customization configuration.
• Support for custom OPAC templates.
• Database and Data Management: Implemented the ability to connect to multiple databases simultaneously, added a file migration feature to another server, and configured the Copy Cataloging feature.
• Development Environment: Docker support.
• User Interface and Experience (UI/UX): Implemented a "Debug Box" to display debug information in a more structured manner, improved AJAX dropdown performance, and added a progress button for the data import process.
________________________________________
Bug Fixes
• Data Import: Fixed various issues during the import process of bibliographic data (including MARC format) and membership, and fixed a bug where the import preview did not match the selected column separator.
• Application Stability: Fixed "undefined variable," "undefined key," or "undefined offset" errors in various modules.
• Data Management: Addressed issues with author and subject orphaned data deletion, the deletion process in the GMD module, the visit space, and backup files.
• Module Functionality: Improved LDAP authentication functionality, resolved barcode label plugin compatibility, and improved filtering and updating borrowing history table.
• System and Configuration: Fixed errors for large file upload, addressed incorrect URLs when running behind a web proxy, and resolved schema and multi-instance connection issues in PDO.
________________________________________
Other
• Dependency Updates: Updated external libraries such as gettext, PHPSpreadsheet, league/flysystem, and symfony/var-dumper.
• Refactoring and Code Quality Improvements: Refactored the registerAutoload strategy and form handling with the FormAjax class.
• Documentation: Added and updated documentation for the Polyglot feature, Actions, and Docker commands.
SLiMS 9.6.1 (Bulian)
========================================================================
Add : CSP Manager
Add : CSV import sample
Add : Clickable label element at input radio and checkbox
Add : CSV Import Sample for Biblio, Item, & Member data
Fixed : CJK (Chinese, Japanese, and Korean) character in E-Mail content
Fixed : Bug in stock opname resync
Fixed : MARC SRU Perpusnas RI
Fixed : SSRF & LFI vulnerability
Fixed : re-run session
Fixed : unmatch column type at mst_visitor_room
SLiMS 9.6.0 (Bulian)
========================================================================
Added : CSV import preview
Added : Due date warning email notification
Added : Storage library
Added : Console feature
Added : 2FA at admin login page
Added : Configuration for multiple databases
Added : Room location visitor counter
Added : Captcha configuration user interface
Added : Backup database notification
Added : PHP 8 for minimum requirement
Fixed : Zero existing items for stock opname report
Fixed : Compatibility with MySQL 8
Fixed : Loan by classification reporting query
Fixed : OAIPMH for GetRecord
SLiMS 9.5.2 (Bulian)
========================================================================
Added : Bookmark for biblio data
Added : Share option for biblio data
Added : Version number for OPAC static file
Added : Session Factory to handle custom session configuration
Fixed : Invalid Form Login
Fixed : Full text search in SearchEngineBiblio var/softaculous/yourls/changelog.txt 0000644 00000004320 15253010575 0013732 0 ustar 00 1.10.6
fixed: the version number. It's just 1.10.5, without the -dev, as 1.10.5 should have been. Sorry :)
1.10.4
fixed: Prevent XSS in stat pages through referrers (#4107)
added: Localization support for date and time display (#4054)
improved: Improve shunt filters (#4058)
fixed: Notice overlapping logo in admin panel (#4069)
fixed: Flag password file as user auth from environment variables (#4066)
added: Filter SQL queries (#4064)
improved: Improve debug functions and logic (#4089)
improved: Make tests debugging easier (#4104)
1.10.3
added: testing on PHP 8.5 & 8.6 (#4036)
added: function to get reserved URLs from global variable (#3999)
added: database index on long URLs, for faster searches (#4013)
added: $context parameter of yourls_get_db() (#4020)
changed: hide referrers on public statistics page by default (#4005)
changed: set the infos cache of the keyword after a url is added/updated/deleted (#4008)
changed: fix hover-actions in tables for screen reader users (#4025)
changed: confirm link deletion with a modal dialog (#3932)
fixed: upgrade spatie/array-to-xml to address deprecation warnings in newer PHP version (#4037)
fixed: filtering for links with more than 0 clicks (#3977)
fixed: case-sensitivity in admin search (#3997)
fixed: missing or invalid reserved URL configuration causing crash (#3999)
fixed: handling of invalid charsets on remote sites (#4007)
fixed: preserve backslashes in URLs (#4000)
fixed: validate JSONP callback names (#4030)
fixed: enhance configuration template formatting (#3994)
fixed: minor cleanup (#3979, #3984, #3988)
1.10.2
fixed: admin/tools.php now uses yourls_get_nonce_life() (#3906)
fixed: "Display 1 to 0 of 0 URLs" on admin list page (#3910)
fixed: replace deprecated get_all_options filter with an action (#3683)
fixed: defer loading text domain after plugins (#3679)
removed: Gandi references (#3929)
1.10.1
fixed: sandbox exceptions when disabling plugins by @LeoColomb in #3893
fixed: stats date calculation are now correct by @ntindicator in #3895
fixed: unexpected warning raised on login page
removed: unsupported installation cases with Composer var/softaculous/uikit/changelog.txt 0000644 00000002540 15253055231 0013522 0 ustar 00 3.25.21 (August 7, 2026)
Fixed
Fix setting aria-controls attribute on multiple components
3.25.20 (July 14, 2026)
Fixed
Fix video links in docs
3.25.19 (June 24, 2026)
Fixed
Fix release
3.25.18 (June 24, 2026)
Fixed
Fix reactivity in Slider component
3.25.17 (May 28, 2026)
Fixed
Fix active state for Filter controls that combine filtering and sorting
Fixed
Fix Ken Burns effect not restarting in Safari in Slideshow component
3.25.16 (April 21, 2026)
Fixed
Fix negative numbers sorted incorrectly in Filter component
Fixed
Fix Modal component stealing focus from overlays rendered outside the modal
Fixed
Fix component root class not removed after disconnec
3.25.15 (April 9, 2026)
Fixed
Fix issue with build process
3.25.14 (March 27, 2026)
Fixed
Fix boundary option in Dropnav component
3.25.13 (February 23, 2026)
Fixed
Fix regression in Accordion component
3.25.12 (February 19, 2026)
Fixed
Fix accordion causes page to scroll to the top initially in Firefox
Fixed
Fix visible slides set to inert when active: first in Slider component
3.25.11 (February 12, 2026)
Changed
Clip only left and right box shadows instead of all in Slider component
Changed
Make url changeable in beforeSend in Upload component
Fixed
Fix slides retain focus when hidden in Slider component var/softaculous/cpg/changelog.txt 0000644 00000050140 15253062261 0013146 0 ustar 00 /**
* Coppermine Photo Gallery
*
* v1.0 originally written by Gregory Demar
*
* @copyright Copyright (c) 2003-2026 Coppermine Dev Team
* @license GNU General Public License version 3 or later; see LICENSE
*
* CHANGELOG.txt
* @since 1.6.29
*/
Changelog
=========
[A] = Added new feature
[B] = Bugfix (fix something that wasn't working as expected)
[C] = Cosmetical fix (layout, typo etc.)
[D] = Documentation improvements
[M] = Maintenance works
[O] = Optimization of code
[S] = Security fix (issues that are related to security)
*********************************************
2026-04-26 [S] Mitigated a few minor vulnerabilities - thank you Leousum {ron4mac}
2026-04-16 [M] Added Russian language file contributed by Siava {ron4mac}
2026-04-09 [M] During HTML5 upload, keep pseudo blank code 200 messages from triggering error condition {ron4mac}
2026-03-06 [B] Another update for PHP 8.1.x deprecation {nukeworker}
2026-03-06 [S] Remove security issue with language check helper {ron4mac}
2026-01-02 [M] Cause single file upload to display in a more user-friendly way when failing {406man}
2026-01-02 [M] Use configured description size for single file upload instead of hard coded {406man}
2025-12-30 [M] Clear up a few PHP deprecations {ron4mac}
2025-07-19 [M] Align all coding to the new .com CPG website {ron4mac}
2024-06-12 [M,B] Change DB IP storage fields to accommodate IPv6 addresses {ron4mac}
2023-11-27 [B] Correct IPTC supplimental category parsing {ron4mac}
2023-11-11 [B] Correct design/coding error in user manager {ron4mac}
2023-04-21 [M] Prevent HTML5 upload initialization failure caused by cloudflare rocket-loader {ron4mac}
2023-04-13 [B] Correction for HTML5 upload admin notification {ron4mac}
2023-04-10 [B] Correct SMF2.1 bridge; correct install with PHP 8.1+ when using GD2 {ron4mac}
2023-03-22 [M] Reduce possibility of race condition at completion of uploads {ron4mac}
2023-03-20 [B] Correct failure to remove file upload with dimension restriction {ron4mac}
2023-03-02 [B] Correct for PHP8+ round error in exif parse {ron4mac}
2023-03-01 [B] Catch PDO query exceptions {ron4mac}
2023-02-25 [M] Add IPv6 compatibility to banning {ron4mac}
2023-01-16 [B] Provide more error info for some HTML5 upload errors {ron4mac}
2022-10-28 [M] Fail more gracefully from database connection error {ron4mac}
2022-10-18 [B] Correct typo in bridgemgr.php (thanks {bembi64}) {ron4mac}
2022-08-01 [M,B] Correct PHP8 error with IPTC processing {ron4mac}
2022-06-08 [M] More updates for PHP 8.1.x deprecations {ron4mac}
2022-06-08 [O,C] HTML5 audio/video player: removed "autostart" parameter; set control offset to "0" {eenemeenemuu}
2022-05-03 [B] Correct failure in bridgemgr for PHP 8 {ron4mac}
2022-04-01 [B] Reset failure report mode in mysqli for PHP 8.1 {ron4mac}
2022-03-25 [M] Updates for PHP 8.1.x; remove use of strftime() {ron4mac}
2022-02-02 [B] Handle failure to get image dimensions in thumb updater tool {ron4mac}
2021-11-22 [B] Allow ratings from different logged in users regardless of IP address {ron4mac}
2021-11-20 [M] Update third party (ZenPhoto maintained) exif reader {ron4mac}
2021-11-15 [M] Change bridge file for SMF 2.1 to function with latest SMF version {ron4mac}
2021-11-09 [B] Correct install failure when single quote (') is used in db config {ron4mac}
2021-10-07 [B] Correct more issues when running with PHP 8 (thanks to user altenae) {ron4mac}
2021-10-07 [B] Correct some additional issues when running with PHP 8 {ron4mac}
2021-09-24 [B] Correct conditions causing failures under PHP 8 {ron4mac}
2021-09-24 [A] Added re_key admin tool to distribution {ron4mac}
2021-08-18 [S] Remove possibility of XSS injection in upload_h5a plugin {ron4mac}
2021-07-25 [B] Correct missing method for database creation when using PDO:mysql {ron4mac}
2021-06-26 [B] Remove unnecessary, server objectionable parameters from batch upload iframe url (thread ID 80407) {ron4mac}
2021-04-22 [M] Upgraded jQuery version to 1.12.4 and included migration script (1.4.1) {ron4mac}
2021-03-21 [A] Added user login authorization hook for plugins {ron4mac}
2021-02-23 [B] Correct javascript Array.find polyfill for conflict issues {ron4mac}
2021-01-22 [M] Various code adjustments made for compatibility with PHP 8(.01) {ron4mac}
2021-01-03 [B] Guard against array_keys failure (PHP8) caused by theme {ron4mac}
2020-10-03 [B] Correct no plugin uninstall action for disabled plugins {ron4mac}
2020-09-07 [M] Release of version 1.6.09 {ron4mac}
2020-07-29 [B] Upload plugin upload_h5a fails to complete queue when uploading one at a time {ron4mac}
2020-05-01 [B] Upload plugin upload_h5a fails to install if DB already has configuration {ron4mac}
2020-04-30 [A] Provide themes with a method to request a body tag class based on current page {ron4mac}
2020-04-28 [M] Cosmetic changes/corrections to admin tools, edit pics and contact {heismauri}
2020-03-27 [B] Failure in include/archive.php due to __construct() changes {ron4mac}
2020-03-23 [B] Use 'dbcharset' parameter when opening bridged database {ron4mac}
2020-02-26 [O,M] Simlify log creation and display {ron4mac}
2020-02-26 [M] Clean up code involved in PHP warnings {ron4mac}
2020-02-25 [M] Remove use of deprecated *magic_quotes* functions {ron4mac}
2020-02-07 [A] Provide themes with a method to use font icons {ron4mac}
2020-02-07 [M] Clean up rating icon in pics edit {ron4mac}
2020-02-05 [B] Change javascript 'zebra' code to apply to table cells instead of rows {ron4mac}
2020-01-22 [B] Refresh form token when admin tools process for extra long times {ron4mac}
2019-12-29 [A] Add bridge compatibility for SMF2.0.x versions greater than 2.0.15 {ron4mac}
2019-12-07 [M] Update remaining old class constructors to new style {Dukecz}
2019-11-08 [B] Abort install if no PHP XML parser cabability {ron4mac}
2019-08-09 [B] Capture and display admin tool critical errors {ron4mac}
2019-07-06 [B] Show hidden invalid fields when submitting admin config form {ron4mac}
2019-06-05 [A] Updated Estonian language file (user contribution) {eenemeenemuu}
2019-04-17 [C] Added title to intermediate-sized image, changed alt attritube (thread ID 79654) {eenemeenemuu}
2019-03-28 [B] Correct regex for valid file name in showthumb.php {ron4mac}
2019-03-12 [M] Only build filmstrip if it will be displayed {ron4mac}
2019-03-11 [B] Remove unwarranted urldecode() in theme_html_picture() {ron4mac}
2019-03-04 [M] Fail when CONFIG table cannot be read from DB {ron4mac}
2019-01-26 [B] Correct upload issue by removing memory_limit from HTML5 max upload size calculation {ron4mac}
2018-12-22 [O,M] Updated version check to a functioning condition {ron4mac}
2018-12-22 [O,A] Changed Admin Tools to drop-in widgets {ron4mac}
2018-12-21 [S] Fixed XSS issue {eenemeenemuu}
2018-12-20 [B] Catch system resource errors during HTML5 upload {ron4mac}
2018-11-20 [O] Replace config max upload filesize with combo UI element(s) {ron4mac}
2018-11-20 [B] Correct failure to report range error during config submission {ron4mac}
2018-10-31 [A] Added hidden config option to choose if auto-orient is checked by default in upload forms {eenemeenemuu}
2018-10-30 [B] Fixed misleading approval message if approval is not needed when using single upload form {eenemeenemuu}
2018-10-17 [B] Correction to bridge file for SMF 2.1 (thanks maximus23) {ron4mac}
2018-10-17 [B] Correct error when extracting EXIF from some Canon images (thanks jsh) {ron4mac}
2018-09-20 [B] Provide english fallback for remote help (thanks tbsmark86) {ron4mac}
2018-08-25 [B] Added charset support for PDO driver {chipviled}
2018-07-25 [M] Replaced headers in files changed since 1.6.03 for use in '@since' versioning {ron4mac}
2018-07-25 [A] Removed documentation from distribution; online (coppermine-gallery.net) access to docs with option for local copy {ron4mac}
2018-07-25 [M] Advance supplied jQuery version from 1.4.2(1.4.4) to 1.7.2 {ron4mac}
2018-06-22 [B] Corrections for database connection ports and bridging errors {ron4mac}
2018-06-20 [A] Provide method for themes to have/use language files {ron4mac}
2018-03-25 [B] Correct condition where some uploads did not generate email to admin, even though configured to do so {ron4mac}
2018-03-07 [B] Fixed SET NAMES query for mysqli (thanks SiavaRu) {ron4mac}
2018-01-26 [B] Fixed typo causing phpBB3 bridge fail when using bridge app custom groups (thread ID 79302) {eenemeenemuu}
2018-01-16 [B] Fixed white screens with low privileged users clicking into open albums when using theme "curve" (thread ID 79283) {eenemeenemuu}
2018-01-14 [B] Prevent install failure with PDO on PHP 7.1+ {ron4mac}
2018-01-09 [A] Added plugin hooks to filter image sort parameters {ron4mac}
2017-12-31 [A] Added bridge file for SMF 2.1 {dpaulat}
2017-12-30 [M] Removed extraneous bridge files {ron4mac}
2017-12-06 [B] Don't require php EXIF extension during upload {ron4mac}
2017-12-04 [B] Fixed bridge emergency recovery {eenemeenemuu}
2017-11-23 [A] Allow for plugin authors to include remote .js and .css files {ron4mac}
2017-11-23 [A] Rewrite js_include() to allow remote URLs {ron4mac}
2017-11-23 [A] Added utility function to determine if a string is in the form or a URL {ron4mac}
2017-11-21 [D] Updating documentation to reflect switch from Subversion on sourceforge.net to Git at github.com {eenemeenemuu}
2017-10-23 [B] Relax sql modes for successful database update on mysql 5.7 {ron4mac}
2017-10-23 [B] Filter database errors during update so 'real' errors are reported {ron4mac}
2017-10-23 [B] Remove (at least one) cause of blank screen when database access error {ron4mac}
2017-08-28 [B,M] Remove spinbutton js for config screen; make number fields HTML5 elements {ron4mac}
2017-07-26 [O] Use mysqli OO methods in mysqli driver {ron4mac}
2017-07-04 [D] Added some explanation about FTP transfer modes and versioncheck {eenemeenemuu}
2017-06-26 [O] Improve uploading error handling/response {ron4mac}
2017-06-23 [B] Correct showthumb.php failure on PHP7.1 {ron4mac}
2017-06-22 [B] Keep from failing when asked to free a db result that is not a result {ron4mac}
2017-06-18 [M] Use 'random_bytes' in password hash generation instead of deprecated mcrypt {ron4mac}
2017-05-25 [B] Correct bridge query test failure (thread ID 79053) {ron4mac}
2017-04-24 [B] Correct error getting dbtype as pdo:mysql when updating {ron4mac}
2017-04-21 [B] When dbtype not set, default to mysqli for initial connect (PHP7 happy) {ron4mac}
2017-04-21 [M] With SQL update, modify CPG_users/user_password to varchar(255) {ron4mac}
2017-03-30 [C] Generate decimal % widths in thumbnail view (Github issue #12) {ron4mac}
2017-03-29 [B] Correction for strict SQL DISTINCT use (thread ID 78952 msg 383016) {ron4mac}
2017-03-29 [M] Improve mysqli & pdo:mysql error reporting {ron4mac}
2017-03-12 [B] Correct use of default database when bridged (Github issue #11) {ron4mac}
2017-02-15 [S] Fixed possible directory traversal vulnerability (thread ID 78978) {eenemeenemuu}
2017-01-28 [B] Correct 'zero' datetime values in database during update so ALTER TABLE does not fail {ron4mac}
2017-01-16 [O] Use one-time declared define for jQuery version path {ron4mac}
2017-01-06 [B] Keep cpg_die() from failing under PHP7 {ron4mac}
2017-01-05 [S] Fixed possible shell execution issue due to outdated PHPMailer {ron4mac}
2016-12-31 [M] Updated doc plugin tutorials (removed simplest) {ron4mac}
2016-12-29 [O] Removed hard-coded theme directory name from themes; provides user more convenient theme copy {ron4mac}
2016-12-29 [B] Corrected a few language issues found by lang_check.php {ron4mac}
2016-12-22 [B] Added code for vBulletin alternate dbase port (Github issue #7) {ron4mac}
2016-12-22 [B] Fixed invocation of graphics tool during auto-orientation of image {ron4mac}
2016-12-22 [A] Added plugin filter hook "theme_name" to allow plugins to set theme dynamically {ron4mac}
2016-10-24 [B,C] HTML5 video - fix autoplay, improve layout render {ron4mac}
2016-09-23 [S] Fixed possible arbitrary shell command execution {eenemeenemuu}
2016-09-23 [S] Fixed possible SQL injection vulnerabilities {eenemeenemuu}
2016-09-06 [O] Replaced hard-coded number "10000" with constant "FIRST_USER_CAT" (thread ID 78848) {eenemeenemuu}
2016-07-19 [A] Added new options to "sort order of albums" (thread ID 78795) {eenemeenemuu}
2016-05-24 [B] Correct possible failure to get update when curl must be used {ron4mac}
2016-05-24 [C] Set table width to 100% on update.php {eenemeenemuu}
2016-05-23 [B] Change data check method and notify admin of failed repository retrieval for version check {ron4mac}
2016-05-22 [M] Corrected URL for repository file and adjusted link to repository {ron4mac}
2016-05-20 [M] If can't get versioncheck XML file from Github, try getting it from coppermine-gallery.net {ron4mac}
2016-05-20 [M] Get correct XML file from Github for versioncheck {ron4mac}
2016-05-20 [M] Removed SVN keyword "revision" from all files {eenemeenemuu}
2016-05-20 [B] Updated repository link {eenemeenemuu}
2016-05-20 [M] Removed any reference to SVN revision from versioncheck {eenemeenemuu}
2016-05-20 [D] Updated link in credits page (thread ID 78727) {eenemeenemuu}
2016-05-18 [C] Removed some PHP notices during installation {eenemeenemuu}
2016-05-18 [M] Improved plugin configuration action (pluginmgr) {ron4mac}
2016-05-10 [M] Removed obsolete XP Publisher feature {ron4mac}
2016-05-10 [M] Accomodate conversion of mysql_real_escape_string to cpg_db... {ron4mac}
2016-05-06 [M] Don't show pre-release update versions (unless overridden) {ron4mac}
2016-05-05 [M] Remove trailing php end tags (?>) {ron4mac}
2016-05-05 [M] Perform cursory writeable directory check before allowing update/upgrade action {ron4mac}
2016-05-04 [M] Only show plugin manager upload feature if ZLib is available {ron4mac}
2016-05-04 [B] Repair include/zip.lib.php, allowing it to extract files (for plugin manager) {ron4mac}
2016-05-03 [M] Fully enabled updater/upgrader, allowing pre-releases with warning {ron4mac}
2016-04-27 [M] Improved cpg_db_ function compatabilities {ron4mac}
2016-04-25 [A] Added plugin compatibility include file {ron4mac}
2016-04-19 [A] Added plugin enable/disable feature {ron4mac}
2016-03-22 [M] Put code in place to not offer pre-releases as a scripted upgrade choice {ron4mac}
2016-03-22 [C] Use nl2br() in upgrader for release body text {ron4mac}
2016-03-18 [B] Don't die during check for updates when there is no access to Github {ron4mac}
2016-03-17 [A] Integrated 'updates available' notification and scripted update capability {ron4mac}
2016-03-16 [A] Added beginning of tool for scripted upgrades (upgrader.php) {ron4mac}
2016-03-16 [M] Cleaned up some defunct swf stuff and improved upgrading over 1.5x {ron4mac}
2016-03-13 [A] In admin config, only show ImageMagick settings if ImageMagick method is selected {ron4mac}
2016-03-12 [A] Added checkbox option for auto-orient to upload methods (and batch-add) {ron4mac}
2016-03-11 [D] Updated README.txt {ron4mac}
2016-03-11 [A] Formally added Imagick Extension as an image manipulation option {ron4mac}
2016-03-09 [B] Corrected issues with SWF upload button UI {ron4mac}
2016-03-06 [A] Added automatic image orientation during upload of images {ron4mac}
2016-03-02 [B] Corrected a problem where some server/PHP environments would hang at step 9 of install {ron4mac}
2016-03-01 [M,O] Moved all image manipulation code into 'ImageTool' object classes {ron4mac}
2016-02-21 [B] Repaired 'spinButton' code and CSS (should be made into standard HTML5 elements) {ron4mac}
2016-02-12 [M] Changed default cookie name to 'cpg16x' {ron4mac}
2016-01-27 [B,M] Made compatible with PHP7 [ class constructor, split(), mis-placed break ] {ron4mac}
2016-01-24 [A] Added 'change_values' function to admin tools, removing need for 'del_titles' {ron4mac}
2016-01-22 [B] Corrected array name typo in section of french.php {ron4mac}
2016-01-22 [B] Resolved update conflict with older html5upload plugin {ron4mac}
2016-01-21 [A] Added example of using 'config_action' to sample plugin {ron4mac}
2016-01-20 [O] Provided option to cpg_config_set() for Db insertion if item not set in $CONFIG {ron4mac}
2016-01-18 [A] Added plugin 'config_action' setting used by plugin manager to present plugin configuration {ron4mac}
2016-01-18 [A] Implemented uploading via core enabled plugins using HTML5, SWF and SINGLE {ron4mac}
2016-01-13 [A] Implemented database abstraction allowing use of MYSQLI, MYSQL(PDO), or MYSQL {ron4mac}
2016-01-13 [M] Updated header information to reflect current year 2016 {ron4mac}
2015-11-11 [M] Updated header information to reflect current year {eenemeenemuu}
2015-11-04 [M] Abstracted Inspekt and CPGPluginAPI classes, changed PHP minimum to 5.0, cleaned up various PHP complaints {ron4mac}
2015-11-04 [B] Corrected install not completing {ron4mac}
2015-09-23 [M] Converted plugins "link_target", "onlinestats", "opensearch" and "usergal_alphatabs" to standalone plugins and removed from Coppermine package {eenemeenemuu}
2015-09-23 [D] Updated docs and template plugin regarding i18n of plugins {eenemeenemuu}
2015-09-18 [A] Load plugin language files, if available {eenemeenemuu}
2015-09-16 [A] Display confirmation message when adding/removing pictures to/from favorites (thread ID 78394) {eenemeenemuu}
2015-09-08 [A] Better double vote prevention if detailed vote statistics are enabled in the config {eenemeenemuu}
2015-09-08 [B] Fixed broken referrer feature (thread ID 78385) {eenemeenemuu}
2015-08-31 [A] Added config option to set default value for album property "Visitors can upload files" (thread ID 78355) {eenemeenemuu}
2015-08-31 [B] Fixed not processed variable in db_input.php (thread ID 78348) {eenemeenemuu}
2015-07-27 [B] Fixed database error if meta albums are viewed with invalid or missing parameters (thread ID 78067) {eenemeenemuu}
2015-07-23 [A] Added hidden feature to adjust log file retention (thread ID 78309) {eenemeenemuu}
2015-07-07 [B] Fixed album sort order for "first level" albums (thread ID 77314) {eenemeenemuu}
2015-07-06 [B] Fixed GIF support check when resizing images (thread ID 78279) {eenemeenemuu}
2015-06-10 [B] Fixed typo in user manager that created invalid user passwords (thread ID 76021) {eenemeenemuu}
2015-06-03 [A] Added config option to hide file count and disk space usage in user manager to increase performance (thread ID 78129) {eenemeenemuu}
2014-10-07 [A] Added config option to display button next to album drop-down box to display only empty albums (thread ID 77824) {eenemeenemuu}
2014-10-06 [A] Added config option to hide already existing files on batch-add interface (thread ID 77671) {eenemeenemuu}
2014-06-27 [C] Display exactly which account data needs to be entered to authenticate in update.php {eenemeenemuu}
2014-06-27 [O] Don't populate language array manually, but load English language file if authentification is skipped in update.php {eenemeenemuu}
2014-06-25 [A] Salt user passwords (thread ID 76021) {eenemeenemuu}
2014-05-06 [C] Fixed typo (thread ID 77494) {eenemeenemuu}
2014-03-12 [A] Added language string 'announcement_thread' to English language file {eenemeenemuu}
2014-01-29 [C] Altered font size calculation of clickable keyword list (thread ID 76928) {eenemeenemuu}
2014-01-21 [A] Added config option to regard upload time of linked files in album info (thread ID 77021) {eenemeenemuu}
2012-11-28 [A] Added config option to display all files after flash upload (thread ID 75588) {eenemeenemuu}
2012-07-06 [A] Added config option to toggle the display of the sort buttons on the thumbnail page {eenemeenemuu}
2012-06-29 [A] Added config option to set sort order of albums (thread ID 75112) {eenemeenemuu}
2011-12-28 [S] Fixed a potential path disclosure vulnerability in core plugin configuration files (thread ID 74125) {Abbas}
2011-10-07 [A] Create sub-directory named according to the album ID in users' upload directories during HTTP upload {eenemeenemuu}
2011-10-07 [B] Updated embedded jQuery library from version 1.4.2 to 1.4.4 {eenemeenemuu}
2010-11-13 [O] Changed favourites zip download to build on disk instead of in memory {Nibbler}
2010-10-02 [A] Added error message support for the batch add process {Nibbler}
2010-09-26 [M] Removed support for GD1 (thread ID 66761) {Nibbler}
2010-09-26 [O] No longer specify a MySQL engine - use the server default. {Nibbler}
2010-09-20 [O] Updated jquery libraries 'elastic', 'datePicker', 'spinbox' {GauGau}
2010-09-20 [O] Updated embedded jquery library from version 1.3.2 to 1.4.2 {GauGau}
2010-09-16 [B] Fixed registration process if both email verification and admin activation enabled (thread ID 67095) {eenemeenemuu}
var/softaculous/elgg4/changelog.txt 0000644 00000011152 15253072402 0013375 0 ustar 00 6.3.8 (2026-08-19)
Contributors
Jerôme Bakker (9)
Bug fixes
installer: improved sanitization of config values de2fbfbdc
core: return a valid IP address for client IP a86c43ff5
notifications:
improved handling of embedded images in emails 425293cd9
validate mute options during action 912e52531
profile: validate permission before changing header image cd5ce2c10
6.3.7 (2026-07-30)
Contributors
Jerôme Bakker (5)
Security update
small security update
6.3.6 (2026-07-02)
Contributors
Jerôme Bakker (2)
Security update
small security update
6.3.5 (2026-05-21)
Contributors
Jerôme Bakker (3)
Bug fixes
images: prevent OOM issues when images are too large to resize ab91d59dc
email: improved error handling when email transport fails b8cb23916
6.3.4 (2026-03-24)
Contributors
Jerôme Bakker (6)
Jeroen Dalsem (1)
Bug fixes
cache: improved caching logic for CDNs e83222a80
output: handle more short number format cases correctly b14ed92d0
6.3.3 (2026-01-16)
Contributors
Jerôme Bakker (2)
Jeroen Dalsem (1)
Bug fixes
js: datepicker not updating timestamp on manual input or reset 4c0788754
6.3.2 (2025-11-06)
Contributors
Jeroen Dalsem (2)
Jerôme Bakker (1)
Bug fixes
log: need to set log level after config loaded from db c8faaa71f
tests: correctly assert if route has required plugins b98d010e6
6.3.1 (2025-10-03)
Contributors
Jeroen Dalsem (7)
Jerôme Bakker (7)
Bug fixes
database: improved Phinx upgrade logging 2e5e9e859
log: correctly show error logging backtraces be61933d6
admin: prevent user details from crashing if system log disabled a7ead02fc
routes: prevent route registration with required plugins 4a36c91d9
developers: incorrect translation when inspecting routes 171e25f60
widgets: css fix to correct incorrect offset calculation 4b345d3f6
notifications: allow instant notifications without custom handler 477c4e70c
db: increased column limit for system_log object_class and event 7e7d13ed6
6.3.0 (2025-09-02)
Contributors
Jeroen Dalsem (35)
Jerôme Bakker (31)
Features
forms:
fieldsservice adds field help text if in translations 7a309e390
added ability to prioritize fields in fieldsservice b18700f67
notifications:
only get enabled notification preferences 9e4d0e437 closes #14879
manage attachments through notification handler feb26bf7d
add elgg_notify_user() function e39641556
added non-configurable notification handler 2076ffab6
entity: added subscribable capability 1130e5acd
input: checkbox switch restyled to be more accessible c16991485 closes #14853
developers:
added inspection view for notification handlers 7eb9e759c
added config flag to log database queries 3670771d3 closes #14804
messageboard: moved notification to event handlers 2dde700b1
group: moved notifications to event handlers a353fb119
output: added elgg_number_format function to format numbers f6a06437b
views:
added default no_results language key support bf019474e
added helper function for page/components/no_results 73ca1c26f
support full and summary subviews for entities 54f8205a9 closes #14803
admin: show the registration ip address on user info if available a7aaca410 closes #14531
events: allow events to continue on an exception 48a77dea5 closes #14801
css:
maintenance mode css is now similar to walled garden d11ade1a4 closes #14452
elgg_require_css is also applied when loading ajax content 6659eb162
routing: set default route parameters based on logged-in user d507e05d7 closes #14579
db: allow datetime filters for entities deleted column 871681f20
core: cast switch field type value to boolean in generic action 00541f23c
js: added integrity information to importmap for ES Modules 6776f2c6b
Performance
views: try to preload containers in sidebar comments block 383e9ea0d
Bug fixes
cli: improved cli logging 9a50cc795 closes #14758
relationship: set relationship ID during event sequence 7b30e0198
output: improved elgg_strip_tags to prevent 'gluing' content a53277e6f closes #14848
css: horizontal field labels work in all fieldset alignments f073af5d4 closes #14802
Deprecations
core: directly using ElggObject has been deprecated 066569f9e
db:
do not use the singular query option 'type_subtype_pair' 6f576fb05
using legacy date filter keys in elgg_get_* logs notice ff45c8dd7
lib: elgg_dump() has been deprecated use elgg_log() c86f9a2f0
6.2.5 (2025-08-14)
Contributors
Jeroen Dalsem (2)
Bug fixes
css: scroll issues with width calculation of likes colorbox popup 72d37f815 var/softaculous/genix/changelog.txt 0000644 00000042564 15253104372 0013522 0 ustar 00 GeniXCMS v2.3.0
Added
High-Performance Go Search: Introduced a dedicated search engine in Go that performs rapid text-matching across posts, significantly faster than traditional PHP-based LIKE queries.
Universal Dynamic Resource Engine (Go): The Go microservice now features a smart dynamic handler capable of serving data from ANY database table (including third-party modules) automatically, while maintaining strict security blacklists for core sensitive data.
Unified Hybrid Backend (Go-Powered): Expanded the high-performance Go-based microservice to support both RESTful API and core AJAX read operations. This significantly reduces latency for frontend data fetching.
Smart Switch System (API & AJAX): Administrators can now toggle the Go service for the entire ecosystem (GET requests), inclusive of Posts, Categories, and dynamic dashboard listings.
Multi-DB Support for Go: The Go microservice now natively supports MySQL, PostgreSQL, and SQLite3, ensuring full compatibility with the existing GeniXCMS ecosystem.
Dedicated API Service Dashboard: Created a separate administration panel for API configuration, decoupling it from general settings for better clarity.
Internal Security Handshake: Implemented a shared-secret authorization mechanism to secure high-speed proxy requests between PHP and the Go service.
Modernized API Key Management: Added auto-generation features for both Public RESTful Tokens and Shared Authorization Secrets with a refreshed UI.
Smart PHP Fallback: Introduced a reactive fallback system that automatically reverts to the PHP engine if the Go microservice becomes unreachable.
Media Manager Isolation (v1.3.0): Implemented GX_USER_FOLDER support to strictly isolate user assets into their own subdirectories. The file manager now treats the user's folder as a virtual root, preventing unauthorized directory traversal.
Extended File Support: Media Manager now natively supports zip, pdf, and txt file types with context-aware Bootstrap Icons and improved grid previews.
Cross-Platform Path Security: Enhanced MediaManager core with a new normPath() helper and traversal protection, ensuring consistent and secure file operations across Linux and Windows hosting environments.
Centralized Media AJAX Engine: Fully refactored the media controller into a dedicated MediaManagerAjax class, standardizing all file operations (upload, delete, rename, list) via the core AJAX dispatcher.
Programmatic User Profile Extensions: Overhauled the frontend UserProfile class with new registerSection and registerDropdownItem methods. Theme and module developers can now dynamically add new profile pages (e.g., /user/.../finance) and append menu links without touching core template files.
Dynamic Profile Template Routing: The CMS now seamlessly detects and loads custom profile layout templates (e.g., user-finance.latte) straight from the theme folder, eliminating restrictive layout wrappers for complex module pages.
Profile Context Badges: Upgraded the standard user-profile.latte Recent Posts board with custom badge labels so viewers can instantly identify post context (e.g., PAGE vs POST vs PRODUCT).
Recent Orders Profile Hook: Modules like Nixomers can now hook into user_profile_overview_extra or user_profile_sidebar_extra to natively render their own data metrics directly onto the user's dashboard.
Core Canonical URL Enforcement: Implemented a global SEO guard in PostControl that validates requested paths and enforces 301 Moved Permanently redirects (or 404s) to the canonical URL, effectively eliminating duplicate content issues.
Custom Product URL Architecture: Introduced a /product/ prefix for Nixomers e-commerce items through a modular post_url hook and corresponding router definitions.
Premium 404 Error Page (Artisan Atelier): Created a custom, high-end 404 error template for the Artisan Atelier theme, featuring animated blob masks, radial design tokens, and converted navigation CTAs.
GxMedia Selector Integration: Modernized the GxEditor media integration by replacing legacy dialogs with the native, modular GxMedia selector across Posts and Pages forms.
Media Selector AJAX Upload: Integrated a high-performance AJAX upload feature directly into the Media Selector dialog with real-time grid refresh.
Adaptive Sticky Header (UiBuilder): Implemented a premium "Elevated Header" system in UiBuilder that transitions from transparent to a compact sticky state upon scrolling, featuring smooth CSS transitions and auto-scroll detection.
Smart Media Location Logic: Enhanced MediaManager to intelligently differentiate between Local and Cloud (S3/FTP) storage.
Nixomers Ecosystem Overhaul: Implemented a "Ultra-Premium" design system for the nix_confirmation module, featuring glassmorphism (.gx-glass), deep shadows, and professional dual-card layout.
Financial Intelligence (Recalculate Engine): Introduced a deep re-calculation system in Nixomers. It programmatically re-scans order items, reapplies current tax rates, updates total orders, and synchronizes the transaction ledger to ensure accurate Net Income (Gross - Fee - Tax - Shipping).
Granular Inventory Control: Refined the inventory tracking system by making granular unit tracking (per-item records) optional. Administrators now have full control to "Sync Granular Tracking" only for required orders, optimizing database performance for high-volume stores.
UiBuilder Logic Loops: Introduced natively integrated 'loop' capabilities within the UiBuilder schema framework, significantly streamlining form generation and reducing monolithic string buffers.
Premium CSS Utilities: Expanded the core genixcms.css with advanced flexbox gaps, seamless input group borders, soft background shades, and smooth micro-animations.
UiBuilder Module Versioning: Expanded the header component configuration schema in UiBuilder with a new optional version tag.
Nixslider Architecture Modernization: Refactored the Nixslider backend payload decoupling monolithic HTML string buffering into discrete UiBuilder 'loop' configurations. Resolved PHP 8.2 interpolation deprecations.
Nixomers AJAX Standardization: Fully refactored the Nixomers module's AJAX routing to utilize the centralized Ajax class architecture. Consolidated all legacy endpoint hijacking into a single, modular NixomersAjax class.
Improved AJAX Resource Resolution: Optimized the core Ajax dispatcher to automatically resolve PascalCase class names for module-based resources, enabling seamless routing for underscored module names.
Refined Shipping Engine Integration: Enhanced the shipping regional search logic to support both KiriminAja and API.CO.ID within the standardized AJAX framework.
Centralized System Updates Engine: Introduced a dedicated UpdatesAjax class that harmonizes system update checks (core, modules, themes) through the core AJAX dispatcher. Go service also provides a high-performance UpdateHandler that scans local module/theme directories and fetches marketplace updates with graceful fallback when external APIs are unavailable.
Admin User List Via Go Service: Expanded Go service with a new UserHandler that provides lightning-fast user listing with support for role-based filtering (group, status, search). The PHP bridge automatically decorates raw user data into dashboard-ready HTML rows with avatars, badges, and actions.
Enhanced AJAX URL Generation: Improved Url::ajax() method to intelligently handle both action-less endpoints (e.g., /ajax/updates) and action-based endpoints (e.g., /ajax/user/list_users), eliminating malformed URL generation and simplifying frontend code.
Unified Go-Supported Resource Tracking: Extended the core Go-supported resource list to include updates and user, enabling seamless switching between PHP and Go backends without additional configuration.
Graceful API Fallback Mechanism: Implemented robust error handling in Go handlers (Updates, User) to return valid fallback responses (empty data arrays, version defaults) instead of HTTP errors when external services are unreachable, ensuring the admin panel remains responsive even during API outages.
Changed
Premium User Profile Interface: Completely redesigned the Agrifest theme's user-profile.latte and user-settings.latte into a modern Bento-grid layout utilizing Tailwind CSS, refined spacing, unified hover interactions, and responsive column structures.
Dropdown Logic Decoupling: Refactored the core header.latte top navigation. Replaced bloated static HTML with a seamless loop binding to UserProfile::getDropdownItems() to securely handle dynamic links driven by the CMS Core.
Profile Order Flow Adjustments: Transitioned injected table modules (like Nixomers Orders) from the narrow left sidebar column (col-span-4) to the principal reading column (col-span-8) for an uncluttered horizontal layout.
Permanent Cloud Watermarking: Shifted watermarking logic for S3/FTP assets to the upload phase, enabling direct CDN delivery with brand identity and eliminating server-side network bottlenecks.
Media Selector UI Polish: Balanced the Media Selector dialog width and height for improved usability on various screen resolutions.
GeniXCMS UI Standardization: Standardized modular UI views (UserProfile, Nixomers Purchase History) to exclusively utilize the framework-agnostic genixcms.css (gx-*) utility system. Replaced hardcoded Tailwind dependencies to ensure component harmony across all active themes (native integration accomplished in the Bakeshop theme).
Unified Thumbnail Strategy: Standardized the use of Url::thumb() across all Bakeshop and Artisan Atelier templates (both .latte and .php) to optimize performance via the "on-the-fly" image processing engine.
Nixomers AJAX Modernization: Migrated frontend catalog AJAX calls to the dedicated nixomers module namespace for better endpoint isolation.
Fixed
Smart URL Query Builder: Fixed the logic in Url::mod() output handling within extensions (like Nixomers) ensuring gateway URLs don't break with malformed &order_id= querystrings when Smart URLs are active.
Template Array Conversion: Fixed a persistent Array to string conversion bug when echoing filtered string outputs from Hooks::filter directly inside Latte template files.
GxEditor Stability: Resolved persistent JavaScript syntax errors in gxeditor.js and ensured global accessibility for key interaction models.
Architecture Stability: Resolved PHP 8.1+ deprecation warnings and undefined variable warnings in the admin header related to external module menus.
Asset Loading Logic: Fixed a critical CSS loading bug in the confirmation module by implementing a robust URL detection for both ?mod= and path-based Smart URLs.
JavaScript Upload Faults: Resolved TypeError in the file upload interface by ensuring required DOM elements are present during initialization.
PHP 8.1+ Security Hardening: Resolved deprecation warnings in Typo::cleanX() related to null parameter handling in preg_replace_callback.
Latte Template Stability: Fixed "Undefined variable $website_lang" warnings in theme headers using null-coalescing fallbacks to system defaults.
Hook Argument Handling: Resolved "Undefined array key" errors in Nixomers hooks by properly destructuring variadic arguments in Hooks::filter and Hooks::run.
Layout Parameter Persistence: Fixed a routing bug where specific post layouts were bypassed when SMART_URL was active.
System Core: Officially bumped GeniXCMS to version 2.3.0.
## [2.2.1] - 2026-04-10
### Added
- **Nixslider CSS Customization Docs**: Added a new "How To Use" section in the Nixslider module admin panel, providing developers with clear CSS selectors and snippets for fine-tuning the slider's appearance.
- **Nixslider UI Polish**: Centered slider captions and implemented a Flexbox-based alignment system for a more professional and balanced visual presentation across all themes.
- **System Core**: Bumped system version to 2.2.1 and updated professional DocBlock headers across all core library classes (`inc/lib/`).
### Fixed
- **GxEditor & Media Management**: Resolved a critical bug where images selected via elFinder failed to render. Standardized the `Asset::elfinderDialog` function to support context-aware callbacks, ensuring seamless image insertion across "Classic" and "Block" modes.
- **GxEditor Source Mode**: Fixed high-contrast visibility bug in "View Source" mode by ensuring dark-mode persistence on focus and removing Bootstrap style conflicts.
- **Theme Version Synchronization**: Unified version numbers in `themeinfo.php` and `options.php` for all core themes to ensure accurate update tracking.
- **Real-time Archive Synchronization**: Resolved a bug where sidebar archive counts were inconsistent with actual posts due to a 24-hour cache delay. Implemented a reactive hook system in the `Archives` class that listens to post lifecycle events (Create, Update, Delete, Publish, Unpublish) to refresh archive data instantly.
- **Default Theme Featured Image**: Resolved a critical layout bug where featured images were rendered twice (once in the theme's custom header and once within the post body). Fixed by decoupling image insertion from the core `PostControl` content stream.
- **PHP Undefined Variable Fix**: Eliminated PHP warnings regarding `$site_footer` and `$site_url` in the rendering pipeline by ensuring consistent initialization in `BaseControl`.
- **Architecture: Rendering Pipeline Refinement**: Centralized `post_title_filter` execution and HTML entity decoding (`Typo::Xclean`) within `Posts::prepare()`. This ensures consistent title rendering across all frontend views while simplifying theme development by allowing templates to use raw variables (e.g., `{$p->title}`) without manual processing.
- **Theme Cleanup**: Refactored `default`, `bsmag`, `gneex`, and `themusk` themes to leverage the new core-level decoding, removing redundant manual filtering from templates.
- **Smart URL Thumbnail Fix**: Implemented a "recursive-safe" `Url::thumb()` logic that automatically strips existing thumbification parameters, resolving malformed URL bugs (e.g., `?thumb=?thumb=`) when `SMART_URL` is disabled.
- **Shortcode Decoding Fix**: Resolved a "double encoding" issue in Nixslider captions and titles by switching to `Typo::Xclean()` for proper HTML entity decoding.
- **Theme Rendering Standardization**: Migrated `default`, `themusk`, and `bsmag` themes to use the pre-processed `{$content}` variable, ensuring all shortcodes and filters are executed consistently.
- **BSMag Slider Reset**: Added a CSS reset for `.nixslider-slide img` in the BSMag theme to prevent global blog image styles (borders/padding) from distorting the slider layout.
## [2.2.0] - 2026-04-08
### Added
- **GxEditor Math Equation Editor**: Integrated KaTeX for professional LaTeX-based mathematical rendering. Features a real-time preview, custom Sigma-Root (Σ√) toolbar icon, and double-click editing support.
- **GxEditor Table Wizard**: Replaced legacy `prompt()` with a comprehensive Bootstrap-based modal for configurable table insertion (rows, columns, headers, and striped/bordered styles).
- **Dynamic Builder & GxEditor Synchronization**: Implemented a robust `change` event listener and `htmlToShortcode` integration, ensuring seamless data transfer between visual building and textual editing without data loss.
- **Improved Inline Toolbar**: Fixed and standardized the inline toolbar in "Classic Mode" for headings (H1-H3) and paragraphs using the correct `formatBlock` command architecture.
- **Programmatic CSP Whitelisting**: Moved `System::securityHeaders()` to occur after theme and module initialization, enabling developers to dynamically modify Content Security Policy rules via the `system_security_headers_args` hook.
- **BSMag Theme Dark Mode Extensions**: Implemented comprehensive dark mode support for `blog-post-meta` and the entire comments section (`custom-comment-wrap`), ensuring consistent editorial aesthetics across all color modes.
- **Dynamic Page Layouts**: Implemented a robust per-page layout selection system. Theme developers can now create `layout-*.latte` templates which are automatically detected and selectable in the admin dashboard.
- **Documentation**: Added comprehensive guide for creating custom theme layouts in `genixcms-docs/docs/how-to/create-theme.md`.
### Fixed
- **WYSIWYG Editor Registry**: Resolved a bug where `summernote` and `editorjs` would disappear from settings when the global editor toggle was off. Standardized initialization via a new `Editor::loadDefaults()` method.
- **Asset Loading Lifecycle**: Fixed a critical bug in `BaseControl` where premature `Site::footer()` calls in the constructor would clear the asset queue before rendering, causing missing scripts (like Bootstrap JS) on the frontend.
- **BSMag Theme Asset Paths**: Corrected broken path for `color-modes.js` (now v2.1.0) to correctly point to theme-internal assets, resolving MIME type errors and restoring theme switching functionality.
- **Admin UI Polish**: Corrected inconsistent spacing and border rendering in the page and post creation forms for a more unified "GeniXCMS 2.0" aesthetic.
- **Builder Compatibility (HTMLPurifier)**: Reconfigured `HTMLPurifier` in `Typo::cleanX()` to allow `