RT - Request Tracker
A fully featured request tracker package.
This documentation describes the point-of-entry for RT's Perl API. To learn more about what RT is and what it can do for you, visit https://bestpractical.com/rt.
If you're using RT's Perl libraries, you need to initialize RT before using any of the modules.
You have the option of handling the timing of config loading and the actual init sequence yourself with:
use RT;
BEGIN {
RT->LoadConfig;
RT->Init;
}
or you can let RT do it all:
use RT -init;
This second method is particular useful when writing one-liners to interact with RT:
perl -MRT=-init -e '...'
The first method is necessary if you need to delay or conditionalize initialization or if you want to fiddle with RT->Config
between loading the config files and initializing the RT environment.
Load RT's config file. First, the site configuration file (RT_SiteConfig.pm) is loaded, in order to establish overall site settings like hostname and name of RT instance. Then, the core configuration file (RT_Config.pm) is loaded to set fallback values for all settings; it bases some values on settings from the site configuration file.
In order for the core configuration to not override the site's settings, the function Set
is used; it only sets values if they have not been set already.
Connects to the database, initilizes system objects, preloads classes, sets up logging, and loads plugins.
Get a database connection. See also "Handle".
Create the Logger object and set up signal handlers.
Load all modules that define base classes.
Initializes system objects: $RT::System
, RT->SystemUser
and RT->Nobody
.
Returns the current config object, but note that you must load config first otherwise this method returns undef.
Method can be called as class method.
Returns the current database handle object.
See also "ConnectToDatabase".
Returns the logger. See also "InitLogging".
Returns the current system object. See also "InitSystemObjects".
Returns the system user's object, it's object of RT::CurrentUser class that represents the system. See also "InitSystemObjects".
Returns object of Nobody. It's object of RT::CurrentUser class that represents a user who can own ticket and nothing else. See also "InitSystemObjects".
Returns a listref of all Plugins currently configured for this RT instance. You can define plugins by adding them to the @Plugins list in your RT_SiteConfig
Takes an optional subdir (e.g. po, lib, etc.) and returns a list of directories from plugins where that subdirectory exists.
This code does not check plugin names, plugin validitity, or load plugins (see "InitPlugins") in any way, and requires that RT's configuration have been already loaded.
Push plugins' lib paths into @INC right after local/lib. In case local/lib isn't in @INC, append them to @INC
Initialize all Plugins found in the RT configuration file, setting up their lib and HTML::Mason component roots.
Helper method to add JS files to the @JSFiles
config at runtime.
To add files, you can add the following line to your extension's main .pm
file:
RT->AddJavaScript( 'foo.js', 'bar.js' );
Files are expected to be in a static root in a js/ directory, such as static/js/ in your extension or local/static/js/ for local overlays.
Helper method to add CSS files to the @CSSFiles
config at runtime.
To add files, you can add the following line to your extension's main .pm
file:
RT->AddStyleSheets( 'foo.css', 'bar.css' );
Files are expected to be in a static root in a css/ directory, such as static/css/ in your extension or local/static/css/ for local overlays.
helper method of RT->Config->Get('JSFiles')
helper method of RT->Config->Get('CSSFiles')
Notes that a particular call path is deprecated, and will be removed in a particular release. Puts a warning in the logs indicating such, along with a stack trace.
Optional arguments include:
The release which is slated to remove the method or component
A suggestion of what to use in place of the deprecated API
Used if not the entire method is being removed, merely a manner of calling it; names the arguments which are deprecated.
Overrides the auto-built phrasing of Calling function ____ is deprecated
with a custom message.
An RT::Record object to print the class and numeric id of. Useful if the admin will need to hunt down a particular object to fix the deprecation warning.
Please report them to rt-bugs@bestpractical.com, if you know what's broken and have at least some idea of what needs to be fixed.
If you're not sure what's going on, report them rt-devel@lists.bestpractical.com.