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 #1

Updated by Christian Kuhn over 9 years ago

  • Description updated (diff)
Actions #2

Updated by Christian Kuhn over 9 years ago

https://review.typo3.org/#/c/34034/ - wouter version

https://review.typo3.org/#/c/33269/ - first felix version

Next steps: The toolbar refactoring currently blocks other patches during #koppsrpint. the wouter codeline will be adapted to not contain the old interface anymore and will then be merged quickly. the above points will be changed is smaller steps next days.

Actions #3

Updated by Markus Klein over 9 years ago

I would prefer to have the classes in Classes/Backend/Toolbar to not conflict with existing code which is in the Classes folder already. (the content of this folder is rather unstructured up to now)

Actions #4

Updated by Christian Kuhn over 9 years ago

  • Description updated (diff)
Actions #5

Updated by Christian Kuhn over 9 years ago

good point with classes/backend/toolbar ... adapted :)

Actions #6

Updated by Christian Kuhn over 9 years ago

  • Description updated (diff)
Actions #7

Updated by Christian Kuhn over 9 years ago

  • Description updated (diff)
Actions #8

Updated by Christian Kuhn over 9 years ago

  • Description updated (diff)
Actions #9

Updated by Felix Kopp over 9 years ago

Done?

Actions #10

Updated by Felix Kopp over 9 years ago

  • Status changed from New to Needs Feedback
Actions #11

Updated by Christian Kuhn over 9 years ago

The permission stuff is still missing and the interface is marked that this specific area is likely to chance, still.

Actions #12

Updated by Felix Kopp over 9 years ago

How can we close the issue - how can I support?
This issue is the last in line for the topbar.

Would be great to close the epic.
Thanks!!

Actions #13

Updated by Christian Kuhn over 9 years ago

  • Status changed from Needs Feedback to Closed

Ok, closed. We'll do the permission stuff with an own ticket, later.

Actions #14

Updated by Daniel Windloff over 2 years ago

  • Related to Task #96041: Toolbar items: Register via compiler pass added
Actions #15

Updated by Chris Müller over 2 years ago

  • Related to Task #96093: Drop todo in ToolbarItemInterface added
Actions

Also available in: Atom PDF