• Christian Kuhn's avatar
    [TASK] Refactor ext:tstemplate controllers · 5399ea63
    Christian Kuhn authored
    With the refactoring of the '3rd level' backend module
    API, we can finally clean up the Template related
    backend controllers.
    
    Notable UI changes:
    * There was a rather hidden functionality in the template
      module: The "Template record overview" that lists all
      pages that have sys_template records, is only rendered
      when the root page "Page zero" is selected. This can be
      hard to find and is contrary to all other backend modules
      where sub-functionality is selected using the drop down
      in the doc header. The patch changes this: The template
      record overview is now always shown as 5th element in the
      drop down. It currently renders the same output on all
      pages, but could be made page-aware later.
    * The TypoScript Object Browser has a detail view to edit
      single properties, which then write to a sys_template
      record. This view also allows to add the edited path to
      an "Object List" if it has sub properties. This is
      remembered for the given user. The user can then select
      this path in the object browser tree view to limit the
      view to this section of the tree. All in all, this is a
      rather hidden and pretty much unknown detail functionality
      of limited use. This functionality has been removed.
    
    Patch overview:
    * Implement the "Template record overview" as new
      controller.
    * Resolve "controller extends controller" inheritance and
      introduce an abstract controller with common methods of
      client classes. Methods don't add class state.
    * Heavily reduce class state to a minimum.
    * Improve separation of controller and view concerns.
    * Split some templates to partials.
    * Leverage dependency incjection correctly: Abstract uses
      inject* methods, client classes use constructor DI.
    * Remove user access checks since the entire Template
      module is 'admin only', which is checked by middlewares.
    * Various general clean ups, variable renamings, better
      structured methods.
    
    Change-Id: I64cb7ea6275af491233ff7ee525c9260e5da6627
    Resolves: #97591
    Related: #97135
    Releases: main
    Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/74550
    
    Tested-by: core-ci's avatarcore-ci <typo3@b13.com>
    Tested-by: Stefan Bürk's avatarStefan Bürk <stefan@buerk.tech>
    Tested-by: Jochen's avatarJochen <rothjochen@gmail.com>
    Tested-by: Christian Kuhn's avatarChristian Kuhn <lolli@schwarzbu.ch>
    Reviewed-by: Stefan Bürk's avatarStefan Bürk <stefan@buerk.tech>
    Reviewed-by: Jochen's avatarJochen <rothjochen@gmail.com>
    Reviewed-by: Christian Kuhn's avatarChristian Kuhn <lolli@schwarzbu.ch>
    5399ea63