These guides are intended to be simple, focused guides on a specific interface or piece of functionality. Even if the particular feature you want isn't described here, you should be able to find something that gets you started.
Getting Started
- Compile and Install a FogBugz Plugin: A complete "Hello, world!" example plugin, from setting up the environment, to writing the code, to setting up the build process to automatically upload the Plugin to FogBugz.
Basic User Interface
- Add a new page to FogBugz: Add a custom a page to your FogBugz site and link to it from FogBugz site navigation.
- Showing Notifications: Use CNotificationApi to display messages and errors in a page, or notify an Admin
- Pass data to plugins from the client using plugin prefixes.
- Create a form and handle post-back: Check out this "To-Do List" example to learn how forms work in FogBugz.
- Handle AJAX Requests using the IPluginRawPageDisplay interface.
Working with the FogBugz API
- Access and modify FogBugz entities Fetch instances of FogBugz objects (e.g. cases, filters and person objects), make changes and commit them back to the database.
- Editing cases: Use the plugin API to programmatically manipulate case fields.
- Event-Handling Library: A library built on top of the FogBugz plugin architecture provides an event model for easily handling specific events
- Enable External API Access: Manage logon tokens for the XML API and PluginRawPage to allow external programmatic access to FogBugz.
Database
- Store Simple Key-Value Pairs: Easy persistence of basic configuration data in the FogBugz database.
- Make database queries: Use the CQuery Class to query the FogBugz database
- Add a table to the database: Use the IPluginDatabase interface to provide your plugin a fully upgradable data model.
Extending the FogBugz UI
- Create a case link with info box hover: Add a link to a FogBugz case with the standard hover for summary information box.
- Create a FogBugz editable table: FogBugz does the heavy lifting when you use FogCreek.FogBugz.UI.EditableTable to create a fancy HTML table complete with popup-dialogs.
- Create a FogBugz-style pop-up dialog: Manually create a dialog if you don't need the full editable table above.
- Embed a widget in a wiki page: Use the WikiBlock classes to contruct self-contained widgets to place in wiki pages. Examples include the Table of Contents block and the Dynamic Case Link block.
- Add a custom field to case editing: Use the IPluginBugJoin, IPluginBugDisplay, and IPluginBugCommit interfaces to attach user-editable fields to a FogBugz case.
- Add a custom field the easy way using the BugField Library: Use BugField to add various types of custom fields to cases without the drudgery of implementing eleven interfaces yourself.
- Add a column to the case grid view using the IPluginGridColumn interface.
Security
- Make sure your plugin is secure: Protect your plugin from malicious attacks using CSecurityApi and a set of best practices.
- Manage FogBugz Permissions: Specify exactly which FogBugz users can view and modify data related to your plugin.
Localization and Internationalization
- Time Zone Conversion: Simple API methods and best-practices for working with user time zones
- Localize your plugin: Use .NET resource files and FogCreek.FogBugz.Globalization.CLocalizer to make sure your plugin's user interface speaks a variety of languages.
Advanced
- Access an external API: Use an HTTP request to an external server to connect FogBugz to another application.
- Reference External Assemblies: Include multiple assemblies in your Plugin
- AppDomains and Plugin Code Security: Understanding how plugins work in FogBugz
- Plugin Debugging: Trouble-shoot your plugin by stepping through the code in a debugger
- How To Enable External API Access: Create additional APIs for an external application to access