From: David E. <de...@vi...> - 2004-09-08 09:27:11
|
I remember seeing someone post to the list about modifications for a time tracking system in Mantis. We've searched the list archives and can't find anything to use as a starting point for modifications we are making. My question is, we know that time tracking should not be a default or core part of Mantis, but would it be something that might get added to CVS if we wrote our time tracking system as a module that could plug into Mantis rather than as a simple hack to existing pages? Our only intrusive modifications would be to the bug view pages and the bug update pages where we are adding buttons for starting and stopping time entries and for viewing your time against the current issue. What we were thinking of doing was abstracting the modifications so that the bug view/update pages provided a hook for a plugin of sorts where below the current collapsable blocks (in 0.19) the pages look for anything registered as a plugin for that page. The plugin would provide the html for a block much the way a XOOPS or PostNuke might allow blocks to be registered in a page. The issue plugin blocks would of course be passed the current bug id so that the content was rendered appropriately for that issue. The plugin wouldn't affect the table structure of mantis_bug_table, but would be responsible for maintaining whatever data was needed to render its block. That way plugin modules wouldn't be affecting the core table structures at all. The rest of our changes would really just be extra pages for managing and submitting timesheets which would be standalone pages, but could be added to the Manage section (or elsewhere) via another plugin block that checks for any extra links needed for rendering the Manage submenu. Does this sound like an approach that would find traction with the rest of the developers? We're just hoping to write a system that is maintable with future releases without constant re-modification of the core files. Thanks, David |
From: Victor B. <vi...@fu...> - 2004-09-08 13:58:27
|
Hi David, > I remember seeing someone post to the list about modifications for a > time tracking system in Mantis. We've searched the list archives and > can't find anything to use as a starting point for modifications we are > making. I think you are referring to the following issue (maybe!): http://bugs.mantisbt.org/view.php?id=3337 > My question is, we know that time tracking should not be a default or > core part of Mantis, but would it be something that might get added to > CVS if we wrote our time tracking system as a module that could plug > into Mantis rather than as a simple hack to existing pages? We are gradually adding support for hooks and plug-ins. Once this is available we will provide a way to advertise and make available Mantis plug-ins. This may be through links on the website or through cvs (to be decided). > Our only intrusive modifications would be to the bug view pages and the > bug update pages where we are adding buttons for starting and stopping > time entries and for viewing your time against the current issue. What > we were thinking of doing was abstracting the modifications so that the > bug view/update pages provided a hook for a plugin of sorts where below > the current collapsable blocks (in 0.19) the pages look for anything > registered as a plugin for that page. The plugin would provide the html > for a block much the way a XOOPS or PostNuke might allow blocks to be > registered in a page. Sounds good. A plug-in must be able to: 1. Provide its own configuration, eg: plugin_config_defaults_inc.php which gets included like config_defaults_inc.php and can be overridden in config_inc.php. 2. Provide its own database (create/) upgrade scripts. Should re-use the generic infrastructure but provide its own steps. 3. Custom menu options. 4. Addition pages. A plugin would probably end up living inside mantis/plugin/<plugin_name>/. All files belonging to the plug-in must be inside this one directory. We can go into this in more details... And as usual, ideas are welcome. > The issue plugin blocks would of course be passed the current bug id so > that the content was rendered appropriately for that issue. The plugin > wouldn't affect the table structure of mantis_bug_table, but would be > responsible for maintaining whatever data was needed to render its > block. That way plugin modules wouldn't be affecting the core table > structures at all. Exactly right, plugins must not change the standard Mantis tables. Plug-ins will need to override standard hooks for addition/modification/deletion of issues in order to do the necessary work on the plug-in tables. > The rest of our changes would really just be extra pages for managing > and submitting timesheets which would be standalone pages, but could be > added to the Manage section (or elsewhere) via another plugin block that > checks for any extra links needed for rendering the Manage submenu. Can be done as links or custom menu options depending on whether what is needed. > Does this sound like an approach that would find traction with the rest > of the developers? We're just hoping to write a system that is maintable > with future releases without constant re-modification of the core files. In my opinion, what you are proposing sounds good as long as you coordinate closely with the development team to design the support for plug-ins in Mantis core. Once this done, you can have your plug-in as a standard alone plug-in that is developed and maintained by yourself. The idea is for us to provide a framework where people can develop plug-ins and share them with each other, rather than us maintaining them (which is what I think you mean anyway). There was an issue about plug-ins in the bugtracker, I can't remember if it had anything useful for this discussion, but here is the link anyway: http://bugs.mantisbt.org/view.php?id=3361 Regards, Victor. |
From: Alex <ak...@us...> - 2004-09-09 06:20:58
|
Victor, do you have any idea what you are saying??? :D - that's what I'm waiting for a very long time! I'm using phproject for the normal project management and Mambo for the CMS. I tried already a Mantis Plugin for phproject but the different database access layers make this idea extream difficult. With you plugin/hook technique this could be possible again! Second part is Mambo. There we have a lot of different elements which you can plug in into the site (like a module for just showing information about how many open bugs are existing in a project). Same game when I have a hook you have this plugin ;-). Thank's for the good work Alex --On Mittwoch, 8. September 2004 23:53 +1000 Victor Boctor <vi...@fu...> wrote: > We are gradually adding support for hooks and plug-ins. Once this is > available we will provide a way to advertise and make available Mantis > plug-ins. This may be through links on the website or through cvs (to > be decided). Alex |