An error occurred while fetching folder content.
Andreas Gohr
authored
This will open up the discussion from #236 again and I'm not sure how to solve this best. The TEMPLATE_PAGETOOLS_DISPLAY event is very specific to the dokuwiki template in theory. In practice many other templates implemented not only the same event but also use the same HTML (and often even the same CSS). Which makes the event more like a core event. This branch now changes the HTML the event expects back from handlers. When merged it would immeadiately break all plugins implementing this event (and by broken I mean the layout/design of the template breaks). Since the expected data changes, I would argue this should be a new event or at least be implemented in a way to not break the design by installing an old plugin and by giving the plugin a chance to know if it's running on the old or the new code. This is what this commit does. By changing the view names, old plugins should not display (because they hopefull do not handle those views) but gives them an easy way to handle the old and new views in one plugin. However, I'm not perfectly happy with it, yet. The way I implemented the new SVG handling is by means of a new class dokuwiki\template\dokuwiki\tpl which provides a pageToolAction() method. Plugins could use this method to easily return the proper HTML for the pagetool items and we could adjust this method later on to make adjustments to the pagetools without breaking anything again. However this method is template specific again. While it would possible for plugins to use this method even when the wiki runs another plugin emitting the event, it would be a bit weird. A better way would be for the event to not expect HTML at all, but instead a data structure of the data currently passed to pageToolAction(). Templates could then decide to implement the event, but still render the data in a completely different way... OTOH this means plugins are no longer free to add whatever they want into the pagetools. We once argued plugins might want to add submenus or other fancy stuff there. But in fact no plugin ever did. If we decide to go this new way of making the event more of a first class citizen of template development, then we would probably have to move parts or all of the tpl class back to the core.
Name | Last commit | Last update |
---|