This manual is deprecated. Please visit https://groupoffice.readthedocs.io for the latest documentation. |
Difference between revisions of "Global settings manager"
(10 intermediate revisions by the same user not shown) | |||
Line 28: | Line 28: | ||
<b>get_setting(<nowiki>{{setting_name}}</nowiki>, <nowiki>{{user_id}}</nowiki>)</b><br> | <b>get_setting(<nowiki>{{setting_name}}</nowiki>, <nowiki>{{user_id}}</nowiki>)</b><br> | ||
− | With this function you receive the value of a setting. | + | With this function you receive the value of a setting. |
− | + | {| | |
− | + | |<nowiki>{{setting_name}}</nowiki> | |
+ | |is the name of the setting where you want the value from and is always required. | ||
+ | |- | ||
+ | |<nowiki>{{user_id}}</nowiki> | ||
+ | |is the id of the user for which the setting is accessible, the default value is: 0, so it is accessible for every user in the system. This variable is not required. | ||
+ | |} | ||
<b>get_settings(<nowiki>{{user_id}}</nowiki>)</b><br> | <b>get_settings(<nowiki>{{user_id}}</nowiki>)</b><br> | ||
− | With this function you can receive all the settings at once. | + | With this function you can receive all the settings at once. |
− | + | {| | |
+ | |<nowiki>{{user_id}}</nowiki> | ||
+ | |is the id of the user for which the setting is accessible, the default value is: 0, so it is accessible for every user in the system. This variable is not required. | ||
+ | |} | ||
<b>save_setting(<nowiki>{{setting_name}}</nowiki>, <nowiki>{{setting_value}}</nowiki>, <nowiki>{{user_id}}</nowiki>)</b><br> | <b>save_setting(<nowiki>{{setting_name}}</nowiki>, <nowiki>{{setting_value}}</nowiki>, <nowiki>{{user_id}}</nowiki>)</b><br> | ||
− | With this function you can save a new setting or edit the value of an existing setting. | + | With this function you can save a new setting or edit the value of an existing setting. |
− | + | {| | |
− | + | |<nowiki>{{setting_name}}</nowiki> | |
− | + | |is the name of the setting that you want to save or edit, this is always required. | |
+ | |- | ||
+ | |<nowiki>{{setting_value}}</nowiki> | ||
+ | |is the value of the setting that you want to save or edit, this is always required. | ||
+ | |- | ||
+ | |<nowiki>{{user_id}}</nowiki> | ||
+ | |is the id of the user for which the setting is accessible, the default value is: 0, so it is accessible for every user in the system. This variable is not required. | ||
+ | |} | ||
<b>delete_setting( <nowiki>{{setting_name}}</nowiki> )</b><br> | <b>delete_setting( <nowiki>{{setting_name}}</nowiki> )</b><br> | ||
With this function you can delete the whole setting.<br> | With this function you can delete the whole setting.<br> | ||
− | + | {| | |
+ | |<nowiki>{{setting_name}}</nowiki> | ||
+ | |is the name of the setting where you want to delete, this is always required. | ||
+ | |} | ||
===Usage:=== | ===Usage:=== | ||
Usage of the above functions with the global config class:<br> | Usage of the above functions with the global config class:<br> | ||
− | |||
To get a setting:<br> | To get a setting:<br> | ||
− | <pre>$setting = | + | <pre>$setting = GO::config()->get_setting('<nowiki>{{setting_name}}</nowiki>');</pre> |
To get all settings:<br> | To get all settings:<br> | ||
− | <pre>$settings[] = | + | <pre>$settings[] = GO::config()->get_settings('<nowiki>{{user_id(optional)}}</nowiki>');</pre> |
To save a (new)setting:<br> | To save a (new)setting:<br> | ||
− | <pre> | + | <pre>GO::config()->save_setting('<nowiki>{{setting_name}}</nowiki>,<nowiki>{{setting_value}}</nowiki>,<nowiki>{{user_id(optional)}}</nowiki>');</pre> |
To delete a setting:<br> | To delete a setting:<br> | ||
− | <pre> | + | <pre>GO::config()->delete_setting('<nowiki>{{setting_name}}</nowiki>');</pre> |
− | + | ||
− | + | ||
==Add settings for own module:== | ==Add settings for own module:== | ||
Line 72: | Line 87: | ||
2. Add the following contents to the GlobalSettings.js file:<br> | 2. Add the following contents to the GlobalSettings.js file:<br> | ||
This file creates and shows the form that is showed on the 'Settings' tab. | This file creates and shows the form that is showed on the 'Settings' tab. | ||
− | + | <pre> | |
GO.moduleManager.on('moduleconstructed',function(mm,moduleName,panel){ | GO.moduleManager.on('moduleconstructed',function(mm,moduleName,panel){ | ||
if(moduleName=='settings'){ | if(moduleName=='settings'){ | ||
Line 91: | Line 106: | ||
<font style='font-size:8px; font-weight:bold;'>(note: for example we add a fieldset with the title 'Calendar' and with one textfield item 'calendar_name_template')</font> | <font style='font-size:8px; font-weight:bold;'>(note: for example we add a fieldset with the title 'Calendar' and with one textfield item 'calendar_name_template')</font> | ||
− | 3. In the class where you want to use the data you need to add the following event listeners: | + | [[File:Settingpanel.jpg|border|900px]] |
+ | |||
+ | 3. In the class where you want to use the data you need to add the following event listeners: | ||
<pre> | <pre> | ||
$events->add_listener('load_global_settings', __FILE__, '{{module_name}}','load_global_settings');<br> | $events->add_listener('load_global_settings', __FILE__, '{{module_name}}','load_global_settings');<br> | ||
Line 102: | Line 119: | ||
In the function load_global_settings you can specify the settings that needs to be loaded into the class so they can be used. | In the function load_global_settings you can specify the settings that needs to be loaded into the class so they can be used. | ||
The function save_global_settings is needed for the settings module to save the settings that are changed by the administrator on the 'Settings' tab. | The function save_global_settings is needed for the settings module to save the settings that are changed by the administrator on the 'Settings' tab. | ||
− | + | <pre> | |
public static function load_global_settings(&$response) | public static function load_global_settings(&$response) | ||
{ | { | ||
− | + | $response['data']['calendar_name_template']=GO::config()->get_setting('calendar_name_template'); | |
− | $response['data']['calendar_name_template']= | + | |
if(!$response['data']['calendar_name_template']) | if(!$response['data']['calendar_name_template']) | ||
Line 114: | Line 130: | ||
public static function save_global_settings(&$response) | public static function save_global_settings(&$response) | ||
{ | { | ||
− | + | GO::config()->->save_setting('calendar_name_template', $_POST['calendar_name_template']); | |
− | + | ||
} | } | ||
</pre> | </pre> |
Latest revision as of 10:05, 26 July 2012
Contents
Use of global settings in modules
Groupoffice has a global config that is stored in the table 'go_settings' in the database. It is possible to add and remove settings to the global config for your own created module.
Database Table overview:
userid | int(11) | required | default: 0 |
name | varchar(50) | required | |
value | text | not required | default: NULL |
(note: The primary key is set on 'userid' and 'name')
Global config:
Functions:
Use of the global config can be done easily with the following functions of the global config class:
get_setting({{setting_name}}, {{user_id}})
With this function you receive the value of a setting.
{{setting_name}} | is the name of the setting where you want the value from and is always required. |
{{user_id}} | is the id of the user for which the setting is accessible, the default value is: 0, so it is accessible for every user in the system. This variable is not required. |
get_settings({{user_id}})
With this function you can receive all the settings at once.
{{user_id}} | is the id of the user for which the setting is accessible, the default value is: 0, so it is accessible for every user in the system. This variable is not required. |
save_setting({{setting_name}}, {{setting_value}}, {{user_id}})
With this function you can save a new setting or edit the value of an existing setting.
{{setting_name}} | is the name of the setting that you want to save or edit, this is always required. |
{{setting_value}} | is the value of the setting that you want to save or edit, this is always required. |
{{user_id}} | is the id of the user for which the setting is accessible, the default value is: 0, so it is accessible for every user in the system. This variable is not required. |
delete_setting( {{setting_name}} )
With this function you can delete the whole setting.
{{setting_name}} | is the name of the setting where you want to delete, this is always required. |
Usage:
Usage of the above functions with the global config class:
To get a setting:
$setting = GO::config()->get_setting('{{setting_name}}');
To get all settings:
$settings[] = GO::config()->get_settings('{{user_id(optional)}}');
To save a (new)setting:
GO::config()->save_setting('{{setting_name}},{{setting_value}},{{user_id(optional)}}');
To delete a setting:
GO::config()->delete_setting('{{setting_name}}');
Add settings for own module:
In groupoffice, the administrator can access the 'Settings' tab in the startmenu. From the 'Settings' tab the administrator can easily manage the global settings of groupoffice that are made visible. By default the settings are not visible on this tab. The settings need to be added by hand in the source code of the module from which the settings are. To achieve this you need to do a couple of things.
1. In the module that you have created add the following file: GlobalSettings.js
2. Add the following contents to the GlobalSettings.js file:
This file creates and shows the form that is showed on the 'Settings' tab.
GO.moduleManager.on('moduleconstructed',function(mm,moduleName,panel){ if(moduleName=='settings'){ var fieldset =new Ext.form.FieldSet({ title:'Calendar', items:{ xtype:'textfield', name:'calendar_name_template', fieldLabel:'Template', width: 300 } }); panel.add(fieldset); } });
(note: for example we add a fieldset with the title 'Calendar' and with one textfield item 'calendar_name_template')
3. In the class where you want to use the data you need to add the following event listeners:
$events->add_listener('load_global_settings', __FILE__, '{{module_name}}','load_global_settings');<br> $events->add_listener('save_global_settings', __FILE__, '{{module_name}}','save_global_settings');
(note: To see how the event listeners work go tho the wiki section 'Event handling')
4. Add the static functions that are triggered by the even to the same file:
In the function load_global_settings you can specify the settings that needs to be loaded into the class so they can be used.
The function save_global_settings is needed for the settings module to save the settings that are changed by the administrator on the 'Settings' tab.
public static function load_global_settings(&$response) { $response['data']['calendar_name_template']=GO::config()->get_setting('calendar_name_template'); if(!$response['data']['calendar_name_template']) $response['data']['calendar_name_template']='{first_name} {middle_name} {last_name}'; } public static function save_global_settings(&$response) { GO::config()->->save_setting('calendar_name_template', $_POST['calendar_name_template']); }