Project

General

Profile

Actions

Bug #62928

closed

Epic #62041: twbs Bootstrap backend, refactor EXT:t3skin and HTML5 output

Feature #62332: User settings as modal-view

Feature #62166: Rework Toolbar / Topbar as bootstrap

Toolbar PHP side

Added by Christian Kuhn over 9 years ago. Updated over 9 years ago.

Status:
Closed
Priority:
Should have
Assignee:
-
Category:
-
Target version:
-
Start date:
2014-11-13
Due date:
% Done:

100%

Estimated time:
(Total: 0.00 h)
TYPO3 Version:
7
PHP Version:
Tags:
Complexity:
Is Regression:
No
Sprint Focus:

Description

Wouter pushed a first patch set at https://review.typo3.org/#/c/34034/ to refactor the PHP side of Toolbar that generates the html structure in BackendController. This was reviewed by lolli leading to some architectural goals and decisions.

The bigger plan:

  • ToolbarItemHookInterface will be dropped from 7 and NOT be used anymore. Extensions currently using this interface will NOT be supported and will not get their item rendered anymore.
  • Naming:
    • "Toolbar" is the whole thing on the top right of the backend
    • "Toolbaritem" is one element in the toolbar
    • "Toolbar drop down" is an (optional) menu that may unfold
  • New interface: Toolbaritem
    [DONE] getPriority() or getPosition() (number 0...100): 0 is left, 100 is right, LiveSearch would return 90 to be "most right"
    [DONE] hasDropDown() TRUE if the toolbar item has a drop down
    [DONE] getToolbaritemContent() return html, wrapped by BackendController in a div
    [DONE] getDropDownContent() return html, wrapped by BackendController in a div
    [DONE] $backendReference / $parent should NOT be given as instance to each item (loose coupling) - there is either a getJavaScriptFiles() and getCssFiles() in the interface, or PageRenderer is given to the item classes, or item classes can get PageRenderer on their own
    Some method to find out if item should be rendered at all? eg. sys_action only shows up if there are queries to show
  • [DONE] BackendController will add a unique css id to each item based on the Toolbaritem classname
  • It would be preferred if a method like checkAccess() is NOT needed for the items interface, the maybe the "special" tca group item allowing access control could be extended to implement access control for toolbar (similar to module menu)
  • The new interface is NOT carved in stone in 7.0 and may change during 7 development
  • [DONE DIFFENTLY] Toolbaritem auto registration: If an extension finds a file in Classes/Backend/Toolbaritems, it will find and load it and will throw an exception if the class does not implement the interface.
  • ModuleMenu items and Toolbar are somehow similar - it may happen that both are merged in an unique php interface later, this is still unknown however.
  • Create .rst documentation

Subtasks 7 (0 open7 closed)

Task #62929: Initial refactoring of toolbar itemsClosed2014-11-13

Actions
Bug #62939: Toolbar: Bring back styling for new HTMLClosed2014-11-14

Actions
Task #62959: Toolbar item registration and positionClosed2014-11-14

Actions
Bug #62964: Rename getDropdown to hasDropDownClosed2014-11-14

Actions
Task #62997: ToolbarItem interface improvementsClosed2014-11-15

Actions
Task #63110: Clean up OpendocsToolbarItem referencesClosed2014-11-20

Actions
Task #63431: Documentation of new interfaceClosed2014-11-29

Actions

Related issues 2 (0 open2 closed)

Related to TYPO3 Core - Task #96041: Toolbar items: Register via compiler passClosedDaniel Windloff2021-11-20

Actions
Related to TYPO3 Core - Task #96093: Drop todo in ToolbarItemInterfaceClosed2021-11-26

Actions
Actions

Also available in: Atom PDF