1. 13 Jan, 2022 1 commit
  2. 12 Jan, 2022 1 commit
    • Christian Kuhn's avatar
      [TASK] Simplify Templating Bootstrap in BE Controllers · 37ac299f
      Christian Kuhn authored
      This patch introduces a new EXT:fluid view class
      "BackendTemplateView" to be used as main view for
      backend-related non-Extbase views.
      
      This class is the base of a new non-Extbase and
      non-request dependent backend view. The class is for
      now marked @internal and experimental since we'll
      probably add a factory to configure backend template
      overrides for any backend view later-on.
      
      A few ViewHelpers are changed to work without
      accessing the request if enough VH arguments are provided.
      
      This is the first patch in a series of patches that will
      switch from StandaloneView usages in backend
      controllers to this new BackendTemplateView.
      
      Basic strategy:
      * $view->getRequest()->setControllerExtensionName('SysNote')
        is removed. This is Extbase-specific and not needed nor
        wanted for common non-Extbase controllers.
      * Instantiate the View (for now with makeInstance, will be
        replaced with a factory later-on)
      * Set the needed paths via ->setTemplateRootPaths() etc.
        For these, we *always* use the main extension's entry
        templating paths, for instance
        'EXT:sys_note/Resources/Private/Templates' or
        'EXT:sys_note/Resources/Private/Partials'.
        We do *not* use sub directories here to clear up path
        logic.
      * ->assign() / ->assignMultiple() whatever is needed.
      * ->render('SubDirectory/TemplateName') the actual
        action / template, no '.html' suffix.
      
      As a demo, EXT:sys_note is adapted accordingly which hands
      over arguments to the above mentioned VH's in a way so
      these don't access the request object anymore. The sys_note
      code gets a couple of additional changes so the hooks can
      prepare request dependent arguments and set them as
      template variables (here: returnUrl).
      
      This patch triggers a hidden gem: Since ViewHelpers no
      longer receive an Extbase request, they also don't trigger
      Extbase magic anymore. The casual victim here is
      f:translate, which has already been prepared to not trigger
      Extbase's frontend TypoScript parsing if there is no
      Extbase request. This often improves backend view performance
      by 25% or more, depending on the amount of frontend
      TypoScript to parse.
      
      Further patches will adapt other core backend routes and will
      relate to this patch for reference.
      
      Change-Id: I4fec3ad690452a00e731c9f6928273048397dd89
      Resolves: #96513
      Related: #96473
      Releases: main
      Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/72966
      
      Reviewed-by: Benni Mack's avatarBenni Mack <benni@typo3.org>
      Reviewed-by: Oliver Bartsch's avatarOliver Bartsch <bo@cedev.de>
      Reviewed-by: Christian Kuhn's avatarChristian Kuhn <lolli@schwarzbu.ch>
      Tested-by: core-ci's avatarcore-ci <typo3@b13.com>
      Tested-by: Benni Mack's avatarBenni Mack <benni@typo3.org>
      Tested-by: Oliver Bartsch's avatarOliver Bartsch <bo@cedev.de>
      Tested-by: Christian Kuhn's avatarChristian Kuhn <lolli@schwarzbu.ch>
      37ac299f
  3. 30 Nov, 2021 1 commit
  4. 27 Nov, 2021 3 commits
  5. 18 Nov, 2021 1 commit
  6. 16 Nov, 2021 2 commits
  7. 10 Nov, 2021 1 commit
  8. 02 Nov, 2021 2 commits
  9. 12 Oct, 2021 2 commits
  10. 05 Oct, 2021 2 commits
  11. 28 Sep, 2021 1 commit
  12. 24 Sep, 2021 1 commit
  13. 22 Sep, 2021 1 commit
  14. 11 Sep, 2021 1 commit
  15. 07 Sep, 2021 2 commits
  16. 26 Aug, 2021 1 commit
  17. 24 Aug, 2021 2 commits
  18. 10 Aug, 2021 1 commit
  19. 08 Aug, 2021 1 commit
  20. 28 Jul, 2021 1 commit
  21. 26 Jul, 2021 1 commit
  22. 13 Jul, 2021 2 commits
  23. 28 Jun, 2021 1 commit
  24. 17 Jun, 2021 1 commit
  25. 14 May, 2021 1 commit
  26. 04 May, 2021 2 commits
  27. 24 Mar, 2021 1 commit
  28. 23 Feb, 2021 2 commits
  29. 22 Dec, 2020 1 commit