Skip to content

Commit e9aea89

Browse files
authored
improved removal of unnecessary fields and empty fieldsets (joomla#46039)
1 parent ef8b1fd commit e9aea89

File tree

2 files changed

+45
-90
lines changed

2 files changed

+45
-90
lines changed

plugins/fields/note/params/note.xml

Lines changed: 1 addition & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -1,96 +1,6 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<form>
3-
<field
4-
name="required"
5-
type="hidden"
6-
filter="unset"
7-
/>
8-
9-
<field
10-
name="default_value"
11-
type="hidden"
12-
filter="unset"
13-
/>
143
<fields name="params" label="COM_FIELDS_FIELD_BASIC_LABEL">
15-
<fieldset name="basic">
16-
<field
17-
name="hint"
18-
type="hidden"
19-
filter="unset"
20-
/>
21-
22-
<field
23-
name="class"
24-
type="hidden"
25-
filter="unset"
26-
/>
27-
28-
<field
29-
name="label_class"
30-
type="hidden"
31-
filter="unset"
32-
/>
33-
34-
<field
35-
name="show_on"
36-
type="hidden"
37-
filter="unset"
38-
/>
39-
40-
<field
41-
name="showon"
42-
type="hidden"
43-
filter="unset"
44-
/>
45-
46-
<field
47-
name="showlabel"
48-
type="hidden"
49-
filter="unset"
50-
/>
51-
52-
<field
53-
name="label_render_class"
54-
type="hidden"
55-
filter="unset"
56-
/>
57-
58-
<field
59-
name="render_class"
60-
type="hidden"
61-
filter="unset"
62-
/>
63-
64-
<field
65-
name="value_render_class"
66-
type="hidden"
67-
filter="unset"
68-
/>
69-
70-
<field
71-
name="prefix"
72-
type="hidden"
73-
filter="unset"
74-
/>
75-
76-
<field
77-
name="suffix"
78-
type="hidden"
79-
filter="unset"
80-
/>
81-
82-
<field
83-
name="display_readonly"
84-
type="hidden"
85-
filter="unset"
86-
/>
87-
88-
<field
89-
name="searchindex"
90-
type="hidden"
91-
filter="unset"
92-
/>
93-
</fieldset>
944
<fieldset name="renderoptions">
955
<field
966
name="display_frontend"
@@ -148,6 +58,7 @@
14858
type="text"
14959
label="PLG_FIELDS_NOTE_PARAMS_CLOSE_LABEL"
15060
description="PLG_FIELDS_NOTE_PARAMS_CLOSE_DESC"
61+
default="true"
15162
/>
15263
</fieldset>
15364
</fields>

plugins/fields/note/src/Extension/Note.php

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,10 @@
1010

1111
namespace Joomla\Plugin\Fields\Note\Extension;
1212

13+
use Joomla\CMS\Event\Model\PrepareFormEvent;
1314
use Joomla\Component\Fields\Administrator\Plugin\FieldsPlugin;
1415
use Joomla\Event\SubscriberInterface;
16+
use Joomla\Utilities\ArrayHelper;
1517

1618
// phpcs:disable PSR1.Files.SideEffects
1719
\defined('_JEXEC') or die;
@@ -24,4 +26,46 @@
2426
*/
2527
final class Note extends FieldsPlugin implements SubscriberInterface
2628
{
29+
/**
30+
* The form event. Load additional parameters when available into the field form.
31+
* Only when the type of the form is of interest.
32+
*
33+
* @return void
34+
*
35+
* @since __DEPLOY_VERSION__
36+
*/
37+
public function prepareForm(PrepareFormEvent $event)
38+
{
39+
parent::prepareForm($event);
40+
41+
$form = $event->getForm();
42+
$data = $event->getData();
43+
44+
$type = ArrayHelper::getValue((array) $data, 'type');
45+
46+
if (!$this->getApplication()->isClient('administrator') || $form->getName() !== 'com_fields.field.com_content.article' || $type !== 'note') {
47+
return;
48+
}
49+
50+
$form->removeField('default_value');
51+
$form->removeField('required');
52+
$form->removeField('hint', 'params');
53+
$form->removeField('class', 'params');
54+
$form->removeField('label_class', 'params');
55+
$form->removeField('showlabel', 'params');
56+
$form->removeField('label_render_class', 'params');
57+
$form->removeField('render_class', 'params');
58+
$form->removeField('value_render_class', 'params');
59+
$form->removeField('show_on', 'params');
60+
$form->removeField('prefix', 'params');
61+
$form->removeField('suffix', 'params');
62+
$form->removeField('display_readonly', 'params');
63+
64+
$xml = $form->getXml();
65+
66+
foreach ($xml->xpath('//fieldset[@name="smartsearchoptions"]') as $fieldset) {
67+
$dom = dom_import_simplexml($fieldset);
68+
$dom->parentNode->removeChild($dom);
69+
}
70+
}
2771
}

0 commit comments

Comments
 (0)