diff options
author | ArthurHoaro <arthur@hoa.ro> | 2016-08-02 11:02:20 +0200 |
---|---|---|
committer | ArthurHoaro <arthur@hoa.ro> | 2016-08-02 11:12:01 +0200 |
commit | 15170b516429341ae8e1a9ad2111be5ef90bf6aa (patch) | |
tree | a6fcbefb1c26c5e6059d0158530f8a6e4599f399 | |
parent | 559315ba0a89e306bc46d0a540f1536193860580 (diff) | |
download | Shaarli-15170b516429341ae8e1a9ad2111be5ef90bf6aa.tar.gz Shaarli-15170b516429341ae8e1a9ad2111be5ef90bf6aa.tar.zst Shaarli-15170b516429341ae8e1a9ad2111be5ef90bf6aa.zip |
Parse plugin parameters description with the PluginManager
Plugin parameter can contain a description in their meta file under the key:
parameter.<param_name>="<description>"
-rw-r--r-- | application/PluginManager.php | 6 | ||||
-rw-r--r-- | application/config/ConfigPlugin.php | 10 | ||||
-rw-r--r-- | tests/PluginManagerTest.php | 10 | ||||
-rw-r--r-- | tests/config/ConfigPluginTest.php | 12 | ||||
-rw-r--r-- | tests/plugins/test/test.meta | 4 |
5 files changed, 29 insertions, 13 deletions
diff --git a/application/PluginManager.php b/application/PluginManager.php index dca7e63e..07bc1da9 100644 --- a/application/PluginManager.php +++ b/application/PluginManager.php | |||
@@ -185,7 +185,11 @@ class PluginManager | |||
185 | continue; | 185 | continue; |
186 | } | 186 | } |
187 | 187 | ||
188 | $metaData[$plugin]['parameters'][$param] = ''; | 188 | $metaData[$plugin]['parameters'][$param]['value'] = ''; |
189 | // Optional parameter description in parameter.PARAM_NAME= | ||
190 | if (isset($metaData[$plugin]['parameter.'. $param])) { | ||
191 | $metaData[$plugin]['parameters'][$param]['desc'] = $metaData[$plugin]['parameter.'. $param]; | ||
192 | } | ||
189 | } | 193 | } |
190 | } | 194 | } |
191 | 195 | ||
diff --git a/application/config/ConfigPlugin.php b/application/config/ConfigPlugin.php index 047d2b03..cb0b6fce 100644 --- a/application/config/ConfigPlugin.php +++ b/application/config/ConfigPlugin.php | |||
@@ -80,9 +80,13 @@ function validate_plugin_order($formData) | |||
80 | } | 80 | } |
81 | 81 | ||
82 | /** | 82 | /** |
83 | * Affect plugin parameters values into plugins array. | 83 | * Affect plugin parameters values from the ConfigManager into plugins array. |
84 | * | 84 | * |
85 | * @param mixed $plugins Plugins array ($plugins[<plugin_name>]['parameters']['param_name'] = <value>. | 85 | * @param mixed $plugins Plugins array: |
86 | * $plugins[<plugin_name>]['parameters'][<param_name>] = [ | ||
87 | * 'value' => <value>, | ||
88 | * 'desc' => <description> | ||
89 | * ] | ||
86 | * @param mixed $conf Plugins configuration. | 90 | * @param mixed $conf Plugins configuration. |
87 | * | 91 | * |
88 | * @return mixed Updated $plugins array. | 92 | * @return mixed Updated $plugins array. |
@@ -97,7 +101,7 @@ function load_plugin_parameter_values($plugins, $conf) | |||
97 | 101 | ||
98 | foreach ($plugin['parameters'] as $key => $param) { | 102 | foreach ($plugin['parameters'] as $key => $param) { |
99 | if (!empty($conf[$key])) { | 103 | if (!empty($conf[$key])) { |
100 | $out[$name]['parameters'][$key] = $conf[$key]; | 104 | $out[$name]['parameters'][$key]['value'] = $conf[$key]; |
101 | } | 105 | } |
102 | } | 106 | } |
103 | } | 107 | } |
diff --git a/tests/PluginManagerTest.php b/tests/PluginManagerTest.php index 61efce68..f4826e2e 100644 --- a/tests/PluginManagerTest.php +++ b/tests/PluginManagerTest.php | |||
@@ -79,8 +79,14 @@ class PluginManagerTest extends PHPUnit_Framework_TestCase | |||
79 | $this->pluginManager->load(array(self::$pluginName)); | 79 | $this->pluginManager->load(array(self::$pluginName)); |
80 | 80 | ||
81 | $expectedParameters = array( | 81 | $expectedParameters = array( |
82 | 'pop' => '', | 82 | 'pop' => array( |
83 | 'hip' => '', | 83 | 'value' => '', |
84 | 'desc' => 'pop description', | ||
85 | ), | ||
86 | 'hip' => array( | ||
87 | 'value' => '', | ||
88 | 'desc' => '', | ||
89 | ), | ||
84 | ); | 90 | ); |
85 | $meta = $this->pluginManager->getPluginsMeta(); | 91 | $meta = $this->pluginManager->getPluginsMeta(); |
86 | $this->assertEquals('test plugin', $meta[self::$pluginName]['description']); | 92 | $this->assertEquals('test plugin', $meta[self::$pluginName]['description']); |
diff --git a/tests/config/ConfigPluginTest.php b/tests/config/ConfigPluginTest.php index 716631b0..3b37cd79 100644 --- a/tests/config/ConfigPluginTest.php +++ b/tests/config/ConfigPluginTest.php | |||
@@ -101,9 +101,9 @@ class ConfigPluginTest extends PHPUnit_Framework_TestCase | |||
101 | $plugins = array( | 101 | $plugins = array( |
102 | 'plugin_name' => array( | 102 | 'plugin_name' => array( |
103 | 'parameters' => array( | 103 | 'parameters' => array( |
104 | 'param1' => true, | 104 | 'param1' => array('value' => true), |
105 | 'param2' => false, | 105 | 'param2' => array('value' => false), |
106 | 'param3' => '', | 106 | 'param3' => array('value' => ''), |
107 | ) | 107 | ) |
108 | ) | 108 | ) |
109 | ); | 109 | ); |
@@ -114,8 +114,8 @@ class ConfigPluginTest extends PHPUnit_Framework_TestCase | |||
114 | ); | 114 | ); |
115 | 115 | ||
116 | $result = load_plugin_parameter_values($plugins, $parameters); | 116 | $result = load_plugin_parameter_values($plugins, $parameters); |
117 | $this->assertEquals('value1', $result['plugin_name']['parameters']['param1']); | 117 | $this->assertEquals('value1', $result['plugin_name']['parameters']['param1']['value']); |
118 | $this->assertEquals('value2', $result['plugin_name']['parameters']['param2']); | 118 | $this->assertEquals('value2', $result['plugin_name']['parameters']['param2']['value']); |
119 | $this->assertEquals('', $result['plugin_name']['parameters']['param3']); | 119 | $this->assertEquals('', $result['plugin_name']['parameters']['param3']['value']); |
120 | } | 120 | } |
121 | } | 121 | } |
diff --git a/tests/plugins/test/test.meta b/tests/plugins/test/test.meta index ab999ed4..26f243f0 100644 --- a/tests/plugins/test/test.meta +++ b/tests/plugins/test/test.meta | |||
@@ -1,2 +1,4 @@ | |||
1 | description="test plugin" | 1 | description="test plugin" |
2 | parameters="pop;hip" \ No newline at end of file | 2 | parameters="pop;hip" |
3 | parameter.pop="pop description" | ||
4 | parameter.hip= \ No newline at end of file | ||