diff options
Diffstat (limited to 'rt/docs/design_docs/local_hacking')
| -rw-r--r-- | rt/docs/design_docs/local_hacking | 32 | 
1 files changed, 32 insertions, 0 deletions
| diff --git a/rt/docs/design_docs/local_hacking b/rt/docs/design_docs/local_hacking new file mode 100644 index 000000000..c06d1126d --- /dev/null +++ b/rt/docs/design_docs/local_hacking @@ -0,0 +1,32 @@ +To facilitate local hacking, RT needs a mechanism to allow site administrators +to easily add HTML templates for the web ui and to replace sections +of code in RT's core modules _without_ having to modify those modules + +We'll use several methods to achieve this goal. + +	Webui +		HTML::Mason allows users to create multiple +component hierarchies.  RT should ship with a local component root +defined and available. This root should be configured as the "primary" +component root. + + +	Core modules + +	This gets a bit trickier. we want to allow people to trivially +subclass core modules and to use those subclasses throughout the code. + +The way we're going to handle this is by setting up a number of subroutines +in config.pm that look something like this: + +sub NewTicketObj { +	eval "require $TicketClass"; +	my $object = new $TicketClass; +	return ($object); +} + +# This variable is used for ref type checking +$TicketClass = "RT::Ticket"; + +we could use an eval around the require and thus completely avoid specifying +the object in two places. which feels like a win. but i'm worried about perf. | 
