report_options: Syntax fix
[ninja.git] / xdoc / api.dox
blob79728dd693edbab71a3f4e2c206e7aaa5f571fa0
1 /** @page API
3 [TOC]
5 @section entrypoints Modifying Ninja's behavior
7 @subsection addons Using addons
9 Addons are small pieces of "drop-in" code that customizes the Ninja GUI without
10 having to edit the source files directly. By dropping your own directory with a
11 PHP file that does something nifty, you can add (or remove) page elements.
12 *Addons are located in /opt/monitor/op5/ninja/application/addons.*
14 Example: Let's say that you would like to add a link to your intranet that
15 should be located in the top bar just below the Ninja logo. We start by creating
16 the directory 'intranet_link' which contains a PHP file named link.php and a
17 javascript file called link.js.
19 in link.php:
20 @code
21 $this->template->js[] = 'application/addons/intranet_link/link.js';
22 @endcode
24 in link.js:
25 @code
26 $(document).ready(function() {
27         $('#quicklinks')
28                 .append('<ul><li><a href="/path/to/intranet">Intranet</a></li></ul>');
29 });
30 @endcode
32 This will make the link.js file to be included in the document header and create
33 a link that will point to your intranet.
35 @subsection menu_item Add a new menu item
37 Copy any file in the folder application/addons/menu to your_menu_item.php. Modify
38 the contents (especially the URI) to suit your needs.
40 @subsection widget Creating your own widgets
42 See the documentation section on @ref Widgets.
44 @subsection greasy Finetuning Ninja, editing existing code
46 There is a "Hello World" bundle located in ninja/xdoc/demo_module_hello_world. Read
47 through the controller-file to grasp how you can add any code you would like to your
48 Ninja installation.
50 Coding with Ninja is to a high degree, interacting with the php framework <a
51 href="http://docs.kohanaphp.com/">Kohana 2</a>. You can modify Ninja's behaviour
52 in several different layers. Before you do that, remember that the files to look
53 for are in /opt/monitor/op5/ninja on your Monitor server (or better yet, a test
54  server).
56 To reuse built-in features, read the detailed method documentation of
57 <a href='annotated.html'>Data Structures</a>, in particular, look for classes with
58 names ending in _Model. These will give you the data you need to use for the next
59 step: coding your own solutions with Ninja as a tool to build on.
61 @section push Ninja is open source
63 Instead of keeping your changes to yourself, send an email (preferrably with a
64 patch) to <a href="mailto:op5-users@lists.op5.com">op5-users@lists.op5.com</a>.
65 If you solved a bug or came up with an idea that's good & general enough to
66 incorporate into Ninja itself, besides making the world better; you will be
67 mentioned in op5's bug tracker, git revision history, release notes and probably
68 get points on Ohloh and the likes, as well.