Edgewall Software

Changes between Version 41 and Version 42 of TracDev/PluginDevelopment


Ignore:
Timestamp:
May 7, 2010, 2:09:27 AM (14 years ago)
Author:
Carsten Klein <carsten.klein@…>
Comment:

revising content based on input from rblank

Legend:

Unmodified
Added
Removed
Modified
  • TracDev/PluginDevelopment

    v41 v42  
    1212Below you find a still incomplete list of extension points available in the current trac release ([milestone:0.12 0.12]). If you want to contribute documentation on any of the below described extension point interfaces, feel free to add the documentation. Please use the template [wiki:TracDev/PluginDevelopment/ExtensionPointDocumentationTemplate] when authoring new documentation.
    1313
    14 ||='''Extension Point Interface'''=||='''Source'''=||='''Description'''=||
    15 ||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.env.IEnvironmentSetupParticipant trac.env.IEnvironmentSetupParticipant]||[source:trunk/trac/env.py trac.env.IEnvironmentSetupParticipant]||Plugins that provide their own data models must implement this interface to be able to create the required tables in the database on either the creation of a new environment, or during the upgrade of an existing environment.||
    16 ||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.db.api.IDatabaseConnector trac.db.api.IDatabaseConnector]||[source:/trunk/trac/db/api.py trac.db.api.IDatabaseConnector]||By implementing this interface you can add additional database backends to the system. Currently available are backends for MySQL, PostgreSQL and SQLITE2/3.||
    17 ||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.admin.api.IAdminCommandProvider trac.admin.api.IAdminCommandProvider]||[source:/trunk/trac/admin/api.py trac.admin.api.IAdminCommandProvider]||Allows plugins to add additional commands to the trac-admin console command.||
    18 ||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.admin.api.IAdminPanelProvider trac.admin.api.IAdminPanelProvider]||[source:trunk/trac/admin/api.py trac.admin.api.IAdminPanelProvider]||Allows plugins to add additional admin panels to the web-based administration module.||
    19 ||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.mimeview.api.IContentConverter trac.mimeview.api.IContentConverter]||[source:trunk/trac/mimeview/api.py trac.mimeview.api.IContentConverter]||Allows plugins to implement conversion strategies for arbitrary content types. (NOTE: API is likely to change in the future)||
    20 ||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.mimeview.api.IHTMLPreviewAnnotator trac.mimeview.api.IHTMLPreviewAnnotator]||[source:trunk/trac/mimeview/api.py trac.mimeview.api.IHTMLPreviewAnnotator]||Allows plugins to add additional information to an XHTML representation of a given file, for example meta data on the file and so on.||
    21 ||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.mimeview.api.IHTMLPreviewRenderer trac.mimeview.api.IHTMLPreviewRenderer]||[source:trunk/trac/mimeview/api.py trac.mimeview.api.IHTMLPreviewRenderer]||Allows plugins to provide support for rendering specific content of a specific type as HTML (used for TracSyntaxColoring and image preview).||
    22 ||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.notification.IEmailSender trac.notification.IEmailSender]||[source:trunk/trac/notification.py trac.notification.IEmailSender]||Implement this interface to be able to send notification mails.||
    23 ||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.perm.IPermissionGroupProvider trac.perm.IPermissionGroupProvider]||[source:trunk/trac/perm.py trac.perm.IPermissionGroupProvider]||Implement this extension point interface when you can provide information on groups that a given user is a member of.||
    24 ||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.perm.IPermissionPolicy trac.perm.IPermissionPolicy]||[source:trunk/trac/perm.py trac.perm.IPermissionPolicy]||By implementing this interface you can do more finely grained permission checks.||
    25 ||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.perm.IPermissionRequestor trac.perm.IPermissionRequestor]||[source:trunk/trac/perm.py trac.perm.IPermissionRequestor]||Plugins can use this extension point to define additional "actions", or permission roles, for the permission system.||
    26 ||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.perm.IPermissionStore trac.perm.IPermissionStore]||[source:trunk/trac/perm.py trac.perm.IPermissionStore]||Plugins can use this extension point to implement a storage for permissions and also to handle user authorization.||
    27 ||[wiki:TracDev/PluginDevelopment/ExtensionPoints/prefs/trac.prefs.api.IPreferencePanelProvider trac.prefs.api.IPreferencePanelProvider]||[source:trunk/trac/api.py trac.prefs.api.IPreferencePanelProvider]||Allows plugins to add additional preferences panels to the user's preferences page.||
    28 ||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.resource.IResourceManager trac.resource.IResourceManager]||[source:trunk/trac/resource.py trac.resource.IResourceManager]||Allows plugins to take over full control of the realms that they provide, incl. also introducing new resource types to the system.||
    29 ||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.search.api.ISearchSource trac.search.api.ISearchSource]||[source:trunk/trac/search/api.py trac.search.api.ISearchSource]||Allows plugins to provide additional searchable (re)sources to the system.||
    30 ||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.ticket.api.ITicketActionController trac.ticket.api.ITicketActionController]||[source:trunk/trac/ticket/api.py trac.ticket.api.ITicketActionController]||Allows plugins to participate in a ticket's workflow.||
    31 ||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.ticket.api.ITicketChangeListener trac.ticket.api.ITicketChangeListener]||[source:trunk/trac/ticket/api.py trac.ticket.api.ITicketChangeListener]||Extension point interface for components that require notification on when tickets are created, modified, or deleted.||
    32 ||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.ticket.api.ITicketManipulator trac.ticket.api.ITicketManipulator]||[source:trunk/trac/ticket/api.py trac.ticket.api.ITicketManipulator]||Allows plugins to both prepare tickets on creation and also to validate them prior to that they get stored in the database.||
    33 ||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.ticket.api.IMilestoneChangeListener trac.ticket.api.IMilestoneChangeListener]||[source:trunk/trac/ticket/api.py trac.ticket.api.IMilestoneChangeListener]||Allows plugins to listen on changes to either existing or newly created milestones.||
    34 ||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.ticket.roadmap.ITicketGroupStatsProvider trac.ticket.roadmap.ITicketGroupStatsProvider]||[source:trunk/trac/ticket/roadmap.py trac.ticket.roadmap.ITicketGroupStatsProvider]||Allows plugins to implement their own scheme of ticket stats, and provide that to the system via the !RoadmapModule.||
    35 ||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.timeline.ITimelineEventProvider trac.timeline.ITimelineEventProvider]||[source:trunk/trac/timeline/api.py trac.timeline.ITimelineEventProvider]||Allows plugins to contribute events to the [wiki:TracTimeline timeline].||
    36 ||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.web.api.IAuthenticator trac.web.api.IAuthenticator]||[source:trunk/trac/web/api.py trac.web.api.IAuthenticator]||Allows plugins to authenticate users and HTTP sessions thereof. The first authenticator able to authenticate a user is the authoritative authenticator, meaning that other authenticators available in the system will not be called. Users that cannot be authenticated by the request and an associated session thereof are called 'anonymous'.||
    37 ||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.web.api.IRequestFilter trac.web.api.IRequestFilter]||[source:trunk/trac/web/api.py trac.web.api.IRequestFilter]||Allows plugins to both preprocess and postprocess HTTP requests.||
    38 ||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.web.api.IRequestHandler trac.web.api.IRequestHandler]||[source:trunk/trac/web/api.py trac.web.api.IRequestHandler]||Allows plugins to process HTTP requests.||
    39 ||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.web.api.ITemplateStreamFilter trac.web.api.ITemplateStreamFilter]||[source:trunk/trac/web/api.py trac.web.api.ITemplateStreamFilter]||Allows plugins to filter existing [http://genshi.edgewall.org. Genshi] streams prior to that the template will be rendered.||
    40 ||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.web.chrome.INavigationContributor trac.web.chrome.INavigationContributor]||[source:trunk/trac/web/chrome.py trac.web.chrome.INavigationContributor]||Allows plugins to extend the navigation menus of the web interface.||
    41 ||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.web.chrome.ITemplateProvider trac.web.chrome.ITemplateProvider]||[source:trunk/trac/web/chrome.py trac.web.chrome.ITemplateProvider]||Extension point interface for components that provide their own templates and accompanying static resources.||
    42 ||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.wiki.api.IWikiChangeListener trac.wiki.api.IWikiChangeListener]||[source:trunk/trac/wiki/api.py trac.wiki.api.IWikiChangeListener]||Allows plugins to observe creation, modification and renaming (since trac-0.12), and deletion of wiki pages.||
    43 ||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.wiki.api.IWikiMacroProvider]||[source:trunk/trac/wiki/api.py trac.wiki.api.IWikiMacroProvider]||Allows plugins to contribute WikiMacros to Trac.||
    44 ||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.wiki.api.IWikiPageManipulator trac.wiki.api.IWikiPageManipulator]||[source:trunk/trac/wiki/api.py trac.wiki.api.IWikiPageManipulator]||Allows plugins to validate wiki pages prior to that they get stored in the database.||
    45 ||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.wiki.api.IWikiSyntaxProvider trac.wiki.api.IWikiSyntaxProvider]||[source:trunk/trac/wiki/api.py trac.wiki.api.IWikiSyntaxProvider]||Plugins can extend this extension point to add custom syntax rules to the wiki formatting system. In particular, this allows registration of additional TracLinks types.||
     14||='''Extension Point Interface'''[[br]]'''Source''' =||='''Description''' =||
     15||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.env.IEnvironmentSetupParticipant trac.env.IEnvironmentSetupParticipant][[br]]([source:trunk/trac/env.py source])||Plugins that provide their own data models must implement this interface to be able to create the required tables in the database on either the creation of a new environment, or during the upgrade of an existing environment.||
     16||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.db.api.IDatabaseConnector trac.db.api.IDatabaseConnector][[br]]([source:/trunk/trac/db/api.py source])||By implementing this interface you can add additional database backends to the system. Currently available are backends for MySQL, PostgreSQL and SQLITE2/3.||
     17||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.admin.api.IAdminCommandProvider trac.admin.api.IAdminCommandProvider][[br]]([source:/trunk/trac/admin/api.py source])||Allows plugins to add additional commands to the trac-admin console command.||
     18||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.admin.api.IAdminPanelProvider trac.admin.api.IAdminPanelProvider][[br]]([source:trunk/trac/admin/api.py source])||Allows plugins to add additional admin panels to the web-based administration module.||
     19||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.mimeview.api.IContentConverter trac.mimeview.api.IContentConverter][[br]]([source:trunk/trac/mimeview/api.py source])||Allows plugins to implement conversion strategies for arbitrary content types. (NOTE: API is likely to change in the future)||
     20||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.mimeview.api.IHTMLPreviewAnnotator trac.mimeview.api.IHTMLPreviewAnnotator][[br]]([source:trunk/trac/mimeview/api.py source])||Allows plugins to add additional information to an XHTML representation of a given file, for example meta data on the file and so on.||
     21||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.mimeview.api.IHTMLPreviewRenderer trac.mimeview.api.IHTMLPreviewRenderer][[br]]([source:trunk/trac/mimeview/api.py source])||Allows plugins to provide support for rendering specific content of a specific type as HTML (used for TracSyntaxColoring and image preview).||
     22||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.notification.IEmailSender trac.notification.IEmailSender][[br]]([source:trunk/trac/notification.py source])||Implement this interface to be able to send notification mails.||
     23||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.perm.IPermissionGroupProvider trac.perm.IPermissionGroupProvider][[br]]([source:trunk/trac/perm.py source])||Implement this extension point interface when you can provide information on groups that a given user is a member of.||
     24||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.perm.IPermissionPolicy trac.perm.IPermissionPolicy][[br]]([source:trunk/trac/perm.py source])||By implementing this interface you can do more finely grained permission checks.||
     25||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.perm.IPermissionRequestor trac.perm.IPermissionRequestor][[br]]([source:trunk/trac/perm.py source])||Plugins can use this extension point to define additional "actions", or permission roles, for the permission system.||
     26||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.perm.IPermissionStore trac.perm.IPermissionStore][[br]]([source:trunk/trac/perm.py source])||Plugins can use this extension point to implement a storage for permissions and also to handle user authorization.||
     27||[wiki:TracDev/PluginDevelopment/ExtensionPoints/prefs/trac.prefs.api.IPreferencePanelProvider trac.prefs.api.IPreferencePanelProvider][[br]]([source:trunk/trac/api.py source])||Allows plugins to add additional preferences panels to the user's preferences page.||
     28||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.resource.IResourceManager trac.resource.IResourceManager][[br]]([source:trunk/trac/resource.py source])||Allows plugins to take over full control of the realms that they provide, incl. also introducing new resource types to the system.||
     29||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.search.api.ISearchSource trac.search.api.ISearchSource][[br]]([source:trunk/trac/search/api.py source])||Allows plugins to provide additional searchable (re)sources to the system.||
     30||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.ticket.api.ITicketActionController trac.ticket.api.ITicketActionController][[br]]([source:trunk/trac/ticket/api.py source])||Allows plugins to participate in a ticket's workflow.||
     31||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.ticket.api.ITicketChangeListener trac.ticket.api.ITicketChangeListener][[br]]([source:trunk/trac/ticket/api.py source])||Extension point interface for components that require notification on when tickets are created, modified, or deleted.||
     32||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.ticket.api.ITicketManipulator trac.ticket.api.ITicketManipulator][[br]]([source:trunk/trac/ticket/api.py source])||Allows plugins to both prepare tickets on creation and also to validate them prior to that they get stored in the database.||
     33||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.ticket.api.IMilestoneChangeListener trac.ticket.api.IMilestoneChangeListener][[br]]([source:trunk/trac/ticket/api.py source])||Allows plugins to listen on changes to either existing or newly created milestones.||
     34||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.ticket.roadmap.ITicketGroupStatsProvider trac.ticket.roadmap.ITicketGroupStatsProvider][[br]]([source:trunk/trac/ticket/roadmap.py source])||Allows plugins to implement their own scheme of ticket stats, and provide that to the system via the !RoadmapModule.||
     35||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.timeline.ITimelineEventProvider trac.timeline.ITimelineEventProvider][[br]]([source:trunk/trac/timeline/api.py source])||Allows plugins to contribute events to the [wiki:TracTimeline timeline].||
     36||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.web.api.IAuthenticator trac.web.api.IAuthenticator][[br]]([source:trunk/trac/web/api.py source])||Allows plugins to authenticate users and HTTP sessions thereof. The first authenticator able to authenticate a user is the authoritative authenticator, meaning that other authenticators available in the system will not be called. Users that cannot be authenticated by the request and an associated session thereof are called 'anonymous'.||
     37||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.web.api.IRequestFilter trac.web.api.IRequestFilter][[br]]([source:trunk/trac/web/api.py source])||Allows plugins to both preprocess and postprocess HTTP requests.||
     38||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.web.api.IRequestHandler trac.web.api.IRequestHandler][[br]]([source:trunk/trac/web/api.py source])||Allows plugins to process HTTP requests.||
     39||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.web.api.ITemplateStreamFilter trac.web.api.ITemplateStreamFilter][[br]]([source:trunk/trac/web/api.py source])||Allows plugins to filter existing [http://genshi.edgewall.org. Genshi] streams prior to that the template will be rendered.||
     40||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.web.chrome.INavigationContributor trac.web.chrome.INavigationContributor][[br]]([source:trunk/trac/web/chrome.py source])||Allows plugins to extend the navigation menus of the web interface.||
     41||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.web.chrome.ITemplateProvider trac.web.chrome.ITemplateProvider][[br]]([source:trunk/trac/web/chrome.py source])||Extension point interface for components that provide their own templates and accompanying static resources.||
     42||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.wiki.api.IWikiChangeListener trac.wiki.api.IWikiChangeListener][[br]]([source:trunk/trac/wiki/api.py source])||Allows plugins to observe creation, modification and renaming (since trac-0.12), and deletion of wiki pages.||
     43||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.wiki.api.IWikiMacroProvider][[br]]([source:trunk/trac/wiki/api.py source])||Allows plugins to contribute WikiMacros to Trac.||
     44||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.wiki.api.IWikiPageManipulator trac.wiki.api.IWikiPageManipulator][[br]]([source:trunk/trac/wiki/api.py source])||Allows plugins to validate wiki pages prior to that they get stored in the database.||
     45||[wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.wiki.api.IWikiSyntaxProvider trac.wiki.api.IWikiSyntaxProvider][[br]]([source:trunk/trac/wiki/api.py source])||Plugins can extend this extension point to add custom syntax rules to the wiki formatting system. In particular, this allows registration of additional TracLinks types.||
    4646
    4747''Note that plugins can themselves add new extension points, so the list above is incomplete by nature.''