UI_plugins

Michal Čihař edited this page Apr 18, 2016 · 3 revisions
Clone this wiki locally

Why UI plugins? Users want various additional actions like WYSIWIG editor, graphical table editor,...

Needed interface

Configuration

  • $cfg['PluginPath'] - where plugins are installed, empty disables them
  • define which plugins are enabled?

Plugin loading

Plugins need to modify somehow phpMyAdmins user interface, so they have to be able to add button or link or some other output. How to achieve this?

Definitions

  • Define types of plugins, types should define when plugins should be loaded (name should be derived from page name), eg.:
    • editor
    • tbl
    • tbl_structure
    • db_sql
    • navigation
  • Define places where hook can be added - places where plugin can be called, eg.:
    • Edit
    • Edit_VARCHAR
    • Table_Links
    • Footer

Actual loading

  • Make empty arrays for each hook place which is appropriate for current page (or create objects which will hold those lists)
  • Load all plugins appropriate for current page, plugins can add hooks to above arrays/objects

Plugin actions

  • When execution will hit hook place, all hooks from array/object will be called, they can place link or whatever in this place

UI plugins