Project

General

Profile

Actions

Plugin FAQ » History » Revision 3

« Previous | Revision 3/8 (diff) | Next »
Mischa The Evil, 2020-08-26 04:47
Add an entry on 'retrieving Redmine application configuration values' per message#59809.


Frequently Asked Questions about Redmine plugins

This page aims at documenting how to achieve simple things in Redmine plugins.

Determine if a module is enabled

If your project is in the @project variable:

if @project.module_enabled?("<module_name>")

First modules are a project level concept. So be sure to make this check in an action that operates at project level. Redmine core generally uses a before_filter called find_project to find the current project in standard actions, which populates the @project variable.

Available modules as of Redmine 2.3.x are: boards, calendar, documents, files, gantt, issue_tracking, news, repository, time_tracking, wiki. Each plugin can add its own module (see Plugin_Tutorial which adds a "polls" module).

Changing the layout of a page

Changing the layout of a page is done by overriding its View. Redmine stores its views in app/views/. To change a page's view using a plugin, first copy the view from app/views/ to plugins/your_plugin/app/views/ and then modify the file.

If multiple plugins override the same view, the last plugin loaded will be the one whose view is shown. If you are having trouble finding out which view you need to override, check config/routes.rb and look for a pattern that matches the URL for the page you are trying to modify. That may help point you in the right direction.

Retrieve Redmine application configuration values

Redmine stores application configuration values in a file named config/configuration.yml. To retrieve (get) these configuration values from a plugin, Redmine provides the getter method [], which is defined as a class method on Redmine::Configuration.

Example1:

Consider the following example configuration:

email_delivery:
    delivery_method: :smtp
    smtp_settings:
      address: "myaddress.com" 
      port: 25
      domain: "mydomain.com" 

Then the value of the address configuration key can be retrieved by calling:

Redmine::Configuration['email_delivery']['smtp_settings'][:address]

1 source: RE: how to get at config variables from a plugin

Updated by Mischa The Evil over 4 years ago · 3 revisions