@@ -12,7 +12,310 @@ New Features
12
12
All the new features that have been added to this version.
13
13
Any changes in best practice.
14
14
15
+
16
+ ## Modification fields header tag & module tag add custom options in XML
17
+ - ** PR** : [ #35184 ] ( https://github.com/joomla/joomla-cms/pull/35184 ) by ** korenevskiy**
18
+ - ** What changed** : Developers can now extend ` <field type="headertag"> ` and ` <field type="moduletag"> ` with additional tag options.
19
+ - ** Usage** :
20
+ ``` xml
21
+ <field name =" header_tag" type =" headertag" >
22
+ <option value =" figcaption" >< figcaption></option >
23
+ </field >
24
+ ```
25
+ - ** Impact** : Template overrides and XML forms can now expose more markup options.
26
+
27
+ ---
28
+
29
+ ## New Date and Datetime fields
30
+ - ** PR** : [ #37456 ] ( https://github.com/joomla/joomla-cms/pull/37456 ) by ** Fedik**
31
+ - ** What changed** : Introduced ` date ` and ` datetime ` field types.
32
+ - ** Usage** :
33
+ ``` xml
34
+ <field type =" date" name =" date" />
35
+ <field type =" time" name =" time" filter =" SERVER_UTC" />
36
+ <field type =" datetime" name =" datetime" filter =" USER_UTC" />
37
+ ```
38
+ - ** Impact** : Developers can rely on HTML5 input controls instead of JS widgets.
39
+
40
+ ---
41
+
42
+ ## Fix language autoload in CMSPlugin constructor to work safely
43
+ - ** PR** : [ #40355 ] ( https://github.com/joomla/joomla-cms/pull/40355 ) by ** Fedik**
44
+ - ** What changed** :
45
+ - Fixed autoloading of language files in the ` CMSPlugin ` constructor.
46
+ - Ensures that language loading happens in a safe, predictable way without conflicts.
47
+ - ** Usage** :
48
+ - No developer action required unless you overrode the plugin base class.
49
+ - Plugins now automatically load their language files more consistently.
50
+ - ** Impact** :
51
+ - Reduces errors in multilingual setups.
52
+ - Improves reliability of backend plugin initialization.
53
+
54
+ ---
55
+
15
56
## Tags: Remove a Tag via Batch Processing
16
- This PR introduces the possibility to remove/unassign one tag from the selected articles. It also extends batch processing for categories, contacts and news feeds.
57
+ - ** PR** : [ #40613 ] ( https://github.com/joomla/joomla-cms/pull/40613 ) by ** beni71**
58
+ - ** What changed** :
59
+ - Added the ability to remove/unassign a single tag from multiple selected items in batch processing.
60
+ - Extended batch functionality to categories, contacts, and news feeds.
61
+ - ** Usage** :
62
+ 1 . In the backend, go to Articles (or Categories, Contacts, News Feeds).
63
+ 2 . Select multiple items.
64
+ 3 . Click ** Batch** .
65
+ 4 . Choose ** Remove Tag** option and select the tag to remove.
66
+ - ** Impact** :
67
+ - Editors/admins can clean up content tagging more efficiently.
68
+ - Reduces manual work when adjusting tags across large sets of items.
69
+
70
+ ---
71
+
72
+ ## Use Dialog for Article links when “modal option” is selected
73
+ - ** PR** : [ #42461 ] ( https://github.com/joomla/joomla-cms/pull/42461 ) by ** Fedik**
74
+ - ** What changed** : Article links with modal option now use Joomla’s Dialog system.
75
+ - ** Usage** :
76
+ ``` html
77
+ <a href =" #popup" data-joomla-dialog =' {"textHeader":"Popup"}' >Open</a >
78
+ ```
79
+ - ** Impact** : Consistent UI, templates relying on Bootstrap modals must adapt.
80
+
81
+ ---
82
+
83
+ ## Admin model returns stdClass instead of CMSObject
84
+ - ** PR** : [ #42961 ] ( https://github.com/joomla/joomla-cms/pull/42961 ) by ** laoneo**
85
+ - ** Usage migration** :
86
+ ``` php
87
+ // Before
88
+ $item->get('catid');
89
+
90
+ // Now
91
+ $item->catid;
92
+ ```
93
+ - ** Impact** : Code calling ` get() ` on AdminModel items must switch to property access.
94
+
95
+ ---
96
+
97
+ ## Remove deprecated db object from views
98
+ - ** PR** : [ #42962 ] ( https://github.com/joomla/joomla-cms/pull/42962 ) by ** laoneo**
99
+ - ** Usage migration** :
100
+ ``` php
101
+ $db = \Joomla\CMS\Factory::getContainer()->get(\Joomla\Database\DatabaseInterface::class);
102
+ $db->setQuery($query);
103
+ ```
104
+ - ** Impact** : ` $this->db ` removed, use DI container.
105
+
106
+ ---
107
+
108
+ ## Workflow: use generic AbstractApplication in type hint
109
+ - ** PR** : [ #43155 ] ( https://github.com/joomla/joomla-cms/pull/43155 ) by ** Hackwar**
110
+ - ** Impact** : Workflow models can be used in CLI apps, not just web.
111
+
112
+ ---
113
+
114
+ ## CategoryNode/Changelog: Remove legacy error handling trait
115
+ - ** PR** : [ #43777 ] ( https://github.com/joomla/joomla-cms/pull/43777 ) by ** Hackwar**
116
+ - ** What changed** :
117
+ - Removed old error handling trait from ` CategoryNode ` and changelog code.
118
+ - ** Usage** :
119
+ - No developer action required unless you extended ` CategoryNode ` .
120
+ - ** Impact** :
121
+ - Cleans up deprecated error handling.
122
+ - Encourages migration to proper exception handling.
123
+
124
+ ---
125
+
126
+ ## Installer: Remove dependency on Adapter class
127
+ - ** PR** : [ #43792 ] ( https://github.com/joomla/joomla-cms/pull/43792 ) by ** Hackwar**
128
+ - ** What changed** :
129
+ - Installer subsystem no longer depends on the legacy ` Adapter ` class.
130
+ - Refactored to use new dependency-injected services.
131
+ - ** Usage** :
132
+ - Extension developers should remove direct ` Adapter ` references in custom installers.
133
+ - ** Impact** :
134
+ - Simplifies installer logic.
135
+ - Helps move toward a cleaner, framework-based install process.
136
+
137
+ ---
138
+
139
+ ## Updater: Remove Adapter classes from inheritance
140
+ - ** PR** : [ #43793 ] ( https://github.com/joomla/joomla-cms/pull/43793 ) by ** Hackwar**
141
+ - ** Usage migration** :
142
+ ``` php
143
+ $adapter = $updater->getAdapter('extension');
144
+ $updater->setAdapter('mytype', MyAdapter::class);
145
+ ```
146
+ - ** Impact** : Modern updater, adapters injected dynamically.
147
+
148
+ ---
149
+
150
+ ## Removing Adapter and AdapterInstance classes
151
+ - ** PR** : [ #43794 ] ( https://github.com/joomla/joomla-cms/pull/43794 ) by ** Hackwar**
152
+ - ** What changed** :
153
+ - Deprecated ` Adapter ` and ` AdapterInstance ` classes fully removed.
154
+ - ** Usage** :
155
+ - Replace custom adapter usage with the new updater API.
156
+ - ** Impact** :
157
+ - Breaks extensions still tied to adapters.
158
+ - Part of Joomla’s modernization of update/install.
159
+
160
+ ---
161
+
162
+ ## Smart Search: Removing dependency on CMSObject
163
+ - ** PR** : [ #43795 ] ( https://github.com/joomla/joomla-cms/pull/43795 ) by ** Hackwar**
164
+ - ** What changed** :
165
+ - Refactored Smart Search to remove its dependency on ` CMSObject ` .
166
+ - ** Usage** :
167
+ - Developers extending Smart Search should check for removed ` CMSObject ` references.
168
+ - ** Impact** :
169
+ - Improves decoupling.
170
+ - Prepares Smart Search for Joomla’s CMSObject deprecation.
171
+
172
+ ---
173
+
174
+ ## Languagefilter: Refactoring of routing
175
+ - ** PR** : [ #43858 ] ( https://github.com/joomla/joomla-cms/pull/43858 ) by ** Hackwar**
176
+ - ** Impact** : Less redirecting, cleaner multilingual routing.
177
+
178
+ ---
179
+
180
+ ## GSOC2021: Merge Featured
181
+ - ** PR** : [ #43907 ] ( https://github.com/joomla/joomla-cms/pull/43907 ) by ** chmst**
182
+ - ** Usage migration** : Replace ` view=featured ` with ` view=articles&filter[featured]=1 ` .
183
+ - ** Impact** : ` FeaturedController ` deprecated, use ` ArticlesController ` .
184
+
185
+ ---
186
+
187
+ ## Numbers custom fields plugin
188
+ - ** PR** : [ #43974 ] ( https://github.com/joomla/joomla-cms/pull/43974 ) by ** TLWebdesign**
189
+ - ** Usage** :
190
+ ``` xml
191
+ <field name =" age" type =" numbers" min =" 0" max =" 120" step =" 1" />
192
+ ```
193
+ - ** Impact** : Numeric-only input made easy.
194
+
195
+ ---
196
+
197
+ ## Move CMS Filesystem package to compat plugin
198
+ - ** PR** : [ #44240 ] ( https://github.com/joomla/joomla-cms/pull/44240 ) by ** Hackwar**
199
+ - ** Impact** : Legacy ` Joomla\CMS\Filesystem ` classes only available if compat plugin enabled.
200
+
201
+ ---
202
+
203
+ ## Fulfill InstallerScriptInterface with a trait
204
+ - ** PR** : [ #44381 ] ( https://github.com/joomla/joomla-cms/pull/44381 ) by ** bembelimen**
205
+ - ** Usage** :
206
+ ``` php
207
+ use Joomla\CMS\Installer\InstallerScriptTrait;
208
+ class com_exampleInstallerScript implements InstallerScriptInterface { use InstallerScriptTrait; }
209
+ ```
210
+ - ** Impact** : Less boilerplate in installer scripts.
211
+
212
+ ---
213
+
214
+ ## Searchtools use requestSubmit() and add joomla: update listener
215
+ - ** PR** : [ #44496 ] ( https://github.com/joomla/joomla-cms/pull/44496 ) by ** LadySolveig**
216
+ - ** Usage** :
217
+ ``` js
218
+ document .addEventListener (' joomla:update' , () => console .log (' List reloaded' ));
219
+ ```
220
+ - ** Impact** : Easier AJAX extension of list views.
221
+
222
+ ---
223
+
224
+ ## Media: allow thumbnail for any file type
225
+ - ** PR** : [ #44847 ] ( https://github.com/joomla/joomla-cms/pull/44847 ) by ** Fedik**
226
+ - ** Usage** : Implement ` onFetchMediaItems ` to supply custom thumbs.
227
+ - ** Impact** : Better UX in Media Manager.
228
+
229
+ ---
230
+
231
+ ## Use WebAsset for installation
232
+ - ** PR** : [ #45000 ] ( https://github.com/joomla/joomla-cms/pull/45000 ) by ** heelc29**
233
+ - ** Usage** :
234
+ ``` php
235
+ $wa = $app->getDocument()->getWebAssetManager();
236
+ $wa->useScript('form.validate');
237
+ ```
238
+ - ** Impact** : Installer unified under WebAsset system.
239
+
240
+ ---
241
+
242
+ ## Field simple color as web component
243
+ - ** PR** : [ #45004 ] ( https://github.com/joomla/joomla-cms/pull/45004 ) by ** dgrammatiko**
244
+ - ** Usage** :
245
+ ``` xml
246
+ <field name =" color" type =" color" control =" simple" />
247
+ ```
248
+ - ** Impact** : Uses web components, old overrides may break.
249
+
250
+ ---
251
+
252
+ ## Made the alias field always visible in article edit form
253
+ - ** PR** : [ #45044 ] ( https://github.com/joomla/joomla-cms/pull/45044 ) by ** raj20889**
254
+ - ** Impact** : Alias always shown, improves clarity.
255
+
256
+ ---
257
+
258
+ ## Replace dialog GIF loader with SVG loader
259
+ - ** PR** : [ #45097 ] ( https://github.com/joomla/joomla-cms/pull/45097 ) by ** Fedik**
260
+ - ** Impact** : Modern SVG loader, no action needed.
261
+
262
+ ---
263
+
264
+ ## Fix missing modified start/end date filter in Articles API endpoint
265
+ - ** PR** : [ #45142 ] ( https://github.com/joomla/joomla-cms/pull/45142 ) by ** laoneo**
266
+ - ** Usage** :
267
+ ``` bash
268
+ GET /api/v1/content/articles? filter[modified_start]=2025-02-01& filter[modified_end]=2025-02-28
269
+ ```
270
+ - ** Impact** : Enables delta sync in APIs.
271
+
272
+ ---
273
+
274
+ ## Enable multiple image extensions in Random Image module
275
+ - ** PR** : [ #45200 ] ( https://github.com/joomla/joomla-cms/pull/45200 ) by ** AdarshSantoria**
276
+ - ** Usage** : Enter ` jpg,png,webp ` in module settings.
277
+ - ** Impact** : Flexible Random Image module.
278
+
279
+ ---
280
+
281
+ ## Note Custom Field Plugin
282
+ - ** PR** : [ #45233 ] ( https://github.com/joomla/joomla-cms/pull/45233 ) by ** TLWebdesign**
283
+ - ** Usage** : Create new Field → type ` Note ` . Configure heading, text, CSS class.
284
+ - ** Impact** : UX guidance inside forms.
285
+
286
+ ---
287
+
288
+ ## Restore onBeforeExecute event for CMSApplication
289
+ - ** PR** : [ #45426 ] ( https://github.com/joomla/joomla-cms/pull/45426 ) by ** Fedik**
290
+ - ** Usage** : Subscribe to ` onBeforeExecute ` to hook before app runs.
291
+ - ** Impact** : Enables pre-routing plugins.
292
+
293
+ ---
294
+
295
+ ## Extend versioning, save related information in history table
296
+ - ** PR** : [ #45515 ] ( https://github.com/joomla/joomla-cms/pull/45515 ) by ** rdeutz**
297
+ - ** Usage** :
298
+ ``` php
299
+ class MyModel extends AdminModel implements VersionableModelInterface { use VersionableModelTrait; }
300
+ ```
301
+ - ** Impact** : Versioning now restores custom fields & tags.
302
+
303
+ ---
304
+
305
+ ## Improve ListView toolbar & components
306
+ - ** PR** : [ #45521 ] ( https://github.com/joomla/joomla-cms/pull/45521 ) by ** bembelimen**
307
+ - ** Usage** : Extend ` ListView ` base for custom components.
308
+ - ** Impact** : Modernized toolbars, safer error handling.
309
+
310
+ ---
311
+
312
+ ## Update layouts to use Form control fields
313
+ - ** PR** : [ #45694 ] ( https://github.com/joomla/joomla-cms/pull/45694 ) by ** Fedik**
314
+ - ** Usage** :
315
+ ``` php
316
+ echo $this->filterForm->renderControlFields();
317
+ ```
318
+ - ** Impact** : Standardises layout hidden fields via Form API.
319
+
320
+ ---
17
321
18
- PR: [ 40613] ( https://github.com/joomla/joomla-cms/pull/40613 )
0 commit comments