Sometimes we need to add forms in a page which can be accessed using horizontal tabs. Default Drupal login forms already has few tabs e.g. Log in, Create new account & Reset new password. Either we can add additional tab here itself or we can also add tab if we need to show multiple form in a page using writing a small custom module.
What is module-defined local tasks?
Tabs on top of the page are called as Local task. you can view them easily on User Log-in page having Log in/ Create an account/ Reset your password
Syntax to define local task in Drupal 8:
First of all, To create a static local tasks we need to define in our module should be static.
format: file name after your module.
E.g: if module name is "resume", the file will be resume.links.task.yml & placed in the root directory.
Here resume.links.task.yml define two tabs resume.tab_1 & resume.tab_2 route. the title of the tab will be shown in User Interface tab where base_route is same as the name of the route. we can also provide the weight for the tabs. by default negative weight appears on the left hand side.
Just to Display two quick tab in UI , i have added one additional form “Work Form”
To provide multiple levels of tabs, use the parent_id to relate a tab to its parent and use the same base_route to group the set of tabs together. Above are two quick tab “resume” , ”Work” which can visible while visiting resume/mypage
Conclusion: This tutorial tell us about basics of creating static local tasks[tabs]. by adding resume.links.task.yml in core directory. which required mandatory route_name / title / base_route fields. & it doesn’t include Dynamic local task generation & Customising local task behaviour.
Source code: https://github.com/xaiwant/D8custom-form-with-static-local-task