The CTools pluggable content system provides various pieces of content as discrete bits of data that can be added to other applications, such as Panels or Dashboard via the UI. Whatever the content is added to stores the configuration for that individual piece of content, and provides this to the content. Each content type plugin will be contained in a .inc file, with subsidiary files, if necessary, in or near the same directory. Each content type consists of some information and one or more subtypes, which all use the same renderer. Subtypes are considered to be instances of the type. For example, the 'views' content type would have each view in the system as a subtype. Many content types will have exactly one subtype. Because the content and forms can be provided via ajax, the plugin also provides a list of cs and js information that should be available on whatever page the content or forms may be ajaxed onto. For the purposes of selecting content from the UI, each content subtype will have the following information: Each piece of content provides one or more configuration forms, if necessary, and the system that includes the content will handle the data storage. These forms can be provided in sequence as wizards or as extra forms that can be accessed through advanced administration. The plugin for a content type should contain: TODO: many of the above callbacks can be assumed based upon patterns: modulename + '_' + name + '_' + function. i.e, render, admin_title, admin_info, etc. TODO: Some kind of simple access control to easily filter out content. The subtype definition should contain:

Rendered content

Rendered content is a little more than just HTML.

Todo: example

Todo after implementations are updated to new version.