diff options
Diffstat (limited to 'engine/classes/ElggPluginManifestParser18.php')
| -rw-r--r-- | engine/classes/ElggPluginManifestParser18.php | 64 |
1 files changed, 21 insertions, 43 deletions
diff --git a/engine/classes/ElggPluginManifestParser18.php b/engine/classes/ElggPluginManifestParser18.php index 1d4e9daed..3b753f17b 100644 --- a/engine/classes/ElggPluginManifestParser18.php +++ b/engine/classes/ElggPluginManifestParser18.php @@ -4,6 +4,7 @@ * * @package Elgg.Core * @subpackage Plugins + * @since 1.8 */ class ElggPluginManifestParser18 extends ElggPluginManifestParser { /** @@ -12,23 +13,10 @@ class ElggPluginManifestParser18 extends ElggPluginManifestParser { * @var array */ protected $validAttributes = array( - 'name' => null, - 'author' => null, - 'version' => null, - 'blurb' => null, - 'description' => null, - 'website' => null, - 'copyright' => null, - 'license' => 'GNU Public License version 2', - 'depends' => array(), - 'screenshots' => array(), - 'conflicts' => array(), - 'provides' => array(), - 'admin' => array( - 'on_enable' => null, - 'on_disable' => null, - 'interface_type' => 'advanced' - ) + 'name', 'author', 'version', 'blurb', 'description','website', + 'repository', 'bugtracker', 'donations', 'copyright', 'license', + 'requires', 'suggests', 'conflicts', 'provides', + 'screenshot', 'category', 'activate_on_install' ); /** @@ -37,7 +25,7 @@ class ElggPluginManifestParser18 extends ElggPluginManifestParser { * @var array */ protected $requiredAttributes = array( - 'name', 'author', 'version', 'description', 'depends' + 'name', 'author', 'version', 'description', 'requires' ); /** @@ -50,46 +38,32 @@ class ElggPluginManifestParser18 extends ElggPluginManifestParser { foreach ($this->manifestObject->children as $element) { switch ($element->name) { // single elements - // translatable case 'blurb': case 'description': - $element->content = elgg_echo($element->content); - case 'name': case 'author': case 'version': case 'website': case 'copyright': case 'license': + case 'repository': + case 'bugtracker': + case 'donations': + case 'activate_on_install': $parsed[$element->name] = $element->content; break; // arrays - case 'screenshot': - if (isset($element->attributes['description'])) { - $description = elgg_echo($element->attributes['description']); - } - $parsed['screenshots'][] = array( - 'description' => $description, - 'path' => $element->content - ); - break; - - case 'admin': - $parsed['admin'] = array(); - if (!isset($element->children)) { - return false; - } - - foreach ($element->children as $child_element) { - $parsed['admin'][$child_element->name] = $child_element->content; - } - + case 'category': + $parsed[$element->name][] = $element->content; break; + // 3d arrays + case 'screenshot': case 'provides': case 'conflicts': - case 'depends': + case 'requires': + case 'suggests': if (!isset($element->children)) { return false; } @@ -114,6 +88,10 @@ class ElggPluginManifestParser18 extends ElggPluginManifestParser { $this->manifest = $parsed; + if (!$this->manifest) { + return false; + } + return true; } -}
\ No newline at end of file +} |
