Skip to content

[6.x] Add Form-based plugin settings - #19439

Merged
brandonkelly merged 2 commits into
6.xfrom
t3code/simplify-plugin-settings-forms
Aug 15, 2026
Merged

brandonkelly merged 2 commits into
6.xfrom
t3code/simplify-plugin-settings-forms

Conversation

@riasvdv

@riasvdv riasvdv commented Aug 15, 2026

Copy link
Copy Markdown
Contributor

Description

Adds Plugin::settingsForm() as the standard plugin settings UI, renders settings through the Inertia Form page, and keeps Yii-era HTML settings compatible through the adapter. Adds the test plugin to the workbench for manual verification.

@github-actions

github-actions Bot commented Aug 15, 2026

Copy link
Copy Markdown

📚 Storybook previews

@craftcms/uiopen Storybook

No changed components detected in this Storybook.

resources/jsopen Storybook

No changed components detected in this Storybook.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds Form-based plugin settings pages while retaining Yii-era HTML compatibility.

Changes:

  • Introduces Plugin::settingsForm() and Inertia Form rendering.
  • Adapts legacy settings HTML and expands tests/documentation.
  • Installs the test plugin in the workbench.

Reviewed changes

Copilot reviewed 13 out of 14 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
CHANGELOG.md Documents the settings API migration.
composer.json Registers the test plugin package.
composer.lock Locks the local test plugin.
docs/forms.md Documents plugin settings Forms.
resources/js/modules/plugin-manager/components/PluginLinks.vue Adds same-tab settings navigation.
resources/templates/settings/plugins/_settings.twig Removes the legacy settings template.
src/Plugin/Concerns/HasSettings.php Builds standard Inertia settings responses.
tests/Feature/Http/Controllers/PluginsControllerTest.php Tests settings pages and overrides.
tests/TestClasses/TestPlugin/composer.json Defines the test plugin package.
tests/TestClasses/TestPlugin/src/TestPlugin.php Implements a test settings Form.
tests/Unit/Form/ReplacementFormContractsTest.php Verifies removal of the HTML hook.
workbench/database/seeders/DatabaseSeeder.php Installs the test plugin.
yii2-adapter/legacy/base/Plugin.php Wraps legacy settings HTML in a Form.
yii2-adapter/tests-laravel/Legacy/LegacyHtmlFormTest.php Tests legacy plugin settings capture.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread resources/js/modules/plugin-manager/components/PluginLinks.vue
@riasvdv
riasvdv marked this pull request as ready for review August 15, 2026 09:24
@riasvdv
riasvdv marked this pull request as draft August 15, 2026 09:24
@riasvdv
riasvdv marked this pull request as ready for review August 15, 2026 09:25
@brandonkelly
brandonkelly merged commit f81de66 into 6.x Aug 15, 2026
24 checks passed
@brandonkelly
brandonkelly deleted the t3code/simplify-plugin-settings-forms branch August 15, 2026 16:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants