 plugins and apis tool the plugins tool allows a module to allow other modules and themes to provide plugins which provide some kind of functionality or some kind of task for example in panels there are several types of plugins content types which are like blocks layouts which are page layouts and styles which can be used to style a panel each plugin is represented by a inc file and the functionality they offer can differ wildly a module which uses plugins can implement a hook describing the plugin which is not necessary as defaults will be filled in and then calls a ctools function which loads either all the known plugins used for listing choosing or loads a specific plugin used when its known which plugin is needed from the perspective of the plugin system a plugin is a packet of data usually some printable info and a list of callbacks it is up to the module implementing plugins to determine what that info means and what the callbacks do a module which implements plugins must first implement the hookctoolsplugindirectory function which simply tells the system which plugins are supported and what directory to look in each plugin will then be in a inc file in the directory supplied the inc file will contain a specially named hook which returns the data necessary to implement the plugin 