diff options
author | Sem <sembrestels@riseup.net> | 2012-07-08 09:48:50 +0200 |
---|---|---|
committer | Sem <sembrestels@riseup.net> | 2012-07-08 09:48:50 +0200 |
commit | 17c28c8161e8c551ce4e4a1345e525cbb785fb59 (patch) | |
tree | c5e650d7ccb11fe172318ff1dd7e2eddabfd08d3 /engine | |
parent | 7fd67bc8ac6882f1a73aa7f8f907cd6c2a694272 (diff) | |
download | elgg-17c28c8161e8c551ce4e4a1345e525cbb785fb59.tar.gz elgg-17c28c8161e8c551ce4e4a1345e525cbb785fb59.tar.bz2 |
Fixes #3646. Added suport for Repository, Bugtracker and Donations in manifest.
Diffstat (limited to 'engine')
-rw-r--r-- | engine/classes/ElggPluginManifest.php | 26 | ||||
-rw-r--r-- | engine/classes/ElggPluginManifestParser18.php | 11 | ||||
-rw-r--r-- | engine/tests/api/plugins.php | 18 | ||||
-rw-r--r-- | engine/tests/test_files/plugin_18/manifest.xml | 3 |
4 files changed, 54 insertions, 4 deletions
diff --git a/engine/classes/ElggPluginManifest.php b/engine/classes/ElggPluginManifest.php index 7e79c15c8..5eb248c2c 100644 --- a/engine/classes/ElggPluginManifest.php +++ b/engine/classes/ElggPluginManifest.php @@ -276,6 +276,32 @@ class ElggPluginManifest { } } + /** + * Returns the repository url + * + * @return sting + */ + public function getRepository() { + return $this->parser->getAttribute('repository'); + } + + /** + * Returns the bug tracker page + * + * @return sting + */ + public function getBugTracker() { + return $this->parser->getAttribute('bugtracker'); + } + + /** + * Returns the donations page + * + * @return sting + */ + public function getDonationsPage() { + return $this->parser->getAttribute('donations'); + } /** * Returns the version of the plugin. diff --git a/engine/classes/ElggPluginManifestParser18.php b/engine/classes/ElggPluginManifestParser18.php index 554e28c02..3b753f17b 100644 --- a/engine/classes/ElggPluginManifestParser18.php +++ b/engine/classes/ElggPluginManifestParser18.php @@ -13,10 +13,10 @@ class ElggPluginManifestParser18 extends ElggPluginManifestParser { * @var array */ protected $validAttributes = array( - 'name', 'author', 'version', 'blurb', 'description', - 'website', 'copyright', 'license', 'requires', 'suggests', - 'screenshot', 'category', 'conflicts', 'provides', - 'activate_on_install' + 'name', 'author', 'version', 'blurb', 'description','website', + 'repository', 'bugtracker', 'donations', 'copyright', 'license', + 'requires', 'suggests', 'conflicts', 'provides', + 'screenshot', 'category', 'activate_on_install' ); /** @@ -46,6 +46,9 @@ class ElggPluginManifestParser18 extends ElggPluginManifestParser { case 'website': case 'copyright': case 'license': + case 'repository': + case 'bugtracker': + case 'donations': case 'activate_on_install': $parsed[$element->name] = $element->content; break; diff --git a/engine/tests/api/plugins.php b/engine/tests/api/plugins.php index 8ecb0a46c..66297266c 100644 --- a/engine/tests/api/plugins.php +++ b/engine/tests/api/plugins.php @@ -68,6 +68,9 @@ class ElggCorePluginsAPITest extends ElggCoreUnitTest { 'blurb' => 'A concise description.', 'description' => 'A longer, more interesting description.', 'website' => 'http://www.elgg.org/', + 'repository' => 'https://github.com/Elgg/Elgg', + 'bugtracker' => 'http://trac.elgg.org', + 'donations' => 'http://elgg.org/supporter.php', 'copyright' => '(C) Elgg Foundation 2011', 'license' => 'GNU General Public License version 2', @@ -164,6 +167,21 @@ class ElggCorePluginsAPITest extends ElggCoreUnitTest { $this->assertEqual($this->manifest18->getWebsite(), 'http://www.elgg.org/'); $this->assertEqual($this->manifest17->getWebsite(), 'http://www.elgg.org/'); } + + public function testElggPluginManifestGetRepository() { + $this->assertEqual($this->manifest18->getRepository(), 'https://github.com/Elgg/Elgg'); + $this->assertEqual($this->manifest17->getRepository(), ''); + } + + public function testElggPluginManifestGetBugtracker() { + $this->assertEqual($this->manifest18->getBugTracker(), 'http://trac.elgg.org'); + $this->assertEqual($this->manifest17->getBugTracker(), ''); + } + + public function testElggPluginManifestGetDonationsPage() { + $this->assertEqual($this->manifest18->getDonationsPage(), 'http://elgg.org/supporter.php'); + $this->assertEqual($this->manifest17->getDonationsPage(), ''); + } public function testElggPluginManifestGetCopyright() { $this->assertEqual($this->manifest18->getCopyright(), '(C) Elgg Foundation 2011'); diff --git a/engine/tests/test_files/plugin_18/manifest.xml b/engine/tests/test_files/plugin_18/manifest.xml index 9654b6422..5d788616a 100644 --- a/engine/tests/test_files/plugin_18/manifest.xml +++ b/engine/tests/test_files/plugin_18/manifest.xml @@ -6,6 +6,9 @@ <blurb>A concise description.</blurb> <description>A longer, more interesting description.</description> <website>http://www.elgg.org/</website> + <repository>https://github.com/Elgg/Elgg</repository> + <bugtracker>http://trac.elgg.org</bugtracker> + <donations>http://elgg.org/supporter.php</donations> <copyright>(C) Elgg Foundation 2011</copyright> <license>GNU General Public License version 2</license> |