* as $this->parser.
*
* To add new parser versions, name them ElggPluginManifestParserXX
- * where XX is the version specified in the top-level <plugin-manifest>
- * tag.
+ * where XX is the version specified in the top-level <plugin_manifest>
+ * tag's XML namespace.
*
* @package Elgg.Core
* @subpackage Plugins
*/
protected $parser;
+ /**
+ * The root for plugin manifest namespaces.
+ * This is in the format http://www.elgg.org/plugin_manifest/<version>
+ */
+ protected $namespace_root = 'http://www.elgg.org/plugin_manifest/';
+
/**
* The expected structure of a plugins requires element
*/
}
// set manifest api version
- if (isset($manifest_obj->attributes['version'])) {
- $this->apiVersion = (float)$manifest_obj->attributes['version'];
+ if (isset($manifest_obj->attributes['xmlns'])) {
+ $namespace = $manifest_obj->attributes['xmlns'];
+ $version = str_replace($this->namespace_root, '', $namespace);
} else {
- $this->apiVersion = 1.7;
+ $version = 1.7;
}
+ $this->apiVersion = $version;
+
$parser_class_name = 'ElggPluginManifestParser' . str_replace('.', '', $this->apiVersion);
// @todo currently the autoloader freaks out if a class doesn't exist.
<?xml version="1.0" encoding="UTF-8"?>
-<plugin_manifest version="1.8">
+<plugin_manifest xmlns="http://www.elgg.org/plugin_manifest/1.8">
<name>Blog</name>
<author>Curverider</author>
<version>1.8</version>
<?xml version="1.0" encoding="UTF-8"?>
-<plugin_manifest version="1.8">
+<plugin_manifest xmlns="http://www.elgg.org/plugin_manifest/1.8">
<name>Bookmarks</name>
<author>Curverider</author>
<version>1.7</version>
<?xml version="1.0" encoding="UTF-8"?>
-<plugin_manifest version="1.8">
+<plugin_manifest xmlns="http://www.elgg.org/plugin_manifest/1.8">
<name>Site-wide Categories</name>
<author>Curverider</author>
<version>1.7</version>
<?xml version="1.0" encoding="UTF-8"?>
-<plugin_manifest version="1.8">
+<plugin_manifest xmlns="http://www.elgg.org/plugin_manifest/1.8">
<name>Default Widgets</name>
<author>Milan Magudia & Curverider</author>
<version>2.04</version>
<?xml version="1.0" encoding="UTF-8"?>
-<plugin_manifest version="1.8">
+<plugin_manifest xmlns="http://www.elgg.org/plugin_manifest/1.8">
<name>Elgg Developer Tools</name>
<author>Cash Costello</author>
<version>1.0</version>
<?xml version="1.0" encoding="UTF-8"?>
-<plugin_manifest version="1.8">
+<plugin_manifest xmlns="http://www.elgg.org/plugin_manifest/1.8">
<name>Diagnostics</name>
<author>Curverider Ltd</author>
<version>1.5</version>
<?xml version="1.0" encoding="UTF-8"?>
-<plugin_manifest version="1.8">
+<plugin_manifest xmlns="http://www.elgg.org/plugin_manifest/1.8">
<name>Embed</name>
<author>Curverider</author>
<version>1.8</version>
<?xml version="1.0" encoding="UTF-8"?>
-<plugin_manifest version="1.8">
+<plugin_manifest xmlns="http://www.elgg.org/plugin_manifest/1.8">
<name>File</name>
<author>Curverider</author>
<version>1.8</version>
<?xml version="1.0" encoding="UTF-8"?>
-<plugin_manifest version="1.8">
+<plugin_manifest xmlns="http://www.elgg.org/plugin_manifest/1.8">
<name>Garbage Collector</name>
<author>Curverider ltd</author>
<version>1.5</version>
<?xml version="1.0" encoding="UTF-8"?>
-<plugin_manifest version="1.8">
+<plugin_manifest xmlns="http://www.elgg.org/plugin_manifest/1.8">
<name>Groups</name>
<author>Curverider ltd</author>
<version>1.8</version>
<?xml version="1.0" encoding="UTF-8"?>
-<plugin_manifest version="1.8">
+<plugin_manifest xmlns="http://www.elgg.org/plugin_manifest/1.8">
<name>HTMLawed</name>
<author>Curverider Ltd</author>
<version>1.5</version>
<?xml version="1.0" encoding="UTF-8"?>
-<plugin_manifest version="1.8">
+<plugin_manifest xmlns="http://www.elgg.org/plugin_manifest/1.8">
<name>Invite Friends</name>
<author>Curverider</author>
<version>1.7</version>
<?xml version="1.0" encoding="UTF-8"?>
-<plugin_manifest version="1.8">
+<plugin_manifest xmlns="http://www.elgg.org/plugin_manifest/1.8">
<name>Log Browser</name>
<author>Curverider Ltd</author>
<version>1.5</version>
<?xml version="1.0" encoding="UTF-8"?>
-<plugin_manifest version="1.8">
+<plugin_manifest xmlns="http://www.elgg.org/plugin_manifest/1.8">
<name>Log Rotate</name>
<author>Curverider Ltd</author>
<version>1.5</version>
<?xml version="1.0" encoding="UTF-8"?>
-<plugin_manifest version="1.8">
+<plugin_manifest xmlns="http://www.elgg.org/plugin_manifest/1.8">
<name>Message Board</name>
<author>Curverider</author>
<version>1.7</version>
<?xml version="1.0" encoding="UTF-8"?>
-<plugin_manifest version="1.8">
+<plugin_manifest xmlns="http://www.elgg.org/plugin_manifest/1.8">
<name>Messages</name>
<author>Curverider?</author>
<version>1.8</version>
<?xml version="1.0" encoding="UTF-8"?>
-<plugin_manifest version="1.8">
+<plugin_manifest xmlns="http://www.elgg.org/plugin_manifest/1.8">
<name>Minify</name>
<author>Evan Winslow</author>
<version>0.2</version>
<type>elgg_release</type>
<version>1.7</version>
</requires>
-</plugin_manifest>
\ No newline at end of file
+</plugin_manifest>
<?xml version="1.0" encoding="UTF-8"?>
-<plugin_manifest version="1.8">
+<plugin_manifest xmlns="http://www.elgg.org/plugin_manifest/1.8">
<name>Notifications</name>
<author>Curverider</author>
<version>1.7</version>
<?xml version="1.0" encoding="UTF-8"?>
-<plugin_manifest version="1.8">
+<plugin_manifest xmlns="http://www.elgg.org/plugin_manifest/1.8">
<name>OAuth Libraries</name>
<author>Curverider</author>
<version>1.8</version>
<?xml version="1.0" encoding="UTF-8"?>
-<plugin_manifest version="1.8">
+<plugin_manifest xmlns="http://www.elgg.org/plugin_manifest/1.8">
<name>Pages</name>
<author>Curverider</author>
<version>1.8</version>
<?xml version="1.0" encoding="UTF-8"?>
-<plugin_manifest version="1.8">
+<plugin_manifest xmlns="http://www.elgg.org/plugin_manifest/1.8">
<name>Profile</name>
<description>The default profile plugin.</description>
<author>Elgg.org</author>
<?xml version="1.0" encoding="UTF-8"?>
-<plugin_manifest version="1.8">
+<plugin_manifest xmlns="http://www.elgg.org/plugin_manifest/1.8">
<name>Reported Content</name>
<author>Curverider</author>
<version>1.7</version>
<?xml version="1.0" encoding="UTF-8"?>
-<plugin_manifest version="1.8">
+<plugin_manifest xmlns="http://www.elgg.org/plugin_manifest/1.8">
<name>Search</name>
<author>Curverider Ltd, The MITRE Corporation</author>
<version>1.8</version>
<?xml version="1.0" encoding="UTF-8"?>
-<plugin_manifest version="1.8">
+<plugin_manifest xmlns="http://www.elgg.org/plugin_manifest/1.8">
<name>Site Pages</name>
<author>Curverider</author>
<version>1.8</version>
<?xml version="1.0" encoding="UTF-8"?>
-<plugin_manifest version="1.8">
+<plugin_manifest xmlns="http://www.elgg.org/plugin_manifest/1.8">
<name>Tag Cloud</name>
<author>Cash Costello</author>
<version>1.0</version>
<?xml version="1.0" encoding="UTF-8"?>
-<plugin_manifest version="1.8">
+<plugin_manifest xmlns="http://www.elgg.org/plugin_manifest/1.8">
<name>The Wire</name>
<author>Curverider</author>
<version>1.8</version>
<?xml version="1.0" encoding="UTF-8"?>
-<plugin_manifest version="1.8">
+<plugin_manifest xmlns="http://www.elgg.org/plugin_manifest/1.8">
<name>TinyMCE</name>
<author>Curverider</author>
<version>1.8</version>
<?xml version="1.0" encoding="UTF-8"?>
-<plugin_manifest version="1.8">
+<plugin_manifest xmlns="http://www.elgg.org/plugin_manifest/1.8">
<name>Twitter</name>
<author>Curverider</author>
<version>1.7</version>
<?xml version="1.0" encoding="UTF-8"?>
-<plugin_manifest version="1.8">
+<plugin_manifest xmlns="http://www.elgg.org/plugin_manifest/1.8">
<name>Twitter Services</name>
<author>Curverider</author>
<version>1.8</version>
<?xml version="1.0" encoding="UTF-8"?>
-<plugin_manifest version="1.8">
+<plugin_manifest xmlns="http://www.elgg.org/plugin_manifest/1.8">
<name>User Validation by Email</name>
<author>Curverider Ltd</author>
<version>1.7</version>
<?xml version="1.0" encoding="UTF-8"?>
-<plugin_manifest version="1.8">
+<plugin_manifest xmlns="http://www.elgg.org/plugin_manifest/1.8">
<name>Zaudio</name>
<author>Curverider</author>
<version>1.8</version>