Skip to content

Commit 8b1fe6a

Browse files
authored
Update new features documentation for version changes (#507)
1 parent ee2747c commit 8b1fe6a

File tree

1 file changed

+305
-2
lines changed

1 file changed

+305
-2
lines changed

migrations/54-60/new-features.md

Lines changed: 305 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,310 @@ New Features
1212
All the new features that have been added to this version.
1313
Any changes in best practice.
1414

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">&lt;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+
1556
## 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+
---
17321

18-
PR: [40613](https://github.com/joomla/joomla-cms/pull/40613)

0 commit comments

Comments
 (0)