This module provides a framework for creating multistep forms in Drupal >=8.x. While similar notable projects exists on Drupal.org, the goal of this project is to simplify the process of creating multistep forms for developers while maximizing flexibility in configuration. The module doesn't provide any kind of UI, it's created only for developers.
Module provides Yaml plugin system like *links.action.yml, where you can specify each step, and also replace/extend plugin itself. The benefit of such approach is:
- One place to configure everything
- You can specify whatever namespace you want for steps, which is good if you have a few multistep forms in one module because you will be able to sort them logically
How does this module differ from other community projects and examples?
The Webform and Forms Steps allow building of multi-step, wizard-style forms and provide a decent UI. If you need to deal with non-trivial tasks like multiple entities generation or some insane widgets then this module will give you full power.
--------------
There is example module that provides a decent example of how the module works. You can install it on bare bones Drupal to check it out.
Project link
| Comment | File | Size | Author |
|---|---|---|---|
| #9 | 2024-01-18T08:59:21,380908672+02:00.png | 221.65 KB | dinazaur |
Comments
Comment #2
vishal.kadamThank you for applying!
Please read Review process for security advisory coverage: What to expect for more details and Security advisory coverage application checklist to understand what reviewers look for. Tips for ensuring a smooth review gives some hints for a smoother review.
The important notes are the following.
phpcs --standard=Drupal,DrupalPracticeon the project, which alone fixes most of what reviewers would report.To the reviewers
Please read How to review security advisory coverage applications, Application workflow, What to cover in an application review, and Tools to use for reviews.
The important notes are the following.
For new reviewers, I would also suggest to first read In which way the issue queue for coverage applications is different from other project queues.
Comment #3
vishal.kadamComment #4
vishal.kadamFor these applications, we need a project where, in at least the branch used for the application, most of the commits (if not all the commits) have been done from the person who applied.
The purpose of these applications is reviewing a project to understand what the person who applies understands about writing secure code that follows the Drupal coding standards and correctly uses the Drupal API. We do not review a project to understand what the project maintainers as a group understands about those topics.
Comment #5
vishal.kadamA project where the commits have been done by more than one person cannot be used for these applications.
This application can only continue with another project where most of the commits (and preferable all the commits) have been done by you (dinazaur).
Comment #6
dinazaur commentedHello, literally 2.x branch contains all my code. I deleted whole 1.x version when took the module. And reworked it from scratch. So this one commit is literally whole module
Comment #7
vishal.kadamPlease check the Contributor analytics for the 2.x branch. You'll see the commits per user.
https://git.drupalcode.org/project/multistep_form_framework/-/graphs/2.x...
Comment #8
cmlara@vishal.madam
I believe the assertion is that https://git.drupalcode.org/project/multistep_form_framework/-/commit/dfc... while made on top of the code from 1.x, is a complete re-write, and any of the commits prior to it are not relevant. This would mean the “commit counts” are inaccurate and anything before they commit should be ignored.
I haven’t looked like by line to be sure it wasn’t just a file rename or that a large number of files were not changed.
Ideally 2.x would have been created as an “orphan” branch to make it more clear it was a code split however not strictly a requirement IMHO (and D.O prevents that from happening now)
Unless we can assert the above commit just renamed files, this should probably be allowed to continue into the process. Especially since #3406966: [1.0.x] Time Clock has made it through the process and it originally started as all but a few lines of code could not be attributed to the applicant while this issue appears on cursory glance to have a sizable amount of changed line.
Setting back to NR on the grounds this needs an actual line by line review to assert that it isn’t the applicants own commits.
Comment #9
dinazaur commentedSo here is a screenshot that shows commits in 2.x branch only.

And here are explanations of what is inside 2.x branch. My initial commit contains 1941 additions and 406 deletions. I've removed all code from 1.x branch. So the 2.x contains all my code.
Comment #10
dinazaur commentedHere is a link to related Drupal.org project ownership issue where I explained why I'm doing such a change. I just didn't want to make another module on Drupal.org and took the obsolete module and reworked it from scratch.
Comment #11
avpadernoI checked the commit linked on comment #6. I would not say it is just renaming files. (I apologize, I checked the linked commit yesterday, but I forgot to comment about this application which seemed fine for me.)
Comment #12
dinazaur commentedChanging the priority according to Application Review Timelines
Comment #13
dinazaur commentedChanging the priority according to Application review Timelines
Comment #14
solideogloria commentedThe
MultistepForm::prepareWizardshould have its parameters documented in the function doc comment.Your README.md does not follow best practices (headings need to be uppercase and sections are missing). See README.md template documentation. Also, lines should be wrapped at 80 characters.
Comment #15
vishal.kadam1.
@branchis a wrong name for a branch. Release branch names always end with the literal .x as described in Release branches.2. Fix phpcs issues.
Comment #16
vishal.kadamI am changing priority as per Issue priorities.
Comment #17
vishal.kadamThis thread has been idle, in the Needs work state with no activity for several months. Therefore, I am assuming that you are no longer pursuing this application, and I marked it as Closed (won't fix).
If this is incorrect, and you are still pursuing this application, then please feel free to re-open it and set the issue status to Needs work or Needs review, depending on the current status of your code.
Comment #18
avpadernoComment #19
dinazaur commented@solideogloria
Drupal coding standards allow to omit documenting function parameters.
Yeah, it does not. This module was created for developers only, site builders will never use it, hence I don't see reasons why I should change README format.
@vishal.kadam
It is wrong and was created by the previous maintainer. From what I see it is not used as Release branch. And because of that, I think it is okay to keep it, cause I don't know why it was created in first place.
I already answered about README, but I'd like to quote README.md template page.
I cannot reproduce it. I'm using latest (8.3.25) Drupal coder version
Comment #20
avpadernoComment #21
avpadernoActually, the Drupal coding standards says:
(Emphasis is mine.)
Comment #22
dinazaur commented@avpaderno you're right. I thought that it was possible to omit parameters because the code sniffer allowed to do it. There's a current discussion about "Allow omitting doxygen ..." I suppose sooner or later they will allow omitting them as they did with constructors. But anyway it is not possible right now.
What is possible to do is to:
what apparently is a case, cause the only places where I omitted docs are for
$formand$form_stateparams.Comment #23
dinazaur commentedChanging the priority according to Application Review Timelines
Comment #24
rushikesh raval commentedI am changing priority as per Issue priorities.
Comment #25
klausiLooks good to me!
Thanks for your contribution, Nazar!
I updated your account so you can opt into security advisory coverage now.
Here are some recommended readings to help with excellent maintainership:
You can find lots more contributors chatting on Slack or IRC in #drupal-contribute. So, come hang out and stay involved!
Thanks, also, for your patience with the review process. Anyone is welcome to participate in the review process. Please consider reviewing other projects that are pending review. I encourage you to learn more about that process and join the group of reviewers.
Thanks to the dedicated reviewer(s) as well.